Using timeline of another layer to set triggers for current layer

Is it possible to use the timeline of another layer as the trigger for the current layer? I have a Closed Captions layer that I want to be able to hide and show. Because the text triggers are time based I need to be able to set triggers based on the main timeline. Unfortunately, since each layer has its own timeline, if the closed captions layer is hidden and then shown once again (by using a toggle to show and hide it) the captions start from the beginning instead of continuing off from the proper position in the main timeline.

5 Replies
Ashley Terwilliger

Hi Alexsandar,

I'm not sure I'm clear on what you're looking to do (could be the end of day Friday fog) but if you're able to share a .story file here it may help the community to take a look.

When you open a layer, that is the start of that layers timeline, but the main base layer timeline can continue running if you haven't set it to pause as a part of the slide layer properties. Similarly if you don't enable seeking on the slide layer, you should see the seekbar continuing the slide base layer timeline. 

Aleksandar Arsovski

Hi Ashley,

Thanks for getting back to me. I'm afraid I cannot share the .story file, but I'll try to explain it as best I can; I realize my initial description is a bit confusing.

I have a layer which contains closed captions. There is a backing audio track for the story and the closed captions are following along with the vocal track. However, I also want to have an option for hiding/showing the captions (I do this by hiding/showing the captions layer when a user clicks an element).

Unfortunately, the audio and the visuals are all timed on the base layer timeline, whilst the captions are on another layer as mentioned. I added triggers on the captions layer that should fire when the timeline reaches a certain time (5 seconds for example) at which point a captions variable in a textbox gets set to the caption text for that timeframe. However, the show/hide option seems to complicate things. Here is an explanation of what happens and how triggers are firing:

The captions layer is initially hidden. I click on a "Show Captions" rectangle that shows the captions layer. This seems to be the point at which the captions timeline starts. Unfortunately, this timeline does not match the base layer timeline at this point as it has started late and the captions are all slightly delayed from the audio. I then click on the "Hide Captions" rectangle (this is the same rectangle but with two states) and the captions layer is again hidden. If I click on the "Show Captions" rectangle again the captions show again, but once again they start from the very beginning; they're triggering as if the timeline had just started, but I need them to continue triggering based off of the main timeline which is still running.

As I wasn't able to solve this, I've dropped the separate layer for the captions entirely and folded them back into the main timeline. I am currently trying to use states to change the display of the captions from hidden to normal and back, but I'm still working out some kinks with that.

Sorry for the long post, but I'm afraid I can't share the .story file and am having trouble explaining my particular roadblock. Thanks again.

Zsolt Olah


I wonder if it's actually easier to use closed captions as one text object displaying a variable. So, for example, you create a text variable called ClosedCaption. Then you can trigger based on your timeline (either time or cue) to change the text in the variable (adjust variables trigger) to show the relevant caption... To hide or show, you just have to hide or show the the text.   

Aleksandar Arsovski

Hi Zsolt,

I was using a variable for the closed captions text from the get go. The caption variable would change based on timeline triggers. Folding it into the base layer fixed all my timing errors.

In case anyone in the future is wondering about how I handled the hide/show, I used a boolean variable (True/False) that would switch from true to false and vice versa when clicking on my show/hide button. Then I set up another two triggers that checked if the variable changed. One of the two triggers has a condition that the variable was now true and would then change the state of the caption textbox to normal. The other trigger has a condition that the variable is false and then changes the state of the caption textbox to hidden. Similar triggers can be set up for other elements such as a semi-transparent background I have for the captions so that they are more visible. The captions triggers still work regardless of the caption element (normal or hidden) and since they're following the base layer timeline where my audio track and animations execute everything is synchronized.

Now if only I could figure out how to toggle muting/unmuting the audio so that the captions keep following the animations and the audio track will be at the correct position when unmuted.

Ashley Terwilliger

Hi Aleksandar,

Thanks for sharing more information on your set up. I would definitely recommend going the route you did in terms of variable changing it based on when the timeline elements are reached.

As for muting or unmuting the audio, there isn't a trigger for that and the volume button on the player isn't accessible for adding triggers. Hopefully someone in the community is able to share some additional insight or ideas here.