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

#include <BoneContainer.h>

Classes

struct  FRangedForReverseSupport
 
struct  FRangedForSupport
 

Public Member Functions

ENGINE_API FBoneContainer ()
 
ENGINE_API FBoneContainer (const TArrayView< const FBoneIndexType > &InRequiredBoneIndexArray, const UE::Anim::FCurveFilterSettings &InCurveFilterSettings, UObject &InAsset)
 
ENGINE_API void InitializeTo (const TArrayView< const FBoneIndexType > &InRequiredBoneIndexArray, const UE::Anim::FCurveFilterSettings &InCurveFilterSettings, const UObject &InAsset)
 
ENGINE_API FBoneContainer (const TArrayView< const FBoneIndexType > &InRequiredBoneIndexArray, const FCurveEvaluationOption &CurveEvalOption, UObject &InAsset)
 
ENGINE_API void InitializeTo (const TArrayView< const FBoneIndexType > &InRequiredBoneIndexArray, const FCurveEvaluationOption &CurveEvalOption, const UObject &InAsset)
 
ENGINE_API void Reset ()
 
const bool IsValid () const
 
UObjectGetAsset () const
 
USkeletalMeshGetSkeletalMeshAsset () const
 
USkeletonGetSkeletonAsset (bool bEvenIfUnreachable=false) const
 
void SetDisableRetargeting (bool InbDisableRetargeting)
 
bool GetDisableRetargeting () const
 
void SetUseRAWData (bool InbUseRAWData)
 
bool ShouldUseRawData () const
 
void SetUseSourceData (bool InbUseSourceData)
 
bool ShouldUseSourceData () const
 
const TArray< FBoneIndexType > & GetBoneIndicesArray () const
 
const TArray< FVirtualBoneCompactPoseData > & GetVirtualBoneCompactPoseData () const
 
const TBitArrayGetBoneSwitchArray () const
 
const TArray< FTransform > & GetRefPoseArray () const
 
const TArray< FCompactPoseBoneIndex > & GetCompactPoseParentBoneArray () const
 
template<typename ArrayType >
void FillWithCompactRefPose (ArrayType &OutTransforms) const
 
const FTransformGetRefPoseTransform (const FCompactPoseBoneIndex &BoneIndex) const
 
void SetRefPoseOverride (const TSharedPtr< FSkelMeshRefPoseOverride > &InRefPoseOverride)
 
const FReferenceSkeletonGetReferenceSkeleton () const
 
const int32 GetNumBones () const
 
const int32 GetCompactPoseNumBones () const
 
ENGINE_API int32 GetPoseBoneIndexForBoneName (const FName &BoneName) const
 
ENGINE_API int32 GetParentBoneIndex (const int32 BoneIndex) const
 
ENGINE_API FCompactPoseBoneIndex GetParentBoneIndex (const FCompactPoseBoneIndex &BoneIndex) const
 
ENGINE_API int32 GetDepthBetweenBones (const int32 BoneIndex, const int32 ParentBoneIndex) const
 
ENGINE_API bool BoneIsChildOf (const int32 BoneIndex, const int32 ParentBoneIndex) const
 
ENGINE_API bool BoneIsChildOf (const FCompactPoseBoneIndex &BoneIndex, const FCompactPoseBoneIndex &ParentBoneIndex) const
 
const UE::Anim::FCurveFilterGetCurveFilter () const
 
const UE::Anim::FBulkCurveFlagsGetCurveFlags () const
 
ENGINE_API TArray< uint16 > const & GetUIDToArrayLookupTable () const
 
ENGINE_API int32 GetUIDToArrayIndexLookupTableValidCount () const
 
 UE_DEPRECATED (5.0, "GetUIDToNameLookupTable is deprecated, please access from the SmartNameMapping directly via GetSkeletonAsset()->GetSmartNameContainer(USkeleton::AnimCurveMappingName)") TArray< FName > const &GetUIDToNameLookupTable() const
 
 UE_DEPRECATED (5.0, "GetUIDToCurveTypeLookupTable is deprecated, please access from the SmartNameMapping directly via GetSkeletonAsset()->GetSmartNameContainer(USkeleton::AnimCurveMappingName)") ENGINE_API TArray< FAnimCurveType > const &GetUIDToCurveTypeLookupTable() const
 
ENGINE_API TArray< SmartName::UID_Type > const & GetUIDToArrayLookupTableBackup () const
 
bool Contains (FBoneIndexType NewIndex) const
 
