UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AnimCurveMetadata.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"
9#include "UObject/Interface.h"
10#include "AnimCurveMetadata.generated.h"
11
15USTRUCT()
17{
19
20 UPROPERTY()
21 bool bMaterial;
22
23 UPROPERTY()
24 bool bMorphtarget;
25
27 : bMaterial(bInMaterial)
28 , bMorphtarget(bInMorphtarget)
29 {
30 }
31};
32
37USTRUCT()
39{
41
42
43 UPROPERTY()
44 TArray<FBoneReference> LinkedBones;
45
46 /* max LOD (lowest LOD) to evaluate this. -1 means it will evaluate all the time. */
47 UPROPERTY()
48 uint8 MaxLOD;
49
51 UPROPERTY()
53
54 friend FArchive& operator<<(FArchive& Ar, FCurveMetaData& B);
55
57
59};
60
66
69{
71
72public:
77 virtual void ForEachCurveMetaData(const TFunctionRef<void(FName, const FCurveMetaData&)>& InFunction) const = 0;
78
80 virtual int32 GetNumCurveMetaData() const = 0;
81
88
95 virtual bool AddCurveMetaData(FName InCurveName, bool bInTransact = true) = 0;
96
103
109
115
117 virtual uint16 GetVersionNumber() const = 0;
118
119#if WITH_EDITOR
127 virtual bool RenameCurveMetaData(FName OldName, FName NewName) = 0;
128
134 virtual bool RemoveCurveMetaData(FName CurveName) = 0;
135
141 virtual bool RemoveCurveMetaData(TArrayView<FName> CurveNames) = 0;
142
148 virtual FDelegateHandle RegisterOnCurveMetaDataChanged(const FSimpleMulticastDelegate::FDelegate& InOnCurveMetaDataChanged) = 0;
149
155 virtual bool GetCurveMetaDataMaterial(FName CurveName) const = 0;
156
162 virtual bool GetCurveMetaDataMorphTarget(FName CurveName) const = 0;
163
169 virtual void SetCurveMetaDataMaterial(FName CurveName, bool bOverrideMaterial) = 0;
170
176 virtual void SetCurveMetaDataMorphTarget(FName CurveName, bool bOverrideMorphTarget) = 0;
177
186
192
193#endif// WITH_EDITOR
194};
195
196
198UCLASS(MinimalAPI)
200{
202
203 // Friend with skeleton for upgrade purposes
205
206public:
207#if WITH_EDITOR
208 // UObject interface
209 virtual void GetAssetRegistryTags(FAssetRegistryTagsContext Context) const override;
210 UE_DEPRECATED(5.4, "Implement the version that takes FAssetRegistryTagsContext instead.")
211 virtual void GetAssetRegistryTags(TArray<FAssetRegistryTag>& OutTags) const override;
212#endif
213
214 // IInterface_AnimCurveMetaData interface
215 virtual void ForEachCurveMetaData(const TFunctionRef<void(FName, const FCurveMetaData&)>& InFunction) const override;
216 virtual int32 GetNumCurveMetaData() const override { return CurveMetaData.Num(); }
217 virtual const FCurveMetaData* GetCurveMetaData(FName InCurveName) const override;
218 virtual FCurveMetaData* GetCurveMetaData(FName InCurveName) override;
219 virtual bool AddCurveMetaData(FName InCurveName, bool bInTransact = true) override;
220 virtual void GetCurveMetaDataNames(TArray<FName>& OutNames) const override;
221 virtual void RefreshBoneIndices(USkeleton* InSkeleton) override;
222 virtual uint16 GetVersionNumber() const override;
223#if WITH_EDITOR
224 virtual bool RenameCurveMetaData(FName OldName, FName NewName) override;
225 virtual bool RemoveCurveMetaData(FName CurveName) override;
226 virtual bool RemoveCurveMetaData(TArrayView<FName> CurveNames) override;
227 virtual bool GetCurveMetaDataMaterial(FName CurveName) const override;
228 virtual bool GetCurveMetaDataMorphTarget(FName CurveName) const override;
229 virtual void SetCurveMetaDataMaterial(FName CurveName, bool bOverrideMaterial) override;
230 virtual void SetCurveMetaDataMorphTarget(FName CurveName, bool bOverrideMorphTarget) override;
232 virtual FDelegateHandle RegisterOnCurveMetaDataChanged(const FSimpleMulticastDelegate::FDelegate& InOnCurveMetaDataChanged) override;
234#endif
235private:
237 void IncreaseVersionNumber();
238
239private:
241 UPROPERTY()
242 TMap<FName, FCurveMetaData> CurveMetaData;
243
245 FSimpleMulticastDelegate OnCurveMetaDataChanged;
246
248 uint16 VersionNumber = 0;
249};
#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
const bool
Definition NetworkReplayStreaming.h:178
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UINTERFACE(...)
Definition ObjectMacros.h:780
#define UCLASS(...)
Definition ObjectMacros.h:776
#define USTRUCT(...)
Definition ObjectMacros.h:746
uint8_t uint8
Definition binka_ue_file_header.h:8
uint16_t uint16
Definition binka_ue_file_header.h:7
Definition Archive.h:1208
Definition AssetRegistryTagsContext.h:98
Definition IDelegateInstance.h:14
Definition NameTypes.h:617
Definition AnimCurveMetadata.h:69
virtual int32 GetNumCurveMetaData() const =0
virtual void ForEachCurveMetaData(const TFunctionRef< void(FName, const FCurveMetaData &)> &InFunction) const =0
virtual uint16 GetVersionNumber() const =0
virtual const FCurveMetaData * GetCurveMetaData(FName InCurveName) const =0
virtual bool AddCurveMetaData(FName InCurveName, bool bInTransact=true)=0
virtual void RefreshBoneIndices(USkeleton *InSkeleton)
Definition AnimCurveMetadata.h:114
virtual void GetCurveMetaDataNames(TArray< FName > &OutNames) const =0
virtual FCurveMetaData * GetCurveMetaData(FName InCurveName)=0
Definition ArrayView.h:139
Definition Array.h:670
Definition AssetRegistryState.h:50
Definition UnrealString.h.inl:34
Definition AnimCurveMetadata.h:200
virtual int32 GetNumCurveMetaData() const override
Definition AnimCurveMetadata.h:216
Definition AssetUserData.h:18
Definition AnimCurveMetadata.h:63
Definition Interface.h:19
Definition Skeleton.h:295
@ false
Definition radaudio_common.h:23
Definition AnimCurveMetadata.h:17
Definition BoneReference.h:14
Definition AnimCurveMetadata.h:39
Definition Object.h:827