Language:
Discover
By Skill Level
By Category

USkeleton

Choose your OS:

Inheritance Hierarchy

Syntax

class USkeleton :
    public UObject ,
    public IInterface_AssetUserData ,
    public IInterface_PreviewMeshProvider

Remarks

USkeleton : that links between mesh and animation

  • Bone hierarchy for animations

  • Bone/track linkup between mesh and animation

  • Retargetting related

  • Mirror table

Variables

Name Description

Public variable

TArray < FName >

 

AnimationNotifies

AnimNotifiers that has been created.

Public variable

TMap < FName , FR ...

 

AnimRetargetSources

Serializable retarget sources for this skeleton

Protected variable

TArray < UAssetU ...

 

AssetUserData

Array of user data stored with the asset

Public variable

TArray < UBlendP ...

 

BlendProfiles

Blend Profiles.

Protected variable

TArray < struct ...

 

BoneTree

Skeleton bone tree - each contains name and parent index

Protected variable

TArray < uint16 ...

 

DefaultCurveUIDList

This is default curve uid list used like ref pose, as default value don't use this unless you want all curves from the skeleton FBoneContainer contains only list that is used by current LOD

Protected variable

TArray < FName >

 

ExistingMarkerNames

Cached marker sync marker names (stripped for non editor)

Protected variable

FGuid

 

Guid

Guid for skeleton

Public variable

TArray < struct ...

 

LinkupCache

Non-serialised cache of linkups between different skeletal meshes and this Skeleton.

Protected variable

FOnSkeletonHier ...

 

OnSkeletonHierarchyChanged

Public variable

FPreviewAssetAt ...

 

PreviewAttachedAssetContainer

Attached assets component for this skeleton

Protected variable

FReferenceSkele ...

 

ReferenceSkeleton

Reference Skeleton

Public variable

TMap < TWeakObje ...

 

SkelMesh2LinkupCache

Runtime built mapping table between SkeletalMeshes, and LinkupCache array indices.

Protected variable

FSmartNameConta ...

 

SmartNames

Container for smart name mappings.

Public variable

TArray < class U ...

 

Sockets

Array of named socket locations, set up in editor and used as a shortcut instead of specifying everything explicitly to AttachComponent in the SkeletalMeshComponent.

Protected variable

FGuid

 

VirtualBoneGuid

Guid for virtual bones.

Protected variable

TArray < FVirtua ...

 

VirtualBones

Array of this skeletons virtual bones.

Constructors

Name Description

Public function

USkeleton

(
    const FObjectInitializer & ObjectIn...
)

Functions

Name Description

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

AccumulateCurveMetaData

(
    FName CurveName,
    bool bMaterialSet,
    bool bMorphtargetSet
)

This is called when you know both flags - called by post serialize

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

AddNewAnimationNotify

(
    FName NewAnimNotifyName
)

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3) b...

 

AddNewVirtualBone

(
    const FName SourceBoneName,
    const FName TargetBoneName,
    FName & NewVirtualBoneName
)

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3) b...

 

AddNewVirtualBone

(
    const FName SourceBoneName,
    const FName TargetBoneName
)

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3) b...

 

AddSlotGroupName

(
    const FName & InNewGroupName
)

Returns true if Group is added, false if it already exists

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3) b...

 

AddSmartNameAndModify

(
    FName ContainerName,
    FName NewDisplayName,
    FSmartName & NewName
)

Smart Name Interfaces.

Protected function

int32

 

BuildLinkup

(
    const USkeletalMesh * InSkelMes...
)

Build Look up between SkelMesh to BoneTree

Index of LinkupCache that this SkelMesh is linked to

Public function

void

 

CallbackRetargetSourceChanged()

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

ClearCacheData()

Clears all cache data

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

CollectAnimationNotifies()

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3) b...

 

ContainsSlotName

(
    const FName & InSlotName
)

Protected function

void

 

ConvertToFReferenceSkeleton()

WITH_EDITOR.

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)UB ...

 

CreateNewBlendProfile

(
    const FName & InProfileName
)

Create a new blend profile with the specified name

Protected function

bool

 

CreateReferenceSkeletonFromMesh

(
    const USkeletalMesh * InSkeleta...,
    const TArray < int32 >& RequiredRef...
)

Create Reference Skeleton From the given Mesh

true if successful

Protected function

bool

 

DoesParentChainMatch

(
    int32 StartBoneTreeIndex,
    const USkeletalMesh * InSkelMes...
)

