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

#include <AnimCompositeBase.h>

Public Member Functions

 FAnimTrack ()
 
ENGINE_API float GetLength () const
 
ENGINE_API bool IsAdditive () const
 
bool IsRotationOffsetAdditive () const
 
ENGINE_API int32 GetTrackAdditiveType () const
 
bool HasRootMotion () const
 
ENGINE_API void GetRootMotionExtractionStepsForTrackRange (TArray< FRootMotionExtractionStep > &RootMotionExtractionSteps, const float StartTrackPosition, const float EndTrackPosition) const
 
void ValidateSegmentTimes ()
 
ENGINE_API bool IsValidToAdd (const UAnimSequenceBase *SequenceBase, FText *OutReason=nullptr) const
 
ENGINE_API int32 GetSegmentIndexAtTime (float InTime) const
 
ENGINE_API FAnimSegmentGetSegmentAtTime (float InTime)
 
ENGINE_API const FAnimSegmentGetSegmentAtTime (float InTime) const
 
ENGINE_API void GetAnimationPose (FAnimationPoseData &OutAnimationPoseData, const FAnimExtractContext &ExtractionContext) const
 
void EnableRootMotionSettingFromMontage (bool bInEnableRootMotion, const ERootMotionRootLock::Type InRootMotionRootLock)
 
void InvalidateRecursiveAsset (class UAnimCompositeBase *CheckAsset)
 
bool ContainRecursive (const TArray< UAnimCompositeBase * > &CurrentAccumulatedList)
 
ENGINE_API void GetAnimNotifiesFromTrackPositions (const float &PreviousTrackPosition, const float &CurrentTrackPosition, FAnimNotifyContext &NotifyContext) const
 
bool IsNotifyAvailable () const
 
ENGINE_API int32 GetTotalBytesUsed () const
 

Public Attributes

TArray< FAnimSegmentAnimSegments
 

Detailed Description

This is list of anim segments for this track For now this is only one TArray, but in the future we should define more transition/blending behaviors

Constructor & Destructor Documentation

◆ FAnimTrack()

FAnimTrack::FAnimTrack ( )
inline

Member Function Documentation

◆ ContainRecursive()

bool FAnimTrack::ContainRecursive ( const TArray< UAnimCompositeBase * > &  CurrentAccumulatedList)

◆ EnableRootMotionSettingFromMontage()

void FAnimTrack::EnableRootMotionSettingFromMontage ( bool  bInEnableRootMotion,
const ERootMotionRootLock::Type  InRootMotionRootLock 
)

Enable Root motion setting from montage

◆ GetAnimationPose()

void FAnimTrack::GetAnimationPose ( FAnimationPoseData OutAnimationPoseData,
const FAnimExtractContext ExtractionContext 
) const

Get animation pose function

◆ GetAnimNotifiesFromTrackPositions()

void FAnimTrack::GetAnimNotifiesFromTrackPositions ( const float PreviousTrackPosition,
const float CurrentTrackPosition,
FAnimNotifyContext NotifyContext 
) const

Retrieves AnimNotifies between two Track time positions. ]PreviousTrackPosition, CurrentTrackPosition] Between PreviousTrackPosition (exclusive) and CurrentTrackPosition (inclusive). Supports playing backwards (CurrentTrackPosition<PreviousTrackPosition). Only supports contiguous range, does NOT support looping and wrapping over.

◆ GetLength()

float FAnimTrack::GetLength ( ) const

◆ GetRootMotionExtractionStepsForTrackRange()

void FAnimTrack::GetRootMotionExtractionStepsForTrackRange ( TArray< FRootMotionExtractionStep > &  RootMotionExtractionSteps,
const float  StartTrackPosition,
const float  EndTrackPosition 
) const

Given a Track delta position [StartTrackPosition, EndTrackPosition] See if any AnimSegment overlaps any of it, and if it does, break it up into RootMotionExtractionPieces. Supports animation playing forward and backward. Track segment should be a contiguous range, not wrapping over due to looping.

Given a Track delta position [StartTrackPosition, EndTrackPosition] See if any AnimSegment overlaps any of it, and if any do, break them up into a sequence of FRootMotionExtractionStep. Supports animation playing forward and backward. Track range should be a contiguous range, not wrapping over due to looping.

◆ GetSegmentAtTime() [1/2]

FAnimSegment * FAnimTrack::GetSegmentAtTime ( float  InTime)

Get the segment at the given absolute montage time

◆ GetSegmentAtTime() [2/2]

const FAnimSegment * FAnimTrack::GetSegmentAtTime ( float  InTime) const

◆ GetSegmentIndexAtTime()

int32 FAnimTrack::GetSegmentIndexAtTime ( float  InTime) const

Gets the index of the segment at the given absolute montage time.

◆ GetTotalBytesUsed()

int32 FAnimTrack::GetTotalBytesUsed ( ) const

◆ GetTrackAdditiveType()

int32 FAnimTrack::GetTrackAdditiveType ( ) const

◆ HasRootMotion()

bool FAnimTrack::HasRootMotion ( ) const

Returns whether any of the animation sequences this track uses has root motion

◆ InvalidateRecursiveAsset()

void FAnimTrack::InvalidateRecursiveAsset ( class UAnimCompositeBase CheckAsset)

◆ IsAdditive()

bool FAnimTrack::IsAdditive ( ) const

◆ IsNotifyAvailable()

bool FAnimTrack::IsNotifyAvailable ( ) const

return true if anim notify is available

◆ IsRotationOffsetAdditive()

bool FAnimTrack::IsRotationOffsetAdditive ( ) const

◆ IsValidToAdd()

bool FAnimTrack::IsValidToAdd ( const UAnimSequenceBase SequenceBase,
FText OutReason = nullptr 
) const

return true if valid to add

◆ ValidateSegmentTimes()

void FAnimTrack::ValidateSegmentTimes ( )

Ensure segment times are correctly formed (no gaps and no extra time at the end of the anim reference)

Member Data Documentation

◆ AnimSegments

TArray<FAnimSegment> FAnimTrack::AnimSegments

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