UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
USkeleton Class Reference

#include <Skeleton.h>

+ Inheritance diagram for USkeleton:

Public Types

typedef SmartName::UID_Type AnimCurveUID
 
typedef FOnRetargetSourceChangedMulticaster::FDelegate FOnRetargetSourceChanged
 
typedef TArray< FBoneNodeFBoneTreeType
 
- Public Types inherited from UObject
enum class  ENetFields_Private { NETFIELD_REP_START = 0 , NETFIELD_REP_END = -1 }
 
typedef UObject WithinClass
 

Public Member Functions

virtual ENGINE_API void BeginDestroy () override
 
const FReferenceSkeletonGetReferenceSkeleton () const
 
const TArray< FVirtualBone > & GetVirtualBones () const
 
ENGINE_API FCurveMetaDataGetCurveMetaData (FName CurveName)
 
ENGINE_API const FCurveMetaDataGetCurveMetaData (FName CurveName) const
 
ENGINE_API void ForEachCurveMetaData (TFunctionRef< void(FName, const FCurveMetaData &)> InFunction) const
 
ENGINE_API int32 GetNumCurveMetaData () const
 
ENGINE_API bool AddCurveMetaData (FName CurveName, bool bTransact=true)
 
ENGINE_API void GetCurveMetaDataNames (TArray< FName > &OutNames) const
 
ENGINE_API void AccumulateCurveMetaData (FName CurveName, bool bMaterialSet, bool bMorphtargetSet)
 
ENGINE_API bool AddNewVirtualBone (const FName SourceBoneName, const FName TargetBoneName)
 
ENGINE_API bool AddNewVirtualBone (const FName SourceBoneName, const FName TargetBoneName, FName &NewVirtualBoneName)
 
ENGINE_API bool AddNewNamedVirtualBone (const FName SourceBoneName, const FName TargetBoneName, const FName NewVirtualBoneName)
 
ENGINE_API void RemoveVirtualBones (const TArray< FName > &BonesToRemove)
 
ENGINE_API void RenameVirtualBone (const FName OriginalBoneName, const FName NewBoneName)
 
void HandleVirtualBoneChanges ()
 
uint16 GetAnimCurveUidVersion () const
 
const TArray< TSoftObjectPtr< USkeleton > > & GetCompatibleSkeletons () const
 
ENGINE_API const FSkeletonRemappingGetSkeletonRemapping (const USkeleton *SourceSkeleton) const
 
ENGINE_API bool GetUseRetargetModesFromCompatibleSkeleton () const
 
ENGINE_API void SetUseRetargetModesFromCompatibleSkeleton (bool bUse)
 
ENGINE_API UBlendProfileGetBlendProfile (const FName &InProfileName)
 
ENGINE_API UBlendProfileCreateNewBlendProfile (const FName &InProfileName)
 
ENGINE_API UBlendProfileRenameBlendProfile (const FName &InProfileName, const FName &InNewProfileName)
 
ENGINE_API FAnimSlotGroupFindAnimSlotGroup (const FName &InGroupName)
 
ENGINE_API const FAnimSlotGroupFindAnimSlotGroup (const FName &InGroupName) const
 
ENGINE_API const TArray< FAnimSlotGroup > & GetSlotGroups () const
 
ENGINE_API bool ContainsSlotName (const FName &InSlotName) const
 
ENGINE_API bool RegisterSlotNode (const FName &InSlotName)
 
ENGINE_API void SetSlotGroupName (const FName &InSlotName, const FName &InGroupName)
 
ENGINE_API bool AddSlotGroupName (const FName &InNewGroupName)
 
ENGINE_API FName GetSlotGroupName (const FName &InSlotName) const
 
ENGINE_API void RemoveSlotName (const FName &InSlotName)
 
ENGINE_API void RemoveSlotGroup (const FName &InSlotName)
 
ENGINE_API void RenameSlotName (const FName &OldName, const FName &NewName)
 
FDelegateHandle RegisterOnRetargetSourceChanged (const FOnRetargetSourceChanged &Delegate)
 
const FGuid GetGuid () const
 
FGuid GetVirtualBoneGuid () const
 
void UnregisterOnRetargetSourceChanged (FDelegateHandle Handle)
 
void CallbackRetargetSourceChanged ()
 
virtual USkeletalMeshGetPreviewMesh (bool bFindIfNotSet=false) override
 
virtual USkeletalMeshGetPreviewMesh () const override
 
virtual void SetPreviewMesh (USkeletalMesh *PreviewMesh, bool bMarkAsDirty=true)
 
 DECLARE_EVENT (USkeleton, FSmartNamesChangedEvent)
 
ENGINE_API void AddCompatibleSkeleton (const USkeleton *SourceSkeleton)
 
ENGINE_API void AddCompatibleSkeletonSoft (const TSoftObjectPtr< USkeleton > &SourceSkeleton)
 
ENGINE_API void RemoveCompatibleSkeleton (const USkeleton *SourceSkeleton)
 
ENGINE_API void RemoveCompatibleSkeleton (const TSoftObjectPtr< USkeleton > &SourceSkeleton)
 
ENGINE_API bool IsCompatibleMesh (const USkinnedAsset *InSkinnedAsset, bool bDoParentChainCheck=true) const
 
ENGINE_API void ClearCacheData ()
 
ENGINE_API const FSkeletonToMeshLinkupFindOrAddMeshLinkupData (const USkinnedAsset *InSkinnedAsset)
 
ENGINE_API const FSkeletonToMeshLinkupAddMeshLinkupData (const USkinnedAsset *InSkinnedAsset)
 
ENGINE_API bool MergeBonesToBoneTree (const USkinnedAsset *InSkinnedAsset, const TArray< int32 > &RequiredRefBones, bool bShowProgress=true)
 
ENGINE_API bool MergeAllBonesToBoneTree (const USkinnedAsset *InSkinnedAsset, bool bShowProgress=true)
 
ENGINE_API bool RecreateBoneTree (USkinnedAsset *InSkinnedAsset)
 
ENGINE_API const TArray< FTransform > & GetRefLocalPoses (FName RetargetSource=NAME_None) const
 
ENGINE_API int32 GetRawAnimationTrackIndex (const int32 InSkeletonBoneIndex, const UAnimSequence *InAnimSeq)
 
ENGINE_API int32 GetSkeletonBoneIndexFromMeshBoneIndex (const USkinnedAsset *InSkinnedAsset, const int32 MeshBoneIndex)
 
ENGINE_API int32 GetMeshBoneIndexFromSkeletonBoneIndex (const USkinnedAsset *InSkinnedAsset, const int32 SkeletonBoneIndex)
 
EBoneTranslationRetargetingMode::Type GetBoneTranslationRetargetingMode (const int32 BoneTreeIdx, bool bDisableRetargeting=false) const
 
ENGINE_API void RebuildLinkup (const USkinnedAsset *InSkinnedAsset)
 
void RemoveLinkup (const USkinnedAsset *InSkinnedAsset)
 
ENGINE_API void SetBoneTranslationRetargetingMode (const int32 BoneIndex, EBoneTranslationRetargetingMode::Type NewRetargetingMode, bool bChildrenToo=false)
 
virtual bool IsPostLoadThreadSafe () const override
 
virtual ENGINE_API void PostLoad () override
 
virtual ENGINE_API void PostDuplicate (bool bDuplicateForPIE) override
 
virtual ENGINE_API void PostInitProperties () override
 
virtual ENGINE_API void Serialize (FArchive &Ar) override
 
ENGINE_API void UpdateReferencePoseFromMesh (const USkinnedAsset *InSkinnedAsset)
 
ENGINE_API USkeletalMeshSocketFindSocketAndIndex (FName InSocketName, int32 &OutIndex) const
 
ENGINE_API USkeletalMeshSocketFindSocket (FName InSocketName) const
 
virtual ENGINE_API void AddAssetUserData (UAssetUserData *InUserData) override
 
