UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AnimationEvaluation.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "Containers/Map.h"
8#include "Math/Transform.h"
10
11namespace UE::Anim
12{
13
30
41{
42 FAnimationEvaluator(USkeletalMeshComponent* InSkeletalMeshComponent);
44
46 void Update(const bool bRefreshBoneTransforms);
47
51 bool IsValid(const bool bForTransform = false) const;
52
54 CONSTRAINTS_API FTransform GetGlobalTransform(const FName InSocketName) const;
55
57 FTransform GetRelativeTransform(const FName InSocketName) const;
58
61
62private:
63
64 FAnimationEvaluator() = default;
65
67 void UpdateContext();
68
70 void EvaluateAnimation();
71
73 void RefreshBoneTransforms();
74
76 void BoneTransformsFinalized();
77
78 TWeakObjectPtr<USkeletalMeshComponent> SkeletalMeshComponent = nullptr;
80 FDelegateHandle OnBoneTransformsFinalizedHandle;
81 TMap<FGuid, FAnimationEvaluationTask> PostEvaluationTasks;
82};
83
91{
92public:
95
97 void MarkForEvaluation(const USkeletalMeshComponent* InSkeletalMeshComponent);
98
103 const FAnimationEvaluator& GetEvaluator(USkeletalMeshComponent* InSkeletalMeshComponent);
104
110
111private:
112 FAnimationEvaluationCache() = default;
113
115 void RegisterNotifications();
116
118 void UnregisterNotifications();
119
122
123 FDelegateHandle ConstraintsNotificationHandle;
124};
125
136
138
139}
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition IDelegateInstance.h:14
Definition NameTypes.h:617
Definition UnrealTemplate.h:321
Definition AndroidPlatformMisc.h:14
Definition UnrealString.h.inl:34
Definition AnimationAsset.h:42
bool IsCaching()
Definition AnimationEvaluation.cpp:54
Definition SkeletalMeshComponent.h:87
Definition Guid.h:109
bool IsValid() const
Definition Guid.h:318
Definition WeakObjectPtrTemplates.h:25
Definition AnimationEvaluation.h:91
void MarkForEvaluation(const USkeletalMeshComponent *InSkeletalMeshComponent)
Definition AnimationEvaluation.cpp:418
~FAnimationEvaluationCache()
Definition AnimationEvaluation.cpp:412
static FAnimationEvaluationCache & Get()
Definition AnimationEvaluation.cpp:402
const FAnimationEvaluator & GetEvaluator(USkeletalMeshComponent *InSkeletalMeshComponent)
Definition AnimationEvaluation.cpp:439
Definition AnimationEvaluation.h:20
FGuid Guid
Definition AnimationEvaluation.h:26
bool IsValid(const USkeletalMeshComponent *InSkeletalMeshComponent) const
Definition AnimationEvaluation.h:21
TFunction< void()> PostEvaluationFunction
Definition AnimationEvaluation.h:28
TWeakObjectPtr< USkeletalMeshComponent > SkeletalMeshComponent
Definition AnimationEvaluation.h:27
Definition AnimationEvaluation.h:41
CONSTRAINTS_API FTransform GetGlobalTransform(const FName InSocketName) const
Definition AnimationEvaluation.cpp:125
~FAnimationEvaluator()
Definition AnimationEvaluation.cpp:80
bool AddPostEvaluationTask(const FAnimationEvaluationTask &InTask)
Definition AnimationEvaluation.cpp:204
FTransform GetRelativeTransform(const FName InSocketName) const
Definition AnimationEvaluation.cpp:160
Definition AnimationEvaluation.h:132
CONSTRAINTS_API ~FEvaluationForCachingScope()
Definition AnimationEvaluation.cpp:68