Check if Parent Chain Matches between BoneTree, and SkelMesh Meaning if BoneTree has A->B->C (top to bottom) and if SkelMesh has A->C It will fail since it's missing B We ensure this chain matches to play animation properly

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)FA ...

 

FindAnimSlotGroup

(
    const FName & InGroupName
)

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3) c...

 

FindAnimSlotGroup

(
    const FName & InGroupName
)

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)US ...

 

FindCompatibleMesh()

Find the first compatible mesh for this skeleton

Public function

int32

 

FindRigBoneMapping

(
    const FName & NodeName
)

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)US ...

 

FindSocket

(
    FName InSocketName
)

WITH_EDITOR.

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)US ...

 

FindSocketAndIndex

(
    FName InSocketName,
    int32 & OutIndex
)

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)UD ...

 

GetAdditionalPreviewSkeletalMeshes()

Get the additional skeletal meshes we use when previewing this skeleton

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)in ...

 

GetAnimationTrackIndex

(
    const int32 InSkeletonBoneIndex,
    const UAnimSequence * InAnimSeq,
    const bool bUseRawData
)

Get Track index of InAnimSeq for the BoneTreeIndex of BoneTree this is slow, and it's not supposed to be used heavily

Public function

uint16

 

GetAnimCurveUidVersion()

Return version of AnimCurveUidVersion

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)US ...

 

GetAssetPreviewMesh

(
    UObject * InAsset
)

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)UB ...

 

GetBlendProfile

(
    const FName & InProfileName
)

Get the specified blend profile by name

Public function

EBoneTransla ...

 

GetBoneTranslationRetargetingMode

(
    const int32 BoneTreeIdx
)

Public function

const TArray ...

 

GetBoneTree()

This is const accessor for BoneTree Understand there will be a lot of need to access BoneTree, but Anybody modifying BoneTree will corrupt animation data, so will need to make sure it's not modifiable outside of Skeleton You can add new BoneNode but you can't modify current list.

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)in ...

 

GetChildBones

(
    int32 ParentBoneIndex,
    TArray < int32 >& Children
)

Get List of Child Bones of the ParentBoneIndex

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)FC ...

 

GetCurveMetaData

(
    const FName & CurveName
)

These return container of curve meta data, if you modify this container, you'll have to call REfreshCAchedAnimationCurveData to apply

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3) c...

 

GetCurveMetaData

(
    const FName & CurveName
)

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3) c...

 

GetCurveMetaData

(
    const SmartName::UID_Type CurveUID
)

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3) c...

 

GetCurveMetaData

(
    const FSmartName & CurveName
)

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)FC ...

 

GetCurveMetaData

(
    const FSmartName & CurveName
)

Public function

const TArray ...

 

GetDefaultCurveUIDList()

Public function

const TArray ...

 

GetExistingMarkerNames()

Get existing (seen) sync marker names for this Skeleton.

Public function

const FGuid

 

GetGuid()

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)in ...

 

GetMappedValidNodes

(
    TArray < FName >& OutValidNodeNames
)

This make sure it stays within the valid range

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)in ...

 

GetMeshBoneIndexFromSkeletonBoneIndex

(
    const USkeletalMesh * InSkelMes...,
    const int32 SkeletonBoneIndex
)

Get Reference Bone Index from Bone Tree Index

Index of BoneTree Index

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)in ...

 

GetMeshLinkupIndex

(
    const USkeletalMesh * InSkelMes...
)

Find a mesh linkup table (mapping of skeleton bone tree indices to refpose indices) for a particular SkeletalMesh If one does not already exist, create it now.

Public function

const FRefer ...

 

GetReferenceSkeleton()

Accessor to Reference Skeleton to make data read only

Public function

const TArray ...

 

GetRefLocalPoses

(
    FName RetargetSource
)

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)FN ...

 

GetRetargetSourceForMesh

(
    USkeletalMesh * InMesh
)

Find a retarget source for a particular skel mesh.

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)UR ...

 

GetRig()

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)FN ...

 

GetRigBoneMapping

(
    const FName & NodeName
)

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)FN ...

 

GetRigNodeNameFromBoneName

(
    const FName & BoneName
)

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)in ...

 

GetSkeletonBoneIndexFromMeshBoneIndex

(
    const USkeletalMesh * InSkelMes...,
    const int32 MeshBoneIndex
)

Get Bone Tree Index from Reference Bone Index

