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

#include <ReferenceSkeleton.h>

Public Member Functions

 FReferenceSkeleton (bool bInOnlyOneRootAllowed=true)
 
ENGINE_API void RebuildRefSkeleton (const USkeleton *Skeleton, bool bRebuildNameMap)
 
int32 GetNum () const
 
int32 GetRawBoneNum () const
 
const TArray< FBoneIndexType > & GetRequiredVirtualBones () const
 
const TArray< FVirtualBoneRefData > & GetVirtualBoneRefData () const
 
const TArray< FMeshBoneInfo > & GetRefBoneInfo () const
 
const TArray< FTransform > & GetRefBonePose () const
 
const TArray< FMeshBoneInfo > & GetRawRefBoneInfo () const
 
const TArray< FTransform > & GetRawRefBonePose () const
 
const TMap< FName, int32 > & GetRawNameToIndexMap () const
 
TArray< FNameGetRawRefBoneNames () const
 
void Empty (int32 Size=0)
 
int32 FindBoneIndex (const FName &BoneName) const
 
int32 FindRawBoneIndex (const FName &BoneName) const
 
FName GetBoneName (const int32 BoneIndex) const
 
int32 GetParentIndex (const int32 BoneIndex) const
 
int32 GetRawParentIndex (const int32 BoneIndex) const
 
bool IsValidIndex (int32 Index) const
 
bool IsValidRawIndex (int32 Index) const
 
int32 GetDepthBetweenBones (const int32 BoneIndex, const int32 ParentBoneIndex) const
 
bool BoneIsChildOf (const int32 ChildBoneIndex, const int32 ParentBoneIndex) const
 
void RemoveDuplicateBones (const UObject *Requester, TArray< FBoneIndexType > &DuplicateBones)
 
TArray< int32RemoveBonesByName (USkeleton *Skeleton, const TArray< FName > &BonesToRemove)
 
void RebuildNameToIndexMap ()
 
ENGINE_API void EnsureParentsExist (TArray< FBoneIndexType > &InOutBoneSortedArray) const
 
ENGINE_API void EnsureParentsExistAndSort (TArray< FBoneIndexType > &InOutBoneUnsortedArray) const
 
SIZE_T GetDataSize () const
 
ENGINE_API void GetRawBoneAbsoluteTransforms (TArray< FTransform > &OutAbsoluteTransforms) const
 
ENGINE_API void GetBoneAbsoluteTransforms (TArray< FTransform > &OutAbsoluteTransforms) const
 
ENGINE_API FTransform GetRawBoneAbsoluteTransform (const int32 InRawBoneIndex) const
 
ENGINE_API FTransform GetBoneAbsoluteTransform (const int32 InBoneIndex) const
 
void GetRawChildrenIndicesCached (const int32 BoneIndex, TArray< int32 > &OutChildren) const
 
void GetRawChildrenIndicesRecursiveCached (const int32 BoneIndex, TArray< int32 > &OutChildren) const
 
ENGINE_API int32 GetDirectChildBones (int32 ParentBoneIndex, TArray< int32 > &Children) const
 
ENGINE_API int32 GetRawDirectChildBones (int32 ParentBoneIndex, TArray< int32 > &Children) const
 

Public Attributes

friend FReferenceSkeletonModifier
 

Friends

ENGINE_API friend FArchiveoperator<< (FArchive &Ar, FReferenceSkeleton &F)
 

Detailed Description

Reference Skeleton

Constructor & Destructor Documentation

◆ FReferenceSkeleton()

FReferenceSkeleton::FReferenceSkeleton ( bool  bInOnlyOneRootAllowed = true)
inline

Member Function Documentation

◆ BoneIsChildOf()

bool FReferenceSkeleton::BoneIsChildOf ( const int32  ChildBoneIndex,
const int32  ParentBoneIndex 
) const
inline

◆ Empty()

void FReferenceSkeleton::Empty ( int32  Size = 0)
inline

◆ EnsureParentsExist()

void FReferenceSkeleton::EnsureParentsExist ( TArray< FBoneIndexType > &  InOutBoneSortedArray) const

Ensure parent exists in the given input sorted array. Insert parent to the array. The result should be sorted.

◆ EnsureParentsExistAndSort()

void FReferenceSkeleton::EnsureParentsExistAndSort ( TArray< FBoneIndexType > &  InOutBoneUnsortedArray) const

Ensure parent exists in the given input array. Insert parent to the array. The result should be sorted.

◆ FindBoneIndex()

int32 FReferenceSkeleton::FindBoneIndex ( const FName BoneName) const
inline

Find Bone Index from BoneName. Precache as much as possible in speed critical sections!

◆ FindRawBoneIndex()

int32 FReferenceSkeleton::FindRawBoneIndex ( const FName BoneName) const
inline

Find Bone Index from BoneName. Precache as much as possible in speed critical sections!

◆ GetBoneAbsoluteTransform()

FTransform FReferenceSkeleton::GetBoneAbsoluteTransform ( const int32  InBoneIndex) const

Return a single bone's pose as absolute transform (i.e. relative to the origin, rather than the parent bone).

◆ GetBoneAbsoluteTransforms()

void FReferenceSkeleton::GetBoneAbsoluteTransforms ( TArray< FTransform > &  OutAbsoluteTransforms) const

Return all the bone poses as absolute transforms (i.e. relative to the origin, rather than the parent bone). This function will resize the array to store the transforms, with no re-allocation if shrinking

◆ GetBoneName()