TArray< int32 > const & GetSkeletonToPoseBoneIndexArray () const
 
TArray< int32 > const & GetPoseToSkeletonBoneIndexArray () const
 
FRangedForSupport< FCompactPoseBoneIndexIteratorForEachCompactPoseBoneIndex () const
 
FRangedForReverseSupport< FCompactPoseBoneIndexReverseIteratorForEachCompactPoseBoneIndexReverse () const
 
FCompactPoseBoneIndexIterator MakeBeginIter () const
 
FCompactPoseBoneIndexIterator MakeEndIter () const
 
FCompactPoseBoneIndexReverseIterator MakeBeginIterReverse () const
 
FCompactPoseBoneIndexReverseIterator MakeEndIterReverse () const
 
FMeshPoseBoneIndex GetMeshPoseIndexFromSkeletonPoseIndex (const FSkeletonPoseBoneIndex &SkeletonIndex) const
 
FSkeletonPoseBoneIndex GetSkeletonPoseIndexFromMeshPoseIndex (const FMeshPoseBoneIndex &MeshIndex) const
 
int32 GetSkeletonIndex (const FCompactPoseBoneIndex &BoneIndex) const
 
FSkeletonPoseBoneIndex GetSkeletonPoseIndexFromCompactPoseIndex (const FCompactPoseBoneIndex &BoneIndex) const
 
FCompactPoseBoneIndex GetCompactPoseIndexFromSkeletonIndex (const int32 SkeletonIndex) const
 
FCompactPoseBoneIndex GetCompactPoseIndexFromSkeletonPoseIndex (const FSkeletonPoseBoneIndex &SkeletonIndex) const
 
bool IsSkeletonPoseIndexValid (const FSkeletonPoseBoneIndex &SkeletonIndex) const
 
FMeshPoseBoneIndex MakeMeshPoseIndex (const FCompactPoseBoneIndex &BoneIndex) const
 
FCompactPoseBoneIndex MakeCompactPoseIndex (const FMeshPoseBoneIndex &BoneIndex) const
 
void CacheRequiredAnimCurveUids (const FCurveEvaluationOption &CurveEvalOption)
 
ENGINE_API void CacheRequiredAnimCurves (const UE::Anim::FCurveFilterSettings &InCurveFilterSettings)
 
ENGINE_API const FRetargetSourceCachedDataGetRetargetSourceCachedData (const FName &InRetargetSource) const
 
ENGINE_API const FRetargetSourceCachedDataGetRetargetSourceCachedData (const FName &InSourceName, const FSkeletonRemapping &InRemapping, const TArray< FTransform > &InRetargetTransforms) const
 
ENGINE_API const FCachedSkeletonCurveMappingGetOrCreateCachedCurveMapping (const FSkeletonRemapping *SkeletonRemapping)
 
ENGINE_API void MarkAllCachedCurveMappingsDirty ()
 
uint16 GetSerialNumber () const
 

Friends

FArchiveoperator<< (FArchive &Ar, FBoneContainer &B)
 

Detailed Description

This is a native transient structure. Contains:

  • BoneIndicesArray: Array of RequiredBoneIndices for Current Asset. In increasing order. Mapping to current Array of Transforms (Pose).
  • BoneSwitchArray: Size of current Skeleton. true if Bone is contained in RequiredBones array, false otherwise.

Constructor & Destructor Documentation

◆ FBoneContainer() [1/3]

FBoneContainer::FBoneContainer ( )

◆ FBoneContainer() [2/3]

FBoneContainer::FBoneContainer ( const TArrayView< const FBoneIndexType > &  InRequiredBoneIndexArray,
const UE::Anim::FCurveFilterSettings InCurveFilterSettings,
UObject InAsset 
)

◆ FBoneContainer() [3/3]

FBoneContainer::FBoneContainer ( const TArrayView< const FBoneIndexType > &  InRequiredBoneIndexArray,
const FCurveEvaluationOption CurveEvalOption,
UObject InAsset 
)

Member Function Documentation

◆ BoneIsChildOf() [1/2]

bool FBoneContainer::BoneIsChildOf ( const FCompactPoseBoneIndex BoneIndex,
const FCompactPoseBoneIndex ParentBoneIndex 
) const

Returns true if bone is child of for current asset.

◆ BoneIsChildOf() [2/2]

bool FBoneContainer::BoneIsChildOf ( const int32  BoneIndex,
const int32  ParentBoneIndex 
) const

Returns true if bone is child of for current asset.

