Search Unity

  1. Unity 6 Preview is now available. To find out what's new, have a look at our Unity 6 Preview blog post.
    Dismiss Notice
  2. Unity is excited to announce that we will be collaborating with TheXPlace for a summer game jam from June 13 - June 19. Learn more.
    Dismiss Notice
  3. Dismiss Notice

[Feedback] Sequences and maintaining performance (use multiple, smaller, scenes)

Discussion in 'Virtual Production' started by akent99, Mar 7, 2022.

  1. akent99

    akent99

    Joined:
    Jan 14, 2018
    Posts:
    588
    I recall (but cannot find just now) a discussion on Unity improving the performance of sequences (by disabling sequences in the scene by default, so only one is active at a time). I have not upgraded to the newer version - so it might be a solved problem already. But sharing just in case anyone else is still on the older version.

    What I found is a Unity scene with 20 sequences in it seems to perform "okay", but when I hit 40 to 50 it was taking 20 to 30 seconds to jump between sequences. (32gb, 12 x i9 core, SSD.) So I saved the Unity scene in two files and deleted half the sequences from each copy, and performance got better. (I assume the "20" number depends on the complexity of a location, number of characters etc.)

    I was using
    • Master sequence = episode
    • Sub-sequences = location
    • Sub-sub-sequences = shots
    But it is weird sharing timelines (the master sequence timeline in particular) across Unity scene files. This is because the master sequence needs to have, say, Location 1 and Location 2 in it, even though the Unity scene files only have one of the two locations. So playback is weird.

    So I am planning to move to
    • Master sequence = episode + part (ep1-part1)
    • Sub-sequence = shot
    I already create a new Unity project per location. Now I will also create a new master sequence per episode + part, where all shots in a part are all in one location. So "part" is not a logical part (like an Act) of a play, but rather a semi-logical grouping of a small number of shot sequences (for performance reasons).

    This might be a solved problem for newer versions, but I hit a problem last time I tried to upgrade, so holding off until there is sufficient reason to try upgrading again (I am on 2021.2.b12, the last working version before symbolic links stopped working on Windows). But it was getting excruciating to jump between shot sequences.
     
  2. akent99

    akent99

    Joined:
    Jan 14, 2018
    Posts:
    588
    Example shot (for fun!)
     

    Attached Files:

    newguy123 likes this.
  3. marief_unity

    marief_unity

    Unity Technologies

    Joined:
    Oct 9, 2018
    Posts:
    143
    Hey @akent99 !

    Just so we have the full picture: what version of Sequences are you using ?

    Also can you tell us more about the issue with the symlinks ?
    Sticking to a beta might not indeed be the best and there has been few releases since 2021.2 is out of beta... So there is a chance your issue has been fixed.
     
  4. akent99

    akent99

    Joined:
    Jan 14, 2018
    Posts:
    588
    I am using "Features" in Package Manager, so 2021.2b12 uses Sequences 1.0.0 from Cinematic Studio. It does feel like the later version is faster, but I have hit a separate problem with upgrading.

    Symlinks problem is after 2021.2b12 Unity would crash on startup if a symlink exists in the project. There was a bug someone had raised somewhere. I have restructured my project to export a package instead (and import it into everything else) - so that is not stopping me any more.

    The problem I have hit with the upgrade (reported) is my character prefab variants lost Mesh, Avatar, and Avatar Description properties. The variants don't override those properties, but the prefab has them set and the prefab variant has them marked "missing". That scares me a bit, so I reported it and might wait until a later beta to try again.
     
  5. marief_unity

    marief_unity

    Unity Technologies

    Joined:
    Oct 9, 2018
    Posts:
    143
    Oh I see, the feature set package updates are done in a manifest so they indeed require to upgrade the version of Unity to be upgraded too.
    That said, you can unlock a package in the package manager and install another available version (example:1.0.4).

    For important performance improvements, you'll need 1.1.0 though. As we are officially shipping this version with 2022.1, you won't see it in Package Manager window (even if it is compatible with 2021.2), you'll need to specify the version manually in the project manifest.

    FYI, it looks like the symlink issue ("Unity Editor crashes on open when symlinks (hard link/junction) is in Assets folder") should be fixed starting in 2021.2.4f1.
     
  6. akent99

    akent99

    Joined:
    Jan 14, 2018
    Posts:
    588
    Yes, I can override individual packages etc. What I am hoping is 2022.1 becomes a good stable level. "Install the defaults and it will work." For example, I tried animation rigging 1.2.0 in my project and it got rid of all the error messages on the console, but did not work (did not actually move the character) - possibly a compatibility issue with other packages. I need to experiment more.

    So my hopes for 2022.1 are:
    • Sequences support with the speed optimization - I was hitting this in my projects over time, the optimization helps!
    • Animation Rigging working with Sequences - hopefully the recent 1.2.0 release has fixed the problem when used with Sequences (it has removed error messages, but I have not got it to work in the full project yet)
    Things I still want to test
    • Video clip generation - mp4 files in busy scenes can be very low quality, so I started using WebM. There is now an additional format (ProRes? Cannot recall from top of memory) that I wanted to out the different video formats again in 2022.1
    Pipe dreams (I would love them, but unlikely to happen and not a showstopper):
    • A flag on Sequence Assets, so you can pick something like:
      • Current behavior of adding a child Timeline inside the sequence asset to the current timeline
      • Add object to current timeline in an animation track without using a nested Timeline. (I would use this for characters so I can add them without having a flat list of all animation sequences per character, which is not scalable in my project - will end up hundreds to thousands long in a drop down list - ugg)
      • Add to current sequence without an animation track. I would use this for cameras - let me drop things in quickly, but don't bother with a new Timeline object.
      • (A lot of Sequences, Asset Collections, etc I cannot use because it always associates nested timelines on character prefabs in a shot sequence. That is not useful to me. I just want to drop the character in an animation track directly in the Shot sequence timeline. Much simplier and more scalable.)
    Things blocking me
    • Prefab variants losing *some* properties on *some* characters during upgrade in my project. (I reported a bug.) Not sure what is going on here. The character Prefab has some properties set, but the Prefab Variant use pointing to the Prefab does not have those properties set, even when there are zero overrides in the prefab variant. Maybe a cache? Dunno.
     
  7. marief_unity

    marief_unity

    Unity Technologies

    Joined:
    Oct 9, 2018
    Posts:
    143
    On this one, it should indeed get better with 2022.1, starting in Recorder 4.0.0-pre.3 with the introductions of parameters to tune quality in H.264 MP4 (see https://docs.unity3d.com/Packages/com.unity.recorder@4.0/changelog/CHANGELOG.html).