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

#include <EngineTypes.h>

Public Types

enum  EOptimizeMode : uint8 { TrailMode , LookAheadMode }
 

Public Member Functions

 FAnimUpdateRateParameters ()
 
void SetTrailMode (float DeltaTime, uint8 UpdateRateShift, int32 NewUpdateRate, int32 NewEvaluationRate, bool bNewInterpSkippedFrames)
 
void SetLookAheadMode (float DeltaTime, uint8 UpdateRateShift, float LookAheadAmount)
 
float GetInterpolationAlpha () const
 
float GetRootMotionInterp () const
 
bool DoEvaluationRateOptimizations () const
 
bool ShouldSkipUpdate () const
 
bool ShouldSkipEvaluation () const
 
bool ShouldInterpolateSkippedFrames () const
 
float GetTimeAdjustment ()
 
FColor GetUpdateRateDebugColor () const
 

Public Attributes

EOptimizeMode OptimizeMode
 
EUpdateRateShiftBucket ShiftBucket
 
uint8 bInterpolateSkippedFrames: 1
 
uint8 bShouldUseLodMap: 1
 
uint8 bShouldUseMinLod: 1
 
uint8 bSkipUpdate: 1
 
uint8 bSkipEvaluation: 1
 
int32 UpdateRate
 
int32 EvaluationRate
 
float TickedPoseOffestTime
 
float AdditionalTime
 
float ThisTickDelta
 
int32 BaseNonRenderedUpdateRate
 
int32 MaxEvalRateForInterpolation
 
TArray< floatBaseVisibleDistanceFactorThesholds
 
TMap< int32, int32LODToFrameSkipMap
 
int32 SkippedUpdateFrames
 
int32 SkippedEvalFrames
 

Detailed Description

Container for Animation Update Rate parameters. They are shared for all components of an Actor, so they can be updated in sync.

Member Enumeration Documentation

◆ EOptimizeMode

Enumerator
TrailMode 
LookAheadMode 

Constructor & Destructor Documentation

◆ FAnimUpdateRateParameters()

FAnimUpdateRateParameters::FAnimUpdateRateParameters ( )
inline

Default constructor.

Member Function Documentation

◆ DoEvaluationRateOptimizations()

bool FAnimUpdateRateParameters::DoEvaluationRateOptimizations ( ) const
inline

Return true if evaluation rate should be optimized at all

◆ GetInterpolationAlpha()

float FAnimUpdateRateParameters::GetInterpolationAlpha ( ) const

Amount to interpolate bone transforms

◆ GetRootMotionInterp()

float FAnimUpdateRateParameters::GetRootMotionInterp ( ) const

Amount to interpoilate root motion

◆ GetTimeAdjustment()

float FAnimUpdateRateParameters::GetTimeAdjustment ( )
inline

Called when we are ticking a pose to make sure we accumulate all needed time

◆ GetUpdateRateDebugColor()

FColor FAnimUpdateRateParameters::GetUpdateRateDebugColor ( ) const
inline

Returns color to use for debug UI

◆ SetLookAheadMode()

void FAnimUpdateRateParameters::SetLookAheadMode ( float  DeltaTime,
uint8  UpdateRateShift,
float  LookAheadAmount 
)

Set parameters and verify inputs for Lookahead mode, which handles Root Motion

Parameters
UpdateRateShift. Shift our update frames so that updates across all skinned components are staggered
LookAheadAmount. Amount of time to look ahead and predict movement

◆ SetTrailMode()

void FAnimUpdateRateParameters::SetTrailMode ( float  DeltaTime,
uint8  UpdateRateShift,
int32  NewUpdateRate,
int32  NewEvaluationRate,
bool  bNewInterpSkippedFrames 
)

Set parameters and verify inputs for Trail Mode (original behaviour - skip frames, track skipped time and then catch up afterwards).

Parameters
UpdateRateShift. Shift our update frames so that updates across all skinned components are staggered
NewUpdateRate. How often animation will be updated/ticked. 1 = every frame, 2 = every 2 frames, etc.
NewEvaluationRate. How often animation will be evaluated. 1 = every frame, 2 = every 2 frames, etc.
bNewInterpSkippedFrames. When skipping a frame, should it be interpolated or frozen?

◆ ShouldInterpolateSkippedFrames()

