15#include "SkinWeightProfile.generated.h"
40 UPROPERTY(EditAnywhere, Category = SkinWeights)
44 UPROPERTY(EditAnywhere, Category = SkinWeights)
48 UPROPERTY(EditAnywhere, Category = SkinWeights, meta=(EditCondition="DefaultProfile", ClampMin=0, DisplayName = "
Default Profile
from LOD
Index"))
51#if WITH_EDITORONLY_DATA
52 UPROPERTY(VisibleAnywhere, Category = SkinWeights)
57#if WITH_EDITORONLY_DATA
91#if WITH_EDITORONLY_DATA
101#if WITH_EDITORONLY_DATA
187 if (!
Layers[LayerIndex].IsNone())
293 bool IsPendingReadback()
const;
294 void EnqueueGPUReadback();
295 bool IsGPUReadbackFinished()
const;
296 void EnqueueDataReadback();
297 bool IsDataReadbackPending()
const;
298 bool IsDataReadbackFinished()
const;
299 void ResetGPUReadback();
308 bool bDefaultOverridden =
false;
309 bool bStaticOverridden =
false;
uint16 FBoneIndexType
Definition BoneIndices.h:7
@ InPlace
Definition CoreMiscDefines.h:162
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
FArchive & operator<<(FArchive &Ar, FEnvQueryDebugProfileData::FStep &Data)
Definition EnvQueryTypes.cpp:489
#define MAX_TOTAL_INFLUENCES
Definition GPUSkinPublicDefs.h:12
void Init()
Definition LockFreeList.h:4
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define UE_REQUIRES(...)
Definition Requires.h:86
ENGINE_API FAutoConsoleVariableRef CVarSkinWeightsLoadByDefaultMode
ENGINE_API int32 GSkinWeightProfilesAllowedFromLOD
Definition SkinWeightProfile.cpp:130
ENGINE_API FAutoConsoleVariableRef CVarSkinWeightProfilesAllowedFromLOD
ENGINE_API int32 GSkinWeightProfilesDefaultLODOverride
Definition SkinWeightProfile.cpp:121
ENGINE_API int32 GSkinWeightProfilesLoadByDefaultMode
Definition SkinWeightProfile.cpp:107
ENGINE_API FAutoConsoleVariableRef CVarSkinWeightProfilesDefaultLODOverride
constexpr uint32 HashCombineFast(uint32 A, uint32 B)
Definition TypeHash.h:74
Definition Archive.h:1208
Definition IConsoleManager.h:1580
Definition NameTypes.h:617
Definition RHICommandList.h:455
Definition RHIResourceReplace.h:55
Definition SkinWeightProfileManager.h:54
Definition SkinWeightProfileManager.h:98
Definition SkinWeightVertexBuffer.h:364
Definition ArrayView.h:139
Definition UnrealString.h.inl:34
Definition StaticArray.h:26
Definition StringBuilder.h:509
Definition UniquePtr.h:107
Definition SkeletalMesh.h:440
const FName SkinWeights("SkinWeights")
Definition SkeletalMeshAttributes.h:25
Definition SkinWeightProfile.h:21
auto JoinBy(RangeType &&Range, ProjectionType Projection, DelimiterType &&Delimiter) -> Private::TJoinBy< RangeType, ProjectionType, DelimiterType >
Definition Join.h:159
U16 Index
Definition radfft.cpp:71
Definition SkinWeightProfile.h:88
uint32 InfluencesOffset
Definition SkinWeightProfile.h:90
friend FArchive & operator<<(FArchive &Ar, FSkinWeightOverrideInfo &OverrideInfo)
Definition SkinWeightProfile.cpp:168
Definition SkinWeightProfile.h:85
uint8 NumWeightsPerVertex
Definition SkinWeightProfile.h:114
bool b16BitBoneIndices
Definition SkinWeightProfile.h:115
TMap< uint32, uint32 > VertexIndexToInfluenceOffset
Definition SkinWeightProfile.h:112
void ApplyDefaultOverride(FSkinWeightVertexBuffer *Buffer) const
Definition SkinWeightProfile.cpp:882
TArray< uint8 > BoneIDs
Definition SkinWeightProfile.h:109
friend FArchive & operator<<(FArchive &Ar, FRuntimeSkinWeightProfileData &OverrideData)
Definition SkinWeightProfile.cpp:139
void ApplyOverrides(FSkinWeightVertexBuffer *OverrideBuffer) const
Definition SkinWeightProfile.cpp:847
TArray< uint8 > BoneWeights
Definition SkinWeightProfile.h:110
Definition SkinWeightProfile.h:36
Definition SkinWeightProfile.h:133
bool operator==(const FSkinWeightProfileStack &InProfileStack) const
Definition SkinWeightProfile.h:164
FName operator[](int32 InLayerIndex) const
Definition SkinWeightProfile.h:173
FString GetUniqueId() const
Definition SkinWeightProfile.h:218
void CopyIntoArray(FName OutProfileNames[MaxLayerCount]) const
Definition SkinWeightProfile.h:195
FName & operator[](int32 InLayerIndex)
Definition SkinWeightProfile.h:178
static constexpr int32 MaxLayerCount
Definition SkinWeightProfile.h:134
TStaticArray< FName, MaxLayerCount > Layers
Definition SkinWeightProfile.h:135
FSkinWeightProfileStack Normalized() const
Definition SkinWeightProfile.h:204
bool IsEmpty() const
Definition SkinWeightProfile.h:183
FSkinWeightProfileStack(const FName InProfileNames[MaxLayerCount])
Definition SkinWeightProfile.h:156
FSkinWeightProfileStack()
Definition SkinWeightProfile.h:137
bool operator!=(const FSkinWeightProfileStack &InProfileStack) const
Definition SkinWeightProfile.h:168
FSkinWeightProfileStack(ArgTypes &&... Args)
Definition SkinWeightProfile.h:146
friend uint32 GetTypeHash(const FSkinWeightProfileStack &InProfileStack)
Definition SkinWeightProfile.h:224
Definition SkinWeightProfile.h:238
ENGINE_API void ReleaseCPUResources()
Definition SkinWeightProfile.cpp:592
ENGINE_API void InitRHIForStreaming(const TArray< TPair< FSkinWeightProfileStack, FSkinWeightRHIInfo > > &IntermediateBuffers, FRHIResourceReplaceBatcher &Batcher)
Definition SkinWeightProfile.cpp:826
ENGINE_API bool ContainsProfile(const FName &ProfileName) const
Definition SkinWeightProfile.cpp:443
ENGINE_API void OverrideBaseBufferSkinWeightData(USkeletalMesh *Mesh, int32 LODIndex)
Definition SkinWeightProfile.cpp:254
ENGINE_API ~FSkinWeightProfilesData()
Definition SkinWeightProfile.cpp:246
ENGINE_API void CreateRHIBuffers(FRHICommandListBase &RHICmdList, TArray< TPair< FSkinWeightProfileStack, FSkinWeightRHIInfo > > &OutBuffers)
Definition SkinWeightProfile.cpp:602
bool IsStaticOverridden() const
Definition SkinWeightProfile.h:281
ENGINE_API const FRuntimeSkinWeightProfileData * GetOverrideData(const FName &ProfileName) const
Definition SkinWeightProfile.cpp:485
ENGINE_API SIZE_T GetCPUAccessMemoryOverhead() const
Definition SkinWeightProfile.cpp:563
ENGINE_API void ClearDynamicDefaultSkinWeightProfile(USkeletalMesh *Mesh, int32 LODIndex)
Definition SkinWeightProfile.cpp:411
ENGINE_API void SetDynamicDefaultSkinWeightProfile(USkeletalMesh *Mesh, int32 LODIndex, bool bSerialization=false)
Definition SkinWeightProfile.cpp:295
ENGINE_API FRuntimeSkinWeightProfileData & AddOverrideData(const FName &ProfileName)
Definition SkinWeightProfile.cpp:490
DECLARE_DELEGATE_RetVal_ThreeParams(int32, FOnPickOverrideSkinWeightProfile, const USkeletalMesh *, const TArrayView< const FSkinWeightProfileInfo >, int32)
bool ContainsOverrideBuffer(const FSkinWeightProfileStack &InProfileStack) const
Definition SkinWeightProfile.cpp:479
FSkinWeightVertexBuffer * GetDefaultOverrideBuffer() const
Definition SkinWeightProfile.h:253
ENGINE_API void SetupDynamicDefaultSkinWeightProfile()
Definition SkinWeightProfile.cpp:435
ENGINE_API void SerializeMetaData(FArchive &Ar)
Definition SkinWeightProfile.cpp:573
ENGINE_API void ReleaseRHIForStreaming(FRHIResourceReplaceBatcher &Batcher)
Definition SkinWeightProfile.cpp:839
ENGINE_API SIZE_T GetResourcesSize() const
Definition SkinWeightProfile.cpp:552
FSkinWeightProfileStack GetDefaultProfileStack() const
Definition SkinWeightProfile.h:282
friend FArchive & operator<<(FArchive &Ar, FSkinWeightProfilesData &OverrideData)
Definition SkinWeightProfile.cpp:161
static ENGINE_API FOnPickOverrideSkinWeightProfile OnPickOverrideSkinWeightProfile
Definition SkinWeightProfile.h:244
ENGINE_API void ReleaseResources()
Definition SkinWeightProfile.cpp:519
ENGINE_API FSkinWeightVertexBuffer * GetOverrideBuffer(const FSkinWeightProfileStack &InProfileStack) const
Definition SkinWeightProfile.cpp:448
bool IsDefaultOverridden() const
Definition SkinWeightProfile.h:280
Definition SkinWeightProfile.h:121
FCriticalSection Mutex
Definition SkinWeightProfile.h:122
uint32 ReadbackFinishedFrameIndex
Definition SkinWeightProfile.h:126
TArray< uint8 > ReadbackData
Definition SkinWeightProfile.h:125
TUniquePtr< FRHIGPUBufferReadback > BufferReadback
Definition SkinWeightProfile.h:124