UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FMovieSceneTrackImplementation Struct Reference

#include <MovieSceneTrackImplementation.h>

+ Inheritance diagram for FMovieSceneTrackImplementation:

Public Member Functions

 FMovieSceneTrackImplementation ()
 
bool HasCustomInitialize () const
 
bool HasCustomEvaluate () const
 
virtual void Initialize (const FMovieSceneEvaluationTrack &Track, TArrayView< const FMovieSceneFieldEntry_ChildTemplate > Children, const FMovieSceneEvaluationOperand &Operand, const FMovieSceneContext &Context, FPersistentEvaluationData &PersistentData, IMovieScenePlayer &Player) const
 
virtual void Evaluate (const FMovieSceneEvaluationTrack &Track, TArrayView< const FMovieSceneFieldEntry_ChildTemplate > Children, const FMovieSceneEvaluationOperand &Operand, const FMovieSceneContext &Context, const FPersistentEvaluationData &PersistentData, FMovieSceneExecutionTokens &ExecutionTokens) const
 
virtual bool Interrogate (const FMovieSceneContext &Context, FMovieSceneInterrogationData &Container, UObject *BindingOverride=nullptr) const
 
- Public Member Functions inherited from FMovieSceneEvalTemplateBase
 FMovieSceneEvalTemplateBase ()
 
virtual ~FMovieSceneEvalTemplateBase ()
 
UScriptStructGetScriptStruct () const
 
bool RequiresSetup () const
 
bool RequiresTearDown () const
 
void OnBeginEvaluation (FPersistentEvaluationData &PersistentData, IMovieScenePlayer &Player) const
 
void OnEndEvaluation (FPersistentEvaluationData &PersistentData, IMovieScenePlayer &Player) const
 
virtual void SetupOverrides ()
 

Protected Types

enum  EOverrideMask { CustomInitializeFlag = 0x004 , CustomEvaluateFlag = 0x008 }
 
- Protected Types inherited from FMovieSceneEvalTemplateBase
enum  EOverrideMask { RequiresSetupFlag = 0x001 , RequiresTearDownFlag = 0x002 }
 

Additional Inherited Members

- Protected Member Functions inherited from FMovieSceneEvalTemplateBase
virtual void Setup (FPersistentEvaluationData &PersistentData, IMovieScenePlayer &Player) const
 
virtual void TearDown (FPersistentEvaluationData &PersistentData, IMovieScenePlayer &Player) const
 
virtual UScriptStructGetScriptStructImpl () const
 
void EnableOverrides (uint8 OverrideFlag)
 
- Protected Attributes inherited from FMovieSceneEvalTemplateBase
uint8 OverrideMask
 

Detailed Description

Structure that allows the implementation of setup/teardown/initialization/evaluation logic at the track level.

Member Enumeration Documentation

◆ EOverrideMask

Enum evaluation flag structure defining which functions are to be called in implementations of this struct

Enumerator
CustomInitializeFlag 
CustomEvaluateFlag 

Constructor & Destructor Documentation

◆ FMovieSceneTrackImplementation()

FMovieSceneTrackImplementation::FMovieSceneTrackImplementation ( )
inline

Default constructor

Member Function Documentation

◆ Evaluate()

virtual void FMovieSceneTrackImplementation::Evaluate ( const FMovieSceneEvaluationTrack Track,
TArrayView< const FMovieSceneFieldEntry_ChildTemplate Children,
const FMovieSceneEvaluationOperand Operand,
const FMovieSceneContext Context,
const FPersistentEvaluationData PersistentData,
FMovieSceneExecutionTokens ExecutionTokens 
) const
inlinevirtual

Perform evaluation on the specified segment of the track. Will generally call Evaluate on all child templates in the current segment as well.

Note
This function should perform any expensive or costly evaluation logic required to calculate the final animated state. Potentially called on a thread, and as such has no access to the current evaluation environment. Only called if EnableOverrides(CustomEvaluateFlag) has been called (see SetupOverrides).
Parameters
TrackThe parent evaluation track that has knowledge of all child tracks and segments
SegmentIDThe identifier of the segment at the current time
OperandUnique handle to the operand on which we are to operate. Only to be used as a reference, or forwarded throgh to an execution token.
ContextEvaluation context specifying the current evaluation time, sub sequence transform and other relevant information.
PersistentDataPersistent data store which can be used to access arbitrary data pertaining to the current template that should have been set up in initialize.
ExecutionTokensStack of execution tokens that will be used to apply animated state to the environment at a later time.

◆ HasCustomEvaluate()

bool FMovieSceneTrackImplementation::HasCustomEvaluate ( ) const
inline

Determine whether this track implementation has its own custom evaluation override

◆ HasCustomInitialize()

bool FMovieSceneTrackImplementation::HasCustomInitialize ( ) const
inline

Determine whether this track implementation has its own custom initialization override

◆ Initialize()

virtual void FMovieSceneTrackImplementation::Initialize ( const FMovieSceneEvaluationTrack Track,
TArrayView< const FMovieSceneFieldEntry_ChildTemplate Children,
const FMovieSceneEvaluationOperand Operand,
const FMovieSceneContext Context,
FPersistentEvaluationData PersistentData,
IMovieScenePlayer Player 
) const
inlinevirtual

Perform pre frame initialization on the specified segment of the track. Will generally call Initialize on all child templates in the current segment as well.

Note
This function is intended to allow pre-frame set up, and should avoid mutating any state. Only called if EnableOverrides(CustomInitializeFlag) has been called (see SetupOverrides).
Parameters
TrackThe parent evaluation track that has knowledge of all child tracks and segments
SegmentIDThe identifier of the segment at the current time
OperandUnique handle to the operand on which we are to operate. May represent multiple objects. Resolve through IMovieScenePlayer::FindBoundObjects(Operand)
ContextEvaluation context specifying the current evaluation time, sub sequence transform and other relevant information.
PersistentDataPersistent data store which can be used to store arbitrary data pertaining to the current template that may be required in Evaluate(Swept)
PlayerThe movie scene player currently playing back this sequence

◆ Interrogate()

virtual bool FMovieSceneTrackImplementation::Interrogate ( const FMovieSceneContext Context,
FMovieSceneInterrogationData Container,
UObject BindingOverride = nullptr 
) const
inlinevirtual

Interrogate this template for its output. Should not have any side effects.

Parameters
ContextEvaluation context specifying the current evaluation time, sub sequence transform and other relevant information.
ContainerContainer to populate with the desired output from this track
BindingOverrideOptional binding to specify the object that is being animated by this track

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