virtual ENGINE_API void RemoveUserDataOfClass (TSubclassOf< UAssetUserData > InUserDataClass) override
 
virtual ENGINE_API UAssetUserDataGetAssetUserDataOfClass (TSubclassOf< UAssetUserData > InUserDataClass) override
 
virtual ENGINE_API const TArray< UAssetUserData * > * GetAssetUserDataArray () const override
 
- Public Member Functions inherited from UObject
COREUOBJECT_API UObject ()
 
COREUOBJECT_API UObject (const FObjectInitializer &ObjectInitializer)
 
COREUOBJECT_API UObject (EStaticConstructor, EObjectFlags InFlags)
 
COREUOBJECT_API UObject (FVTableHelper &Helper)
 
COREUOBJECT_API UObjectCreateDefaultSubobject (FName SubobjectFName, UClass *ReturnType, UClass *ClassToCreateByDefault, bool bIsRequired, bool bIsTransient)
 
template<class TReturnType >
TReturnTypeCreateEditorOnlyDefaultSubobject (FName SubobjectName, bool bTransient=false)
 
template<class TReturnType >
TReturnTypeCreateDefaultSubobject (FName SubobjectName, bool bTransient=false)
 
template<class TReturnType , class TClassToConstructByDefault >
TReturnTypeCreateDefaultSubobject (FName SubobjectName, bool bTransient=false)
 
template<class TReturnType >
TReturnTypeCreateOptionalDefaultSubobject (FName SubobjectName, bool bTransient=false)
 
template<class TReturnType , class TClassToConstructByDefault >
TReturnTypeCreateOptionalDefaultSubobject (FName SubobjectName, bool bTransient=false)
 
COREUOBJECT_API void GetDefaultSubobjects (TArray< UObject * > &OutDefaultSubobjects)
 
COREUOBJECT_API UObjectGetDefaultSubobjectByName (FName ToFind)
 
virtual COREUOBJECT_API void PostReinitProperties ()
 
virtual void PostCDOContruct ()
 
virtual COREUOBJECT_API void PreSaveRoot (FObjectPreSaveRootContext ObjectSaveContext)
 
virtual COREUOBJECT_API void PostSaveRoot (FObjectPostSaveRootContext ObjectSaveContext)
 
virtual COREUOBJECT_API void PreSave (FObjectPreSaveContext SaveContext)
 
virtual COREUOBJECT_API void CollectSaveOverrides (FObjectCollectSaveOverridesContext SaveContext)
 
UE_FORCEINLINE_HINT bool Modify (bool bAlwaysMarkDirty=true)
 
UE_FORCEINLINE_HINT bool IsCapturingAsRootObjectForTransaction () const
 
virtual bool ResolveSubobject (const TCHAR *SubObjectPath, UObject *&OutObject, bool bLoadIfExists)
 
virtual bool IsReadyForAsyncPostLoad () const
 
virtual COREUOBJECT_API void PostLoadSubobjects (FObjectInstancingGraph *OuterInstanceGraph)
 
virtual bool IsReadyForFinishDestroy ()
 
virtual COREUOBJECT_API void FinishDestroy ()
 
virtual COREUOBJECT_API void Serialize (FStructuredArchive::FRecord Record)
 
virtual void ShutdownAfterError ()
 
virtual void PostInterpChange (FProperty *PropertyThatChanged)
 
virtual COREUOBJECT_API void PostRename (UObject *OldOuter, const FName OldName)
 
virtual void PreDuplicate (FObjectDuplicationParameters &DupParams)
 
virtual void PostDuplicate (EDuplicateMode::Type DuplicateMode)
 
virtual COREUOBJECT_API bool NeedsLoadForClient () const
 
virtual COREUOBJECT_API bool NeedsLoadForServer () const
 
virtual COREUOBJECT_API bool NeedsLoadForTargetPlatform (const class ITargetPlatform *TargetPlatform) const
 
virtual bool NeedsLoadForEditorGame () const
 
virtual bool IsEditorOnly () const
 
virtual bool HasNonEditorOnlyReferences () const
 
virtual COREUOBJECT_API bool IsDestructionThreadSafe () const
 
virtual COREUOBJECT_API void GetPreloadDependencies (TArray< UObject * > &OutDeps)
 
virtual void GetPrestreamPackages (TArray< UObject * > &OutPrestream)
 
virtual void ExportCustomProperties (FOutputDevice &Out, uint32 Indent)
 
virtual void ImportCustomProperties (const TCHAR *SourceText, FFeedbackContext *Warn)
 
virtual void PostEditImport ()
 
virtual void PostReloadConfig (class FProperty *PropertyThatWasLoaded)
 
virtual COREUOBJECT_API bool Rename (const TCHAR *NewName=nullptr, UObject *NewOuter=nullptr, ERenameFlags Flags=REN_None)
 
virtual FString GetDesc ()
 
COREUOBJECT_API UScriptStructGetSparseClassDataStruct () const
 
virtual bool GetNativePropertyValues (TMap< FString, FString > &out_PropertyValues, uint32 ExportFlags=0) const
 
virtual COREUOBJECT_API void GetResourceSizeEx (FResourceSizeEx &CumulativeResourceSize)
 
SIZE_T GetResourceSizeBytes (EResourceSizeMode::Type Mode)
 
virtual FName GetExporterName (void)
 
COREUOBJECT_API void CallAddReferencedObjects (FReferenceCollector &Collector)
 
virtual FRestoreForUObjectOverwriteGetRestoreForUObjectOverwrite ()
 
virtual bool AreNativePropertiesIdenticalTo (UObject *Other) const
 
virtual COREUOBJECT_API void GetAssetRegistryTags (FAssetRegistryTagsContext Context) const
 
virtual COREUOBJECT_API void GetAssetRegistryTags (TArray< FAssetRegistryTag > &OutTags) const
 
COREUOBJECT_API void GetAssetRegistryTags (FAssetData &Out) const
 
COREUOBJECT_API void GetAssetRegistryTags (FAssetRegistryTagsContext Context, FAssetData &Out) const
 
virtual COREUOBJECT_API bool IsAsset () const
 
virtual COREUOBJECT_API FPrimaryAssetId GetPrimaryAssetId () const
 
virtual COREUOBJECT_API bool IsLocalizedResource () const
 
virtual COREUOBJECT_API bool IsSafeForRootSet () const
 
virtual COREUOBJECT_API void TagSubobjects (EObjectFlags NewFlags)
 
virtual COREUOBJECT_API void GetLifetimeReplicatedProps (TArray< class FLifetimeProperty > &OutLifetimeProps) const
 
virtual COREUOBJECT_API void GetReplicatedCustomConditionState (FCustomPropertyConditionState &OutActiveState) const
 
virtual COREUOBJECT_API void RegisterReplicationFragments (UE::Net::FFragmentRegistrationContext &Context, UE::Net::EFragmentRegistrationFlags RegistrationFlags)
 
virtual COREUOBJECT_API bool IsNameStableForNetworking () const
 
virtual COREUOBJECT_API bool IsFullNameStableForNetworking () const
 
virtual COREUOBJECT_API bool IsSupportedForNetworking () const
 
virtual void GetSubobjectsWithStableNamesForNetworking (TArray< UObject * > &ObjList)
 
virtual COREUOBJECT_API void PreNetReceive ()
 
virtual COREUOBJECT_API void PostNetReceive ()
 
virtual void PostRepNotifies ()
 
virtual COREUOBJECT_API void PreDestroyFromReplication ()
 
COREUOBJECT_API bool IsSelected () const
 
COREUOBJECT_API void SerializeScriptProperties (FArchive &Ar) const
 
COREUOBJECT_API void SerializeScriptProperties (FStructuredArchive::FSlot Slot) const
 
COREUOBJECT_API void ReinitializeProperties (UObject *SourceObject=NULL, struct FObjectInstancingGraph *InstanceGraph=NULL)
 
COREUOBJECT_API FString GetDetailedInfo () const
 
