UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AnimationRuntime.cpp File Reference

Classes

struct  FBlendPosesPerBoneFilterScratchArea
 

Namespaces

namespace  PerBoneScratch
 

Functions

 DEFINE_LOG_CATEGORY (LogAnimation)
 
 DEFINE_LOG_CATEGORY (LogRootMotion)
 
 DECLARE_CYCLE_STAT (TEXT("ConvertPoseToMeshRot"), STAT_ConvertPoseToMeshRot, STATGROUP_Anim)
 
 DECLARE_CYCLE_STAT (TEXT("ConvertMeshRotPoseToLocalSpace"), STAT_ConvertMeshRotPoseToLocalSpace, STATGROUP_Anim)
 
 DECLARE_CYCLE_STAT (TEXT("AccumulateMeshSpaceRotAdditiveToLocalPose"), STAT_AccumulateMeshSpaceRotAdditiveToLocalPose, STATGROUP_Anim)
 
 DECLARE_CYCLE_STAT (TEXT("BlendPosesPerBoneFilter"), STAT_BlendPosesPerBoneFilter, STATGROUP_Anim)
 
template<int32 TRANSFORM_BLEND_MODE>
FORCEINLINE void BlendPose (const FTransformArrayA2 &SourcePoses, FTransformArrayA2 &ResultAtoms, const TArray< FBoneIndexType > &RequiredBoneIndices, const float BlendWeight)
 
template<int32 TRANSFORM_BLEND_MODE>
FORCEINLINE void BlendPose (const FCompactPose &SourcePose, FCompactPose &ResultPose, const float BlendWeight)
 
template<>
FORCEINLINE void BlendPose< ETransformBlendMode::Overwrite > (const FCompactPose &SourcePose, FCompactPose &ResultPose, const float BlendWeight)
 
template<>
FORCEINLINE void BlendPose< ETransformBlendMode::Accumulate > (const FCompactPose &SourcePose, FCompactPose &ResultPose, const float BlendWeight)
 
FORCEINLINE void BlendCurves (const TArrayView< const FBlendedCurve > SourceCurves, const TArrayView< const float > SourceWeights, const TArrayView< const int32 > SourceWeightsIndices, FBlendedCurve &OutCurve)
 
void BlendCurves (const TArrayView< const FBlendedCurve *const > SourceCurves, const TArrayView< const float > SourceWeights, FBlendedCurve &OutCurve)
 
FORCEINLINE void BlendCurves (const TArrayView< const FBlendedCurve > SourceCurves, const TArrayView< const float > SourceWeights, FBlendedCurve &OutCurve)
 
void BlendCurves (const TArrayView< const FBlendedCurve *const > SourceCurves, const TArrayView< const float > SourceWeights, FBlendedCurve &OutCurve, ECurveBlendOption::Type BlendOption)
 
template<int32 TRANSFORM_BLEND_MODE>
void BlendPosePerBone (const TArrayView< int32 > RequiredBoneIndices, const TArrayView< int32 > PerBoneIndices, const FBlendSampleData &BlendSampleDataCache, FTransformArrayA2 &ResultAtoms, const FTransformArrayA2 &SourceAtoms)
 
template<int32 TRANSFORM_BLEND_MODE>
void BlendPosePerBone (const TArrayView< int32 > PerBoneIndices, const FBlendSampleData &BlendSampleDataCache, FCompactPose &ResultPose, const FCompactPose &SourcePose)
 
const uint8GetTransformFromArray (const uint8 *BlendPoseBase, const int32 PoseIndex, const int32 BoneIndex)
 

Function Documentation

◆ BlendCurves() [1/4]

void BlendCurves ( const TArrayView< const FBlendedCurve *const >  SourceCurves,
const TArrayView< const float SourceWeights,
FBlendedCurve OutCurve 
)

◆ BlendCurves() [2/4]

void BlendCurves ( const TArrayView< const FBlendedCurve *const >  SourceCurves,
const TArrayView< const float SourceWeights,
FBlendedCurve OutCurve,
ECurveBlendOption::Type  BlendOption 
)

