- This change introduces two separate types for dealing with binding IDs in different spaces explicitly: FFixedObjectBindingID and FRelativeObjectBindingID. The latter is portable if the sequence it was created within is nested inside another foreign hierarchy.
- FMovieSceneObjectBindingID remains, and is able to represent both of the new types, but should only be used for serialization to ensure compatability and consistency with editor tools that operate in different spaces.
- Any manual ResolveLocalToRoot or GetSequenceID processing has now been replaced with the new ResolveBoundObjects API, which provides a less error-prone way of resolving bindings that live in different sequences
#jira UE-74450
#rb Max.Chen, Ludovic.Chabant
[CL 14915667 by Andrew Rodham in ue5-main branch]
#rnx
#rb none
#ROBOMERGE-OWNER: ryan.durand
#ROBOMERGE-AUTHOR: ryan.durand
#ROBOMERGE-SOURCE: CL 10869210 via CL 10869511 via CL 10869900
#ROBOMERGE-BOT: (v613-10869866)
[CL 10870549 by ryan durand in Main branch]
- Tags are now specified on object bindings and can be used to persistently reference similar bindings across different sequences
- Tags are now always specified and stored on the root sequence, making it easier to rebind objects from within sub sequences
- A new object binding tag manager window is available that gives a bird's eye view of all bindings and tags for the whole sequence
- New functions are available on Level Sequence Actors for interacting with bindings by tag: SetBindingByTag, AddBindingByTag, RemoveBindingByTag, FindBindingByTag
- Tags are now shown on the sequencer tree view for visibility
#jira UE-81102
#rb Max.Chen
#ROBOMERGE-SOURCE: CL 9732635 in //UE4/Release-4.24/...
#ROBOMERGE-BOT: RELEASE (Release-4.24 -> Main) (v539-9700858)
[CL 9732642 by andrew rodham in Main branch]
[at]Ryan.Gerleve, [at]Brian.Bekich
#rb None
#ROBOMERGE-OWNER: jon.nabozny
#ROBOMERGE-AUTHOR: jon.nabozny
#ROBOMERGE-SOURCE: CL 9290108 via CL 9290249
#ROBOMERGE-BOT: (v452-9288972)
[CL 9290520 by jon nabozny in Main branch]
Transform tracks are heavily used, whereas transform origins are not. As such we want to remove the ::Initialize call that is unnecessary for the majority of transform tracks. We now compute the sequence transform origin once at the start of the frame, and use that for the rest of the evaluation.
#rb Max.Chen, Matt.Hoffman, Mike.Zyracki
#ROBOMERGE-SOURCE: CL 9159615 via CL 9160214 via CL 9160238
#ROBOMERGE-BOT: (v443-9013191)
[CL 9160259 by andrew rodham in Main branch]
#lockdown josh.andersen
#rb Andrew.Rodham
#ROBOMERGE-OWNER: james.brinkerhoff
#ROBOMERGE-AUTHOR: trent.halvorsen
#ROBOMERGE-SOURCE: CL 8012362 via CL 8012363 via CL 8012365 via CL 8012928
#ROBOMERGE-BOT: (v400-8057353)
[CL 8064890 by james brinkerhoff in Main branch]
This is needed so that sequencer actors can tick first, putting objects in their desired locations and then allowing other systems to respond. This fixes special cases where sequencer would tick animation again if it had ticked before sequencer.
#jira UE-59735
#jira UE-61706
#jira UE-69731
#jira UE-72639
#rb marc.audy, andrew.rodham
[CL 5901999 by Max Chen in Dev-Sequencer branch]
- On playback we now cache off both the original asset path name, and the level ptr if we're playing back within a level that has a ULevelStreaming associated with it
- When resolving bindings, we compare the original binding's asset path name to the one we're playing back within. If it matches, we resolve using the ULevel ptr provided, rather than the UWorld.
- Ultimately we would like to change this all to make the context _always_ a ULevel rather than a UWorld, but that is a high risk change to make since a lot of code (mostly editor code) heavily relies on the playback context being a UWorld.
#rb Max.Chen
#ROBOMERGE-SOURCE: CL 4729768 via CL 4729775
[CL 4729792 by andrew rodham in Main branch]