COREUOBJECT_API bool ConditionalBeginDestroy ()
 
COREUOBJECT_API bool ConditionalFinishDestroy ()
 
COREUOBJECT_API void ConditionalPostLoad ()
 
COREUOBJECT_API void ConditionalPreload ()
 
COREUOBJECT_API void ConditionalPostLoadSubobjects (struct FObjectInstancingGraph *OuterInstanceGraph=NULL)
 
bool IsBasedOnArchetype (const UObject *const SomeObject) const
 
COREUOBJECT_API UFunctionFindFunction (FName InName) const
 
COREUOBJECT_API UFunctionFindFunctionChecked (FName InName) const
 
virtual COREUOBJECT_API void BuildSubobjectMapping (UObject *OtherObject, TMap< UObject *, UObject * > &ObjectMapping) const
 
COREUOBJECT_API void CollectDefaultSubobjects (TArray< UObject * > &OutDefaultSubobjects, bool bIncludeNestedSubobjects=false) const
 
COREUOBJECT_API bool CheckDefaultSubobjects (bool bForceCheck=false) const
 
COREUOBJECT_API void SaveConfig (uint64 RequiredPropertyFlags=CPF_Config, const TCHAR *Filename=nullptr, FConfigCacheIni *Config=GConfig, bool bAllowCopyToDefaultObject=true)
 
COREUOBJECT_API void SaveConfig (const FSaveConfigContext &Context)
 
COREUOBJECT_API void UpdateDefaultConfigFile (const FString &SpecificFileLocation="")
 
COREUOBJECT_API bool TryUpdateDefaultConfigFile (const FString &SpecificFileLocation="", bool bWarnIfFail=true)
 
COREUOBJECT_API void UpdateGlobalUserConfigFile ()
 
COREUOBJECT_API void UpdateProjectUserConfigFile ()
 
COREUOBJECT_API void UpdateSinglePropertyInConfigFile (const FProperty *InProperty, const FString &InConfigIniName)
 
COREUOBJECT_API FString GetDefaultConfigFilename () const
 
COREUOBJECT_API FString GetGlobalUserConfigFilename () const
 
COREUOBJECT_API FString GetProjectUserConfigFilename () const
 
virtual const TCHARGetConfigOverridePlatform () const
 
virtual void OverrideConfigSection (FString &SectionName)
 
virtual void OverridePerObjectConfigSection (FString &SectionName)
 
COREUOBJECT_API void LoadConfig (UClass *ConfigClass=nullptr, const TCHAR *Filename=nullptr, uint32 PropagationFlags=UE::LCPF_None, class FProperty *PropertyToLoad=nullptr, TArray< UE::ConfigAccessTracking::FConfigAccessData > *OutAccessedKeys=nullptr)
 
COREUOBJECT_API void ReloadConfig (UClass *ConfigClass=NULL, const TCHAR *Filename=NULL, uint32 PropagationFlags=UE::LCPF_None, class FProperty *PropertyToLoad=NULL)
 
COREUOBJECT_API void ParseParms (const TCHAR *Parms)
 
COREUOBJECT_API void OutputReferencers (FOutputDevice &Ar, FReferencerInformationList *Referencers=NULL)
 
COREUOBJECT_API void RetrieveReferencers (TArray< FReferencerInformation > *OutInternalReferencers, TArray< FReferencerInformation > *OutExternalReferencers)
 
COREUOBJECT_API void SetLinker (FLinkerLoad *LinkerLoad, int32 LinkerIndex, bool bShouldDetachExisting=true, bool bSilenceLogs=false)
 
COREUOBJECT_API UObjectGetArchetype () const
 
COREUOBJECT_API void GetArchetypeInstances (TArray< UObject * > &Instances)
 
COREUOBJECT_API void InstanceSubobjectTemplates (struct FObjectInstancingGraph *InstanceGraph=NULL)
 
template<class T >
bool Implements () const
 
virtual COREUOBJECT_API void ProcessEvent (UFunction *Function, void *Parms)
 
virtual int32 GetFunctionCallspace (UFunction *Function, FFrame *Stack)
 
virtual bool CallRemoteFunction (UFunction *Function, void *Parms, struct FOutParmRec *OutParms, FFrame *Stack)
 
COREUOBJECT_API bool CallFunctionByNameWithArguments (const TCHAR *Cmd, FOutputDevice &Ar, UObject *Executor, bool bForceCallWithNonExec=false)
 
COREUOBJECT_API void CallFunction (FFrame &Stack, RESULT_DECL, UFunction *Function)
 
 DECLARE_FUNCTION (ProcessInternal)
 
virtual bool ProcessConsoleExec (const TCHAR *Cmd, FOutputDevice &Ar, UObject *Executor)
 
COREUOBJECT_API void SkipFunction (FFrame &Stack, RESULT_DECL, UFunction *Function)
 
virtual UClassRegenerateClass (UClass *ClassToRegenerate, UObject *PreviousCDO)
 
COREUOBJECT_API bool IsInBlueprint () const
 
COREUOBJECT_API void DestroyNonNativeProperties ()
 
virtual void MarkAsEditorOnlySubobject ()
 
