UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AnimDataModel.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"
7
9
10#include "AnimDataModel.generated.h"
11
16UCLASS(BlueprintType, meta=(DebugTreeLeaf), MinimalAPI)
18{
20public:
22 ENGINE_API virtual void PostLoad() override;
23 ENGINE_API virtual void PostDuplicate(bool bDuplicateForPIE) override;
24 virtual bool IsEditorOnly() const override { return true; }
28 ENGINE_API virtual double GetPlayLength() const override;
29 ENGINE_API virtual int32 GetNumberOfFrames() const override;
30 ENGINE_API virtual int32 GetNumberOfKeys() const override;
31 ENGINE_API virtual FFrameRate GetFrameRate() const override;
32
34 virtual const TArray<FBoneAnimationTrack>& GetBoneAnimationTracks() const override;
35 ENGINE_API virtual const FBoneAnimationTrack& GetBoneTrackByIndex(int32 TrackIndex) const override;
36 ENGINE_API virtual const FBoneAnimationTrack& GetBoneTrackByName(FName TrackName) const override;
37 ENGINE_API virtual const FBoneAnimationTrack* FindBoneTrackByName(FName Name) const override;
38 ENGINE_API virtual const FBoneAnimationTrack* FindBoneTrackByIndex(int32 BoneIndex) const override;
39 ENGINE_API virtual int32 GetBoneTrackIndex(const FBoneAnimationTrack& Track) const override;
40 ENGINE_API virtual int32 GetBoneTrackIndexByName(FName TrackName) const override;
41 ENGINE_API virtual bool IsValidBoneTrackIndex(int32 TrackIndex) const override;
43
44 virtual int32 GetNumBoneTracks() const override;
45 ENGINE_API virtual void GetBoneTrackNames(TArray<FName>& OutNames) const override;
46 ENGINE_API virtual FTransform GetBoneTrackTransform(FName TrackName, const FFrameNumber& FrameNumber) const override;
47 ENGINE_API virtual void GetBoneTrackTransforms(FName TrackName, const TArray<FFrameNumber>& FrameNumbers, TArray<FTransform>& OutTransforms) const override;
48 ENGINE_API virtual void GetBoneTrackTransforms(FName TrackName, TArray<FTransform>& OutTransforms) const override;
49 ENGINE_API virtual void GetBoneTracksTransform(const TArray<FName>& TrackNames, const FFrameNumber& FrameNumber, TArray<FTransform>& OutTransforms) const override;
50 ENGINE_API virtual FTransform EvaluateBoneTrackTransform(FName TrackName, const FFrameTime& FrameTime, const EAnimInterpolationType& Interpolation) const override;
51 ENGINE_API virtual bool IsValidBoneTrackName(const FName& TrackName) const override;
52 ENGINE_API virtual const FAnimCurveBase* FindCurve(const FAnimationCurveIdentifier& CurveIdentifier) const override;
53 ENGINE_API virtual const FFloatCurve* FindFloatCurve(const FAnimationCurveIdentifier& CurveIdentifier) const override;
54 ENGINE_API virtual const FTransformCurve* FindTransformCurve(const FAnimationCurveIdentifier& CurveIdentifier) const override;
55 ENGINE_API virtual const FRichCurve* FindRichCurve(const FAnimationCurveIdentifier& CurveIdentifier) const override;
56 ENGINE_API virtual const FAnimationCurveData& GetCurveData() const override;
57 ENGINE_API virtual int32 GetNumberOfTransformCurves() const override;
58 ENGINE_API virtual int32 GetNumberOfFloatCurves() const override;
59 ENGINE_API virtual const TArray<struct FFloatCurve>& GetFloatCurves() const override;
60 ENGINE_API virtual const TArray<struct FTransformCurve>& GetTransformCurves() const override;
61 ENGINE_API virtual const FAnimCurveBase& GetCurve(const FAnimationCurveIdentifier& CurveIdentifier) const override;
62 ENGINE_API virtual const FFloatCurve& GetFloatCurve(const FAnimationCurveIdentifier& CurveIdentifier) const override;
63 ENGINE_API virtual const FTransformCurve& GetTransformCurve(const FAnimationCurveIdentifier& CurveIdentifier) const override;
64 ENGINE_API virtual const FRichCurve& GetRichCurve(const FAnimationCurveIdentifier& CurveIdentifier) const override;
65 ENGINE_API virtual TArrayView<const FAnimatedBoneAttribute> GetAttributes() const override;
66 ENGINE_API virtual int32 GetNumberOfAttributes() const override;
67 ENGINE_API virtual int32 GetNumberOfAttributesForBoneIndex(const int32 BoneIndex) const override;
68 ENGINE_API virtual void GetAttributesForBone(const FName& BoneName, TArray<const FAnimatedBoneAttribute*>& OutBoneAttributes) const override;
69 ENGINE_API virtual const FAnimatedBoneAttribute& GetAttribute(const FAnimationAttributeIdentifier& AttributeIdentifier) const override;
70 ENGINE_API virtual const FAnimatedBoneAttribute* FindAttribute(const FAnimationAttributeIdentifier& AttributeIdentifier) const override;
71 ENGINE_API virtual UAnimSequence* GetAnimationSequence() const override;
72 virtual FAnimDataModelModifiedEvent& GetModifiedEvent() override { return ModifiedEvent; }
73 ENGINE_API virtual FGuid GenerateGuid(const FGuidGenerationSettings& InSettings) const override;
74#if WITH_EDITOR
75 ENGINE_API virtual FString GenerateDebugStateString() const override;
76 ENGINE_API virtual void Evaluate(FAnimationPoseData& InOutPoseData, const UE::Anim::DataModel::FEvaluationContext& EvaluationContext) const override;
77#endif
78 ENGINE_API virtual TScriptInterface<IAnimationDataController> GetController() override;
79 virtual bool HasBeenPopulated() const override { return bPopulated; }
80 ENGINE_API virtual void IterateBoneKeys(const FName& BoneName, TFunction<bool(const FVector3f& Pos, const FQuat4f&, const FVector3f, const FFrameNumber&)> IterationFunction) const override;
81protected:
82 ENGINE_API virtual IAnimationDataModel::FModelNotifier& GetNotifier() override;
83 virtual FAnimDataModelModifiedDynamicEvent& GetModifiedDynamicEvent() override { return ModifiedEventDynamic; }
84 virtual void OnNotify(const EAnimDataModelNotifyType& NotifyType, const FAnimDataModelNotifPayload& Payload) override {}
85 virtual void LockEvaluationAndModification() const override final {}
86 virtual bool TryLockEvaluationAndModification() const override final { return true; }
87 virtual void UnlockEvaluationAndModification() const override final {}
88 virtual bool& GetPopulationFlag() override final
89 {
90 return bPopulated;
91 }
94private:
96 ENGINE_API FBoneAnimationTrack* FindMutableBoneTrackByName(FName Name);
97 ENGINE_API FBoneAnimationTrack& GetMutableBoneTrackByName(FName Name);
98 ENGINE_API FTransformCurve* FindMutableTransformCurveById(const FAnimationCurveIdentifier& CurveIdentifier);
99 ENGINE_API FFloatCurve* FindMutableFloatCurveById(const FAnimationCurveIdentifier& CurveIdentifier);
102
103 ENGINE_API USkeleton* GetSkeleton() const;
104 template <typename HasherType>
105 void GenerateStateHash(HasherType& Hasher, const FGuidGenerationSettings& InSettings) const;
106
107private:
109 int32 BracketCounter = 0;
110
112 UPROPERTY(BlueprintAssignable, Transient, Category = AnimationDataModel, meta = (ScriptName = "ModifiedEvent", AllowPrivateAccess = "true"))
113 FAnimDataModelModifiedDynamicEvent ModifiedEventDynamic;
114
116 FAnimDataModelModifiedEvent ModifiedEvent;
117
119 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Animation Data Model", meta = (AllowPrivateAccess = "true"))
120 TArray<FBoneAnimationTrack> BoneAnimationTracks;
121
123 UE_DEPRECATED(5.1, "PlayLength is deprecated use GetPlayLength instead, as it is now calculated with Number of Frames * FrameRate instead of stored as a value")
124 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Animation Data Model", meta = (AllowPrivateAccess = "true"))
125 float PlayLength;
126
128 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Animation Data Model", meta = (AllowPrivateAccess = "true"))
130
132 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Animation Data Model", meta = (AllowPrivateAccess = "true"))
133 int32 NumberOfFrames;
134
136 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Animation Data Model", meta = (AllowPrivateAccess = "true"))
137 int32 NumberOfKeys;
138
140 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Animation Data Model", meta = (AllowPrivateAccess = "true"))
141 FAnimationCurveData CurveData;
142
144 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Animation Data Model", meta = (AllowPrivateAccess = "true"))
145 TArray<FAnimatedBoneAttribute> AnimatedBoneAttributes;
146
147 UPROPERTY()
148 bool bPopulated = false;
149
150 TUniquePtr<IAnimationDataModel::FModelNotifier> Notifier;
151
152 friend class UAnimDataController;
153 friend class FAnimDataControllerTestBase;
154};
155
EAnimDataModelNotifyType
Definition AnimDataNotifications.h:20
EAnimInterpolationType
Definition AnimTypes.h:689
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
#define PRAGMA_ENABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:12
#define PRAGMA_DISABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:8
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UCLASS(...)
Definition ObjectMacros.h:776
Definition NameTypes.h:617
Definition UnrealType.h:3087
Definition IAnimationDataModel.h:127
Definition ArrayView.h:139
Definition Array.h:670
Definition AndroidPlatformMisc.h:14
Definition ScriptInterface.h:139
Definition UniquePtr.h:107
Definition AnimDataModel.h:18
virtual bool HasBeenPopulated() const override
Definition AnimDataModel.h:79
virtual FAnimDataModelModifiedEvent & GetModifiedEvent() override
Definition AnimDataModel.h:72
virtual FAnimDataModelModifiedDynamicEvent & GetModifiedDynamicEvent() override
Definition AnimDataModel.h:83
virtual bool TryLockEvaluationAndModification() const override final
Definition AnimDataModel.h:86
virtual bool & GetPopulationFlag() override final
Definition AnimDataModel.h:88
virtual void LockEvaluationAndModification() const override final
Definition AnimDataModel.h:85
virtual void OnNotify(const EAnimDataModelNotifyType &NotifyType, const FAnimDataModelNotifPayload &Payload) override
Definition AnimDataModel.h:84
virtual void UnlockEvaluationAndModification() const override final
Definition AnimDataModel.h:87
virtual bool IsEditorOnly() const override
Definition AnimDataModel.h:24
Definition AnimSequence.h:203
Definition Object.h:95
Definition Skeleton.h:295
@ false
Definition radaudio_common.h:23
Definition AnimCurveTypes.h:93
Definition AnimDataNotifications.h:251
Definition IAnimationDataModel.h:105
Definition AttributeIdentifier.h:17
Definition IAnimationDataModel.h:88
Definition CurveIdentifier.h:37
Definition AnimationPoseData.h:16
Definition IAnimationDataModel.h:67
Definition AnimCurveTypes.h:214
Definition FrameNumber.h:18
Definition FrameRate.h:21
Definition FrameTime.h:16
Definition Guid.h:109
Definition RichCurve.h:200
Definition AnimCurveTypes.h:308
Definition IAnimationDataModel.h:447
Definition IAnimationDataModel.h:19