◆ BlendCurves() [3/4]

FORCEINLINE void BlendCurves ( const TArrayView< const FBlendedCurve SourceCurves,
const TArrayView< const float SourceWeights,
const TArrayView< const int32 SourceWeightsIndices,
FBlendedCurve OutCurve 
)

◆ BlendCurves() [4/4]

FORCEINLINE void BlendCurves ( const TArrayView< const FBlendedCurve SourceCurves,
const TArrayView< const float SourceWeights,
FBlendedCurve OutCurve 
)

◆ BlendPose() [1/2]

template<int32 TRANSFORM_BLEND_MODE>
FORCEINLINE void BlendPose ( const FCompactPose SourcePose,
FCompactPose ResultPose,
const float  BlendWeight 
)

◆ BlendPose() [2/2]

template<int32 TRANSFORM_BLEND_MODE>
FORCEINLINE void BlendPose ( const FTransformArrayA2 SourcePoses,
FTransformArrayA2 ResultAtoms,
const TArray< FBoneIndexType > &  RequiredBoneIndices,
const float  BlendWeight 
)

◆ BlendPose< ETransformBlendMode::Accumulate >()

template<>
FORCEINLINE void BlendPose< ETransformBlendMode::Accumulate > ( const FCompactPose SourcePose,
FCompactPose ResultPose,
const float  BlendWeight 
)

◆ BlendPose< ETransformBlendMode::Overwrite >()

template<>
FORCEINLINE void BlendPose< ETransformBlendMode::Overwrite > ( const FCompactPose SourcePose,
FCompactPose ResultPose,
const float  BlendWeight 
)

◆ BlendPosePerBone() [1/2]

template<int32 TRANSFORM_BLEND_MODE>
void BlendPosePerBone ( const TArrayView< int32 PerBoneIndices,
const FBlendSampleData BlendSampleDataCache,
FCompactPose ResultPose,
const FCompactPose SourcePose 
)

◆ BlendPosePerBone() [2/2]

template<int32 TRANSFORM_BLEND_MODE>
void BlendPosePerBone ( const TArrayView< int32 RequiredBoneIndices,
const TArrayView< int32 PerBoneIndices,
const FBlendSampleData BlendSampleDataCache,
FTransformArrayA2 ResultAtoms,
const FTransformArrayA2 SourceAtoms 
)

◆ DECLARE_CYCLE_STAT() [1/4]

DECLARE_CYCLE_STAT ( TEXT("AccumulateMeshSpaceRotAdditiveToLocalPose")  ,
STAT_AccumulateMeshSpaceRotAdditiveToLocalPose  ,
STATGROUP_Anim   
)

◆ DECLARE_CYCLE_STAT() [2/4]

DECLARE_CYCLE_STAT ( TEXT("BlendPosesPerBoneFilter")  ,
STAT_BlendPosesPerBoneFilter  ,
STATGROUP_Anim   
)

◆ DECLARE_CYCLE_STAT() [3/4]

DECLARE_CYCLE_STAT ( TEXT("ConvertMeshRotPoseToLocalSpace")  ,
STAT_ConvertMeshRotPoseToLocalSpace  ,
STATGROUP_Anim   
)

◆ DECLARE_CYCLE_STAT() [4/4]

DECLARE_CYCLE_STAT ( TEXT("ConvertPoseToMeshRot")  ,
STAT_ConvertPoseToMeshRot  ,
STATGROUP_Anim   
)

◆ DEFINE_LOG_CATEGORY() [1/2]

DEFINE_LOG_CATEGORY ( LogAnimation  )

◆ DEFINE_LOG_CATEGORY() [2/2]

DEFINE_LOG_CATEGORY ( LogRootMotion  )

◆ GetTransformFromArray()

const uint8 * GetTransformFromArray ( const uint8 BlendPoseBase,
const int32  PoseIndex,
const int32  BoneIndex 
)