13#include "SkinningDefinitions.h"
17#include "AnimBank.generated.h"
28class UInstancedSkinnedMeshComponent;
29class FAnimBankBuildAsyncCacheTask;
152 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
Animation, meta = (DisplayName = "PlayRate"))
160 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
Animation, meta = (UIMin = "1", UIMax = "10.0"))
187#if WITH_EDITORONLY_DATA
188 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Sequences, meta = (ShowOnlyInnerProperties))
191 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Mapping, meta = (ShowOnlyInnerProperties))
199 virtual void BeginDestroy()
override;
200 virtual bool IsReadyForFinishDestroy()
override;
201 virtual bool NeedsLoadForTargetPlatform(
const ITargetPlatform* TargetPlatform)
const override;
205 void InitResources();
206 void ReleaseResources();
211 check(!IsCompiling());
226 bool IsCompiling()
const override;
240 bool WaitForAsyncTasks(
float TimeLimitSeconds);
245 typedef FOnGPUDataChanged::FDelegate
FOnRebuild;
267 bool bIsInitialized =
false;
366 ENGINE_API virtual void InitComponent(UInstancedSkinnedMeshComponent* ISMComponent)
const;
393 UPROPERTY(EditAnywhere, Category = "
Component Settings", meta = (EditCondition = "bCastShadow"))
396 UPROPERTY(EditAnywhere, Category = "
Component Settings", meta = (EditCondition = "bCastShadow"))
399 UPROPERTY(EditAnywhere, Category = "
Component Settings", meta = (EditCondition = "bCastShadow"))
400 uint8 bCastVolumetricTranslucentShadow : 1;
402 UPROPERTY(EditAnywhere, Category = "
Component Settings", meta = (EditCondition = "bCastShadow"))
405 UPROPERTY(EditAnywhere, Category = "
Component Settings", meta = (EditCondition = "bCastShadow"))
408 UPROPERTY(EditAnywhere, Category = "
Component Settings", meta = (EditCondition = "bCastShadow"))
411 UPROPERTY(EditAnywhere, Category = "
Component Settings", meta = (EditCondition = "bCastShadow"))
414 UPROPERTY(EditAnywhere, Category = "
Component Settings", meta = (EditCondition = "bCastShadow"))
417 UPROPERTY(EditAnywhere, Category = "
Component Settings", meta = (EditCondition = "bCastShadow"))
421 bool bVisibleInRayTracing =
true;
424 bool bAffectDynamicIndirectLighting =
true;
427 bool bAffectDistanceFieldLighting =
true;
433 bool bIsInstanceDataGPUOnly =
false;
439 int32 NumCustomDataFloatsGPUOnly = 0;
441#if WITH_EDITORONLY_DATA
442 UPROPERTY(EditAnywhere, Category =
"Component Settings")
465 ENGINE_API virtual void InitComponent(UInstancedSkinnedMeshComponent* ISMComponent)
const;
474 return Key.GetTypeHash();
487 UPROPERTY(EditAnywhere, Category =
"Component Settings", meta = (DisplayAfter =
"ComponentClass"))
490 UPROPERTY(EditAnywhere, Category = "
Component Settings", meta = (DisplayAfter = "SkinnedAsset"))
509 ENGINE_API virtual void InitComponent(UInstancedSkinnedMeshComponent* ISMComponent)
const;
518 return Key.GetTypeHash();
531 UPROPERTY(EditAnywhere, Category =
"Component Settings", meta = (DisplayAfter =
"ComponentClass"))
534 UPROPERTY(EditAnywhere, Category = "
Component Settings", meta = (DisplayAfter = "SkinnedAsset"))
547 float PlayRate = 1.0f;
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;
609 return Key.GetHash();
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;
628 virtual bool IsCompiling()
const override;
636 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = TransformProvider, meta = (ShowOnlyInnerProperties))
658 uint32 UniqueAnimationCount = 0;
668ENGINE_API void ConvertLocalToGlobalSpaceTransforms(
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
@ BeginCacheForCookedPlatformData
@ IsCachedCookedPlatformDataLoaded
ENoInit
Definition CoreMiscDefines.h:158
@ INDEX_NONE
Definition CoreMiscDefines.h:150
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
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 Interface_AsyncCompilation.h:21
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 SkinnedAsset.h:47
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
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 UnrealType.h:6865
Definition ReferenceSkeleton.h:100
Definition RenderTransform.h:272
Definition ResourceSize.h:31
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 &)
TTypeTraits< KeyType >::ConstPointerType KeyInitType
Definition Map.h:78
Definition ObjectPtr.h:488
Definition SoftObjectPtr.h:174
Definition WeakObjectPtrTemplates.h:25
Definition BoxSphereBounds.h:25