UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AnimBank.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "AnimationAsset.h"
10#include "IO/IoHash.h"
11#include "Logging/LogMacros.h"
12#include "RenderCommandFence.h"
13#include "SkinningDefinitions.h"
14#include "UObject/ObjectPtr.h"
16
17#include "AnimBank.generated.h"
18
20
22enum class EQueuedWorkPriority : uint8;
24
25struct FRenderBounds;
27class USkinnedAsset;
28class UInstancedSkinnedMeshComponent;
29class FAnimBankBuildAsyncCacheTask;
30
32{
33 // Bone transforms in global pose.
36
37 // A map to go from the mesh skeleton bone index to anim skeleton bone index.
39
40 // Retargeting table to go from the anim skeleton to the mesh skeleton.
42
43 // Inverse global space transforms
46
48};
49
51{
52 Ar << AssetMapping.MeshGlobalRefPose;
53 Ar << AssetMapping.AnimGlobalRefPose;
54 Ar << AssetMapping.MeshToAnimIndexMap;
55 Ar << AssetMapping.RetargetingTable;
56 Ar << AssetMapping.PositionKeys;
57 Ar << AssetMapping.RotationKeys;
58 Ar << AssetMapping.BoneCount;
59 return Ar;
60}
61
63{
67
89
90 float Position = 0.0f;
91 float PlayRate = 1.0f;
92
96
97 inline bool IsLooping() const
98 {
99 return (Flags & ANIM_BANK_FLAG_LOOPING) != 0;
100 }
101
102 inline bool IsAutoStart() const
103 {
104 return (Flags & ANIM_BANK_FLAG_AUTOSTART) != 0;
105 }
106};
107
109{
110 Ar << BankEntry.PositionKeys;
111 Ar << BankEntry.RotationKeys;
112 Ar << BankEntry.ScalingKeys;
113 Ar << BankEntry.SampledBounds;
114 Ar << BankEntry.Position;
115 Ar << BankEntry.PlayRate;
116 Ar << BankEntry.FrameCount;
117 Ar << BankEntry.KeyCount;
118 Ar << BankEntry.Flags;
119 return Ar;
120}
121
127
129{
130 Ar << BankData.Mapping;
131 Ar << BankData.Entries;
132 return Ar;
133}
134
135USTRUCT(BlueprintType)
137{
139
140 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Animation)
141 TObjectPtr<class UAnimSequence> Sequence;
142
143 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Animation, meta = (DisplayName = "Looping"))
144 uint32 bLooping : 1;
145
146 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Animation, meta = (DisplayName = "AutoStart"))
147 uint32 bAutoStart : 1;
148
149 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Animation, meta = (DisplayName = "Position"))
150 float Position;
151
152 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Animation, meta = (DisplayName = "PlayRate"))
153 float PlayRate;
154
160 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Animation, meta = (UIMin = "1", UIMax = "10.0"))
161 float BoundsScale;
162
164 {
165 Sequence = nullptr;
166 BoundsScale = 1.0f;
167 PlayRate = 1.0f;
168 bLooping = true;
169 bAutoStart = true;
170 Position = 0.0f;
171 }
172
173 ENGINE_API void ValidatePosition();
174};
175
176UCLASS(BlueprintType, hidecategories=Object, editinlinenew, MinimalAPI)
178{
180
181private:
182#if WITH_EDITOR
184#endif
185
186public:
187#if WITH_EDITORONLY_DATA
188 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Sequences, meta = (ShowOnlyInnerProperties))
190
191 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Mapping, meta = (ShowOnlyInnerProperties))
193#endif
194
195public:
196 virtual void Serialize(FArchive& Ar) override;
197 virtual void PostLoad() override;
198 virtual void PreSave(FObjectPreSaveContext ObjectSaveContext) override;
199 virtual void BeginDestroy() override;
200 virtual bool IsReadyForFinishDestroy() override;
201 virtual bool NeedsLoadForTargetPlatform(const ITargetPlatform* TargetPlatform) const override;
202
203 virtual void GetResourceSizeEx(FResourceSizeEx& CumulativeResourceSize) override;
204
205 void InitResources();
206 void ReleaseResources();
207
208 inline const FAnimBankData& GetData() const
209 {
210#if WITH_EDITOR
211 check(!IsCompiling());
212#endif
213 return Data;
214 }
215
216#if WITH_EDITOR
217 virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
218 virtual void BeginCacheForCookedPlatformData(const ITargetPlatform* TargetPlatform) override;
219 virtual bool IsCachedCookedPlatformDataLoaded(const ITargetPlatform* TargetPlatform) override;
220 virtual void ClearAllCachedCookedPlatformData() override;
221
222 virtual bool GetAllAnimationSequencesReferred(TArray<UAnimationAsset*>& AnimationAssets, bool bRecursive = true) override;
223 virtual void ReplaceReferredAnimations(const TMap<UAnimationAsset*, UAnimationAsset*>& ReplacementMap) override;
224
226 bool IsCompiling() const override;
227
231 bool TryCancelAsyncTasks();
232
234 bool IsAsyncTaskComplete() const;
235
240 bool WaitForAsyncTasks(float TimeLimitSeconds);
241
243 void FinishAsyncTasks();
244
245 typedef FOnGPUDataChanged::FDelegate FOnRebuild;
250#endif
251
252private:
253#if WITH_EDITOR
254 friend class FAnimBankCompilingManager;
256
257 FIoHash CreateDerivedDataKeyHash(const ITargetPlatform* TargetPlatform);
258 FIoHash BeginCacheDerivedData(const ITargetPlatform* TargetPlatform);
259 bool PollCacheDerivedData(const FIoHash& KeyHash) const;
260 void EndCacheDerivedData(const FIoHash& KeyHash);
261
263 FAnimBankData& CacheDerivedData(const ITargetPlatform* TargetPlatform);
264#endif
265
266private:
267 bool bIsInitialized = false;
268
269 FAnimBankData Data;
270 FRenderCommandFence ReleaseResourcesFence;
271
272#if WITH_EDITOR
276
278
281#endif
282};
283
284struct FSoftAnimBankItem;
285
286USTRUCT(BlueprintType)
288{
290
291 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Animation)
293
294 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Animation)
296
300
301 ENGINE_API bool operator!=(const FAnimBankItem& Other) const;
302 ENGINE_API bool operator==(const FAnimBankItem& Other) const;
303};
304
306{
307 return HashCombine(GetTypeHash(Key.BankAsset.Get()), GetTypeHash(Key.SequenceIndex));
308}
309
311{
312 uint32 Hash = 0;
313 for (const FAnimBankItem& BankItem : InBankItems)
314 {
316 }
317 return Hash;
318}
319
320USTRUCT(BlueprintType)
322{
324
325 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Animation)
327
328 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Animation)
330
334
335 ENGINE_API bool operator!=(const FSoftAnimBankItem& Other) const;
336 ENGINE_API bool operator==(const FSoftAnimBankItem& Other) const;
337};
338
340{
341 return HashCombine(GetTypeHash(Key.BankAsset.Get()), GetTypeHash(Key.SequenceIndex));
342}
343
345{
346 uint32 Hash = 0;
348 {
350 }
351 return Hash;
352}
353
354USTRUCT()
356{
362
363 ENGINE_API UInstancedSkinnedMeshComponent* CreateComponent(UObject* Outer, FName Name = NAME_None, EObjectFlags ObjectFlags = EObjectFlags::RF_NoFlags) const;
364
365 ENGINE_API virtual void InitFrom(const UInstancedSkinnedMeshComponent* Component, bool bInitBodyInstance = true);
366 ENGINE_API virtual void InitComponent(UInstancedSkinnedMeshComponent* ISMComponent) const;
367
370
371public:
372 UPROPERTY()
374
375 UPROPERTY(EditAnywhere, Category = "Component Settings")
377
378 UPROPERTY(EditAnywhere, Category = "Component Settings")
379 TSubclassOf<UInstancedSkinnedMeshComponent> ComponentClass;
380
381 UPROPERTY(EditAnywhere, Category = "Component Settings")
382 int32 InstanceMinDrawDistance;
383
384 UPROPERTY(EditAnywhere, Category = "Component Settings")
385 int32 InstanceStartCullDistance;
386
387 UPROPERTY(EditAnywhere, Category = "Component Settings")
388 int32 InstanceEndCullDistance;
389
390 UPROPERTY(EditAnywhere, Category = "Component Settings")
391 uint8 bCastShadow : 1;
392
393 UPROPERTY(EditAnywhere, Category = "Component Settings", meta = (EditCondition = "bCastShadow"))
394 uint8 bCastDynamicShadow : 1;
395
396 UPROPERTY(EditAnywhere, Category = "Component Settings", meta = (EditCondition = "bCastShadow"))
397 uint8 bCastStaticShadow : 1;
398
399 UPROPERTY(EditAnywhere, Category = "Component Settings", meta = (EditCondition = "bCastShadow"))
400 uint8 bCastVolumetricTranslucentShadow : 1;
401
402 UPROPERTY(EditAnywhere, Category = "Component Settings", meta = (EditCondition = "bCastShadow"))
403 uint8 bCastContactShadow : 1;
404
405 UPROPERTY(EditAnywhere, Category = "Component Settings", meta = (EditCondition = "bCastShadow"))
406 uint8 bSelfShadowOnly : 1;
407
408 UPROPERTY(EditAnywhere, Category = "Component Settings", meta = (EditCondition = "bCastShadow"))
409 uint8 bCastFarShadow : 1;
410
411 UPROPERTY(EditAnywhere, Category = "Component Settings", meta = (EditCondition = "bCastShadow"))
412 uint8 bCastInsetShadow : 1;
413
414 UPROPERTY(EditAnywhere, Category = "Component Settings", meta = (EditCondition = "bCastShadow"))
415 uint8 bCastCinematicShadow : 1;
416
417 UPROPERTY(EditAnywhere, Category = "Component Settings", meta = (EditCondition = "bCastShadow"))
418 uint8 bCastShadowAsTwoSided : 1;
419
420 UPROPERTY(EditAnywhere, Category = "Component Settings")
421 bool bVisibleInRayTracing = true;
422
423 UPROPERTY(EditAnywhere, Category = "Component Settings")
424 bool bAffectDynamicIndirectLighting = true;
425
426 UPROPERTY(EditAnywhere, Category = "Component Settings")
427 bool bAffectDistanceFieldLighting = true;
428
429 UPROPERTY()
430 FBox PrimitiveBoundsOverride;
431
432 UPROPERTY()
433 bool bIsInstanceDataGPUOnly = false;
434
435 UPROPERTY()
436 int32 NumInstancesGPUOnly = 0;
437
438 UPROPERTY()
439 int32 NumCustomDataFloatsGPUOnly = 0;
440
441#if WITH_EDITORONLY_DATA
442 UPROPERTY(EditAnywhere, Category = "Component Settings")
444
445 UPROPERTY(EditAnywhere, Category = "Component Settings")
447#endif
448};
449
450USTRUCT()
452{
454
460
461 ENGINE_API UInstancedSkinnedMeshComponent* CreateComponent(UObject* Outer, FName Name = NAME_None, EObjectFlags ObjectFlags = EObjectFlags::RF_NoFlags) const;
462
463 ENGINE_API virtual void InitFrom(const UInstancedSkinnedMeshComponent* Component, bool bInitBodyInstance = true);
464 ENGINE_API virtual uint32 ComputeHash() const;
465 ENGINE_API virtual void InitComponent(UInstancedSkinnedMeshComponent* ISMComponent) const;
466
467 ENGINE_API void PostLoadFixup(UObject* Loader);
468
471
473 {
474 return Key.GetTypeHash();
475 }
476
478 {
479 if (Hash == 0)
480 {
481 ComputeHash();
482 }
483 return Hash;
484 }
485
486public:
487 UPROPERTY(EditAnywhere, Category = "Component Settings", meta = (DisplayAfter = "ComponentClass"))
488 TObjectPtr<class USkinnedAsset> SkinnedAsset;
489
490 UPROPERTY(EditAnywhere, Category = "Component Settings", meta = (DisplayAfter = "SkinnedAsset"))
491 TObjectPtr<class UTransformProviderData> TransformProvider;
492};
493
494USTRUCT()
496{
498
504
505 ENGINE_API UInstancedSkinnedMeshComponent* CreateComponent(UObject* Outer, FName Name = NAME_None, EObjectFlags ObjectFlags = EObjectFlags::RF_NoFlags) const;
506
507 ENGINE_API virtual void InitFrom(const UInstancedSkinnedMeshComponent* Component, bool bInitBodyInstance = true);
508 ENGINE_API virtual uint32 ComputeHash() const;
509 ENGINE_API virtual void InitComponent(UInstancedSkinnedMeshComponent* ISMComponent) const;
510
511 ENGINE_API void PostLoadFixup(UObject* Loader);
512
515
517 {
518 return Key.GetTypeHash();
519 }
520
522 {
523 if (Hash == 0)
524 {
525 ComputeHash();
526 }
527 return Hash;
528 }
529
530public:
531 UPROPERTY(EditAnywhere, Category = "Component Settings", meta = (DisplayAfter = "ComponentClass"))
532 TSoftObjectPtr<class USkinnedAsset> SkinnedAsset;
533
534 UPROPERTY(EditAnywhere, Category = "Component Settings", meta = (DisplayAfter = "SkinnedAsset"))
535 TSoftObjectPtr<class UTransformProviderData> TransformProvider;
536};
537
539{
541
544
546 float Position = 0.0f;
547 float PlayRate = 1.0f;
550
551 ENGINE_API uint32 GetHash() const;
552
553 friend uint32 GetTypeHash(const FAnimBankDesc& Desc)
554 {
555 return Desc.GetHash();
556 }
557};
558
560{
563
564 inline bool IsValid() const
565 {
566 return Id != INDEX_NONE && Hash != 0u;
567 }
568};
569
592
593struct FAnimBankDescKeyFuncs : TDefaultMapHashableKeyFuncs<FAnimBankDesc, FAnimBankRecord, false>
594{
595 static inline bool Matches(KeyInitType A, KeyInitType B)
596 {
597 return
598 A.BankAsset == B.BankAsset &&
599 A.SequenceIndex == B.SequenceIndex &&
600 A.Asset == B.Asset &&
601 A.Position == B.Position &&
602 A.PlayRate == B.PlayRate &&
603 A.bLooping == B.bLooping &&
604 A.bAutoStart == B.bAutoStart;
605 }
606
607 static inline uint32 GetKeyHash(KeyInitType Key)
608 {
609 return Key.GetHash();
610 }
611};
612
613UCLASS(config=Engine, hidecategories=Object, MinimalAPI, BlueprintType)
615{
617
618public:
619 virtual bool IsEnabled() const override;
620 virtual const FGuid& GetTransformProviderID() const override;
621 virtual bool UsesSkeletonBatching() const override;
622 virtual const uint32 GetUniqueAnimationCount() const override;
623 virtual bool HasAnimationBounds() const override;
624 virtual bool GetAnimationBounds(uint32 AnimationIndex, FRenderBounds& OutBounds) const override;
625 virtual uint32 GetSkinningDataOffset(int32 InstanceIndex, const FTransform& ComponentTransform, const FSkinnedMeshInstanceData& InstanceData) const override;
626 virtual FTransformProviderRenderProxy* CreateRenderThreadResources(FSkinningSceneExtensionProxy* SceneProxy, FSceneInterface& Scene, FRHICommandListBase& RHICmdList) override;
627 virtual void DestroyRenderThreadResources(FTransformProviderRenderProxy* ProviderProxy) override;
628 virtual bool IsCompiling() const override;
629
630#if WITH_EDITOR
631 void BeginCacheForCookedPlatformData(const ITargetPlatform* TargetPlatform) override;
632 bool IsCachedCookedPlatformDataLoaded(const ITargetPlatform* TargetPlatform) override;
633#endif
634
635public:
636 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = TransformProvider, meta = (ShowOnlyInnerProperties))
638};
639
641{
642 friend class UAnimBankData;
643
644public:
647 ENGINE_API virtual void CreateRenderThreadResources(FRHICommandListBase& RHICmdList) override;
648 ENGINE_API virtual void DestroyRenderThreadResources() override;
649 ENGINE_API virtual const TConstArrayView<uint64> GetProviderData(bool& bOutValid) const override;
650
651private:
652 FSkinningSceneExtensionProxy* SceneProxy = nullptr;
653 TObjectPtr<const class USkinnedAsset> SkinnedAsset = nullptr;
655 TArray<uint64> AnimBankIds;
656 TArray<FAnimBankRecordHandle> AnimBankHandles;
658 uint32 UniqueAnimationCount = 0;
659};
660
662
664{
665
666// Convert a list of transforms from bone/local space to mesh/global space by walking through the
667// hierarchy of a reference skeleton.
668ENGINE_API void ConvertLocalToGlobalSpaceTransforms(
672);
673
674ENGINE_API void BuildSkinnedAssetMapping(const USkinnedAsset& Asset, FSkinnedAssetMapping& Mapping);
675
676}
uint32 GetTypeHash(const FAnimBankItem &Key)
Definition AnimBank.h:305
FArchive & operator<<(FArchive &Ar, FSkinnedAssetMapping &AssetMapping)
Definition AnimBank.h:50
#define check(expr)
Definition AssertionMacros.h:314
ENoInit
Definition CoreMiscDefines.h:158
@ INDEX_NONE
Definition CoreMiscDefines.h:150
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
#define DECLARE_EVENT_OneParam(OwningType, EventName, Param1Type)
Definition DelegateCombinations.h:51
#define DECLARE_MULTICAST_DELEGATE(DelegateName)
Definition DelegateCombinations.h:23
return true
Definition ExternalRpcRegistry.cpp:601
EHLODBatchingPolicy
Definition HLODBatchingPolicy.h:14
void * FDelegateUserObject
Definition IDelegateInstance.h:107
UE_FORCEINLINE_HINT bool operator!=(const FIndexedPointer &Other) const
Definition LockFreeList.h:76
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
EObjectFlags
Definition ObjectMacros.h:552
@ RF_NoFlags
No flags, used to avoid a cast.
Definition ObjectMacros.h:555
#define UCLASS(...)
Definition ObjectMacros.h:776
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
EQueuedWorkPriority
Definition QueuedThreadPool.h:14
uint64 ComputeHash(const FRHITextureCreateInfo &InCreateInfo, uint64 HeapOffset)
Definition RHICoreTransientResourceAllocator.h:15
constexpr uint32 HashCombine(uint32 A, uint32 C)
Definition TypeHash.h:36
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Engine.Build.cs:7
Definition RobinHoodHashTable.h:72
Definition RobinHoodHashTable.h:27
Definition AnimBank.h:641
Definition Archive.h:1208
Definition IDelegateInstance.h:14
Definition NameTypes.h:617
Definition ObjectSaveContext.h:244
Definition QueuedThreadPool.h:105
Definition RHICommandList.h:455
Definition RenderCommandFence.h:15
Definition SceneInterface.h:106
Definition SkinningSceneExtensionProxy.h:17
Definition TransformProviderData.h:19
Definition Interface_AsyncCompilation.h:21
Definition Array.h:670
Definition EnumAsByte.h:22
Definition UnrealString.h.inl:34
Definition SubclassOf.h:30
Definition AnimBank.h:615
TArray< struct FAnimBankItem > AnimBankItems
Definition AnimBank.h:637
virtual FTransformProviderRenderProxy * CreateRenderThreadResources(FSkinningSceneExtensionProxy *SceneProxy, FSceneInterface &Scene, FRHICommandListBase &RHICmdList) override
Definition AnimBank.cpp:1291
virtual void DestroyRenderThreadResources(FTransformProviderRenderProxy *ProviderProxy) override
Definition AnimBank.cpp:1298
Definition AnimBank.h:178
const FAnimBankData & GetData() const
Definition AnimBank.h:208
Definition AnimSequence.h:203
Definition AnimationAsset.h:1020
Definition Object.h:95
Definition SkinnedAsset.h:47
Definition TransformProviderData.h:38
Definition EngineTypes.h:3787
Definition AnimBank.h:664
@ false
Definition radaudio_common.h:23
Definition AnimBank.h:123
TArray< FAnimBankEntry > Entries
Definition AnimBank.h:125
FSkinnedAssetMapping Mapping
Definition AnimBank.h:124
Definition AnimBank.h:594
static bool Matches(KeyInitType A, KeyInitType B)
Definition AnimBank.h:595
static uint32 GetKeyHash(KeyInitType Key)
Definition AnimBank.h:607
Definition AnimBank.h:539
friend uint32 GetTypeHash(const FAnimBankDesc &Desc)
Definition AnimBank.h:553
TWeakObjectPtr< const UAnimBank > BankAsset
Definition AnimBank.h:542
ENGINE_API uint32 GetHash() const
Definition AnimBank.cpp:1418
uint8 bAutoStart
Definition AnimBank.h:549
uint8 bLooping
Definition AnimBank.h:548
Experimental::FHashType FDescHash
Definition AnimBank.h:540
TWeakObjectPtr< const USkinnedAsset > Asset
Definition AnimBank.h:543
Definition AnimBank.h:63
uint32 Flags
Definition AnimBank.h:95
bool IsAutoStart() const
Definition AnimBank.h:102
TArray< FVector3f > PositionKeys
Definition AnimBank.h:64
float Position
Definition AnimBank.h:90
FBoxSphereBounds SampledBounds
Definition AnimBank.h:88
float PlayRate
Definition AnimBank.h:91
TArray< FVector3f > ScalingKeys
Definition AnimBank.h:66
uint32 KeyCount
Definition AnimBank.h:94
TArray< FQuat4f > RotationKeys
Definition AnimBank.h:65
bool IsLooping() const
Definition AnimBank.h:97
uint32 FrameCount
Definition AnimBank.h:93
Definition AnimBank.h:288
Definition AnimBank.h:560
bool IsValid() const
Definition AnimBank.h:564
int32 Id
Definition AnimBank.h:561
uint32 Hash
Definition AnimBank.h:562
Definition AnimBank.h:571
int32 FrameCount
Definition AnimBank.h:578
int32 ReferenceCount
Definition AnimBank.h:579
Experimental::FHashElementId FRecordId
Definition AnimBank.h:572
float PreviousTime
Definition AnimBank.h:590
TArray< FVector3f > PositionKeys
Definition AnimBank.h:584
int32 RecordId
Definition AnimBank.h:575
TArray< FQuat4f > RotationKeys
Definition AnimBank.h:585
uint8 Playing
Definition AnimBank.h:588
float CurrentTime
Definition AnimBank.h:589
int32 KeyOffset
Definition AnimBank.h:576
uint32 KeyCount
Definition AnimBank.h:577
FSkinnedAssetMapping AssetMapping
Definition AnimBank.h:582
FAnimBankDesc Desc
Definition AnimBank.h:574
Definition AnimBank.h:137
Definition Guid.h:109
Definition IoHash.h:33
Definition UnrealType.h:6865
Definition ReferenceSkeleton.h:100
Definition RenderTransform.h:272
Definition ResourceSize.h:31
Definition AnimBank.h:32
TArray< FVector3f > PositionKeys
Definition AnimBank.h:44
TArray< FQuat4f > RotationKeys
Definition AnimBank.h:45
TArray< int32 > MeshToAnimIndexMap
Definition AnimBank.h:38
TArray< TTuple< FQuat, FQuat > > RetargetingTable
Definition AnimBank.h:41
TArray< FTransform > AnimGlobalRefPose
Definition AnimBank.h:35
TArray< FTransform > MeshGlobalRefPose
Definition AnimBank.h:34
uint32 BoneCount
Definition AnimBank.h:47
Definition AnimBank.h:356
virtual ENGINE_API ~FSkinnedMeshComponentDescriptorBase()
ENGINE_API FSkinnedMeshComponentDescriptorBase(const FSkinnedMeshComponentDescriptorBase &)
ENGINE_API UInstancedSkinnedMeshComponent * CreateComponent(UObject *Outer, FName Name=NAME_None, EObjectFlags ObjectFlags=EObjectFlags::RF_NoFlags) const
Definition AnimBank.h:452
virtual ENGINE_API ~FSkinnedMeshComponentDescriptor()
uint32 GetTypeHash() const
Definition AnimBank.h:477
friend uint32 GetTypeHash(const FSkinnedMeshComponentDescriptor &Key)
Definition AnimBank.h:472
ENGINE_API FSkinnedMeshComponentDescriptor(const FSkinnedMeshComponentDescriptor &)
Definition InstancedSkinnedMeshComponent.h:24
Definition AnimBank.h:322
ENGINE_API bool operator==(const FSoftAnimBankItem &Other) const
Definition AnimBank.cpp:1612
TSoftObjectPtr< UAnimBank > BankAsset
Definition AnimBank.h:326
int32 SequenceIndex
Definition AnimBank.h:329
Definition AnimBank.h:496
friend uint32 GetTypeHash(const FSoftSkinnedMeshComponentDescriptor &Key)
Definition AnimBank.h:516
uint32 GetTypeHash() const
Definition AnimBank.h:521
virtual ENGINE_API ~FSoftSkinnedMeshComponentDescriptor()
ENGINE_API FSoftSkinnedMeshComponentDescriptor(const FSoftSkinnedMeshComponentDescriptor &)
Definition Map.h:111
TTypeTraits< KeyType >::ConstPointerType KeyInitType
Definition Map.h:78
Definition ObjectPtr.h:488
Definition SoftObjectPtr.h:174
Definition WeakObjectPtrTemplates.h:25
Definition BoxSphereBounds.h:25