Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Have a look at our Games Focus blog post series which will show what Unity is doing for all game developers – now, next year, and in the future.
    Dismiss Notice
Dismiss Notice
Join us on Dec 8, 2022, between 7 am & 7 pm EST, in the DOTS Dev Blitz Day 2022 - Q&A forum, Discord, and Unity3D Subreddit to learn more about DOTS directly from the Unity Developers.

Resolved Sequencing multiple timeline assets one after the other

Discussion in 'Timeline' started by nice_shot, Nov 8, 2020.

  1. nice_shot

    nice_shot

    Joined:
    May 24, 2017
    Posts:
    5
    Hello,

    I have several timeline assets I've created that all work with the same playable director and represent different parts of a cutscene in my game. During runtime several of these timelines are played one after the other sequentially. Currently I'm using the playableDirector.stopped event to know when one timeline finished so I can replace the playableDirector.playableAsset and play the next one. The problem is that this causes a delay between the end of one timeline to the beginning of the next.

    Is there a way to combine several timeline assets during runtime to create a single smooth sequence?
    During runtime I know exactly which assets should be played and in what order.

    Thanks!
     
  2. seant_unity

    seant_unity

    Unity Technologies

    Joined:
    Aug 25, 2015
    Posts:
    1,516
    This is one of the uses of control tracks. If each timeline uses a different playable director, control tracks can be used to play them in sequence with no gaps.
     
  3. nice_shot

    nice_shot

    Joined:
    May 24, 2017
    Posts:
    5
    Thanks!
    During runtime I duplicate the original playable director for each different timeline and created a new timeline with control track to sequence them.
     
  4. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,597
    I am using sets of TimelineAssets to control an entire animatronics stage based on characters from the Mars Attacks movie (1988). There are 101 playableDirectors and their associated TimelineAssets. I have it so that a full set of TimelineAssets becomes a scene and several scenes sequenced together make a show. The show may be an hour long with a couple dozen scenes/skits. At runtime I want to play the scene sets one after another and the time of each skit will vary. The scenes are built by clicking on the object in the Hierarchy and it's track shows up for the TimelineAsset installed onto the PlayableDirector or it is dragged to the track window and a n Animation Track is automatically created for it. He will then install signals along that timeline to animate the animatronics (procedural gesturing and actions), stage lighting, sound and psuedo-lip synch. If I can get the last bits working it will be awesome and a show can be sequenced fairly rapidly as opposed to keyframing

    From what I can figure the TimelineAsset change will also change the control track so that puts this technique out the window unless I am missing something. i basically want to poll when the current timelineAssets tracks have completed or are going to complete so that I can load the next TimelineAsset set for the next scene into all the PlayableDirectors playable field. So, how do I get the endtime of a track

    The thing here is this is not for my use but for someone who is a total newb to Unity and I have to make it as simple and fast as possible for him to put together scenes and sequence them. In that regards if I can just get end times per scene and then load the next in sequence in I already have built all the tools to consolidate the sequencing to the SceneJukeboxSequencer.
     
  5. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,597
    Hmmm.. Could I simply make a Signal that is used at the end of a track that signals that the track is ending so load the next TimelineAsset at the incremented index?