bool FAnimUpdateRateParameters::ShouldInterpolateSkippedFrames ( ) const
inline

Getter for bInterpolateSkippedFrames

◆ ShouldSkipEvaluation()

bool FAnimUpdateRateParameters::ShouldSkipEvaluation ( ) const
inline

Getter for bSkipEvaluation

◆ ShouldSkipUpdate()

bool FAnimUpdateRateParameters::ShouldSkipUpdate ( ) const
inline

Getter for bSkipUpdate

Member Data Documentation

◆ AdditionalTime

float FAnimUpdateRateParameters::AdditionalTime

Total time of the last series of skipped updates

◆ BaseNonRenderedUpdateRate

int32 FAnimUpdateRateParameters::BaseNonRenderedUpdateRate

Rate of animation evaluation when non rendered (off screen and dedicated servers). a value of 4 means evaluated 1 frame, then 3 frames skipped

◆ BaseVisibleDistanceFactorThesholds

TArray<float> FAnimUpdateRateParameters::BaseVisibleDistanceFactorThesholds

Array of MaxDistanceFactor to use for AnimUpdateRate when mesh is visible (rendered). MaxDistanceFactor is size on screen, as used by LODs Example: BaseVisibleDistanceFactorThesholds.Add(0.4f) BaseVisibleDistanceFactorThesholds.Add(0.2f) means: 0 frame skip, MaxDistanceFactor > 0.4f 1 frame skip, MaxDistanceFactor > 0.2f 2 frame skip, MaxDistanceFactor > 0.0f

◆ bInterpolateSkippedFrames

uint8 FAnimUpdateRateParameters::bInterpolateSkippedFrames

When skipping a frame, should it be interpolated or frozen?

◆ bShouldUseLodMap

uint8 FAnimUpdateRateParameters::bShouldUseLodMap

Whether or not to use the defined LOD/Frameskip map instead of separate distance factor thresholds

◆ bShouldUseMinLod

uint8 FAnimUpdateRateParameters::bShouldUseMinLod

If set, LOD/Frameskip map will be queried with mesh's MinLodModel instead of current LOD (PredictedLODLevel)

◆ bSkipEvaluation

uint8 FAnimUpdateRateParameters::bSkipEvaluation

(This frame) animation evaluation should be skipped.

◆ bSkipUpdate

uint8 FAnimUpdateRateParameters::bSkipUpdate

(This frame) animation update should be skipped.

◆ EvaluationRate

int32 FAnimUpdateRateParameters::EvaluationRate

How often animation will be evaluated. 1 = every frame, 2 = every 2 frames, etc. has to be a multiple of UpdateRate.

◆ LODToFrameSkipMap

TMap<int32, int32> FAnimUpdateRateParameters::LODToFrameSkipMap

Map of LOD levels to frame skip amounts. if bShouldUseLodMap is set these values will be used for the frameskip amounts and the distance factor thresholds will be ignored. The flag and these values should be configured using the customization callback when parameters are created for a component.

Note that this is # of frames to skip, so if you have 20, that means every 21th frame, it will update, and evaluate.

◆ MaxEvalRateForInterpolation

int32 FAnimUpdateRateParameters::MaxEvalRateForInterpolation

Max Evaluation Rate allowed for interpolation to be enabled. Beyond, interpolation will be turned off.

◆ OptimizeMode

EOptimizeMode FAnimUpdateRateParameters::OptimizeMode

Cache which Update Rate Optimization mode we are using

◆ ShiftBucket

EUpdateRateShiftBucket FAnimUpdateRateParameters::ShiftBucket

The bucket to use when deciding which counter to use to calculate shift values

◆ SkippedEvalFrames

int32 FAnimUpdateRateParameters::SkippedEvalFrames

Number of evaluate frames that have been skipped in a row

◆ SkippedUpdateFrames

int32 FAnimUpdateRateParameters::SkippedUpdateFrames

Number of update frames that have been skipped in a row

◆ ThisTickDelta

float FAnimUpdateRateParameters::ThisTickDelta

The delta time of the last tick

◆ TickedPoseOffestTime

float FAnimUpdateRateParameters::TickedPoseOffestTime

Track time we have lost via skipping

◆ UpdateRate

int32 FAnimUpdateRateParameters::UpdateRate

How often animation will be updated/ticked. 1 = every frame, 2 = every 2 frames, etc.


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