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

#include <MovieSceneEvalTemplate.h>

+ Inheritance diagram for FMovieSceneEvalTemplate:

Public Member Functions

 FMovieSceneEvalTemplate ()
 
bool RequiresInitialization () const
 
EMovieSceneCompletionMode GetCompletionMode () const
 
void SetCompletionMode (EMovieSceneCompletionMode InCompletionMode)
 
virtual void Initialize (const FMovieSceneEvaluationOperand &Operand, const FMovieSceneContext &Context, FPersistentEvaluationData &PersistentData, IMovieScenePlayer &Player) const
 
virtual void Evaluate (const FMovieSceneEvaluationOperand &Operand, const FMovieSceneContext &Context, const FPersistentEvaluationData &PersistentData, FMovieSceneExecutionTokens &ExecutionTokens) const
 
virtual void EvaluateSwept (const FMovieSceneEvaluationOperand &Operand, const FMovieSceneContext &Context, const TRange< FFrameNumber > &SweptRange, const FPersistentEvaluationData &PersistentData, FMovieSceneExecutionTokens &ExecutionTokens) const
 
virtual void Interrogate (const FMovieSceneContext &Context, FMovieSceneInterrogationData &Container, UObject *BindingOverride) const
 
virtual void Interrogate (const FMovieSceneContext &Context, TRange< FFrameNumber > SweptRange, FMovieSceneInterrogationData &Container, UObject *BindingOverride) const
 
void SetSourceSection (const UMovieSceneSection *InSourceSection)
 
const UMovieSceneSectionGetSourceSection () 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 { RequiresInitializeFlag = 0x004 }
 
- Protected Types inherited from FMovieSceneEvalTemplateBase
enum  EOverrideMask { RequiresSetupFlag = 0x001 , RequiresTearDownFlag = 0x002 }
 

Protected Member Functions

MOVIESCENE_API float EvaluateEasing (FFrameTime CurrentTime) const
 
- 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

EMovieSceneCompletionMode CompletionMode
 
TWeakObjectPtr< const UMovieSceneSectionSourceSectionPtr
 
- Protected Attributes inherited from FMovieSceneEvalTemplateBase
uint8 OverrideMask
 

Detailed Description

Structure used for movie scene evaluation templates contained within a track. Typically these are defined as one per-section. Serialized into a FMovieSceneEvaluationTemplate contained within the sequence itself (for fast initialization at runtime). Templates are executed in a 3-phase algorithm: 1) Initialize: (opt-in) Called at the start of the frame. Able to access mutable state from the playback context. Used to initialize any persistent state required for the evaluation pass. 2) Evaluate: Potentially called on a thread. Should (where possible) perform all costly evaluation logic, accumulating into execution tokens which will be executed at a later time on the game thread. 3) Execute: Called on all previously submitted execution tokens to apply the evaluated state to the movie scene player

Member Enumeration Documentation

◆ EOverrideMask

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

Enumerator
RequiresInitializeFlag 

Constructor & Destructor Documentation

◆ FMovieSceneEvalTemplate()

FMovieSceneEvalTemplate::FMovieSceneEvalTemplate ( )
inline

Default Constructor

Member Function Documentation

◆ Evaluate()

virtual void FMovieSceneEvalTemplate::Evaluate ( const FMovieSceneEvaluationOperand Operand,
const FMovieSceneContext Context,
const FPersistentEvaluationData PersistentData,
FMovieSceneExecutionTokens ExecutionTokens 
) const
inlinevirtual

Evaluate this template, adding any execution tokens to the specified list

Note
Only called when the containing template has an evaluation method of EEvaluationMethod::Static 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.
Parameters
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.

Reimplemented in FMovieSceneBoolPropertySectionTemplate.

◆ EvaluateEasing()

float FMovieSceneEvalTemplate::EvaluateEasing ( FFrameTime  CurrentTime) const
protected

Evaluate this template's easing functions based on the specified time

◆ EvaluateSwept()

virtual void FMovieSceneEvalTemplate::EvaluateSwept ( const FMovieSceneEvaluationOperand Operand,
const FMovieSceneContext Context,
const TRange< FFrameNumber > &  SweptRange,
const FPersistentEvaluationData PersistentData,
FMovieSceneExecutionTokens ExecutionTokens 
) const
inlinevirtual

Evaluate this template over the given swept range, adding any execution tokens to the specified list.

Note
Only called when the containing template has an evaluation method of EEvaluationMethod::Swept 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.
Parameters
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.
SweptRangeThe range this is to be swept in this evaluation - always fully contained by the context's range
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.

◆ GetCompletionMode()

EMovieSceneCompletionMode FMovieSceneEvalTemplate::GetCompletionMode ( ) const
inline

Check whether we should restore any pre-animated state that was supplied by this template when it is no longer evaluated

Note
Pre-animated state bound to evaluation templates is reference counted across all similar animation types for a given object. This ensures that pre-animated state restores correctly for overlapping templates.

◆ GetSourceSection()

const UMovieSceneSection * FMovieSceneEvalTemplate::GetSourceSection ( ) const
inline

Get the source section from which this template originated

Returns
The source section from which this template originated

◆ Initialize()

virtual void FMovieSceneEvalTemplate::Initialize ( const FMovieSceneEvaluationOperand Operand,
const FMovieSceneContext Context,
FPersistentEvaluationData PersistentData,
IMovieScenePlayer Player 
) const
inlinevirtual

Initialize this template, copying any data required for evaluation into the specified state block.

Note
This function is intended to allow pre-frame set up, and should avoid mutating any state. Only called if EnableOverrides(RequiresInitializeFlag) has been called.
Parameters
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() [1/2]

virtual void FMovieSceneEvalTemplate::Interrogate ( const FMovieSceneContext Context,
FMovieSceneInterrogationData Container,
UObject BindingOverride 
) 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

◆ Interrogate() [2/2]

virtual void FMovieSceneEvalTemplate::Interrogate ( const FMovieSceneContext Context,
TRange< FFrameNumber SweptRange,
FMovieSceneInterrogationData Container,
UObject BindingOverride 
) 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.
SweptRangeThe range to sweep, where this template evaluates with 'swept' evaluation
ContainerContainer to populate with the desired output from this track
BindingOverrideOptional binding to specify the object that is being animated by this track

◆ RequiresInitialization()

bool FMovieSceneEvalTemplate::RequiresInitialization ( ) const
inline

Check whether this template mandates Initialize being called. Defines whether a pointer to this track will be added to the initialization section of template evaluation.

Returns
Boolean representing whether this template mandates Initialize being called

◆ SetCompletionMode()

void FMovieSceneEvalTemplate::SetCompletionMode ( EMovieSceneCompletionMode  InCompletionMode)
inline

Set this template's completion mode

Note
Pre-animated state bound to evaluation templates is reference counted across all similar animation types for a given object. This ensures that pre-animated state restores correctly for overlapping templates.

◆ SetSourceSection()

void FMovieSceneEvalTemplate::SetSourceSection ( const UMovieSceneSection InSourceSection)
inline

Set the source section from which this template originated

Parameters
SourceSectionThe source section

Member Data Documentation

◆ CompletionMode

EMovieSceneCompletionMode FMovieSceneEvalTemplate::CompletionMode
protected

Enumeration value signifying whether we should restore any animated state stored by this entity when this eval tempalte is no longer evaluated

◆ SourceSectionPtr

TWeakObjectPtr<const UMovieSceneSection> FMovieSceneEvalTemplate::SourceSectionPtr
protected

The section from which this template originates


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