Binding objects sequence ids

  1. IMovieScenePlayer::FindBoundObjects()
    - Searches all bound objects (including overrides and spawned objects)

  2. Cast<IMovieSceneBindingOverridesInterface>(Player)->LocateBoundObjects()
    - Only returns the overrided bindings

  3. Cast<UMovieSceneSequence>(Player)::LocateBoundObjects():
    - Finds all default bindings

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