UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::MovieScene::ISequenceUpdater Struct Referenceabstract

#include <MovieSceneSequenceUpdaters.h>

+ Inheritance diagram for UE::MovieScene::ISequenceUpdater:

Public Member Functions

virtual ~ISequenceUpdater ()
 
virtual void PopulateUpdateFlags (TSharedRef< const FSharedPlaybackState > SharedPlaybackState, ESequenceInstanceUpdateFlags &OutUpdateFlags)=0
 
virtual void DissectContext (TSharedRef< const FSharedPlaybackState > SharedPlaybackState, const FMovieSceneContext &InContext, TArray< TRange< FFrameTime > > &OutDissections)=0
 
virtual void Start (TSharedRef< const FSharedPlaybackState > SharedPlaybackState, const FMovieSceneContext &InContext)=0
 
virtual void Update (TSharedRef< const FSharedPlaybackState > SharedPlaybackState, const FMovieSceneContext &InContext)=0
 
virtual bool CanFinishImmediately (TSharedRef< const FSharedPlaybackState > SharedPlaybackState) const =0
 
virtual void Finish (TSharedRef< const FSharedPlaybackState > SharedPlaybackState)=0
 
virtual void InvalidateCachedData (TSharedRef< const FSharedPlaybackState > SharedPlaybackState, ESequenceInstanceInvalidationType InvalidationType)=0
 
virtual void Destroy (TSharedRef< const FSharedPlaybackState > SharedPlaybackState)=0
 
virtual void OverrideRootSequence (TSharedRef< const FSharedPlaybackState > SharedPlaybackState, FMovieSceneSequenceID NewRootOverrideSequenceID)=0
 
virtual TUniquePtr< ISequenceUpdaterMigrateToHierarchical ()=0
 
virtual FInstanceHandle FindSubInstance (FMovieSceneSequenceID SubSequenceID) const =0
 
virtual bool EvaluateCondition (const FGuid &BindingID, const FMovieSceneSequenceID &SequenceID, const UMovieSceneCondition *Condition, UObject *ConditionOwnerObject, TSharedRef< const UE::MovieScene::FSharedPlaybackState > SharedPlaybackState) const =0
 
MOVIESCENE_API void InvalidateCachedData (TSharedRef< const FSharedPlaybackState > SharedPlaybackState)
 

Static Public Member Functions

static void FactoryInstance (TUniquePtr< ISequenceUpdater > &OutPtr, UMovieSceneCompiledDataManager *CompiledDataManager, FMovieSceneCompiledDataID CompiledDataID)
 

Detailed Description

Interface for an object that will update a sequence based on the current context. It holds several responsibilities:

  1. Handle dissection of evaluation contexts based on determinism fences
  2. To add pending instantiations to FInstanceRegistry for newly-evaluated source entities
  3. To add the Unlink tag for any linker entities that are now longer required for evaluation (ie, have just finished evaluating)
  4. To handle 1 and 2 for any sub sequences that may or may not be required for the context
  5. To handle legacy track template evaluation

Constructor & Destructor Documentation

◆ ~ISequenceUpdater()

virtual UE::MovieScene::ISequenceUpdater::~ISequenceUpdater ( )
inlinevirtual

Virtual destructor

Member Function Documentation

◆ CanFinishImmediately()

virtual bool UE::MovieScene::ISequenceUpdater::CanFinishImmediately ( TSharedRef< const FSharedPlaybackState SharedPlaybackState) const
pure virtual

Returns whether this instance can be finished immediately without any last update.

Parameters
LinkerThe linker that owns this sequence instance
RootInstanceHandleThe handle to the root instance
Returns
Whether the instance can be finished immediately

Implemented in UE::MovieScene::FSequenceUpdater_Flat, and UE::MovieScene::FSequenceUpdater_Hierarchical.

◆ Destroy()

virtual void UE::MovieScene::ISequenceUpdater::Destroy ( TSharedRef< const FSharedPlaybackState SharedPlaybackState)
pure virtual

Called right before this updater's sequence instance is about to be destroyed completely

Parameters
InLinkerThe linker that is owns this sequence

Implemented in UE::MovieScene::FSequenceUpdater_Flat, and UE::MovieScene::FSequenceUpdater_Hierarchical.

◆ DissectContext()

virtual void UE::MovieScene::ISequenceUpdater::DissectContext ( TSharedRef< const FSharedPlaybackState SharedPlaybackState,
const FMovieSceneContext InContext,
TArray< TRange< FFrameTime > > &  OutDissections 
)
pure virtual

Called before any updates to the sequence to allow this updater to dissect the context into smaller ranges that should be evaluated independently for the purpose of ensuring determinism. If the resulting array is empty the whole context will be used by default.

Parameters
InLinkerThe linker that is evaluating this sequence
InPlayerThe movie scene player instance playing this sequence
InContextThe total root-level context for the next evaluation to be dissected
OutDissections(Out) Array to populate with dissected ranges

Implemented in UE::MovieScene::FSequenceUpdater_Flat, and UE::MovieScene::FSequenceUpdater_Hierarchical.

◆ EvaluateCondition()

virtual bool UE::MovieScene::ISequenceUpdater::EvaluateCondition ( const FGuid BindingID,
const FMovieSceneSequenceID SequenceID,
const UMovieSceneCondition Condition,
UObject ConditionOwnerObject,
TSharedRef< const UE::MovieScene::FSharedPlaybackState SharedPlaybackState 
) const
pure virtual

◆ FactoryInstance()