COREUOBJECT_API void AbortInsideMemberFunction () const
 
 DECLARE_FUNCTION (execUndefined)
 
 DECLARE_FUNCTION (execLocalVariable)
 
 DECLARE_FUNCTION (execInstanceVariable)
 
 DECLARE_FUNCTION (execDefaultVariable)
 
 DECLARE_FUNCTION (execLocalOutVariable)
 
 DECLARE_FUNCTION (execInterfaceVariable)
 
 DECLARE_FUNCTION (execClassSparseDataVariable)
 
 DECLARE_FUNCTION (execInterfaceContext)
 
 DECLARE_FUNCTION (execArrayElement)
 
 DECLARE_FUNCTION (execBoolVariable)
 
 DECLARE_FUNCTION (execClassDefaultVariable)
 
 DECLARE_FUNCTION (execEndFunctionParms)
 
 DECLARE_FUNCTION (execNothing)
 
 DECLARE_FUNCTION (execNothingInt32)
 
 DECLARE_FUNCTION (execNothingOp4a)
 
 DECLARE_FUNCTION (execBreakpoint)
 
 DECLARE_FUNCTION (execTracepoint)
 
 DECLARE_FUNCTION (execWireTracepoint)
 
 DECLARE_FUNCTION (execInstrumentation)
 
 DECLARE_FUNCTION (execEndOfScript)
 
 DECLARE_FUNCTION (execReturnNothing)
 
 DECLARE_FUNCTION (execEmptyParmValue)
 
 DECLARE_FUNCTION (execJump)
 
 DECLARE_FUNCTION (execJumpIfNot)
 
 DECLARE_FUNCTION (execAssert)
 
 DECLARE_FUNCTION (execPushExecutionFlow)
 
 DECLARE_FUNCTION (execPopExecutionFlow)
 
 DECLARE_FUNCTION (execComputedJump)
 
 DECLARE_FUNCTION (execPopExecutionFlowIfNot)
 
 DECLARE_FUNCTION (execLet)
 
 DECLARE_FUNCTION (execLetObj)
 
 DECLARE_FUNCTION (execLetWeakObjPtr)
 
 DECLARE_FUNCTION (execLetBool)
 
 DECLARE_FUNCTION (execLetDelegate)
 
 DECLARE_FUNCTION (execLetMulticastDelegate)
 
 DECLARE_FUNCTION (execAddMulticastDelegate)
 
 DECLARE_FUNCTION (execClearMulticastDelegate)
 
 DECLARE_FUNCTION (execEatReturnValue)
 
 DECLARE_FUNCTION (execRemoveMulticastDelegate)
 
 DECLARE_FUNCTION (execSelf)
 
 DECLARE_FUNCTION (execContext)
 
 DECLARE_FUNCTION (execContext_FailSilent)
 
 DECLARE_FUNCTION (execStructMemberContext)
 
 DECLARE_FUNCTION (execVirtualFunction)
 
 DECLARE_FUNCTION (execFinalFunction)
 
 DECLARE_FUNCTION (execLocalVirtualFunction)
 
 DECLARE_FUNCTION (execLocalFinalFunction)
 
 DECLARE_FUNCTION (execStructCmpEq)
 
 DECLARE_FUNCTION (execStructCmpNe)
 
 DECLARE_FUNCTION (execStructMember)
 
 DECLARE_FUNCTION (execEqualEqual_DelegateDelegate)
 
 DECLARE_FUNCTION (execNotEqual_DelegateDelegate)
 
 DECLARE_FUNCTION (execEqualEqual_DelegateFunction)
 
 DECLARE_FUNCTION (execNotEqual_DelegateFunction)
 
 DECLARE_FUNCTION (execIntConst)
 
 DECLARE_FUNCTION (execInt64Const)
 
 DECLARE_FUNCTION (execUInt64Const)
 
 DECLARE_FUNCTION (execSkipOffsetConst)
 
 DECLARE_FUNCTION (execFloatConst)
 
 DECLARE_FUNCTION (execDoubleConst)
 
 DECLARE_FUNCTION (execStringConst)
 
 DECLARE_FUNCTION (execUnicodeStringConst)
 
 DECLARE_FUNCTION (execTextConst)
 
 DECLARE_FUNCTION (execPropertyConst)
 
 DECLARE_FUNCTION (execObjectConst)
 
 DECLARE_FUNCTION (execSoftObjectConst)
 
 DECLARE_FUNCTION (execFieldPathConst)
 
 DECLARE_FUNCTION (execInstanceDelegate)
 
 DECLARE_FUNCTION (execNameConst)
 
 DECLARE_FUNCTION (execByteConst)
 
 DECLARE_FUNCTION (execIntZero)
 
 DECLARE_FUNCTION (execIntOne)
 
 DECLARE_FUNCTION (execTrue)
 
 DECLARE_FUNCTION (execFalse)
 
 DECLARE_FUNCTION (execNoObject)
 
 DECLARE_FUNCTION (execNullInterface)
 
 DECLARE_FUNCTION (execIntConstByte)
 
 DECLARE_FUNCTION (execRotationConst)
 
 DECLARE_FUNCTION (execVectorConst)
 
 DECLARE_FUNCTION (execVector3fConst)
 
 DECLARE_FUNCTION (execTransformConst)
 
 DECLARE_FUNCTION (execStructConst)
 
 DECLARE_FUNCTION (execSetArray)
 
 DECLARE_FUNCTION (execSetSet)
 
 DECLARE_FUNCTION (execSetMap)
 
 DECLARE_FUNCTION (execArrayConst)
 
 DECLARE_FUNCTION (execSetConst)
 
 DECLARE_FUNCTION (execMapConst)
 
 DECLARE_FUNCTION (execBitFieldConst)
 
 DECLARE_FUNCTION (execNew)
 
 DECLARE_FUNCTION (execClassContext)
 
 DECLARE_FUNCTION (execNativeParm)
 
 DECLARE_FUNCTION (execCast)
 
 DECLARE_FUNCTION (execDynamicCast)
 
 DECLARE_FUNCTION (execMetaCast)
 
 DECLARE_FUNCTION (execInterfaceCast)
 
 DECLARE_FUNCTION (execDoubleToFloatCast)
 
 DECLARE_FUNCTION (execFloatToDoubleCast)
 
 DECLARE_FUNCTION (execObjectToBool)
 
 DECLARE_FUNCTION (execInterfaceToBool)
 
 DECLARE_FUNCTION (execObjectToInterface)
 
 DECLARE_FUNCTION (execInterfaceToInterface)
 
 DECLARE_FUNCTION (execInterfaceToObject)
 
 DECLARE_FUNCTION (execGetDynArrayElement)
 
 DECLARE_FUNCTION (execSetDynArrayElement)
 
 DECLARE_FUNCTION (execGetDynArrayLength)
 
 DECLARE_FUNCTION (execSetDynArrayLength)
 
 DECLARE_FUNCTION (execDynArrayInsert)
 
 DECLARE_FUNCTION (execDynArrayRemove)
 
 DECLARE_FUNCTION (execDynArrayFind)
 
 DECLARE_FUNCTION (execDynArrayFindStruct)
 
 DECLARE_FUNCTION (execDynArrayAdd)
 
 DECLARE_FUNCTION (execDynArrayAddItem)
 
 DECLARE_FUNCTION (execDynArrayInsertItem)
 
 DECLARE_FUNCTION (execDynArrayRemoveItem)
 
 DECLARE_FUNCTION (execDynArraySort)
 
 DECLARE_FUNCTION (execBindDelegate)
 
 DECLARE_FUNCTION (execCallMulticastDelegate)
 
 DECLARE_FUNCTION (execLetValueOnPersistentFrame)
 
 DECLARE_FUNCTION (execCallMathFunction)
 
 DECLARE_FUNCTION (execSwitchValue)
 
 DECLARE_FUNCTION (execArrayGetByRef)
 
 DECLARE_FUNCTION (execAutoRtfmTransact)
 
 DECLARE_FUNCTION (execAutoRtfmStopTransact)
 
 DECLARE_FUNCTION (execAutoRtfmAbortIfNot)
 
void ExecuteUbergraph (int32 EntryPoint)
 
virtual void ValidateGeneratedRepEnums (const TArray< struct FRepRecord > &ClassReps) const
 
virtual uint64 GetNetPushIdDynamic () const
 
- Public Member Functions inherited from UObjectBaseUtility
 UObjectBaseUtility ()
 
 UObjectBaseUtility (EObjectFlags InFlags)
 
void SetFlags (EObjectFlags NewFlags)
 
void ClearFlags (EObjectFlags FlagsToClear)
 
bool HasAnyFlags (EObjectFlags FlagsToCheck) const
 
bool HasAllFlags (EObjectFlags FlagsToCheck) const
 
UE_FORCEINLINE_HINT EObjectFlags GetMaskedFlags (EObjectFlags Mask=RF_AllFlags) const
 
UE_FORCEINLINE_HINT void Mark (EObjectMark Marks) const
 
UE_FORCEINLINE_HINT void UnMark (EObjectMark Marks) const
 
UE_FORCEINLINE_HINT bool HasAnyMarks (EObjectMark Marks) const
 
UE_FORCEINLINE_HINT bool HasAllMarks (EObjectMark Marks) const
 
UE_FORCEINLINE_HINT EObjectMark GetAllMarks () const
 
void MarkAsGarbage ()
 
void ClearGarbage ()
 
UE_FORCEINLINE_HINT void AddToRoot ()
 
UE_FORCEINLINE_HINT void RemoveFromRoot ()
 
UE_FORCEINLINE_HINT bool IsRooted () const
 
UE_FORCEINLINE_HINT int32 GetRefCount () const
 
bool ThisThreadAtomicallyClearedRFUnreachable ()
 
UE_FORCEINLINE_HINT bool IsUnreachable () const
 
UE_FORCEINLINE_HINT bool IsNative () const
 
void SetInternalFlags (EInternalObjectFlags FlagsToSet) const
 
UE_FORCEINLINE_HINT EInternalObjectFlags GetInternalFlags () const
 
UE_FORCEINLINE_HINT bool HasAnyInternalFlags (EInternalObjectFlags FlagsToCheck) const
 
void ClearInternalFlags (EInternalObjectFlags FlagsToClear) const
 
bool AtomicallyClearInternalFlags (EInternalObjectFlags FlagsToClear) const
 
COREUOBJECT_API FString GetFullName (const UObject *StopOuter=NULL, EObjectFullNameFlags Flags=EObjectFullNameFlags::None) const
 
COREUOBJECT_API void GetFullName (const UObject *StopOuter, FString &ResultString, EObjectFullNameFlags Flags=EObjectFullNameFlags::None) const
 