FName FReferenceSkeleton::GetBoneName ( const int32  BoneIndex) const
inline

◆ GetDataSize()

SIZE_T FReferenceSkeleton::GetDataSize ( ) const

◆ GetDepthBetweenBones()

int32 FReferenceSkeleton::GetDepthBetweenBones ( const int32  BoneIndex,
const int32  ParentBoneIndex 
) const
inline

Returns # of Depth from BoneIndex to ParentBoneIndex This will return 0 if BoneIndex == ParentBoneIndex; This will return -1 if BoneIndex isn't child of ParentBoneIndex

◆ GetDirectChildBones()

int32 FReferenceSkeleton::GetDirectChildBones ( int32  ParentBoneIndex,
TArray< int32 > &  Children 
) const

◆ GetNum()

int32 FReferenceSkeleton::GetNum ( ) const
inline

Returns number of bones in Skeleton.

◆ GetParentIndex()

int32 FReferenceSkeleton::GetParentIndex ( const int32  BoneIndex) const
inline

◆ GetRawBoneAbsoluteTransform()

FTransform FReferenceSkeleton::GetRawBoneAbsoluteTransform ( const int32  InRawBoneIndex) const

Return a single non-virtual bone's pose as absolute transform (i.e. relative to the origin, rather than the parent bone).

◆ GetRawBoneAbsoluteTransforms()

void FReferenceSkeleton::GetRawBoneAbsoluteTransforms ( TArray< FTransform > &  OutAbsoluteTransforms) const

Return all the non-virtual bone poses as absolute transforms (i.e. relative to the origin, rather than the parent bone). This function will resize the array to store the transforms, with no re-allocation if shrinking

◆ GetRawBoneNum()

int32 FReferenceSkeleton::GetRawBoneNum ( ) const
inline

Returns number of raw bones in Skeleton. These are the original bones of the asset

◆ GetRawChildrenIndicesCached()

void FReferenceSkeleton::GetRawChildrenIndicesCached ( const int32  BoneIndex,
TArray< int32 > &  OutChildren 
) const

◆ GetRawChildrenIndicesRecursiveCached()

void FReferenceSkeleton::GetRawChildrenIndicesRecursiveCached ( const int32  BoneIndex,
TArray< int32 > &  OutChildren 
) const

◆ GetRawDirectChildBones()

int32 FReferenceSkeleton::GetRawDirectChildBones ( int32  ParentBoneIndex,
TArray< int32 > &  Children 
) const

◆ GetRawNameToIndexMap()

const TMap< FName, int32 > & FReferenceSkeleton::GetRawNameToIndexMap ( ) const
inline

◆ GetRawParentIndex()

int32 FReferenceSkeleton::GetRawParentIndex ( const int32  BoneIndex) const
inline

◆ GetRawRefBoneInfo()

const TArray< FMeshBoneInfo > & FReferenceSkeleton::GetRawRefBoneInfo ( ) const
inline

Accessor to private data. Raw relates to original asset. Const so it can't be changed recklessly.

◆ GetRawRefBoneNames()

TArray< FName > FReferenceSkeleton::GetRawRefBoneNames ( ) const
inline

Returns an array of raw bone names.

◆ GetRawRefBonePose()

const TArray< FTransform > & FReferenceSkeleton::GetRawRefBonePose ( ) const
inline

Accessor to private data. Raw relates to original asset. Const so it can't be changed recklessly.

◆ GetRefBoneInfo()

const TArray< FMeshBoneInfo > & FReferenceSkeleton::GetRefBoneInfo ( ) const
inline

Accessor to private data. These include the USkeletons virtual bones. Const so it can't be changed recklessly.

◆ GetRefBonePose()

const TArray< FTransform > & FReferenceSkeleton::GetRefBonePose ( ) const
inline

Accessor to private data. These include the USkeletons virtual bones. Const so it can't be changed recklessly.

◆ GetRequiredVirtualBones()

const TArray< FBoneIndexType > & FReferenceSkeleton::GetRequiredVirtualBones ( ) const
inline

◆ GetVirtualBoneRefData()

const TArray< FVirtualBoneRefData > & FReferenceSkeleton::GetVirtualBoneRefData ( ) const
inline

◆ IsValidIndex()

bool FReferenceSkeleton::IsValidIndex ( int32  Index) const
inline

◆ IsValidRawIndex()

bool FReferenceSkeleton::IsValidRawIndex ( int32  Index) const
inline

◆ RebuildNameToIndexMap()

void FReferenceSkeleton::RebuildNameToIndexMap ( )

◆ RebuildRefSkeleton()

void FReferenceSkeleton::RebuildRefSkeleton ( const USkeleton Skeleton,
bool  bRebuildNameMap 
)

◆ RemoveBonesByName()

TArray< int32 > FReferenceSkeleton::RemoveBonesByName ( USkeleton Skeleton,
const TArray< FName > &  BonesToRemove 
)
inline

Removes the supplied bones from the skeleton, unless they have children that aren't also going to be removed

◆ RemoveDuplicateBones()

void FReferenceSkeleton::RemoveDuplicateBones ( const UObject Requester,
TArray< FBoneIndexType > &  DuplicateBones 
)

Friends And Related Symbol Documentation

◆ operator<<

ENGINE_API friend FArchive & operator<< ( FArchive Ar,
FReferenceSkeleton F 
)
friend

Member Data Documentation

◆ FReferenceSkeletonModifier

friend FReferenceSkeleton::FReferenceSkeletonModifier

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