◆ CacheRequiredAnimCurves()

void FBoneContainer::CacheRequiredAnimCurves ( const UE::Anim::FCurveFilterSettings InCurveFilterSettings)

Cache required Anim Curves

◆ CacheRequiredAnimCurveUids()

void FBoneContainer::CacheRequiredAnimCurveUids ( const FCurveEvaluationOption CurveEvalOption)
inline

◆ Contains()

bool FBoneContainer::Contains ( FBoneIndexType  NewIndex) const
inline

Returns true of RequiredBonesArray contains this bone index.

◆ FillWithCompactRefPose()

template<typename ArrayType >
void FBoneContainer::FillWithCompactRefPose ( ArrayType &  OutTransforms) const
inline

◆ ForEachCompactPoseBoneIndex()

FRangedForSupport< FCompactPoseBoneIndexIterator > FBoneContainer::ForEachCompactPoseBoneIndex ( ) const
inline

◆ ForEachCompactPoseBoneIndexReverse()

FRangedForReverseSupport< FCompactPoseBoneIndexReverseIterator > FBoneContainer::ForEachCompactPoseBoneIndexReverse ( ) const
inline

◆ GetAsset()

UObject * FBoneContainer::GetAsset ( ) const
inline

Get Asset this BoneContainer was made for. Typically a SkeletalMesh, but could also be a USkeleton.

◆ GetBoneIndicesArray()

const TArray< FBoneIndexType > & FBoneContainer::GetBoneIndicesArray ( ) const
inline

Returns array of the size of compact pose, mapping to mesh pose index returns Required Bone Indices Array

◆ GetBoneSwitchArray()

const TBitArray & FBoneContainer::GetBoneSwitchArray ( ) const
inline

returns Bone Switch Array. BitMask for RequiredBoneIndex array.

◆ GetCompactPoseIndexFromSkeletonIndex()

FCompactPoseBoneIndex FBoneContainer::GetCompactPoseIndexFromSkeletonIndex ( const int32  SkeletonIndex) const
inline

◆ GetCompactPoseIndexFromSkeletonPoseIndex()

FCompactPoseBoneIndex FBoneContainer::GetCompactPoseIndexFromSkeletonPoseIndex ( const FSkeletonPoseBoneIndex SkeletonIndex) const
inline

Map skeleton bone index to compact pose index

Returns
the compact pose bone index for the specified skeleton pose bone index. Returns an invalid index if the compact pose does not include the specified skeleton bone.

◆ GetCompactPoseNumBones()

const int32 FBoneContainer::GetCompactPoseNumBones ( ) const
inline

◆ GetCompactPoseParentBoneArray()

const TArray< FCompactPoseBoneIndex > & FBoneContainer::GetCompactPoseParentBoneArray ( ) const
inline

◆ GetCurveFilter()

const UE::Anim::FCurveFilter & FBoneContainer::GetCurveFilter ( ) const
inline

Get filter used for filtering by LOD/bone

◆ GetCurveFlags()

const UE::Anim::FBulkCurveFlags & FBoneContainer::GetCurveFlags ( ) const
inline

Get flags to apply to curves (built from metadata)

◆ GetDepthBetweenBones()

int32 FBoneContainer::GetDepthBetweenBones ( const int32  BoneIndex,
const int32  ParentBoneIndex 
) const

Get Depth between bones for current asset.

◆ GetDisableRetargeting()

bool FBoneContainer::GetDisableRetargeting ( ) const
inline

True if retargeting is disabled for debugging.

◆ GetMeshPoseIndexFromSkeletonPoseIndex()

FMeshPoseBoneIndex FBoneContainer::GetMeshPoseIndexFromSkeletonPoseIndex ( const FSkeletonPoseBoneIndex SkeletonIndex) const
inline

Map skeleton bone index to mesh index

Returns
the mesh pose bone index for the specified skeleton pose bone index. Returns an invalid index if the mesh does not include the specified skeleton bone.

◆ GetNumBones()

const int32 FBoneContainer::GetNumBones ( ) const
inline

Number of Bones in RefPose for current asset. This is NOT the number of bones in RequiredBonesArray, but the TOTAL number of bones in the RefPose of the current Asset!

◆ GetOrCreateCachedCurveMapping()

ENGINE_API const FCachedSkeletonCurveMapping & FBoneContainer::GetOrCreateCachedCurveMapping ( const FSkeletonRemapping SkeletonRemapping)