COREUOBJECT_API void GetFullName (FStringBuilderBase &ResultString, const UObject *StopOuter=NULL, EObjectFullNameFlags Flags=EObjectFullNameFlags::None) const
 
COREUOBJECT_API FString GetPathName (const UObject *StopOuter=NULL) const
 
COREUOBJECT_API void GetPathName (const UObject *StopOuter, FString &ResultString) const
 
COREUOBJECT_API void GetPathName (const UObject *StopOuter, FStringBuilderBase &ResultString) const
 
virtual bool CanBeClusterRoot () const
 
virtual COREUOBJECT_API bool CanBeInCluster () const
 
virtual COREUOBJECT_API void CreateCluster ()
 
virtual void OnClusterMarkedAsPendingKill ()
 
COREUOBJECT_API void AddToCluster (UObjectBaseUtility *ClusterRootOrObjectFromCluster, bool bAddAsMutableObject=false)
 
COREUOBJECT_API FString GetFullGroupName (bool bStartWithOuter) const
 
UE_FORCEINLINE_HINT FString GetName () const
 
UE_FORCEINLINE_HINT void GetName (FString &ResultString) const
 
UE_FORCEINLINE_HINT void AppendName (FString &ResultString) const
 
COREUOBJECT_API bool IsPackageExternal () const
 
COREUOBJECT_API void DetachExternalPackage ()
 
COREUOBJECT_API void ReattachExternalPackage ()
 
COREUOBJECT_API UObjectGetOutermostObject () const
 
COREUOBJECT_API UPackageGetPackage () const
 
UE_INTERNAL virtual COREUOBJECT_API UE::Core::FVersePath GetVersePath () const
 
COREUOBJECT_API UPackageGetOutermost () const
 
COREUOBJECT_API bool MarkPackageDirty () const
 
COREUOBJECT_API bool IsTemplate (EObjectFlags TemplateTypes=RF_ArchetypeObject|RF_ClassDefaultObject) const
 
COREUOBJECT_API UObjectGetTypedOuter (UClass *Target) const
 
template<typename T >
T * GetTypedOuter () const
 
template<typename InterfaceClassType >
InterfaceClassTypeGetImplementingOuter () const
 
COREUOBJECT_API UObjectBaseUtilityGetImplementingOuterObject (const UClass *InInterfaceClass) const
 
COREUOBJECT_API bool IsIn (const UObject *SomeOuter) const
 
COREUOBJECT_API bool IsIn (const UPackage *SomePackage) const
 
COREUOBJECT_API bool IsInOuter (const UObject *SomeOuter) const
 
COREUOBJECT_API bool IsInPackage (const UPackage *SomePackage) const
 
COREUOBJECT_API bool IsInA (const UClass *SomeBaseClass) const
 
COREUOBJECT_API bool RootPackageHasAnyFlags (uint32 CheckFlagMask) const
 
template<typename OtherClassType >
bool IsA (OtherClassType SomeBase) const
 
template<class T >
bool IsA () const
 
COREUOBJECT_API const UClassFindNearestCommonBaseClass (const UClass *TestClass) const
 
COREUOBJECT_API voidGetInterfaceAddress (UClass *InterfaceClass)
 
COREUOBJECT_API voidGetNativeInterfaceAddress (UClass *InterfaceClass)
 
const voidGetNativeInterfaceAddress (UClass *InterfaceClass) const
 
COREUOBJECT_API bool IsTemplateForSubobjects (EObjectFlags TemplateTypes=RF_ClassDefaultObject|RF_DefaultSubObject|RF_InheritableComponentTemplate) const
 
COREUOBJECT_API bool IsDefaultSubobject () const
 
COREUOBJECT_API class FLinkerLoadGetLinker () const
 
COREUOBJECT_API int32 GetLinkerIndex () const
 
COREUOBJECT_API FPackageFileVersion GetLinkerUEVersion () const
 
int32 GetLinkerUE4Version () const
 
COREUOBJECT_API int32 GetLinkerLicenseeUEVersion () const
 
int32 GetLinkerLicenseeUE4Version () const
 
COREUOBJECT_API int32 GetLinkerCustomVersion (FGuid CustomVersionKey) const
 
UE_FORCEINLINE_HINT bool operator< (const UObjectBaseUtility &Other) const
 
TStatId GetStatID (bool bForDeferredUse=false) const
 
- Public Member Functions inherited from UObjectBase
COREUOBJECT_API UObjectBase (UClass *InClass, EObjectFlags InFlags, EInternalObjectFlags InInternalFlags, UObject *InOuter, FName InName, int32 InInternalIndex=-1, int32 InSerialNumber=0, FRemoteObjectId InRemoteId=FRemoteObjectId())
 
virtual COREUOBJECT_API ~UObjectBase ()
 
COREUOBJECT_API bool IsValidLowLevel () const
 
COREUOBJECT_API bool IsValidLowLevelFast (bool bRecursive=true) const
 
FORCEINLINE uint32 GetUniqueID () const
 
FORCEINLINE UClassGetClass () const
 
FORCEINLINE UObjectGetOuter () const
 
FORCEINLINE FName GetFName () const
 
virtual COREUOBJECT_API FName GetFNameForStatID () const
 
COREUOBJECT_API UPackageGetExternalPackage () const
 
COREUOBJECT_API void SetExternalPackage (UPackage *InPackage)
 
COREUOBJECT_API UPackageGetExternalPackageInternal () const
 
COREUOBJECT_API void MarkAsReachable () const
 
COREUOBJECT_API void AddRef () const
 
COREUOBJECT_API void ReleaseRef () const
 
FORCEINLINE EObjectFlags GetFlags () const
 
FORCENOINLINE void AtomicallySetFlags (EObjectFlags FlagsToAdd)
 
FORCENOINLINE void AtomicallyClearFlags (EObjectFlags FlagsToClear)
 

Public Attributes

TArray< TObjectPtr< class USkeletalMeshSocket > > Sockets
 
TMap< FName, FReferencePoseAnimRetargetSources
 
TArray< TObjectPtr< UBlendProfile > > BlendProfiles
 
TSoftObjectPtr< USkeletonCachedSoftObjectPtr
 

Protected Member Functions

void ConvertToFReferenceSkeleton ()
 
bool DoesParentChainMatch (int32 StartBoneTreeIndex, const USkinnedAsset *InSkinnedAsset) const
 
void BuildLinkupData (const USkinnedAsset *InSkinnedAsset, FSkeletonToMeshLinkup &NewMeshLinkup)
 
bool CreateReferenceSkeletonFromMesh (const USkinnedAsset *InSkinnedAsset, const TArray< int32 > &RequiredRefBones)
 
- Protected Member Functions inherited from UObject
virtual FString GetDetailedInfoInternal () const
 
COREUOBJECT_API bool CanCheckDefaultSubObjects (bool bForceCheck, bool &bResult) const
 
virtual COREUOBJECT_API bool CheckDefaultSubobjectsInternal () const
 
- Protected Member Functions inherited from UObjectBase
 UObjectBase ()
 
COREUOBJECT_API UObjectBase (EObjectFlags InFlags)
 
COREUOBJECT_API void LowLevelRename (FName NewName, UObject *NewOuter=NULL)
 
virtual void RegisterDependencies ()
 
COREUOBJECT_API void Register (class UClass *(*StaticClassFn)(), const TCHAR *PackageName, const TCHAR *Name)
 
COREUOBJECT_API void Register (const TCHAR *PackageName, const TCHAR *Name)
 
virtual COREUOBJECT_API void DeferredRegister (UClass *UClassStaticClass, const TCHAR *PackageName, const TCHAR *Name)
 
FORCEINLINE void SetFlagsTo (EObjectFlags NewFlags)
 

Protected Attributes

TArray< struct FBoneNodeBoneTree
 
FReferenceSkeleton ReferenceSkeleton
 
FGuid Guid
 
FGuid VirtualBoneGuid
 
TArray< FVirtualBoneVirtualBones
 
