Binding objects sequence ids
-
IMovieScenePlayer::FindBoundObjects()
- Searches all bound objects (including overrides and spawned objects) -
Cast<IMovieSceneBindingOverridesInterface>(Player)->LocateBoundObjects()
- Only returns the overrided bindings -
Cast<UMovieSceneSequence>(Player)::LocateBoundObjects():
- Finds all default bindings -
ISequencer::GetFocusedTemplateID
- Retrieve the currently focused (sub) sequence ID in edit mode
Reference From https://udn.unrealengine.com/questions/407751/actor-rebinding-in-code-with-sequencer.html
(4.21) IMovieScenePlayer::FindCachedObjectId(UObject& InObject, FMovieSceneSequenceIDRef SequenceID)
- Attempt to find the object binding ID for the specified object, in the specified sequence
Sequence IDs:
- SequenceID are deterministically generated by recursively hashing together the names of sub sections that sequences are instanced within, child first. So to generate the sequence ID for a given sequence, we'd use the following approach:
C++
1. FMovieSceneSequenceID CurrentID = MovieSceneSequenceID::Root;
2. UMovieSceneSubSection\* OwningSection = ...; // Get the child-most sub section
3. while (OwningSection)
4. {
5. CurrentID = CurrentID.AccumulateParentID(OwningSection->GetSequenceID());
6. OwningSection = ...; // Get the next parent sub section
7. }
- There is a blueprint node (Get Sequence Binding)
Reference From https://udn.unrealengine.com/questions/407751/actor-rebinding-in-code-with-sequencer.html