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

#include <AnimBank.h>

Public Member Functions

bool IsLooping () const
 
bool IsAutoStart () const
 

Public Attributes

TArray< FVector3fPositionKeys
 
TArray< FQuat4fRotationKeys
 
TArray< FVector3fScalingKeys
 
FBoxSphereBounds SampledBounds
 
float Position = 0.0f
 
float PlayRate = 1.0f
 
uint32 FrameCount = 0u
 
uint32 KeyCount = 0u
 
uint32 Flags = 0u
 

Member Function Documentation

◆ IsAutoStart()

bool FAnimBankEntry::IsAutoStart ( ) const
inline

◆ IsLooping()

bool FAnimBankEntry::IsLooping ( ) const
inline

Member Data Documentation

◆ Flags

uint32 FAnimBankEntry::Flags = 0u

◆ FrameCount

uint32 FAnimBankEntry::FrameCount = 0u

◆ KeyCount

uint32 FAnimBankEntry::KeyCount = 0u

◆ PlayRate

float FAnimBankEntry::PlayRate = 1.0f

◆ Position

float FAnimBankEntry::Position = 0.0f

◆ PositionKeys

TArray<FVector3f> FAnimBankEntry::PositionKeys

◆ RotationKeys

TArray<FQuat4f> FAnimBankEntry::RotationKeys

◆ SampledBounds

FBoxSphereBounds FAnimBankEntry::SampledBounds

Note: This is almost fully conservative, but since it is derived from bone positions on the skeleton (not skinning all verts across all frames) it could have some edge cases for (presumably) strange content.

This hasn't been an issue in practice yet, so we won't worry about it, and each anim bank sequence has an optional BoundsScale that can be adjusted to account for certain cases that might fail.

One possible future idea if needed, is to calculate a per-bone influence radius in the skeleton mesh build, where each bone has a bounding sphere of all weighted vertex positions. Then we could try something like the following to make the bounds possibly fit this content better.

InitialAnimatedBoundsMin(AssetBounds.Origin - AssetBounds.BoxExtent); InitialAnimatedBoundsMax(AssetBounds.Origin + AssetBounds.BoxExtent); For each Key,Bone: AnimatedBoundsMin = Min(AnimatedBoundsMin, InitialAnimatedBoundsMin + Bone.Pos[Key] - Bone.RefPos) AnimatedBoundsMax = Max(AnimatedBoundsMax, InitialAnimatedBoundsMax + Bone.Pos[Key] - Bone.RefPos)

◆ ScalingKeys

TArray<FVector3f> FAnimBankEntry::ScalingKeys

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