TArray< TSoftObjectPtr< USkeleton > > CompatibleSkeletons
 
bool bUseRetargetModesFromCompatibleSkeleton = false
 
FSmartNameContainer SmartNames_DEPRECATED
 
TArray< FNameExistingMarkerNames
 
TArray< TObjectPtr< UAssetUserData > > AssetUserData
 

Friends

class UAnimationBlueprintLibrary
 
class FSkeletonDetails
 
struct FReferenceSkeletonModifier
 
class FEditableSkeleton
 

Additional Inherited Members

- Static Public Member Functions inherited from UObject
static COREUOBJECT_API void UpdateClassesExcludedFromDedicatedServer (const TArray< FString > &InClassNames, const TArray< FString > &InModulesNames)
 
static COREUOBJECT_API void UpdateClassesExcludedFromDedicatedClient (const TArray< FString > &InClassNames, const TArray< FString > &InModulesNames)
 
static COREUOBJECT_API bool CanCreateInCurrentContext (UObject *Template)
 
static COREUOBJECT_API void AddReferencedObjects (UObject *InThis, FReferenceCollector &Collector)
 
static COREUOBJECT_API const FNameSourceFileTagName ()
 
static COREUOBJECT_API UObjectGetArchetypeFromRequiredInfo (const UClass *Class, const UObject *Outer, FName Name, EObjectFlags ObjectFlags)
 
- Static Public Member Functions inherited from UObjectBaseUtility
static bool IsGarbageEliminationEnabled ()
 
static bool IsPendingKillEnabled ()
 
static void SetGarbageEliminationEnabled (bool bEnabled)
 
static COREUOBJECT_API void ReloadObjectsFromModifiedConfigSections (const class FConfigModificationTracker *ChangeTracker)
 
- Static Public Member Functions inherited from UObjectBase
static COREUOBJECT_API FString RemoveClassPrefix (const TCHAR *ClassName)
 
static void PrefetchClass (UObject *Object)
 
static void PrefetchOuter (UObject *Object)
 

Detailed Description

USkeleton : that links between mesh and animation

  • Bone hierarchy for animations
  • Bone/track linkup between mesh and animation
  • Retargetting related

Member Typedef Documentation

◆ AnimCurveUID

◆ FBoneTreeType

◆ FOnRetargetSourceChanged

typedef FOnRetargetSourceChangedMulticaster::FDelegate USkeleton::FOnRetargetSourceChanged

Member Function Documentation

◆ AccumulateCurveMetaData()

void USkeleton::AccumulateCurveMetaData ( FName  CurveName,
bool  bMaterialSet,
bool  bMorphtargetSet 
)

◆ AddAssetUserData()

void USkeleton::AddAssetUserData ( UAssetUserData InUserData)
overridevirtual

Reimplemented from IInterface_AssetUserData.

◆ AddCompatibleSkeleton()

void USkeleton::AddCompatibleSkeleton ( const USkeleton SourceSkeleton)

◆ AddCompatibleSkeletonSoft()

void USkeleton::AddCompatibleSkeletonSoft ( const TSoftObjectPtr< USkeleton > &  SourceSkeleton)

◆ AddCurveMetaData()

bool USkeleton::AddCurveMetaData ( FName  CurveName,
bool  bTransact = true 
)

Adds a curve metadata entry with the specified name

Parameters
InCurveNameThe name of the curve to find
bTransactIf true record a new transaction
Returns
true if an entry was added, false if an entry already existed

◆ AddMeshLinkupData()

const FSkeletonToMeshLinkup & USkeleton::AddMeshLinkupData ( const USkinnedAsset InSkinnedAsset)

Adds a new Mesh Linkup Table to the map for a particular SkinnedAsset

Parameters
InSkinnedAsset: SkinnedAsset to build look up for
Returns
Const ref to the added FSkeletonToMeshLinkup unique ptr

◆ AddNewNamedVirtualBone()

bool USkeleton::AddNewNamedVirtualBone ( const FName  SourceBoneName,
const FName  TargetBoneName,
const FName  NewVirtualBoneName 
)

◆ AddNewVirtualBone() [1/2]

bool USkeleton::AddNewVirtualBone ( const FName  SourceBoneName,
const FName  TargetBoneName 
)

◆ AddNewVirtualBone() [2/2]

bool USkeleton::AddNewVirtualBone ( const FName  SourceBoneName,
const FName  TargetBoneName,
FName NewVirtualBoneName 
)

◆ AddSlotGroupName()

bool USkeleton::AddSlotGroupName ( const FName InNewGroupName)

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

◆ BeginDestroy()

void USkeleton::BeginDestroy ( )
overridevirtual

Called before destroying the object. This is called immediately upon deciding to destroy the object, to allow the object to begin an asynchronous cleanup process.

Reimplemented from UObject.

◆ BuildLinkupData()

void USkeleton::BuildLinkupData ( const USkinnedAsset InSkinnedAsset,
FSkeletonToMeshLinkup NewMeshLinkup 
)
protected

Build Look up between SkinnedAsset to BoneTree

Parameters
InSkinnedAsset: SkinnedAsset to build look up for
FSkeletonToMeshLinkup: Out mesh linkup data

◆ CallbackRetargetSourceChanged()

void USkeleton::CallbackRetargetSourceChanged ( )
inline

◆ ClearCacheData()

void USkeleton::ClearCacheData ( )

Clears all cache data

◆ ContainsSlotName()

bool USkeleton::ContainsSlotName ( const FName InSlotName) const

◆ ConvertToFReferenceSkeleton()

void USkeleton::ConvertToFReferenceSkeleton ( )
protected

Conversion function. Remove when VER_UE4_REFERENCE_SKELETON_REFACTOR is removed.

Remove this function when VER_UE4_REFERENCE_SKELETON_REFACTOR is removed.

◆ CreateNewBlendProfile()

UBlendProfile * USkeleton::CreateNewBlendProfile ( const FName InProfileName)

Create a new blend profile with the specified name

◆ CreateReferenceSkeletonFromMesh()

bool USkeleton::CreateReferenceSkeletonFromMesh ( const USkinnedAsset InSkinnedAsset,
const TArray< int32 > &  RequiredRefBones 
)
protected

Create Reference Skeleton From the given Mesh

Parameters
InSkinnedAssetSkinnedAsset that this Skeleton is based on
RequiredRefBonesList of required bones to create skeleton from
Returns
true if successful

◆ DECLARE_EVENT()

USkeleton::DECLARE_EVENT ( USkeleton  ,
FSmartNamesChangedEvent   
)

◆ DoesParentChainMatch()

bool USkeleton::DoesParentChainMatch ( int32  StartBoneTreeIndex,
const USkinnedAsset InSkinnedAsset 
) const
protected

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

Parameters
StartBoneIndex: BoneTreeIndex to start from in BoneTree
InSkinnedAsset: InSkinnedAsset to compare
Returns
true if matches till root. false if not.

◆ FindAnimSlotGroup() [1/2]

FAnimSlotGroup * USkeleton::FindAnimSlotGroup ( const FName InGroupName)

◆ FindAnimSlotGroup() [2/2]

const FAnimSlotGroup * USkeleton::FindAnimSlotGroup ( const FName InGroupName) const

◆ FindOrAddMeshLinkupData()

