Multi-Timeline proposal

An issue I’m currently having is managing multiple timelines in a scene.
Sometimes I may want to synchronise a few, and there’s no editor-side tools to do that. Timelines are previewed one at a time, and no new TimelineWindow can be opened (I tried duplicating it, but issues arise, probably where the windows are referencing the same part of the state somewhere).

It would be awesome if you could additively import Timelines into the TimelineWindow similar to the additive scene stuff. This way you have one editor driving multiple timelines that are grouped in the editor.

If that’s not feasible, going down the route of actually having multiple windows instead, it would also be handy to be able to bind them together similar to the animation window link.

My use-case specifically for this is for a film production pipeline, where we’ve added support for managing multiple timelines across multiple additively loaded scenes. All our timelines are meant to be synchronised, but because of the way the Timeline Editor is built we can only currently preview one at a time whilst getting the benefits of the editor.

Perhaps the mentioned Timelines-managing-timelines (compound nesting?) is a stopgap solution to this problem too.

The current version of Timeline has ‘control tracks’ that can do most of what you are asking for.

They are used to ‘control’ or drive Timeline sequences on other game objects.

To use them:

  • create a control track (add->control track)
  • right click on the track and create a clip
  • select the clip and drag the game object with the ‘other’ (child) Timeline sequence into the GameObject entry on the inspector

That’s about it - when you scrub / play the parent Timeline sequence, the child sequence will be played as well.

You could have multiple control tracks, one for each discipline theoretically - so one for audio, one for lighting etc much like an embedded clip in After Effects etc.

We have a number of ideas for expanding this feature and definitely want to enhance ‘team-based’ workflows as we feel that this is going to be a big part of where Timeline is used.

1 Like

Thanks! That’s definitely the stopgap solution, now I finally know what control tracks are! What a feature to overlook :confused:

The issue for me personally is playing multiple timelines cross-scene, I can understand this not being a priority.
But, the additional benefits of what I’ve mentioned are editing and visually cross referencing multiple timelines at once. Currently every timeline (even ones driven by control tracks) is treated separately by the editor. Where embedded clips in video editing don’t push this feature far enough (with in-line expansion,) they at least support opening multiple timelines at once so you can compare and manage them.

I agree completely - being able to expand (open) the control tracks to view what is inside is pretty important, we just have to figure out what the best UX is to handle these situations.

As far as playing Timeline’s cross-scene, you can create a set up that dynamically binds timeline tracks at runtime to create a multi-timeline, multi-scene system, but it’s not out of the box available. I’ve discussed similar systems with a few studios, and they have built their own custom systems, but we’d like to figure out a more elegant solution to help scale Timeline for larger projects.

Sounds like you’re well across the needs of suggestion then :slight_smile:
Thanks!

Is there a plan for this feature? How would I go about implementing this on my own? Can you give some pointers? Thank you

This is actively being worked on right now.

Hello everyone!
Is it possible now to use control tracks combined with cross-scene referencing?
I trying to use one “master” timeline, that controls some “slave” timelines, located in different scenes. All works fine until I close project. Maybe, some kind of re-binding can be done, can you give any advice please?

Thanks a lot!

It’s not possible out of the box. The bindings, even for control tracks are saved with the scene of the master playable director, and cross-scene references isn’t supported in Unity.

There may be some scripts or 3rd party tools that help in that regard.

Alternatively you can try to use nested-prefabs to accomplish this, although it depends on your use case.

Thanks for your answer, seant_unity!
Could you clarify - how nested prefabs can help in this case?

If you are using multiple scenes to split up a timeline into different files, so multiple people can work on it simultaneously, prefabs (nested or not) can help accomplish the same thing. Have all the playable directors as prefab instances in one scene, and have the master timeline use instances of those prefabs.

But if you are using multiple scenes to control the amount of resources loaded at a given time, then prefabs don’t offer much help here.

Is it possible to create an analog of “activation track”?
I’m trying to implement “scene load control” track - which keep scene as “additive loaded” depending on special track & clips. It’s very similar to “activation track”, indeed (maybe, reference implementation of it existing?)

But I have a problem: I cannot determine that scene should be unloaded, because PlayableBehaviour::ProcessFrame called only when the time bar is on the clip. I need to unload scene when time bar leaves clip area, but there is no handler on this event. Can you help me with some workaround?

Thanks a lot!

Use PlayableBehaviour::OnBehaviousPause(), and you may want to use a check like if (info.effectivePlayState == PlayState.Paused), because this gets called both when the playhead leaves the clip and if you pause the timeline in the middle of the clip.

If the timeline is paused in the middle of the clip the effectivePlayState will still be ‘Played’.

1 Like

how blend two timelines? which timeline only controll aniamtion,i found can not blend like animator