UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
BoneContainer.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
8#include "BoneIndices.h"
9#include "ReferenceSkeleton.h"
11#include "Animation/AnimTypes.h"
15
16class USkeletalMesh;
17struct FBoneContainer;
19struct FBlendedCurve;
20struct FAnimCurveType;
21
22namespace SmartName
23{
24typedef uint16 UID_Type;
25}
26
35
54
55// DEPRECATED - please use UE::Anim::FCurveFilterSettings
70
71namespace UE::Anim
72{
73
76{
82
83 // Filter curves. Application of these curves is dependent on FilterMode
84 const TArray<FName>* FilterCurves = nullptr;
85
86 // Filtering mode - allows curves to be disable entirely or allow/deny-listed
88
89 // LOD index
91};
92
93}
94
117
127
137
150
163
184
192{
193private:
195 TArray<FBoneIndexType> BoneIndicesArray;
197 TBitArray<> BoneSwitchArray;
198
202 TWeakObjectPtr<USkeletalMesh> AssetSkeletalMesh;
204 TWeakObjectPtr<USkeleton> AssetSkeleton;
205
207 const FReferenceSkeleton* RefSkeleton;
208
210 TArray<int32> SkeletonToPoseBoneIndexArray;
211
213 TArray<int32> PoseToSkeletonBoneIndexArray;
214
215 // Look up from skeleton to compact pose format
216 TArray<int32> CompactPoseToSkeletonIndex;
217
218 // Look up from compact pose format to skeleton
219 TArray<FCompactPoseBoneIndex> SkeletonToCompactPose;
220
221 // Compact pose format of Parent Bones (to save us converting to mesh space and back)
222 TArray<FCompactPoseBoneIndex> CompactPoseParentBones;
223
224 // Array of cached virtual bone data so that animations running from raw data can generate them.
225 TArray<FVirtualBoneCompactPoseData> VirtualBoneCompactPoseData;
226
228 UE::Anim::FCurveFilter CurveFilter;
229
231 UE::Anim::FBulkCurveFlags CurveFlags;
232
234
235 // The serial number of this bone container. This is incremented each time the container is regenerated and can
236 // be used to track whether to cache bone data. If this value is zero then the bone container is considered invalid
237 // as it has never been regenerated.
238 uint16 SerialNumber;
239
241#if DO_CHECK
244#endif
246 bool bDisableRetargeting;
248 bool bUseRAWData;
250 bool bUseSourceData;
251
252public:
253
255
257
259
260 UE_DEPRECATED(5.3, "Please use the constructor that takes a FCurveFilterSettings.")
262
263 UE_DEPRECATED(5.3, "Please use InitializeTo that takes a FCurveFilterSettings.")
265
267 ENGINE_API void Reset();
268
270 const bool IsValid() const
271 {
272 return (Asset.IsValid(
273#if WITH_EDITOR
274 true, true
275#endif
276 )
277 && (RefSkeleton != nullptr) && (BoneIndicesArray.Num() > 0));
278 }
279
282 {
283 return Asset.Get();
284 }
285
288 {
289 return AssetSkeletalMesh.Get();
290 }
291
294 {
295 return
296#if WITH_EDITOR
297 bEvenIfUnreachable ? AssetSkeleton.GetEvenIfUnreachable() :
298#endif
299 AssetSkeleton.Get();
300 }
301
304 {
305 bDisableRetargeting = InbDisableRetargeting;
306 }
307
310 {
311 return bDisableRetargeting;
312 }
313
316 {
317 bUseRAWData = InbUseRAWData;
318 }
319
321 bool ShouldUseRawData() const
322 {
323 return bUseRAWData;
324 }
325
328 {
329 bUseSourceData = InbUseSourceData;
330 }
331
334 {
335 return bUseSourceData;
336 }
337
343 {
344 return BoneIndicesArray;
345 }
346
350 const TArray<FVirtualBoneCompactPoseData>& GetVirtualBoneCompactPoseData() const { return VirtualBoneCompactPoseData; }
351
356 {
357 return BoneSwitchArray;
358 }
359
362 {
363 return RefSkeleton->GetRefBonePose();
364 }
365
367 {
368 return CompactPoseParentBones;
369 }
370
371 // Fill the supplied buffer with the compact pose reference pose
372 template<typename ArrayType>
373 void FillWithCompactRefPose(ArrayType& OutTransforms) const
374 {
376 OutTransforms.Reset(CompactPoseBoneCount);
377 OutTransforms.SetNumUninitialized(CompactPoseBoneCount);
378
379 const TArray<FTransform>& RefPoseTransforms = RefPoseOverride.IsValid() ? RefPoseOverride->RefBonePoses : RefSkeleton->GetRefBonePose();
380 for (int32 CompactBoneIndex = 0; CompactBoneIndex < CompactPoseBoneCount; ++CompactBoneIndex)
381 {
382 OutTransforms[CompactBoneIndex] = RefPoseTransforms[BoneIndicesArray[CompactBoneIndex]];
383 }
384 }
385
387 {
388 const TArray<FTransform>& RefPoseTransforms = RefPoseOverride.IsValid() ? RefPoseOverride->RefBonePoses : RefSkeleton->GetRefBonePose();
389 return RefPoseTransforms[BoneIndicesArray[BoneIndex.GetInt()]];
390 }
391
394 {
395 if (InRefPoseOverride.Get() != RefPoseOverride.Get())
396 {
397 RefPoseOverride = InRefPoseOverride;
398 }
399 }
400
403 {
404 return *RefSkeleton;
405 }
406
408 const int32 GetNumBones() const
409 {
410 return RefSkeleton->GetNum();
411 }
412
414 {
415 return BoneIndicesArray.Num();
416 }
417
419 ENGINE_API int32 GetPoseBoneIndexForBoneName(const FName& BoneName) const;
420
422 ENGINE_API int32 GetParentBoneIndex(const int32 BoneIndex) const;
423
426
428 ENGINE_API int32 GetDepthBetweenBones(const int32 BoneIndex, const int32 ParentBoneIndex) const;
429
431 ENGINE_API bool BoneIsChildOf(const int32 BoneIndex, const int32 ParentBoneIndex) const;
432
434 ENGINE_API bool BoneIsChildOf(const FCompactPoseBoneIndex& BoneIndex, const FCompactPoseBoneIndex& ParentBoneIndex) const;
435
438 {
439 return CurveFilter;
440 }
441
444 {
445 return CurveFlags;
446 }
447
448 UE_DEPRECATED(5.3, "GetUIDToArrayLookupTable is deprecated, it is no longer used.")
450
451 UE_DEPRECATED(5.3, "GetUIDToArrayIndexLookupTableValidCount is deprecated, it is no longer used.")
453
460
461 UE_DEPRECATED(5.0, "GetUIDToCurveTypeLookupTable is deprecated, please access from the SmartNameMapping directly via GetSkeletonAsset()->GetSmartNameContainer(USkeleton::AnimCurveMappingName)")
463
464 UE_DEPRECATED(5.3, "GetUIDToArrayLookupTableBackup is deprecated, it is no longer used.")
466
476 {
477 Ar
478 << B.BoneIndicesArray
479 << B.BoneSwitchArray
480 << B.Asset
481 << B.AssetSkeletalMesh
482 << B.AssetSkeleton
483 << B.SkeletonToPoseBoneIndexArray
484 << B.PoseToSkeletonBoneIndexArray
485 << B.bDisableRetargeting
486 << B.bUseRAWData
487 << B.bUseSourceData
488 ;
489
490 return Ar;
491 }
492
496 bool Contains(FBoneIndexType NewIndex) const
497 {
498 return BoneSwitchArray[NewIndex];
499 }
500
502 UE_DEPRECATED(5.0, "Please use GetMeshPoseIndexFromSkeletonPoseIndex")
504 {
505 return SkeletonToPoseBoneIndexArray;
506 }
507
509 UE_DEPRECATED(5.0, "Please use GetSkeletonPoseIndexFromMeshPoseIndex")
511 {
512 return PoseToSkeletonBoneIndexArray;
513 }
514
515 template<typename IterType>
525
526 template<typename IterType>
536
561
568 {
569 if (SkeletonToPoseBoneIndexArray.IsValidIndex(SkeletonIndex.GetInt()))
570 {
571 return FMeshPoseBoneIndex(SkeletonToPoseBoneIndexArray[SkeletonIndex.GetInt()]);
572 }
573
575 }
576
583 {
584 if (ensure(PoseToSkeletonBoneIndexArray.IsValidIndex(MeshIndex.GetInt())))
585 {
586 return FSkeletonPoseBoneIndex(PoseToSkeletonBoneIndexArray[MeshIndex.GetInt()]);
587 }
588
590 }
591
592 // DEPRECATED - Ideally should use GetSkeletonPoseIndexFromCompactPoseIndex due to raw int32 here
594 {
595 return CompactPoseToSkeletonIndex[BoneIndex.GetInt()];
596 }
597
604 {
605 if (ensure(CompactPoseToSkeletonIndex.IsValidIndex(BoneIndex.GetInt())))
606 {
607 return FSkeletonPoseBoneIndex(CompactPoseToSkeletonIndex[BoneIndex.GetInt()]);
608 }
609
611 }
612
613 // DEPRECATED - Ideally should use GetCompactPoseIndexFromSkeletonPoseIndex due to raw int32 here
615 {
616 if (ensure(SkeletonToCompactPose.IsValidIndex(SkeletonIndex)))
617 {
618 return SkeletonToCompactPose[SkeletonIndex];
619 }
620
622 }
623
630 {
631 if (SkeletonToCompactPose.IsValidIndex(SkeletonIndex.GetInt()))
632 {
633 return SkeletonToCompactPose[SkeletonIndex.GetInt()];
634 }
635
637 }
638
645 {
646 return SkeletonToCompactPose.IsValidIndex(SkeletonIndex.GetInt());
647 }
648
650 {
651 return FMeshPoseBoneIndex(GetBoneIndicesArray()[BoneIndex.GetInt()]);
652 }
653
655 {
656 return FCompactPoseBoneIndex(GetBoneIndicesArray().IndexOfByKey(BoneIndex.GetInt()));
657 }
658
659 UE_DEPRECATED(5.3, "Please use CacheRequiredAnimCurves with a FCurveFilterSettings.")
665
668
671
672#if DO_CHECK
674 int32 GetCalculatedForLOD() const { return CalculatedForLOD; }
675#endif
676
677 // Curve remapping
680
681 // Get the serial number of this bone container. @see SerialNumber
682 uint16 GetSerialNumber() const { return SerialNumber; }
683
684private:
689 mutable TMap<FRetargetSourceCachedDataKey, FRetargetSourceCachedData> RetargetSourceCachedDataLUT;
690
693
695 ENGINE_API void RemapFromSkelMesh(USkeletalMesh const & SourceSkeletalMesh, USkeleton& TargetSkeleton);
696
698 ENGINE_API void RemapFromSkeleton(USkeleton const & SourceSkeleton);
699
700 // Regenerate the serial number after internal data is updated
701 ENGINE_API void RegenerateSerialNumber();
702};
703
704
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define ensure( InExpression)
Definition AssertionMacros.h:464
uint16 FBoneIndexType
Definition BoneIndices.h:7
#define WITH_EDITOR
Definition Build.h:67
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
return true
Definition ExternalRpcRegistry.cpp:601
constexpr uint32 HashCombine(uint32 A, uint32 C)
Definition TypeHash.h:36
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition NameTypes.h:617
Definition ArrayView.h:139
Definition Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_NODEBUG UE_FORCEINLINE_HINT bool IsValidIndex(SizeType Index) const
Definition Array.h:1122
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
UE_FORCEINLINE_HINT ObjectType * Get() const
Definition SharedPointer.h:1065
UE_FORCEINLINE_HINT const bool IsValid() const
Definition SharedPointer.h:1085
Definition Object.h:95
Definition SkeletalMesh.h:440
Definition Skeleton.h:295
Definition AnimationAsset.h:38
uint16 UID_Type
Definition AnimationAsset.h:39
Definition AnimationAsset.h:42
ECurveFilterMode
Definition AnimCurveFilter.h:35
U16 Index
Definition radfft.cpp:71
Definition AnimCurveMetadata.h:17
Definition AnimCurveTypes.h:1041
Definition BoneContainer.h:528
const FBoneContainer & BoneContainer
Definition BoneContainer.h:529
FRangedForReverseSupport(const FBoneContainer &InBoneContainer)
Definition BoneContainer.h:531
IterType begin()
Definition BoneContainer.h:533
IterType end()
Definition BoneContainer.h:534
Definition BoneContainer.h:517
FRangedForSupport(const FBoneContainer &InBoneContainer)
Definition BoneContainer.h:520
IterType begin()
Definition BoneContainer.h:522
IterType end()
Definition BoneContainer.h:523
const FBoneContainer & BoneContainer
Definition BoneContainer.h:518
Definition BoneContainer.h:192
const bool IsValid() const
Definition BoneContainer.h:270
const TArray< FBoneIndexType > & GetBoneIndicesArray() const
Definition BoneContainer.h:342
ENGINE_API TArray< uint16 > const & GetUIDToArrayLookupTable() const
Definition BoneContainer.cpp:591
const TArray< FCompactPoseBoneIndex > & GetCompactPoseParentBoneArray() const
Definition BoneContainer.h:366
ENGINE_API int32 GetDepthBetweenBones(const int32 BoneIndex, const int32 ParentBoneIndex) const
Definition BoneContainer.cpp:526
const int32 GetNumBones() const
Definition BoneContainer.h:408
const int32 GetCompactPoseNumBones() const
Definition BoneContainer.h:413
UE_DEPRECATED(5.0, "GetUIDToNameLookupTable is deprecated, please access from the SmartNameMapping directly via GetSkeletonAsset()->GetSmartNameContainer(USkeleton::AnimCurveMappingName)") TArray< FName > const &GetUIDToNameLookupTable() const
Definition BoneContainer.h:454
ENGINE_API void InitializeTo(const TArrayView< const FBoneIndexType > &InRequiredBoneIndexArray, const UE::Anim::FCurveFilterSettings &InCurveFilterSettings, const UObject &InAsset)
Definition BoneContainer.cpp:84
bool GetDisableRetargeting() const
Definition BoneContainer.h:309
ENGINE_API void CacheRequiredAnimCurves(const UE::Anim::FCurveFilterSettings &InCurveFilterSettings)
Definition BoneContainer.cpp:268
ENGINE_API FBoneContainer()
Definition BoneContainer.cpp:20
ENGINE_API bool BoneIsChildOf(const int32 BoneIndex, const int32 ParentBoneIndex) const
Definition BoneContainer.cpp:533
const FReferenceSkeleton & GetReferenceSkeleton() const
Definition BoneContainer.h:402
void SetUseSourceData(bool InbUseSourceData)
Definition BoneContainer.h:327
FRangedForReverseSupport< FCompactPoseBoneIndexReverseIterator > ForEachCompactPoseBoneIndexReverse() const
Definition BoneContainer.h:541
USkeletalMesh * GetSkeletalMeshAsset() const
Definition BoneContainer.h:287
ENGINE_API int32 GetPoseBoneIndexForBoneName(const FName &BoneName) const
Definition BoneContainer.cpp:506
TArray< int32 > const & GetSkeletonToPoseBoneIndexArray() const
Definition BoneContainer.h:503
TArray< int32 > const & GetPoseToSkeletonBoneIndexArray() const
Definition BoneContainer.h:510
bool ShouldUseSourceData() const
Definition BoneContainer.h:333
const TArray< FVirtualBoneCompactPoseData > & GetVirtualBoneCompactPoseData() const
Definition BoneContainer.h:350
void SetUseRAWData(bool InbUseRAWData)
Definition BoneContainer.h:315
FCompactPoseBoneIndex MakeCompactPoseIndex(const FMeshPoseBoneIndex &BoneIndex) const
Definition BoneContainer.h:654
FCompactPoseBoneIndexIterator MakeEndIter() const
Definition BoneContainer.h:549
FRangedForSupport< FCompactPoseBoneIndexIterator > ForEachCompactPoseBoneIndex() const
Definition BoneContainer.h:537
ENGINE_API TArray< SmartName::UID_Type > const & GetUIDToArrayLookupTableBackup() const
Definition BoneContainer.cpp:608
UObject * GetAsset() const
Definition BoneContainer.h:281
const UE::Anim::FCurveFilter & GetCurveFilter() const
Definition BoneContainer.h:437
FCompactPoseBoneIndex GetCompactPoseIndexFromSkeletonIndex(const int32 SkeletonIndex) const
Definition BoneContainer.h:614
FCompactPoseBoneIndexReverseIterator MakeBeginIterReverse() const
Definition BoneContainer.h:553
void SetRefPoseOverride(const TSharedPtr< FSkelMeshRefPoseOverride > &InRefPoseOverride)
Definition BoneContainer.h:393
bool IsSkeletonPoseIndexValid(const FSkeletonPoseBoneIndex &SkeletonIndex) const
Definition BoneContainer.h:644
const UE::Anim::FBulkCurveFlags & GetCurveFlags() const
Definition BoneContainer.h:443
void CacheRequiredAnimCurveUids(const FCurveEvaluationOption &CurveEvalOption)
Definition BoneContainer.h:660
ENGINE_API int32 GetUIDToArrayIndexLookupTableValidCount() const
Definition BoneContainer.cpp:597
uint16 GetSerialNumber() const
Definition BoneContainer.h:682
FCompactPoseBoneIndexIterator MakeBeginIter() const
Definition BoneContainer.h:545
ENGINE_API int32 GetParentBoneIndex(const int32 BoneIndex) const
Definition BoneContainer.cpp:512
FSkeletonPoseBoneIndex GetSkeletonPoseIndexFromCompactPoseIndex(const FCompactPoseBoneIndex &BoneIndex) const
Definition BoneContainer.h:603
ENGINE_API void Reset()
Definition BoneContainer.cpp:93
void SetDisableRetargeting(bool InbDisableRetargeting)
Definition BoneContainer.h:303
USkeleton * GetSkeletonAsset(bool bEvenIfUnreachable=false) const
Definition BoneContainer.h:293
FMeshPoseBoneIndex GetMeshPoseIndexFromSkeletonPoseIndex(const FSkeletonPoseBoneIndex &SkeletonIndex) const
Definition BoneContainer.h:567
int32 GetSkeletonIndex(const FCompactPoseBoneIndex &BoneIndex) const
Definition BoneContainer.h:593
bool Contains(FBoneIndexType NewIndex) const
Definition BoneContainer.h:496
FCompactPoseBoneIndex GetCompactPoseIndexFromSkeletonPoseIndex(const FSkeletonPoseBoneIndex &SkeletonIndex) const
Definition BoneContainer.h:629
ENGINE_API const FRetargetSourceCachedData & GetRetargetSourceCachedData(const FName &InRetargetSource) const
Definition BoneContainer.cpp:404
UE_DEPRECATED(5.0, "GetUIDToCurveTypeLookupTable is deprecated, please access from the SmartNameMapping directly via GetSkeletonAsset()->GetSmartNameContainer(USkeleton::AnimCurveMappingName)") ENGINE_API TArray< FAnimCurveType > const &GetUIDToCurveTypeLookupTable() const
FSkeletonPoseBoneIndex GetSkeletonPoseIndexFromMeshPoseIndex(const FMeshPoseBoneIndex &MeshIndex) const
Definition BoneContainer.h:582
ENGINE_API void MarkAllCachedCurveMappingsDirty()
const TBitArray & GetBoneSwitchArray() const
Definition BoneContainer.h:355
FCompactPoseBoneIndexReverseIterator MakeEndIterReverse() const
Definition BoneContainer.h:557
void FillWithCompactRefPose(ArrayType &OutTransforms) const
Definition BoneContainer.h:373
FMeshPoseBoneIndex MakeMeshPoseIndex(const FCompactPoseBoneIndex &BoneIndex) const
Definition BoneContainer.h:649
ENGINE_API const FCachedSkeletonCurveMapping & GetOrCreateCachedCurveMapping(const FSkeletonRemapping *SkeletonRemapping)
bool ShouldUseRawData() const
Definition BoneContainer.h:321
const TArray< FTransform > & GetRefPoseArray() const
Definition BoneContainer.h:361
const FTransform & GetRefPoseTransform(const FCompactPoseBoneIndex &BoneIndex) const
Definition BoneContainer.h:386
int32 GetInt() const
Definition BoneIndices.h:14
Definition BoneContainer.h:123
TArray< SmartName::UID_Type > UIDToArrayIndices
Definition BoneContainer.h:124
bool bIsDirty
Definition BoneContainer.h:125
Definition BoneContainer.h:140
FCompactPoseBoneIndex operator*() const
Definition BoneContainer.h:148
bool operator==(FCompactPoseBoneIndexIterator &Rhs)
Definition BoneContainer.h:146
FCompactPoseBoneIndexIterator(int32 InIndex)
Definition BoneContainer.h:143
FCompactPoseBoneIndexIterator & operator++()
Definition BoneContainer.h:145
int32 Index
Definition BoneContainer.h:141
bool operator!=(FCompactPoseBoneIndexIterator &Rhs)
Definition BoneContainer.h:147
Definition BoneContainer.h:153
bool operator==(FCompactPoseBoneIndexReverseIterator &Rhs)
Definition BoneContainer.h:159
bool operator!=(FCompactPoseBoneIndexReverseIterator &Rhs)
Definition BoneContainer.h:160
FCompactPoseBoneIndexReverseIterator(int32 InIndex)
Definition BoneContainer.h:156
FCompactPoseBoneIndex operator*() const
Definition BoneContainer.h:161
int32 Index
Definition BoneContainer.h:154
FCompactPoseBoneIndexReverseIterator & operator++()
Definition BoneContainer.h:158
Definition BoneIndices.h:63
Definition BoneContainer.h:57
int32 LODIndex
Definition BoneContainer.h:60
bool bAllowCurveEvaluation
Definition BoneContainer.h:58
const TArray< FName > * DisallowedList
Definition BoneContainer.h:59
Definition BoneIndices.h:71
Definition BoneContainer.h:97
FOrientAndScaleRetargetingCachedData(const FQuat &InTranslationDeltaOrient, const float InTranslationScale, const FVector &InSourceTranslation, const FVector &InTargetTranslation)
Definition BoneContainer.h:104
FVector TargetTranslation
Definition BoneContainer.h:101
float TranslationScale
Definition BoneContainer.h:99
FVector SourceTranslation
Definition BoneContainer.h:100
FQuat TranslationDeltaOrient
Definition BoneContainer.h:98
Definition ReferenceSkeleton.h:100
Definition ResourceArray.h:31
Definition BoneContainer.h:165
friend uint32 GetTypeHash(const FRetargetSourceCachedDataKey &Obj)
Definition BoneContainer.h:179
bool operator==(const FRetargetSourceCachedDataKey &Other) const
Definition BoneContainer.h:175
FName SourceRetargetName
Definition BoneContainer.h:167
FTopLevelAssetPath SourceSkeletonPath
Definition BoneContainer.h:166
FRetargetSourceCachedDataKey(const UObject *Skeleton, const FName &InSourceRetargetName)
Definition BoneContainer.h:169
Definition BoneContainer.h:130
TArray< int32 > CompactPoseIndexToOrientAndScaleIndex
Definition BoneContainer.h:135
TArray< FOrientAndScaleRetargetingCachedData > OrientAndScaleData
Definition BoneContainer.h:132
Definition BoneContainer.h:29
TArray< FTransform > RefBonePoses
Definition BoneContainer.h:33
TArray< FMatrix44f > RefBasesInvMatrix
Definition BoneContainer.h:31
Definition BoneIndices.h:79
Definition SkeletonRemapping.h:11
Definition TopLevelAssetPath.h:38
Definition BoneContainer.h:40
FCompactPoseBoneIndex SourceIndex
Definition BoneContainer.h:44
FVirtualBoneCompactPoseData(FCompactPoseBoneIndex InVBIndex, FCompactPoseBoneIndex InSourceIndex, FCompactPoseBoneIndex InTargetIndex)
Definition BoneContainer.h:48
FCompactPoseBoneIndex TargetIndex
Definition BoneContainer.h:46
FCompactPoseBoneIndex VBIndex
Definition BoneContainer.h:42
Definition WeakObjectPtrTemplates.h:25
FORCEINLINE T * GetEvenIfUnreachable() const
Definition WeakObjectPtrTemplates.h:189
FORCEINLINE T * Get(bool bEvenIfPendingKill) const
Definition WeakObjectPtrTemplates.h:132
Definition AnimCurveElementFlags.h:47
Definition BoneContainer.h:76
UE::Anim::ECurveFilterMode FilterMode
Definition BoneContainer.h:87
const TArray< FName > * FilterCurves
Definition BoneContainer.h:84
int32 LODIndex
Definition BoneContainer.h:90
FCurveFilterSettings(UE::Anim::ECurveFilterMode InFilterMode=UE::Anim::ECurveFilterMode::DisallowFiltered, const TArray< FName > *InFilterCurves=nullptr, int32 InLODIndex=0)
Definition BoneContainer.h:77
Definition AnimCurveFilter.h:68