Index of BoneTree Index

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)FN ...

 

GetSlotGroupName

(
    const FName & InSlotName
)

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3) c...

 

GetSlotGroups()

WITH_EDITORONLY_DATA.

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3) b...

 

GetSmartNameByName

(
    const FName & ContainerName,
    const FName & InName,
    FSmartName & OutSmartName
)

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3) b...

 

GetSmartNameByUID

(
    const FName & ContainerName,
    SmartName::UID_Type UID,
    FSmartName & OutSmartName
)

WITH_EDITOR.

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3) c...

 

GetSmartNameContainer

(
    const FName & ContainerName
)

Get or add a smartname container with the given name.

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)Sm ...

 

GetUIDByName

(
    const FName & ContainerName,
    const FName & Name
)

WITH_EDITOR.

Public function

FGuid

 

GetVirtualBoneGuid()

Public function

const TArray ...

 

GetVirtualBones()

Accessor for the array of virtual bones on this skeleton

Protected function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

HandleSkeletonHierarchyChange()

Call this when the skeleton has changed to fix dependent assets

Public function

void

 

HandleVirtualBoneChanges()

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3) b...

 

IsCompatible

(
    USkeleton const* InSkeleton
)

Check if this skeleton may be used with other skeleton

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3) b...

 

IsCompatibleMesh

(
    const USkeletalMesh * InSkelMes...
)

Indexing naming convention

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

LoadAdditionalPreviewSkeletalMeshes()

Load any additional meshes we may have

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3) b...

 

MergeAllBonesToBoneTree

(
    const USkeletalMesh * InSkelMes...
)

Merge all Bones to BoneTrees if not exists

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3) b...

 

MergeBonesToBoneTree

(
    const USkeletalMesh * InSkeleta...,
    const TArray < int32 >& RequiredRef...
)

Merge Bones (RequiredBones from InSkelMesh) to BoneTrees if not exists

Public function

void

 

RebuildLinkup

(
    const USkeletalMesh * InSkelMes...
)

Rebuild Look up between SkelMesh to BoneTree - this should only get called when SkelMesh is re-imported or so, where the mapping may be no longer valid

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3) b...

 

RecreateBoneTree

(
    USkeletalMesh * InSkelMesh
)

Merge has failed, then Recreate BoneTree

Protected function

void

 

RefreshAllRetargetSources()

Refresh All Retarget Sources

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

RefreshRigConfig()

Verify if it has all latest data

Public function

void

 

RegisterMarkerName

(
    FName MarkerName
)

Register a new sync marker name.

Public function

FDelegateHan ...

 

RegisterOnRetargetSourceChanged

(
    const FOnRetargetSourceChanged & De...
)

Registers a delegate to be called after the preview animation has been changed

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

RegisterOnSkeletonHierarchyChanged

(
    const FOnSkeletonHierarchyChanged &...
)

Registers a delegate to be called after notification has changed

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

RegisterSlotNode

(
    const FName & InSlotName
)

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

RemoveBonesFromSkeleton

(
    const TArray < FName >& BonesToRemo...,
    bool bRemoveChildBones
)

Removes the supplied bones from the skeleton

Public function

void

 

RemoveLinkup

(
    const USkeletalMesh * InSkelMes...
)

Remove Link up cache for the SkelMesh

Public function

void

 

RemoveMarkerName

(
    FName MarkerName
)

Remove a sync marker name.

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

RemoveSlotGroup

(
    const FName & InSlotName
)

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

RemoveSlotName

(
    const FName & InSlotName
)

Edits/removes slot group data WARNING: Does not verify that the names aren't used anywhere - if it isn't checked by the caller the names will be recreated when referencing assets load again.

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

RemoveSmartnameAndModify

(
    FName ContainerName,
    SmartName::UID_Type Uid
)

Removes a smartname from the specified container and modifies the skeleton.

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

RemoveSmartnamesAndModify

(
    FName ContainerName,
    const TArray < FName >& Names
)

Removes smartnames from the specified container and modifies the skeleton.

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

RemoveVirtualBones

(
    const TArray < FName >& BonesToRemo...
)

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

RenameSlotName

(
    const FName & OldName,
    const FName & NewName
)

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3) b...

 

RenameSmartnameAndModify

(
    FName ContainerName,
    SmartName::UID_Type Uid,
    FName NewName
)

Renames a smartname in the specified container and modifies the skeleton return bool - Whether the rename was sucessful

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

RenameVirtualBone

