Navigation
Unreal Engine C++ API Reference > Runtime > Engine > Animation
Inheritance Hierarchy
- UObjectBase
- UObjectBaseUtility
- UObject
- USkeleton
References
Module | Engine |
Header | /Engine/Source/Runtime/Engine/Classes/Animation/Skeleton.h |
Include | #include "Animation/Skeleton.h" |
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
Variables
Type | Name | Description | |
---|---|---|---|
![]() |
TArray< FName > | AnimationNotifies | AnimNotifiers that has been created. |
![]() |
TMap< FName, FReferencePose > | AnimRetargetSources | Serializable retarget sources for this skeleton |
![]() |
TArray< TObjectPtr< UAssetUserData > > | AssetUserData | Array of user data stored with the asset |
![]() |
TArray< TObjectPtr< UBlendProfile > > | BlendProfiles | List of blend profiles available in this skeleton |
![]() |
TArray< struct FBoneNode > | BoneTree | Skeleton bone tree - each contains name and parent index |
![]() |
TSoftObjectPtr< USkeleton > | CachedSoftObjectPtr | A cached soft object pointer of this skeleton. |
![]() |
TArray< TSoftObjectPtr< USkeleton > > | CompatibleSkeletons | The list of compatible skeletons. |
![]() |
TArray< FName > | ExistingMarkerNames | Cached marker sync marker names (stripped for non editor) |
![]() |
FGuid | Guid | Guid for skeleton |
![]() |
TArray< struct FSkeletonToMeshLinkup > | LinkupCache | Non-serialised cache of linkups between different skeletal meshes and this Skeleton. |
![]() |
FCriticalSection | LinkupCacheLock | Use this Lock everytime you change or access LinkupCache and SkelMesh2LinkupCache member. |
![]() |
FOnSkeletonHierarchyChangedMulticaster | OnSkeletonHierarchyChanged | |
![]() |
FPreviewAssetAttachContainer | PreviewAttachedAssetContainer | Attached assets component for this skeleton |
![]() |
FReferenceSkeleton | ReferenceSkeleton | Reference Skeleton |
![]() |
TArray< TObjectPtr< class USkeletalMeshSocket > > | 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. |
![]() |
FGuid | VirtualBoneGuid | Guid for virtual bones. |
![]() |
TArray< FVirtualBone > | VirtualBones | Array of this skeletons virtual bones. |
Constructors
Type | Name | Description | |
---|---|---|---|
![]() |
USkeleton
(
const FObjectInitializer& ObjectInitializer |
Functions
Type | Name | Description | |
---|---|---|---|
![]() |
void | AccumulateCurveMetaData
(
FName CurveName, |
This is called when you know both flags - called by post serialize and import |
![]() |
void | AddCompatibleSkeleton
(
const USkeleton* SourceSkeleton |
|
![]() |
void | AddCompatibleSkeletonSoft
(
const TSoftObjectPtr< USkeleton >& SourceSkeleton |
|
![]() |
bool | AddCurveMetaData
(
FName CurveName |
Adds a curve metadata entry with the specified name |
![]() |
void | AddNewAnimationNotify
(
FName NewAnimNotifyName |
Adds a new anim notify to the cached AnimationNotifies array. |
![]() |
bool | AddNewVirtualBone
(
const FName SourceBoneName, |
|
![]() |
bool | AddNewVirtualBone
(
const FName SourceBoneName, |
|
![]() |
bool | AddSlotGroupName
(
const FName& InNewGroupName |
Returns true if Group is added, false if it already exists |
![]() |
int32 | BuildLinkup
(
const USkinnedAsset* InSkinnedAsset |
Build Look up between SkinnedAsset to BoneTree |
![]() |
void | ||
![]() |
void | Clears all cache data | |
![]() |
void | Collect animation notifies that are referenced in all animations that use this skeleton (uses the asset registry). | |
![]() ![]() |
void | CollectAnimationNotifies
(
TArray< FName >& OutNotifies |
Collect animation notifies that are referenced in all animations that use this skeleton (uses the asset registry). |
![]() ![]() |
bool | ContainsSlotName
(
const FName& InSlotName |
|
![]() |
void | Conversion function. | |
![]() |
UBlendProfile * | CreateNewBlendProfile
(
const FName& InProfileName |
Create a new blend profile with the specified name |
![]() |
bool | CreateReferenceSkeletonFromMesh
(
const USkinnedAsset* InSkinnedAsset, |
Create Reference Skeleton From the given Mesh |
![]() ![]() |
bool | DoesParentChainMatch
(
int32 StartBoneTreeIndex, |
Check if Parent Chain Matches between BoneTree, and SkinnedAsset Meaning if BoneTree has A->B->C (top to bottom) and if SkinnedAsset has A->C It will fail since it's missing B We ensure this chain matches to play animation properly |
![]() |
FAnimSlotGroup * | FindAnimSlotGroup
(
const FName& InGroupName |
|
![]() ![]() |
const FAnimSlotGroup * | FindAnimSlotGroup
(
const FName& InGroupName |
|
![]() ![]() |
USkeletalMesh * | Find the first compatible mesh for this skeleton | |
![]() ![]() |
int32 | FindRigBoneMapping
(
const FName& NodeName |
|
![]() ![]() |
USkeletalMeshSocket * | FindSocket
(
FName InSocketName |
|
![]() ![]() |
USkeletalMeshSocket * | FindSocketAndIndex
(
FName InSocketName, |
|
![]() ![]() |
void | ForEachCurveMetaData
(
TFunctionRef< void(FName, const FCurveMetaData&)> InFunction |
Iterate over all curve metadata entries, calling InFunction on each |
![]() ![]() |
UDataAsset * | Get the additional skeletal meshes we use when previewing this skeleton | |
![]() ![]() |
uint16 | Return version of AnimCurveUidVersion | |
![]() |
USkeletalMesh * | GetAssetPreviewMesh
(
UObject* InAsset |
|
![]() |
UBlendProfile * | GetBlendProfile
(
const FName& InProfileName |
Get the specified blend profile by name |
![]() ![]() |
EBoneTranslationRetargetingMode::Type | GetBoneTranslationRetargetingMode
(
const int32 BoneTreeIdx, |
|
![]() ![]() |
int32 | GetChildBones
(
int32 ParentBoneIndex, |
Get List of Child Bones of the ParentBoneIndex |
![]() ![]() |
void | GetCompatibleAssets
(
UClass* AssetClass, |
Get compatible assets given the asset's class and skeleton tag. |
![]() ![]() |
void | GetCompatibleSkeletonAssets
(
TArray< FAssetData >& OutAssets |
Get all skeleton assets that are compatible with this skeleton (not just the internal list, but also reciprocally and implicitly compatible skeletons) |
![]() ![]() |
const TArray< TSoftObjectPtr< USkeleton > > & | ||
![]() |
FCurveMetaData * | GetCurveMetaData
(
FName CurveName |
|
![]() ![]() |
const FCurveMetaData * | GetCurveMetaData
(
FName CurveName |
|
![]() ![]() |
void | GetCurveMetaDataNames
(
TArray< FName >& OutNames |
Get an array of all curve metadata names |
![]() ![]() |
const TArray< FName > & | Get existing (seen) sync marker names for this Skeleton. | |
![]() ![]() |
const FGuid | GetGuid () |
|
![]() |
int32 | GetMappedValidNodes
(
TArray< FName >& OutValidNodeNames |
This make sure it stays within the valid range |
![]() |
int32 | GetMeshBoneIndexFromSkeletonBoneIndex
(
const USkinnedAsset* InSkinnedAsset, |
Get Reference Bone Index from Bone Tree Index |
![]() |
int32 | GetMeshLinkupIndex
(
const USkinnedAsset* InSkinnedAsset |
Find a mesh linkup table (mapping of skeleton bone tree indices to refpose indices) for a particular SkinnedAsset If one does not already exist, create it now. |
![]() ![]() |
int32 | ||
![]() ![]() |
const FReferenceSkeleton & | Accessor to Reference Skeleton to make data read only | |
![]() ![]() |
const TArray< FTransform > & | GetRefLocalPoses
(
FName RetargetSource |
Get the local-space ref pose for the specified retarget source. |
![]() ![]() |
FName | GetRetargetSourceForMesh
(
USkinnedAsset* InSkinnedAsset |
Find a retarget source for a particular mesh. |
![]() ![]() |
void | GetRetargetSources
(
TArray< FName >& OutRetargetSources |
Get all the retarget source names for this skeleton. |
![]() ![]() |
URig * | GetRig () |
|
![]() ![]() |
FName | GetRigBoneMapping
(
const FName& NodeName |
|
![]() ![]() |
FName | GetRigNodeNameFromBoneName
(
const FName& BoneName |
|
![]() |
int32 | GetSkeletonBoneIndexFromMeshBoneIndex
(
const USkinnedAsset* InSkinnedAsset, |
Get Bone Tree Index from Reference Bone Index |
![]() ![]() |
FName | GetSlotGroupName
(
const FName& InSlotName |
|
![]() ![]() |
const TArray< FAnimSlotGroup > & | ||
![]() ![]() |
FGuid | ||
![]() ![]() |
const TArray< FVirtualBone > & | Accessor for the array of virtual bones on this skeleton | |
![]() |
void | Call this when the skeleton has changed to fix dependent assets | |
![]() |
void | ||
![]() ![]() |
bool | IsCompatibleForEditor
(
const FString& SkeletonAssetString |
Check if this skeleton is compatible with another skeleton asset that is identified by the string returned by AssetData(SkeletonPtr).GetExportTextName(). |
![]() ![]() |
bool | IsCompatibleForEditor
(
const USkeleton* InSkeleton |
Check if animation content authored on the supplied skeleton may be played on this skeleton. |
![]() ![]() |
bool | IsCompatibleForEditor
(
const FAssetData& AssetData, |
Check if this skeleton is compatible with a given other asset, if that is a skeleton. |
![]() ![]() |
bool | IsCompatibleMesh
(
const USkinnedAsset* InSkinnedAsset, |
Indexing naming convention |
![]() |
void | Load any additional meshes we may have | |
![]() |
bool | MergeAllBonesToBoneTree
(
const USkinnedAsset* InSkinnedAsset |
Merge all Bones to BoneTrees if not exists |
![]() |
bool | MergeBonesToBoneTree
(
const USkinnedAsset* InSkinnedAsset, |
Merge Bones (RequiredBones from InSkinnedAsset) to BoneTrees if not exists |
![]() |
void | RebuildLinkup
(
const USkinnedAsset* InSkinnedAsset |
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 |
![]() |
bool | RecreateBoneTree
(
USkinnedAsset* InSkinnedAsset |
Merge has failed, then Recreate BoneTree |
![]() |
void | Refresh All Retarget Sources | |
![]() |
void | Verify if it has all latest data | |
![]() |
void | RegisterMarkerName
(
FName MarkerName |
Register a new sync marker name. |
![]() |
FDelegateHandle | RegisterOnRetargetSourceChanged
(
const FOnRetargetSourceChanged& Delegate |
Registers a delegate to be called after the preview animation has been changed |
![]() |
void | RegisterOnSkeletonHierarchyChanged
(
const FOnSkeletonHierarchyChanged& Delegate |
Registers a delegate to be called after notification has changed |
![]() |
bool | RegisterSlotNode
(
const FName& InSlotName |
Register a slot name. Return true if a slot was registered, false if it was already registered. |
![]() |
void | RemoveAnimationNotify
(
FName AnimNotifyName |
Removes an anim notify from the cached AnimationNotifies array. |
![]() |
void | RemoveBonesFromSkeleton
(
const TArray< FName >& BonesToRemove, |
Removes the supplied bones from the skeleton |
![]() |
void | RemoveCompatibleSkeleton
(
const USkeleton* SourceSkeleton |
|
![]() |
void | RemoveCompatibleSkeleton
(
const TSoftObjectPtr< USkeleton >& SourceSkeleton |
|
![]() |
bool | RemoveCurveMetaData
(
FName CurveName |
Removes a curve metadata entry for the specified name. |
![]() |
bool | RemoveCurveMetaData
(
TArrayView< FName > CurveNames |
Removes a group of curve metadata entries for the specified names. |
![]() |
void | RemoveLinkup
(
const USkinnedAsset* InSkinnedAsset |
Remove Link up cache for the SkelMesh |
![]() |
bool | RemoveMarkerName
(
FName MarkerName |
Remove a sync marker name. |
![]() |
void | RemoveSlotGroup
(
const FName& InSlotName |
|
![]() |
void | 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. |
![]() |
void | RemoveVirtualBones
(
const TArray< FName >& BonesToRemove |
|
![]() |
void | RenameAnimationNotify
(
FName OldAnimNotifyName, |
Renames an anim notify. |
![]() |
bool | RenameCurveMetaData
(
FName OldName, |
Renames a curve metadata entry. Metadata is preserved, but assigned to a different curve name. |
![]() |
bool | RenameMarkerName
(
FName InOldName, |
Rename a sync marker name. |
![]() |
void | RenameSlotName
(
const FName& OldName, |
|
![]() |
void | RenameVirtualBone
(
const FName OriginalBoneName, |
|
![]() |
void | SetAdditionalPreviewSkeletalMeshes
(
UDataAsset* InPreviewCollectionAsset |
Set the additional skeletal meshes we use when previewing this skeleton |
![]() |
void | SetBoneTranslationRetargetingMode
(
const int32 BoneIndex, |
|
![]() |
bool | SetRigBoneMapping
(
const FName& NodeName, |
|
![]() |
void | SetRigConfig
(
URig* Rig |
|
![]() |
void | SetSlotGroupName
(
const FName& InSlotName, |
|
![]() ![]() |
bool | ShouldFilterAsset
(
const FAssetData& InAssetData, |
Wrapper for !IsCompatibleForEditor, used as a convenience function for binding to FOnShouldFilterAsset in asset pickers. |
![]() |
void | UnregisterOnRetargetSourceChanged
(
FDelegateHandle Handle |
Unregisters a delegate to be called after the preview animation has been changed |
![]() |
void | UnregisterOnSkeletonHierarchyChanged
(
void* Unregister |
|
![]() |
void | UpdateReferencePoseFromMesh
(
const USkinnedAsset* InSkinnedAsset |
Create RefLocalPoses from InSkinnedAsset. |
![]() |
void | UpdateRetargetSource
(
const FName InName |
Update Retarget Source with given name |
![]() |
int32 | Makes sure all attached objects are valid and removes any that aren't. |
Overridden from UObject
Type | Name | Description | |
---|---|---|---|
![]() ![]() |
void | BeginDestroy () |
Called before destroying the object. |
![]() ![]() ![]() |
bool | Called during async load to determine if PostLoad can be called on the loading thread. | |
![]() ![]() |
void | PostDuplicate
(
bool bDuplicateForPIE |
Called after duplication & serialization and before PostLoad. |
![]() ![]() |
void | PostEditUndo () |
Called after applying a transaction to the object. |
![]() ![]() |
void | Called after the C++ constructor and after the properties have been initialized, including those loaded from config. | |
![]() ![]() |
void | PostLoad () |
Do any object-specific cleanup required immediately after loading an object. |
![]() ![]() |
void | PreEditUndo () |
Called before applying a transaction to the object. |
![]() ![]() |
void | Handles reading, writing, and reference collecting using FArchive. |
Overridden from IInterface_AssetUserData
Type | Name | Description | |
---|---|---|---|
![]() ![]() |
void | AddAssetUserData
(
UAssetUserData* InUserData |
|
![]() ![]() ![]() |
const TArray< UAssetUserData * > * | ||
![]() ![]() |
UAssetUserData * | GetAssetUserDataOfClass
(
TSubclassOf< UAssetUserData > InUserDataClass |
|
![]() ![]() |
void | RemoveUserDataOfClass
(
TSubclassOf< UAssetUserData > InUserDataClass |
Overridden from IInterface_PreviewMeshProvider
Type | Name | Description | |
---|---|---|---|
![]() ![]() ![]() |
USkeletalMesh * | Get the preview mesh for this asset | |
![]() ![]() |
USkeletalMesh * | GetPreviewMesh
(
bool bFindIfNotSet |
IInterface_PreviewMeshProvider interface |
![]() ![]() |
void | SetPreviewMesh
(
USkeletalMesh* PreviewMesh, |
Set the preview mesh for this asset |
Classes
Type | Name | Description | |
---|---|---|---|
![]() |
FSmartNamesChangedEvent |
Typedefs
Name | Description |
---|---|
AnimCurveUID | DEPRECATED - no longer used. |
FBoneTreeType | |
FOnRetargetSourceChanged | |
FOnRetargetSourceChangedMulticaster | |
FOnSkeletonHierarchyChanged | |
FOnSkeletonHierarchyChangedMulticaster |
Constants
Name | Description |
---|---|
AnimCurveMapping | Cached ptr to the persistent AnimCurveMapping |
AnimCurveMappingName | |
AnimNotifyTag | Asset registry information for animation notifies. |
AnimNotifyTagDelimiter | |
AnimSyncMarkerTag | Asset registry information for animation sync markers. |
AnimSyncMarkerTagDelimiter | |
AnimTrackCurveMappingName | |
AreAllSkeletonsCompatibleDelegate | Global compatibility delegate, used to override skeleton compatibility. |
CompatibleSkeletonsNameTag | Asset registry information for compatible skeletons. |
CompatibleSkeletonsTagDelimiter | |
CurveNameTag | Asset registry information for animation curves. |
CurveTagDelimiter | |
DefaultCurveUIDList | |
RigTag | Rig Configs |
Deprecated Variables
Type | Name | Description | |
---|---|---|---|
![]() |
FSmartNamesChangedEvent | OnSmartNamesChangedEvent | This member is no longer used. Delegate registration for skeleton metadata can be handled via UAnimCurveMetaData. |
![]() |
TArray< FTransform > | RefLocalPoses_DEPRECATED | Reference skeleton poses in local space |
![]() |
TMap< TWeakObjectPtr< USkeletalMesh >, int32 > | SkelMesh2LinkupCache | Public access to this member variable is deprecated. |
![]() |
FSmartNameContainer | SmartNames_DEPRECATED | DEPRECATED - moved to CurveMetaData. |
Deprecated Functions
Type | Name | Description | |
---|---|---|---|
![]() |
bool | AddSmartNameAndModify
(
FName ContainerName, |
Please use AddCurveMetaData. |
![]() |
FCurveMetaData * | GetCurveMetaData
(
const FSmartName& CurveName |
Please use GetCurveMetaData with an FName. |
![]() ![]() |
const FCurveMetaData * | GetCurveMetaData
(
const SmartName::UID_Type CurveUID |
Please use GetCurveMetaData with an FName. |
![]() ![]() |
const FCurveMetaData * | GetCurveMetaData
(
const FSmartName& CurveName |
Please use GetCurveMetaData with an FName. |
![]() ![]() |
const TArray< uint16 > & | This function is no longer used | |
![]() |
int32 | GetRawAnimationTrackIndex
(
const int32 InSkeletonBoneIndex, |
GetRawAnimationTrackIndex has been deprecated, use tracks are referenced by name instead |
![]() ![]() |
const FSkeletonRemapping * | GetSkeletonRemapping
(
const USkeleton* SourceSkeleton |
Please use UE::Anim::FSkeletonRemappingRegistry::GetRemapping. |
![]() ![]() |
bool | GetSmartNameByName
(
const FName& ContainerName, |
This function is no longer used |
![]() ![]() |
bool | GetSmartNameByUID
(
const FName& ContainerName, |
This function is no longer used |
![]() ![]() |
const FSmartNameMapping * | GetSmartNameContainer
(
const FName& ContainerName |
This function is no longer used |
![]() ![]() |
SmartName::UID_Type | GetUIDByName
(
const FName& ContainerName, |
This function is no longer used |
![]() ![]() |
bool | IsCompatible
(
const USkeleton* InSkeleton |
Compatibility is now an editor-only concern. Please use IsCompatibleForEditor. |
![]() ![]() |
bool | IsCompatibleSkeletonByAssetData
(
const FAssetData& AssetData, |
Compatibility is now an editor-only concern. Please use IsCompatibleForEditor. |
![]() ![]() |
bool | IsCompatibleSkeletonByAssetString
(
const FString& SkeletonAssetString |
Compatibility is now an editor-only concern. Please use IsCompatibleForEditor. |
![]() |
void | RemoveSmartnameAndModify
(
FName ContainerName, |
Please use RemoveCurveMetaData. |
![]() |
void | RemoveSmartnamesAndModify
(
FName ContainerName, |
Please use RemoveCurveMetaData. |
![]() |
bool | RenameSmartnameAndModify
(
FName ContainerName, |
Please use RenameCurveMetaData. |
![]() |
void | VerifySmartName
(
const FName& ContainerName, |
This function is no longer used |
![]() |
void | VerifySmartNames
(
const FName& ContainerName, |
This function is no longer used |