◆ GetParentBoneIndex() [1/2]

FCompactPoseBoneIndex FBoneContainer::GetParentBoneIndex ( const FCompactPoseBoneIndex BoneIndex) const

Get ParentBoneIndex for current Asset.

◆ GetParentBoneIndex() [2/2]

int32 FBoneContainer::GetParentBoneIndex ( const int32  BoneIndex) const

Get ParentBoneIndex for current Asset.

◆ GetPoseBoneIndexForBoneName()

int32 FBoneContainer::GetPoseBoneIndexForBoneName ( const FName BoneName) const

Get BoneIndex for BoneName for current Asset.

◆ GetPoseToSkeletonBoneIndexArray()

TArray< int32 > const & FBoneContainer::GetPoseToSkeletonBoneIndexArray ( ) const
inline

Const accessor to PoseToSkeletonBoneIndexArray.

◆ GetReferenceSkeleton()

const FReferenceSkeleton & FBoneContainer::GetReferenceSkeleton ( ) const
inline

Access to Asset's RefSkeleton.

◆ GetRefPoseArray()

const TArray< FTransform > & FBoneContainer::GetRefPoseArray ( ) const
inline

Pointer to RefPoseArray for current Asset.

◆ GetRefPoseTransform()

const FTransform & FBoneContainer::GetRefPoseTransform ( const FCompactPoseBoneIndex BoneIndex) const
inline

◆ GetRetargetSourceCachedData() [1/2]

const FRetargetSourceCachedData & FBoneContainer::GetRetargetSourceCachedData ( const FName InRetargetSource) const

◆ GetRetargetSourceCachedData() [2/2]

const FRetargetSourceCachedData & FBoneContainer::GetRetargetSourceCachedData ( const FName InSourceName,
const FSkeletonRemapping InRemapping,
const TArray< FTransform > &  InRetargetTransforms 
) const

◆ GetSerialNumber()

uint16 FBoneContainer::GetSerialNumber ( ) const
inline

◆ GetSkeletalMeshAsset()

USkeletalMesh * FBoneContainer::GetSkeletalMeshAsset ( ) const
inline

Get SkeletalMesh Asset this BoneContainer was made for. Could be NULL if Asset is a Skeleton.

◆ GetSkeletonAsset()

USkeleton * FBoneContainer::GetSkeletonAsset ( bool  bEvenIfUnreachable = false) const
inline

Get Skeleton Asset. Could either be the SkeletalMesh's Skeleton, or the Skeleton this BoneContainer was made for. Is non NULL is BoneContainer is valid.

◆ GetSkeletonIndex()

int32 FBoneContainer::GetSkeletonIndex ( const FCompactPoseBoneIndex BoneIndex) const
inline

◆ GetSkeletonPoseIndexFromCompactPoseIndex()

FSkeletonPoseBoneIndex FBoneContainer::GetSkeletonPoseIndexFromCompactPoseIndex ( const FCompactPoseBoneIndex BoneIndex) const
inline

Map compact bone index to skeleton index

Returns
the skeleton pose bone index for the specified compact pose bone index. Ensures and returns an invalid index if the skeleton does not include the specified compact pose bone.

◆ GetSkeletonPoseIndexFromMeshPoseIndex()

FSkeletonPoseBoneIndex FBoneContainer::GetSkeletonPoseIndexFromMeshPoseIndex ( const FMeshPoseBoneIndex MeshIndex) const
inline

Map mesh bone index to skeleton index

Returns
the skeleton pose bone index for the specified mesh pose bone index. Ensures and returns an invalid index if the skeleton does not include the specified mesh bone.

◆ GetSkeletonToPoseBoneIndexArray()

TArray< int32 > const & FBoneContainer::GetSkeletonToPoseBoneIndexArray ( ) const
inline

Const accessor to SkeletonToPoseBoneIndexArray.

◆ GetUIDToArrayIndexLookupTableValidCount()

int32 FBoneContainer::GetUIDToArrayIndexLookupTableValidCount ( ) const

◆ GetUIDToArrayLookupTable()

TArray< uint16 > const & FBoneContainer::GetUIDToArrayLookupTable ( ) const

◆ GetUIDToArrayLookupTableBackup()

TArray< SmartName::UID_Type > const & FBoneContainer::GetUIDToArrayLookupTableBackup ( ) const

◆ GetVirtualBoneCompactPoseData()

const TArray< FVirtualBoneCompactPoseData > & FBoneContainer::GetVirtualBoneCompactPoseData ( ) const
inline