void UE::MovieScene::ISequenceUpdater::FactoryInstance ( TUniquePtr< ISequenceUpdater > &  OutPtr,
UMovieSceneCompiledDataManager CompiledDataManager,
FMovieSceneCompiledDataID  CompiledDataID 
)
static

Entry-point for creating or updating a new ISequenceUpdater interface based on the requirements of the compiled data. If OutPtr is null, a new instance will always be assigned. If OutPtr is valid, but no longer suitable for the compiled data (ie, it does not support hierarchical sequences but the compiled data now has a hierarchy), a new instance will be assigned

Parameters
OutPtrReference to receive the new sequence updater interface
CompiledDataManagerThe manager class that houses the compiled data for the sequence that needs updating
CompiledDataIDThe ID of the compiled data

◆ FindSubInstance()

virtual FInstanceHandle UE::MovieScene::ISequenceUpdater::FindSubInstance ( FMovieSceneSequenceID  SubSequenceID) const
pure virtual

Find a sub sequence instance from its ID (if it exists)

Implemented in UE::MovieScene::FSequenceUpdater_Flat, and UE::MovieScene::FSequenceUpdater_Hierarchical.

◆ Finish()

virtual void UE::MovieScene::ISequenceUpdater::Finish ( TSharedRef< const FSharedPlaybackState SharedPlaybackState)
pure virtual

Called before evaluation when this updater's sequence is no longer required to be evaluated

Parameters
InLinkerThe linker that is evaluating this sequence
InInstanceHandleThe instance handle for the top level sequence instance that this updater belongs to
InPlayerThe movie scene player instance playing this sequence

Implemented in UE::MovieScene::FSequenceUpdater_Flat, and UE::MovieScene::FSequenceUpdater_Hierarchical.

◆ InvalidateCachedData() [1/2]

void UE::MovieScene::ISequenceUpdater::InvalidateCachedData ( TSharedRef< const FSharedPlaybackState SharedPlaybackState)

◆ InvalidateCachedData() [2/2]

virtual void UE::MovieScene::ISequenceUpdater::InvalidateCachedData ( TSharedRef< const FSharedPlaybackState SharedPlaybackState,
ESequenceInstanceInvalidationType  InvalidationType 
)
pure virtual

Invalidate any cached information that depends on the compiled sequence data due to the compiled data changing

Parameters
InLinkerThe linker that is evaluating this sequence
InInstanceHandleThe instance handle for the top level sequence instance that this updater belongs to

Implemented in UE::MovieScene::FSequenceUpdater_Flat, and UE::MovieScene::FSequenceUpdater_Hierarchical.

◆ MigrateToHierarchical()

virtual TUniquePtr< ISequenceUpdater > UE::MovieScene::ISequenceUpdater::MigrateToHierarchical ( )
pure virtual

Migrate this updater to one that can represent hierarchical data.

Returns
A new instance capable of dealing with hierarchical data, or nullptr if this already does.

Implemented in UE::MovieScene::FSequenceUpdater_Flat, and UE::MovieScene::FSequenceUpdater_Hierarchical.

◆ OverrideRootSequence()

virtual void UE::MovieScene::ISequenceUpdater::OverrideRootSequence ( TSharedRef< const FSharedPlaybackState SharedPlaybackState,
FMovieSceneSequenceID  NewRootOverrideSequenceID 
)
pure virtual

Override the sequence ID that should be considered the root sequence for this updater

Parameters
InLinkerThe linker that is owns this sequence
InstanceHandleThe instance handle for the root sequence
NewRootOverrideSequenceIDThe new sequence ID to treat as the root

Implemented in UE::MovieScene::FSequenceUpdater_Flat, and UE::MovieScene::FSequenceUpdater_Hierarchical.

◆ PopulateUpdateFlags()

virtual void UE::MovieScene::ISequenceUpdater::PopulateUpdateFlags ( TSharedRef< const FSharedPlaybackState SharedPlaybackState,
ESequenceInstanceUpdateFlags OutUpdateFlags 
)
pure virtual

Called to initialize the flag structure that denotes what functions need to be called on this updater

Implemented in UE::MovieScene::FSequenceUpdater_Flat, and UE::MovieScene::FSequenceUpdater_Hierarchical.

◆ Start()

virtual void UE::MovieScene::ISequenceUpdater::Start ( TSharedRef< const FSharedPlaybackState SharedPlaybackState,
const FMovieSceneContext InContext 
)
pure virtual

Called if this updater has not been evaluated before, or has since been Finished.

Parameters
InLinkerThe linker that is evaluating this sequence
InInstanceHandleThe instance handle for the top level sequence instance that this updater belongs to
InPlayerThe movie scene player instance playing this sequence
InContextThe root-level context for the current evaluation.

Implemented in UE::MovieScene::FSequenceUpdater_Flat, and UE::MovieScene::FSequenceUpdater_Hierarchical.

◆ Update()

virtual void UE::MovieScene::ISequenceUpdater::Update ( TSharedRef< const FSharedPlaybackState SharedPlaybackState,
const FMovieSceneContext InContext 
)
pure virtual

Called in order that this updater may make any changes to the linker's environment before its sequence is evaluated (ie, initialize or unlink any entity instantiations)

Parameters
InLinkerThe linker that is evaluating this sequence
InInstanceHandleThe instance handle for the top level sequence instance that this updater belongs to
InPlayerThe movie scene player instance playing this sequence
InContextThe root-level context for the current evaluation.

Implemented in UE::MovieScene::FSequenceUpdater_Flat, and UE::MovieScene::FSequenceUpdater_Hierarchical.


The documentation for this struct was generated from the following files: