Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Multi-Timeline proposal

Discussion in 'Timeline' started by vertxxyz, Jun 13, 2017.

  1. vertxxyz

    vertxxyz

    Joined:
    Oct 29, 2014
    Posts:
    109
    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.
     
  2. gekidoslayer

    gekidoslayer

    Unity Technologies

    Joined:
    Sep 27, 2016
    Posts:
    134
    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:
    1. create a control track (add->control track)
    2. right click on the track and create a clip
    3. 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.
     
    feds likes this.
  3. vertxxyz

    vertxxyz

    Joined:
    Oct 29, 2014
    Posts:
    109
    Thanks! That's definitely the stopgap solution, now I finally know what control tracks are! What a feature to overlook :/

    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.
     
  4. gekidoslayer

    gekidoslayer

    Unity Technologies

    Joined:
    Sep 27, 2016
    Posts:
    134
    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.
     
  5. vertxxyz

    vertxxyz

    Joined:
    Oct 29, 2014
    Posts:
    109
    Sounds like you're well across the needs of suggestion then :)
    Thanks!
     
  6. fortune53

    fortune53

    Joined:
    Jul 18, 2015
    Posts:
    4
    Is there a plan for this feature? How would I go about implementing this on my own? Can you give some pointers? Thank you
     
  7. seant_unity

    seant_unity

    Unity Technologies

    Joined:
    Aug 25, 2015
    Posts:
    1,516
    This is actively being worked on right now.
     
  8. SKoptev

    SKoptev

    Joined:
    Jan 15, 2019
    Posts:
    37
    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!
     
  9. seant_unity

    seant_unity

    Unity Technologies

    Joined:
    Aug 25, 2015
    Posts:
    1,516
    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.
     
  10. SKoptev

    SKoptev

    Joined:
    Jan 15, 2019
    Posts:
    37
    Thanks for your answer, seant_unity!
    Could you clarify - how nested prefabs can help in this case?
     
  11. seant_unity

    seant_unity

    Unity Technologies

    Joined:
    Aug 25, 2015
    Posts:
    1,516
    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.
     
  12. SKoptev

    SKoptev

    Joined:
    Jan 15, 2019
    Posts:
    37
    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!
     
  13. seant_unity

    seant_unity

    Unity Technologies

    Joined:
    Aug 25, 2015
    Posts:
    1,516
    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'.
     
    SKoptev likes this.
  14. dreamerflyer

    dreamerflyer

    Joined:
    Jun 11, 2011
    Posts:
    927
    how blend two timelines? which timeline only controll aniamtion,i found can not blend like animator