returns virutal bone cached data

◆ InitializeTo() [1/2]

void FBoneContainer::InitializeTo ( const TArrayView< const FBoneIndexType > &  InRequiredBoneIndexArray,
const FCurveEvaluationOption CurveEvalOption,
const UObject InAsset 
)

◆ InitializeTo() [2/2]

void FBoneContainer::InitializeTo ( const TArrayView< const FBoneIndexType > &  InRequiredBoneIndexArray,
const UE::Anim::FCurveFilterSettings InCurveFilterSettings,
const UObject InAsset 
)

◆ IsSkeletonPoseIndexValid()

bool FBoneContainer::IsSkeletonPoseIndexValid ( const FSkeletonPoseBoneIndex SkeletonIndex) const
inline

Returns whether or not the skeleton index is contained in the mapping used to build this container. Note that even if the skeleton index is valid, it might not contain a valid compact pose index if that bone isn't used due to LOD or other reasons.

◆ IsValid()

const bool FBoneContainer::IsValid ( ) const
inline

Returns true if FBoneContainer is Valid. Needs an Asset, a RefPoseArray, and a RequiredBonesArray.

◆ MakeBeginIter()

FCompactPoseBoneIndexIterator FBoneContainer::MakeBeginIter ( ) const
inline

◆ MakeBeginIterReverse()

FCompactPoseBoneIndexReverseIterator FBoneContainer::MakeBeginIterReverse ( ) const
inline

◆ MakeCompactPoseIndex()

FCompactPoseBoneIndex FBoneContainer::MakeCompactPoseIndex ( const FMeshPoseBoneIndex BoneIndex) const
inline

◆ MakeEndIter()

FCompactPoseBoneIndexIterator FBoneContainer::MakeEndIter ( ) const
inline

◆ MakeEndIterReverse()

FCompactPoseBoneIndexReverseIterator FBoneContainer::MakeEndIterReverse ( ) const
inline

◆ MakeMeshPoseIndex()

FMeshPoseBoneIndex FBoneContainer::MakeMeshPoseIndex ( const FCompactPoseBoneIndex BoneIndex) const
inline

◆ MarkAllCachedCurveMappingsDirty()

ENGINE_API void FBoneContainer::MarkAllCachedCurveMappingsDirty ( )

◆ Reset()

void FBoneContainer::Reset ( )

Resets the container and reclaims all allocated memory but preserve the serial number.

◆ SetDisableRetargeting()

void FBoneContainer::SetDisableRetargeting ( bool  InbDisableRetargeting)
inline

Disable Retargeting for debugging.

◆ SetRefPoseOverride()

void FBoneContainer::SetRefPoseOverride ( const TSharedPtr< FSkelMeshRefPoseOverride > &  InRefPoseOverride)
inline

Override skeleton ref pose.

◆ SetUseRAWData()

void FBoneContainer::SetUseRAWData ( bool  InbUseRAWData)
inline

Ignore compressed data and use RAW data instead, for debugging.

◆ SetUseSourceData()

void FBoneContainer::SetUseSourceData ( bool  InbUseSourceData)
inline

use Source data instead.

◆ ShouldUseRawData()

bool FBoneContainer::ShouldUseRawData ( ) const
inline

True if we're requesting RAW data instead of compressed data. For debugging.

◆ ShouldUseSourceData()

bool FBoneContainer::ShouldUseSourceData ( ) const
inline

True if we're requesting Source data instead of RawAnimationData. For debugging.

◆ UE_DEPRECATED() [1/2]

FBoneContainer::UE_DEPRECATED ( 5.  0,
"GetUIDToCurveTypeLookupTable is  deprecated,
please access from the SmartNameMapping directly via GetSkeletonAsset() ->GetSmartNameContainer(USkeleton::AnimCurveMappingName)"   
) const &

◆ UE_DEPRECATED() [2/2]

FBoneContainer::UE_DEPRECATED ( 5.  0,
"GetUIDToNameLookupTable is  deprecated,
please access from the SmartNameMapping directly via GetSkeletonAsset() ->GetSmartNameContainer(USkeleton::AnimCurveMappingName)"   
) const &
inline

Friends And Related Symbol Documentation

◆ operator<<

FArchive & operator<< ( FArchive Ar,
FBoneContainer B 
)
friend

Serializes the bones

Parameters
Ar- The archive to serialize into.
Rect- The bone container to serialize.
Returns
Reference to the Archive after serialization.

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