(
    const FName OriginalBoneName,
    const FName NewBoneName
)

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

SetAdditionalPreviewSkeletalMeshes

(
    UDataAsset * InPreviewCollectio...
)

Set the additional skeletal meshes we use when previewing this skeleton

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

SetBoneTranslationRetargetingMode

(
    const int32 BoneIndex,
    EBoneTranslationRetargetingMode::Ty ...,
    bool bChildrenToo
)

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3) b...

 

SetRigBoneMapping

(
    const FName & NodeName,
    FName BoneName
)

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

SetRigConfig

(
    URig * Rig
)

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

SetSlotGroupName

(
    const FName & InSlotName,
    const FName & InGroupName
)

Public function

void

 

UnregisterOnRetargetSourceChanged

(
    FDelegateHandle Handle
)

Unregisters a delegate to be called after the preview animation has been changed

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

UnregisterOnSkeletonHierarchyChanged

(
    void* Unregister
)

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

UpdateReferencePoseFromMesh

(
    const USkeletalMesh * InSkelMes...
)

Create RefLocalPoses from InSkelMesh.

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

UpdateRetargetSource

(
    const FName InName
)

Update Retarget Source with given name

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)in ...

 

ValidatePreviewAttachedObjects()

Makes sure all attached objects are valid and removes any that aren't.

NumberOfBrokenAssets

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

VerifySmartName

(
    const FName & ContainerName,
    FSmartName & InOutSmartName
)

Make sure the smart name has valid UID and so on

Public function

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

VerifySmartNames

(
    const FName & ContainerName,
    TArray < FSmartName >& InOutSmartNa...
)

Overridden from UObject

Name Description

Public function Virtual

bool

 

IsPostLoadThreadSafe()

Called during async load to determine if PostLoad can be called on the loading thread.

Public function Virtual

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

PostDuplicate

(
    bool bDuplicateForPIE
)

Called after duplication & serialization and before PostLoad.

Public function Virtual

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

PostEditUndo()

Called after applying a transaction to the object.

Public function Virtual

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

PostInitProperties()

Called after the C++ constructor and after the properties have been initialized, including those loaded from config.

Public function Virtual

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

PostLoad()

Do any object-specific cleanup required immediately after loading an object, and immediately after any undo/redo.

Public function Virtual

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

PreEditUndo()

Called before applying a transaction to the object.

Public function Virtual

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

Serialize

(
    FArchive & Ar
)

UObject serializer.

Overridden from IInterface_AssetUserData

Name Description

Public function Virtual

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

AddAssetUserData

(
    UAssetUserData * InUserData
)

Public function Virtual

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3) c...

 

GetAssetUserDataArray()

Public function Virtual

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)UA ...

 

GetAssetUserDataOfClass

(
    TSubclassOf < UAssetUserData > InUse...
)

Public function Virtual

[ENGINE_API](API\Runtime\Engine\GameFramework\ENGINE_API_3)vo...

 

RemoveUserDataOfClass

(
    TSubclassOf < UAssetUserData > InUse...
)

Overridden from IInterface_PreviewMeshProvider

Name Description

Public function Virtual

USkeletalMes ...

 

GetPreviewMesh()

Get the preview mesh for this asset

Public function Virtual

USkeletalMes ...

 

GetPreviewMesh

(
    bool bFindIfNotSet
)

IInterface_PreviewMeshProvider interface

Public function Virtual

void

 

SetPreviewMesh

(
    USkeletalMesh * PreviewMesh,
    bool bMarkAsDirty
)

Set the preview mesh for this asset

Typedefs

Name

Description

AnimCurveUID

Typedefs for greater smartname UID readability, add one for each smartname category.

FBoneTreeType

FOnRetargetSourceChanged

FOnRetargetSourceChangedMulticaster

WITH_EDITORONLY_DATA.

FOnSkeletonHierarchyChanged

FOnSkeletonHierarchyChangedMulticaster

Constants

Name

Description

AnimCurveMappingName

Names for smartname mappings, if you're adding a new category of smartnames add a new name here.

AnimNotifyTag

Asset registry information for animation notifies.

AnimNotifyTagDelimiter

AnimTrackCurveMappingName

Names for smartname mappings, if you're adding a new category of smartnames add a new name here.

CurveNameTag

Asset registry information for animation curves.

CurveTagDelimiter

RigTag

Rig Configs

References

Module

Engine

Header

Runtime/Engine/Classes/Animation/Skeleton.h