const FSkeletonToMeshLinkup & USkeleton::FindOrAddMeshLinkupData ( 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.

◆ FindSocket()

USkeletalMeshSocket * USkeleton::FindSocket ( FName  InSocketName) const

◆ FindSocketAndIndex()

USkeletalMeshSocket * USkeleton::FindSocketAndIndex ( FName  InSocketName,
int32 OutIndex 
) const

◆ ForEachCurveMetaData()

void USkeleton::ForEachCurveMetaData ( TFunctionRef< void(FName, const FCurveMetaData &)>  InFunction) const

Iterate over all curve metadata entries, calling InFunction on each

Parameters
InFunctionThe function to call

◆ GetAnimCurveUidVersion()

uint16 USkeleton::GetAnimCurveUidVersion ( ) const

◆ GetAssetUserDataArray()

const TArray< UAssetUserData * > * USkeleton::GetAssetUserDataArray ( ) const
overridevirtual

Reimplemented from IInterface_AssetUserData.

◆ GetAssetUserDataOfClass()

UAssetUserData * USkeleton::GetAssetUserDataOfClass ( TSubclassOf< UAssetUserData InUserDataClass)
overridevirtual

Returns an instance of the provided AssetUserData class if it's contained in the target asset.

Parameters
InUserDataClassUAssetUserData sub class to get
Returns
The instance of the UAssetUserData class contained, or null if it doesn't exist

Reimplemented from IInterface_AssetUserData.

◆ GetBlendProfile()

UBlendProfile * USkeleton::GetBlendProfile ( const FName InProfileName)

Get the specified blend profile by name

◆ GetBoneTranslationRetargetingMode()

EBoneTranslationRetargetingMode::Type USkeleton::GetBoneTranslationRetargetingMode ( const int32  BoneTreeIdx,
bool  bDisableRetargeting = false 
) const
inline

◆ GetCompatibleSkeletons()

const TArray< TSoftObjectPtr< USkeleton > > & USkeleton::GetCompatibleSkeletons ( ) const
inline

◆ GetCurveMetaData() [1/2]

FCurveMetaData * USkeleton::GetCurveMetaData ( FName  CurveName)

◆ GetCurveMetaData() [2/2]

const FCurveMetaData * USkeleton::GetCurveMetaData ( FName  CurveName) const

◆ GetCurveMetaDataNames()

void USkeleton::GetCurveMetaDataNames ( TArray< FName > &  OutNames) const

Get an array of all curve metadata names

Parameters
OutNamesThe array to receive the metadata names

◆ GetGuid()

const FGuid USkeleton::GetGuid ( ) const
inline

◆ GetMeshBoneIndexFromSkeletonBoneIndex()

int32 USkeleton::GetMeshBoneIndexFromSkeletonBoneIndex ( const USkinnedAsset InSkinnedAsset,
const int32  SkeletonBoneIndex 
)

Get Reference Bone Index from Bone Tree Index

Parameters
InSkinnedAssetSkinnedAsset for the ref bone idx
InBoneTreeIdxBone Tree Index to look for - index of USkeleton.BoneTree
Returns
Index of BoneTree Index

◆ GetNumCurveMetaData()

int32 USkeleton::GetNumCurveMetaData ( ) const
Returns
the number of curve metadata entries

◆ GetPreviewMesh() [1/2]

USkeletalMesh * USkeleton::GetPreviewMesh ( ) const
overridevirtual

Get the preview mesh for this asset

Implements IInterface_PreviewMeshProvider.

◆ GetPreviewMesh() [2/2]

USkeletalMesh * USkeleton::GetPreviewMesh ( bool  bFindIfNotSet = false)
overridevirtual

◆ GetRawAnimationTrackIndex()

int32 USkeleton::GetRawAnimationTrackIndex ( const int32  InSkeletonBoneIndex,
const UAnimSequence InAnimSeq 
)

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

Parameters
InBoneTreeIdxBoneTree Index
InAnimSeqAnimation Sequence to get track index for
Returns
Index of Track of Animation Sequence

◆ GetReferenceSkeleton()

const FReferenceSkeleton & USkeleton::GetReferenceSkeleton ( ) const
inline

Accessor to Reference Skeleton to make data read only

◆ GetRefLocalPoses()

const TArray< FTransform > & USkeleton::GetRefLocalPoses ( FName  RetargetSource = NAME_None) const

Get the local-space ref pose for the specified retarget source.

Parameters
RetargetSourceThe name of the retarget source to find
Returns
the transforms for the retarget source reference pose. If the retarget source is not found, this returns the skeleton's reference pose.

◆ GetSkeletonBoneIndexFromMeshBoneIndex()

int32 USkeleton::GetSkeletonBoneIndexFromMeshBoneIndex ( const USkinnedAsset InSkinnedAsset,
const int32  MeshBoneIndex 
)

Get Bone Tree Index from Reference Bone Index

Parameters
InSkinnedAssetSkinnedAsset for the ref bone idx
InRefBoneIdxReference Bone Index to look for - index of USkinnedAsset.RefSkeleton
Returns
Index of BoneTree Index

◆ GetSkeletonRemapping()

const FSkeletonRemapping * USkeleton::GetSkeletonRemapping ( const USkeleton SourceSkeleton) const

◆ GetSlotGroupName()

FName USkeleton::GetSlotGroupName ( const FName InSlotName) const

◆ GetSlotGroups()

const TArray< FAnimSlotGroup > & USkeleton::GetSlotGroups ( ) const

◆ GetUseRetargetModesFromCompatibleSkeleton()

bool USkeleton::GetUseRetargetModesFromCompatibleSkeleton ( ) const

◆ GetVirtualBoneGuid()

FGuid USkeleton::GetVirtualBoneGuid ( ) const
inline

◆ GetVirtualBones()

const TArray< FVirtualBone > & USkeleton::GetVirtualBones ( ) const
inline

Accessor for the array of virtual bones on this skeleton

◆ HandleVirtualBoneChanges()

void USkeleton::HandleVirtualBoneChanges ( )

◆ IsCompatibleMesh()

bool USkeleton::IsCompatibleMesh ( const USkinnedAsset InSkinnedAsset,
bool  bDoParentChainCheck = true 
) const

Indexing naming convention

Since this code has indexing to very two distinct array but it can be confusing so I am making it consistency for naming

First index is SkeletalMesh->RefSkeleton index - I call this RefBoneIndex Second index is BoneTree index in USkeleton - I call this TreeBoneIndex Verify to see if we can match this skeleton with the provided SkinnedAsset.

Returns true

  • if bone hierarchy matches (at least needs to have matching parent)
  • and if parent chain matches - meaning if bone tree has A->B->C and if ref pose has A->C, it will fail
  • and if more than 50 % of bones matches
Parameters
InSkinnedAssetSkinnedAsset to compare the Skeleton against.
bDoParentChainCheckWhen true (the default) this method also compares if chains match with the parent.
Returns
true if animation set can play on supplied SkinnedAsset, false if not.

◆ IsPostLoadThreadSafe()

bool USkeleton::IsPostLoadThreadSafe ( ) const
overridevirtual

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

Returns
true if this object's PostLoad is thread safe

Reimplemented from UObject.

◆ MergeAllBonesToBoneTree()

bool USkeleton::MergeAllBonesToBoneTree ( const USkinnedAsset InSkinnedAsset,
bool  bShowProgress = true 
)

Merge all Bones to BoneTrees if not exists

Note that this bonetree can't ever clear up because doing so will corrupt all animation data that was imported based on this If nothing exists, it will build new bone tree

Parameters
InSkinnedAsset: Mesh to build from.
Returns
true if success

◆ MergeBonesToBoneTree()

bool USkeleton::MergeBonesToBoneTree ( const USkinnedAsset InSkinnedAsset,
const TArray< int32 > &  RequiredRefBones,
bool  bShowProgress = true 
)

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

Note that this bonetree can't ever clear up because doing so will corrupt all animation data that was imported based on this If nothing exists, it will build new bone tree

Parameters
InSkinnedAsset: Mesh to build from.
RequiredRefBones: RequiredBones are subset of list of bones (index to InSkinnedAsset->RefSkeleton) Most of cases, you don't like to add all bones to skeleton, so you'll have choice of cull out some
Returns
true if success

◆ PostDuplicate()

void USkeleton::PostDuplicate ( bool  bDuplicateForPIE)
overridevirtual

Called after duplication & serialization and before PostLoad. Used to e.g. make sure UStaticMesh's UModel gets copied as well. Note: NOT called on components on actor duplication (alt-drag or copy-paste). Use PostEditImport as well to cover that case.

Reimplemented from UObject.

◆ PostInitProperties()

void USkeleton::PostInitProperties ( )
overridevirtual

Called after the C++ constructor and after the properties have been initialized, including those loaded from config. This is called before any serialization or other setup has happened.

Reimplemented from UObject.

◆ PostLoad()

void USkeleton::PostLoad ( )
overridevirtual

Do any object-specific cleanup required immediately after loading an object. This is not called for newly-created objects, and by default will always execute on the game thread.

Reimplemented from UObject.

◆ RebuildLinkup()

void USkeleton::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

Parameters
InSkinnedAsset: SkinnedAsset to build look up for

◆ RecreateBoneTree()

bool USkeleton::RecreateBoneTree ( USkinnedAsset InSkinnedAsset)

Merge has failed, then Recreate BoneTree

This will invalidate all animations that were linked before, but this is needed

Parameters
InSkinnedAsset: Mesh to build from.
Returns
true if success

◆ RegisterOnRetargetSourceChanged()

FDelegateHandle USkeleton::RegisterOnRetargetSourceChanged ( const FOnRetargetSourceChanged Delegate)
inline

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

◆ RegisterSlotNode()

bool USkeleton::RegisterSlotNode ( const FName InSlotName)

Register a slot name. Return true if a slot was registered, false if it was already registered.

◆ RemoveCompatibleSkeleton() [1/2]

void USkeleton::RemoveCompatibleSkeleton ( const TSoftObjectPtr< USkeleton > &  SourceSkeleton)

◆ RemoveCompatibleSkeleton() [2/2]

void USkeleton::RemoveCompatibleSkeleton ( const USkeleton SourceSkeleton)

◆ RemoveLinkup()

void USkeleton::RemoveLinkup ( const USkinnedAsset InSkinnedAsset)

Remove Link up cache for the SkelMesh

Parameters
InSkinnedAsset: SkinnedAsset to remove linkup cache for

◆ RemoveSlotGroup()

void USkeleton::RemoveSlotGroup ( const FName InSlotName)

◆ RemoveSlotName()

void USkeleton::RemoveSlotName ( const FName InSlotName)

◆ RemoveUserDataOfClass()

void USkeleton::RemoveUserDataOfClass ( TSubclassOf< UAssetUserData InUserDataClass)
overridevirtual

Reimplemented from IInterface_AssetUserData.

◆ RemoveVirtualBones()

void USkeleton::RemoveVirtualBones ( const TArray< FName > &  BonesToRemove)

◆ RenameBlendProfile()

UBlendProfile * USkeleton::RenameBlendProfile ( const FName InProfileName,
const FName InNewProfileName 
)

Rename an existing blend profile with the specified name. Returns the pointer if success, nullptr on failure

◆ RenameSlotName()

void USkeleton::RenameSlotName ( const FName OldName,
const FName NewName 
)

◆ RenameVirtualBone()

void USkeleton::RenameVirtualBone ( const FName  OriginalBoneName,
const FName  NewBoneName 
)

◆ Serialize()

void USkeleton::Serialize ( FArchive Ar)
overridevirtual

Handles reading, writing, and reference collecting using FArchive. This implementation handles all FProperty serialization, but can be overridden for native variables.

Reimplemented from UObject.

◆ SetBoneTranslationRetargetingMode()

void USkeleton::SetBoneTranslationRetargetingMode ( const int32  BoneIndex,
EBoneTranslationRetargetingMode::Type  NewRetargetingMode,
bool  bChildrenToo = false 
)

◆ SetPreviewMesh()

void USkeleton::SetPreviewMesh ( USkeletalMesh PreviewMesh,
bool  bMarkAsDirty = true 
)
virtual

Set the preview mesh for this asset

Parameters
bMarkAsDirtyPassing true will call Modify() on the asset

Implements IInterface_PreviewMeshProvider.

◆ SetSlotGroupName()

void USkeleton::SetSlotGroupName ( const FName InSlotName,
const FName InGroupName 
)

◆ SetUseRetargetModesFromCompatibleSkeleton()

void USkeleton::SetUseRetargetModesFromCompatibleSkeleton ( bool  bUse)

◆ UnregisterOnRetargetSourceChanged()

void USkeleton::UnregisterOnRetargetSourceChanged ( FDelegateHandle  Handle)
inline

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

◆ UpdateReferencePoseFromMesh()

void USkeleton::UpdateReferencePoseFromMesh ( const USkinnedAsset InSkinnedAsset)

Create RefLocalPoses from InSkinnedAsset. Note InSkinnedAsset cannot be null and this function will assert if it is.

If bClearAll is false, it will overwrite ref pose of bones that are found in InSkelMesh If bClearAll is true, it will reset all Reference Poses Note that this means it will remove transforms of extra bones that might not be found in this InSkinnedAsset

Returns
true if successful. false if InSkinnedAsset wasn't compatible with the bone hierarchy

Friends And Related Symbol Documentation

◆ FEditableSkeleton

friend class FEditableSkeleton
friend

◆ FReferenceSkeletonModifier

◆ FSkeletonDetails

friend class FSkeletonDetails
friend

◆ UAnimationBlueprintLibrary

friend class UAnimationBlueprintLibrary
friend

Member Data Documentation

◆ AnimRetargetSources

TMap< FName, FReferencePose > USkeleton::AnimRetargetSources

Serializable retarget sources for this skeleton

◆ AssetUserData

TArray<TObjectPtr<UAssetUserData> > USkeleton::AssetUserData
protected

Array of user data stored with the asset

◆ BlendProfiles

TArray<TObjectPtr<UBlendProfile> > USkeleton::BlendProfiles

List of blend profiles available in this skeleton

◆ BoneTree

TArray<struct FBoneNode> USkeleton::BoneTree
protected

Skeleton bone tree - each contains name and parent index

◆ bUseRetargetModesFromCompatibleSkeleton

bool USkeleton::bUseRetargetModesFromCompatibleSkeleton = false
protected

Should we use the per bone translational retarget mode from the source (compatible) skeleton's instead of from this skeleton? On default this is disabled. Enabling this would allow you to have one shared set of animations. You would configure the retarget settings on the animation skeleton. Then every character that plays animations from this source skeleton will use the translational retarget settings from the source skeleton, which saves you from having to configure the retarget modes for every bone in every character as they can be setup just once now on the animation skeleton.

◆ CachedSoftObjectPtr

TSoftObjectPtr<USkeleton> USkeleton::CachedSoftObjectPtr

A cached soft object pointer of this skeleton. This is done for performance reasons when searching for compatible skeletons when using IsCompatible(Skeleton).

◆ CompatibleSkeletons

TArray<TSoftObjectPtr<USkeleton> > USkeleton::CompatibleSkeletons
protected

The list of compatible skeletons. This skeleton will be able to use animation data originating from skeletons within this array, such as animation sequences. This property is not bi-directional.

This is an array of TSoftObjectPtr in order to prevent all skeletons to be loaded, as we only want to load things on demand. As this is EditAnywhere and an array of TSoftObjectPtr, checking validity of pointers is needed.

◆ ExistingMarkerNames

TArray<FName> USkeleton::ExistingMarkerNames
protected

◆ Guid

FGuid USkeleton::Guid
protected

Guid for skeleton

◆ ReferenceSkeleton

FReferenceSkeleton USkeleton::ReferenceSkeleton
protected

Reference Skeleton

◆ SmartNames_DEPRECATED

FSmartNameContainer USkeleton::SmartNames_DEPRECATED
protected

◆ Sockets

TArray<TObjectPtr<class USkeletalMeshSocket> > USkeleton::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.

◆ VirtualBoneGuid

FGuid USkeleton::VirtualBoneGuid
protected

Guid for virtual bones. Separate so that we don't have to dirty the original guid when only changing virtual bones

◆ VirtualBones

TArray<FVirtualBone> USkeleton::VirtualBones
protected

Array of this skeletons virtual bones. These are new bones are links between two existing bones and are baked into all the skeletons animations


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