UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AnimInstanceProxy.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"
12#include "Animation/AnimSync.h"
14
15#include "AnimInstanceProxy.generated.h"
16
18class UAnimInstance;
19class UAnimNotify;
21class UBlendProfile;
22class UBlendSpace;
24namespace EMessageSeverity { enum Type : int; }
33struct FAnimNode_Base;
37struct FAnimTickRecord;
39struct FCompactPose;
44struct FNodeDebugData;
45struct FPoseContext;
46struct FPoseSnapshot;
49
50namespace UE::Anim
51{
52 class FAnimSyncGroupScope;
53 class FActiveStateMachineScope;
54 struct FAnimSyncParams;
55 // DEPRECATED use FInertializationRequest instead
57}
58
59template<class PoseType> struct FCSPose;
60
61// Disable debugging information for shipping and test builds.
62#define ENABLE_ANIM_DRAW_DEBUG (1 && !(UE_BUILD_SHIPPING || UE_BUILD_TEST))
63
64// Disable node logging for shipping and test builds
65#define ENABLE_ANIM_LOGGING (1 && !NO_LOGGING && !(UE_BUILD_SHIPPING || UE_BUILD_TEST))
66
67extern const FName NAME_AnimBlueprintLog;
68extern const FName NAME_Evaluate;
69extern const FName NAME_Update;
70extern const FName NAME_AnimGraph;
71
74
75UENUM()
92
140
142USTRUCT(meta = (DisplayName = "Native Variables"))
144{
146
147public:
149
152
157
158 // Get the IAnimClassInterface associated with this context, if there is one.
159 // Note: This can return NULL, so check the result.
161 {
162 return AnimClassInterface;
163 }
164
166 float GetDeltaSeconds() const
167 {
168 return CurrentDeltaSeconds;
169 }
170
172 float GetTimeDilation() const
173 {
174 return CurrentTimeDilation;
175 }
176
177#if WITH_EDITORONLY_DATA
179 bool IsBeingDebugged() const
180 {
181 return bIsBeingDebugged;
182 }
183
186
189
192 {
194 }
195
197 {
199 return ActualAnimClass ? Cast<UAnimBlueprint>(ActualAnimClass->ClassGeneratedBy) : nullptr;
200 }
201
202 // Record pose for node of ID LinkID if it is currently being watched
203 UE_DEPRECATED(5.6, "Please use RegisterWatchedPose that takes a pose context")
204 ENGINE_API void RegisterWatchedPose(const FCompactPose& Pose, const FBlendedCurve& InCurve, int32 LinkID);
205 UE_DEPRECATED(5.6, "Please use RegisterWatchedPose that takes a pose context")
207
208 // Record pose for node of ID LinkID if it is currently being watched
209 ENGINE_API void RegisterWatchedPose(const FPoseContext& Pose, int32 LinkID);
211#endif
212
213 UE_DEPRECATED(5.0, "Function renamed to FlipBufferWriteIndex as this no longer deals with sync groups.")
214 void TickSyncGroupWriteIndex()
215 {
216 FlipBufferWriteIndex();
217 }
218
219 // flip buffer read/write indices
221 {
222 BufferWriteIndex = GetBufferReadIndex();
223 }
224
225 UE_DEPRECATED(5.0, "Sync groups are no longer stored in arrays, please use GetSyncGroupMapRead.")
226 const TArray<FAnimGroupInstance>& GetSyncGroupRead() const
227 {
229 return Dummy;
230 }
231
234 {
235 return Sync.GetSyncGroupMapRead();
236 }
237
240 {
241 return Sync.GetUngroupedActivePlayersRead();
242 }
243
244 UE_DEPRECATED(5.0, "Do not call directly. Instead sync and asset player ticking is controlled via UE::Anim::FSync and UE::Anim::FSyncScope.")
245 ENGINE_API void TickAssetPlayerInstances(float DeltaSeconds);
246
247 UE_DEPRECATED(5.0, "Do not call directly. Instead sync and asset player ticking is controlled via UE::Anim::FSync and UE::Anim::FSyncScope.")
248 ENGINE_API void TickAssetPlayerInstances();
249
251 ENGINE_API void AddAnimNotifyFromGeneratedClass(int32 NotifyIndex);
252
254 ENGINE_API void TriggerAnimNotifies(USkeletalMeshComponent* SkelMeshComp, float DeltaSeconds);
255
256 UE_DEPRECATED(5.2, "Skeleton compatibility is now an editor-only concern, this function is no longer used.")
257 bool IsSkeletonCompatible(USkeleton const* InSkeleton) const
258 {
259 return Skeleton != nullptr && InSkeleton != nullptr;
260 }
261
264 {
265 return bShouldExtractRootMotion;
266 }
267
269 ENGINE_API void SavePoseSnapshot(USkeletalMeshComponent* InSkeletalMeshComponent, FName SnapshotName);
270
272 ENGINE_API FPoseSnapshot& AddPoseSnapshot(FName SnapshotName);
273
275 ENGINE_API void RemovePoseSnapshot(FName SnapshotName);
276
278 ENGINE_API const FPoseSnapshot* GetPoseSnapshot(FName SnapshotName) const;
279
281 const FGraphTraversalCounter& GetInitializationCounter() const { return InitializationCounter; }
282 const FGraphTraversalCounter& GetCachedBonesCounter() const { return CachedBonesCounter; }
283 const FGraphTraversalCounter& GetUpdateCounter() const { return UpdateCounter; }
284 const FGraphTraversalCounter& GetEvaluationCounter() const { return EvaluationCounter; }
285 const FGraphTraversalCounter& GetSlotNodeInitializationCounter() const { return SlotNodeInitializationCounter; }
286
287 void ResetUpdateCounter() { UpdateCounter.Reset(); }
288
290 FRootMotionMovementParams& GetExtractedRootMotion() { return ExtractedRootMotion; }
291
293 UObject* GetAnimInstanceObject() { return AnimInstanceObject; }
294 const UObject* GetAnimInstanceObject() const { return AnimInstanceObject; }
295
297 ENGINE_API FAnimNode_Base* GetMutableNodeFromIndexUntyped(int32 NodeIdx, UScriptStruct* RequiredStructType);
298
300 ENGINE_API const FAnimNode_Base* GetNodeFromIndexUntyped(int32 NodeIdx, UScriptStruct* RequiredStructType) const;
301
303 ENGINE_API FAnimNode_Base* GetCheckedMutableNodeFromIndexUntyped(int32 NodeIdx, UScriptStruct* RequiredStructType);
304
306 ENGINE_API const FAnimNode_Base* GetCheckedNodeFromIndexUntyped(int32 NodeIdx, UScriptStruct* RequiredStructType) const;
307
309 template<class NodeType>
310 const NodeType* GetCheckedNodeFromIndex(int32 NodeIdx) const
311 {
312 return (NodeType*)GetCheckedNodeFromIndexUntyped(NodeIdx, NodeType::StaticStruct());
313 }
314
316 template<class NodeType>
317 NodeType* GetCheckedMutableNodeFromIndex(int32 NodeIdx) const
318 {
319 return (NodeType*)GetCheckedMutableNodeFromIndexUntyped(NodeIdx, NodeType::StaticStruct());
320 }
321
323 template<class NodeType>
324 const NodeType* GetNodeFromIndex(int32 NodeIdx) const
325 {
326 return (NodeType*)GetNodeFromIndexUntyped(NodeIdx, NodeType::StaticStruct());
327 }
328
330 template<class NodeType>
331 NodeType* GetMutableNodeFromIndex(int32 NodeIdx) const
332 {
333 return (NodeType*)GetNodeFromIndexUntyped(NodeIdx, NodeType::StaticStruct());
334 }
335
338 {
339 return *RequiredBones;
340 }
341
344 {
345 return *RequiredBones;
346 }
347
350 {
351 return LODLevel;
352 }
353
354 UE_DEPRECATED(5.0, "Please use GetComponentTransform")
355 const FTransform& GetSkelMeshCompLocalToWorld() const
356 {
357 return ComponentTransform;
358 }
359
360 UE_DEPRECATED(5.0, "Please use GetActorTransform")
361 const FTransform& GetSkelMeshCompOwnerTransform() const
362 {
363 return ActorTransform;
364 }
365
368 {
369 // Skeleton is only available during update/eval. If you're calling this function outside of it, it will return null.
370 // adding ensure here so that we can catch them earlier
372 return Skeleton;
373 }
374
376 USkeletalMeshComponent* GetSkelMeshComponent() const
377 {
378 // Skeletal mesh component is only available during update/eval. If you're calling this function outside of it, it will return null.
379 // adding ensure here so that we can catch them earlier
380 ensureAlways(SkeletalMeshComponent);
381 return SkeletalMeshComponent;
382 }
383
386 {
387 // Main instance proxy is only available during update/eval. If you're calling this function outside of it, it will return null.
388 return MainInstanceProxy;
389 }
390
391 UE_DEPRECATED(4.26, "Please use the overload that takes a group FName")
392 ENGINE_API FAnimTickRecord& CreateUninitializedTickRecord(int32 GroupIndex, FAnimGroupInstance*& OutSyncGroupPtr);
393
394 UE_DEPRECATED(4.26, "Please use the overload that takes a group FName")
395 ENGINE_API FAnimTickRecord& CreateUninitializedTickRecordInScope(int32 GroupIndex, EAnimSyncGroupScope Scope, FAnimGroupInstance*& OutSyncGroupPtr);
396
397 UE_DEPRECATED(5.0, "Please use FAnimSyncGroupScope")
398 ENGINE_API FAnimTickRecord& CreateUninitializedTickRecord(FAnimGroupInstance*& OutSyncGroupPtr, FName GroupName);
399
400 UE_DEPRECATED(5.0, "Please use FAnimSyncGroupScope")
401 ENGINE_API FAnimTickRecord& CreateUninitializedTickRecordInScope(FAnimGroupInstance*& OutSyncGroupPtr, FName GroupName, EAnimSyncGroupScope Scope);
402
403 UE_DEPRECATED(5.0, "Please use the FAnimTickRecord constructor that takes a UAnimSequenceBase")
404 ENGINE_API void MakeSequenceTickRecord(FAnimTickRecord& TickRecord, UAnimSequenceBase* Sequence, bool bLooping, float PlayRate, float FinalBlendWeight, float& CurrentTime, FMarkerTickRecord& MarkerTickRecord) const;
405
406 UE_DEPRECATED(5.0, "Please use the FAnimTickRecord constructor that takes a UBlendSpace")
407 ENGINE_API void MakeBlendSpaceTickRecord(FAnimTickRecord& TickRecord, UBlendSpace* BlendSpace, const FVector& BlendInput, TArray<FBlendSampleData>& BlendSampleDataCache, FBlendFilter& BlendFilter, bool bLooping, float PlayRate, float FinalBlendWeight, float& CurrentTime, FMarkerTickRecord& MarkerTickRecord) const;
408
409 UE_DEPRECATED(5.0, "Please use the FAnimTickRecord constructor that takes a UPoseAsset")
410 ENGINE_API void MakePoseAssetTickRecord(FAnimTickRecord& TickRecord, class UPoseAsset* PoseAsset, float FinalBlendWeight) const;
411
412 // Adds a tick record in the list for the correct group or the ungrouped array.
413 void AddTickRecord(const FAnimTickRecord& InTickRecord, const UE::Anim::FAnimSyncParams& InSyncParams = UE::Anim::FAnimSyncParams())
414 {
415 Sync.AddTickRecord(InTickRecord, InSyncParams);
416 }
417
427 ENGINE_API void GetSlotWeight(const FName& SlotNodeName, float& out_SlotNodeWeight, float& out_SourceWeight, float& out_TotalNodeWeight) const;
428
430 UE_DEPRECATED(4.26, "Use SlotEvaluatePose with other signature")
431 ENGINE_API void SlotEvaluatePose(const FName& SlotNodeName, const FCompactPose& SourcePose, const FBlendedCurve& SourceCurve, float InSourceWeight, FCompactPose& BlendedPose, FBlendedCurve& BlendedCurve, float InBlendWeight, float InTotalNodeWeight);
432
434
435 // Allow slot nodes to store off their weight during ticking
436 ENGINE_API void UpdateSlotNodeWeight(const FName& SlotNodeName, float InLocalMontageWeight, float InNodeGlobalWeight);
437
438 UE_DEPRECATED(5.5, "Please use GetSlotInertializationRequestData instead.")
439 ENGINE_API bool GetSlotInertializationRequest(const FName& SlotName, UE::Anim::FSlotInertializationRequest& OutRequest);
440
441 ENGINE_API bool GetSlotInertializationRequestData(const FName& SlotName, FInertializationRequest& OutRequest);
442
444 ENGINE_API void RegisterSlotNodeWithAnimInstance(const FName& SlotNodeName);
445
447 bool HasRootNode() const
448 {
449 return RootNode != nullptr;
450 }
451
454 {
455 return RootNode;
456 }
457
459 ENGINE_API void GatherDebugData(FNodeDebugData& DebugData);
460
462 ENGINE_API void GatherDebugData_WithRoot(FNodeDebugData& DebugData, FAnimNode_Base* InRootNode, FName InLayerName);
463
464#if ENABLE_ANIM_DRAW_DEBUG
466
468 ENGINE_API void AnimDrawDebugInWorldMessage(const FString& DebugMessage, const FVector& TextLocation, const FColor& Color, float TextScale);
469 ENGINE_API void AnimDrawDebugLine(const FVector& StartLoc, const FVector& EndLoc, const FColor& Color, bool bPersistentLines = false, float LifeTime = -1.f, float Thickness = 0.f, ESceneDepthPriorityGroup DepthPriority = SDPG_World);
470 ENGINE_API void AnimDrawDebugDirectionalArrow(const FVector& LineStart, const FVector& LineEnd, float ArrowSize, const FColor& Color, bool bPersistentLines = false, float LifeTime = -1.f, float Thickness = 0.f, ESceneDepthPriorityGroup DepthPriority = SDPG_World);
471 ENGINE_API void AnimDrawDebugSphere(const FVector& Center, float Radius, int32 Segments, const FColor& Color, bool bPersistentLines = false, float LifeTime = -1.f, float Thickness = 0.f, ESceneDepthPriorityGroup DepthPriority = SDPG_World);
472 ENGINE_API void AnimDrawDebugCoordinateSystem(FVector const& AxisLoc, FRotator const& AxisRot, float Scale = 1.f, bool bPersistentLines = false, float LifeTime = -1.f, float Thickness = 0.f, ESceneDepthPriorityGroup DepthPriority = SDPG_World);
473 ENGINE_API void AnimDrawDebugPlane(const FTransform& BaseTransform, float Radii, const FColor& Color, bool bPersistentLines = false, float LifeTime = -1.f, float Thickness = 0.f, ESceneDepthPriorityGroup DepthPriority = SDPG_World);
474 ENGINE_API void AnimDrawDebugPoint(const FVector& Loc, float Size, const FColor& Color, bool bPersistentLines = false, float LifeTime = -1.f, ESceneDepthPriorityGroup DepthPriority = SDPG_World);
475 ENGINE_API void AnimDrawDebugCircle(const FVector& Center, float Radius, int32 Segments, const FColor& Color, const FVector& UpVector = FVector::UpVector, bool bPersistentLines = false, float LifeTime = -1.f, ESceneDepthPriorityGroup DepthPriority = SDPG_World, float Thickness = 0.f);
476 ENGINE_API void AnimDrawDebugCone(const FVector& Center, float Radius, const FVector& Direction, float AngleWidth, float AngleHeight, int32 Segments, const FColor& Color, bool bPersistentLines = false, float LifeTime = -1.f, ESceneDepthPriorityGroup DepthPriority = SDPG_World, float Thickness = 0.f);
477 ENGINE_API void AnimDrawDebugCapsule(const FVector& Center, float HalfHeight, float Radius, const FRotator& Rotation, const FColor& Color, bool bPersistentLines = false, float LifeTime = -1.f, float Thickness = 0.f, ESceneDepthPriorityGroup DepthPriority = SDPG_World);
478#else
479 void AnimDrawDebugOnScreenMessage(const FString& DebugMessage, const FColor& Color, const FVector2D& TextScale = FVector2D::UnitVector, ESceneDepthPriorityGroup DepthPriority = SDPG_World) {}
480 void AnimDrawDebugInWorldMessage(const FString& DebugMessage, const FVector& TextLocation, const FColor& Color, float TextScale) {}
481 void AnimDrawDebugLine(const FVector& StartLoc, const FVector& EndLoc, const FColor& Color, bool bPersistentLines = false, float LifeTime = -1.f, float Thickness = 0.f, ESceneDepthPriorityGroup DepthPriority = SDPG_World) {}
482 void AnimDrawDebugDirectionalArrow(const FVector& LineStart, const FVector& LineEnd, float ArrowSize, const FColor& Color, bool bPersistentLines = false, float LifeTime = -1.f, float Thickness = 0.f, ESceneDepthPriorityGroup DepthPriority = SDPG_World) {}
483 void AnimDrawDebugSphere(const FVector& Center, float Radius, int32 Segments, const FColor& Color, bool bPersistentLines = false, float LifeTime = -1.f, float Thickness = 0.f, ESceneDepthPriorityGroup DepthPriority = SDPG_World) {}
484 void AnimDrawDebugCoordinateSystem(FVector const& AxisLoc, FRotator const& AxisRot, float Scale = 1.f, bool bPersistentLines = false, float LifeTime = -1.f, float Thickness = 0.f, ESceneDepthPriorityGroup DepthPriority = SDPG_World) {}
485 void AnimDrawDebugPlane(const FTransform& BaseTransform, float Radii, const FColor& Color, bool bPersistentLines = false, float LifeTime = -1.f, float Thickness = 0.f, ESceneDepthPriorityGroup DepthPriority = SDPG_World) {}
486 void AnimDrawDebugPoint(const FVector& Loc, float Size, const FColor& Color, bool bPersistentLines = false, float LifeTime = -1.f, ESceneDepthPriorityGroup DepthPriority = SDPG_World) {}
487 void AnimDrawDebugCircle(const FVector& Center, float Radius, int32 Segments, const FColor& Color, const FVector& UpVector = FVector::UpVector, bool bPersistentLines = false, float LifeTime=-1.f, ESceneDepthPriorityGroup DepthPriority = SDPG_World, float Thickness = 0.f) {}
488 void AnimDrawDebugCone(const FVector& Center, float Radius, const FVector& Direction, float AngleWidth, float AngleHeight, int32 Segments, const FColor& Color, bool bPersistentLines = false, float LifeTime = -1.f, ESceneDepthPriorityGroup DepthPriority = SDPG_World, float Thickness = 0.f) {}
489 void AnimDrawDebugCapsule(const FVector& Center, float HalfHeight, float Radius, const FRotator& Rotation, const FColor& Color, bool bPersistentLines = false, float LifeTime = -1.f, float Thickness = 0.f, ESceneDepthPriorityGroup DepthPriority = SDPG_World) {}
490#endif // ENABLE_ANIM_DRAW_DEBUG
491
492#if ENABLE_ANIM_LOGGING
493 const FString& GetActorName() const
494 {
495 return ActorName;
496 }
497#endif
498
499 FString GetAnimInstanceName() const
500 {
501 return AnimInstanceObject->GetFullName();
502 }
503
504 // Get the root motion mode assigned to this anim instance proxy
506 {
507 return RootMotionMode;
508 }
509
511 ENGINE_API const FAnimNode_StateMachine* GetStateMachineInstanceFromName(FName MachineName) const;
512
514 ENGINE_API const FAnimNode_StateMachine* GetStateMachineInstance(int32 NodeIndex) const;
515
518
523 ENGINE_API int32 GetInstanceAssetPlayerIndex(FName MachineName, FName StateName, FName InstanceName = NAME_None) const;
524
525 ENGINE_API float GetRecordedMachineWeight(const int32 InMachineClassIndex) const;
526 ENGINE_API void RecordMachineWeight(const int32 InMachineClassIndex, const float InMachineWeight);
527
528 ENGINE_API float GetRecordedStateWeight(const int32 InMachineClassIndex, const int32 InStateIndex) const;
529 ENGINE_API void RecordStateWeight(const int32 InMachineClassIndex, const int32 InStateIndex, const float InStateWeight, const float InElapsedTime);
530
531 ENGINE_API bool IsSlotNodeRelevantForNotifies(const FName& SlotNodeName) const;
533 ENGINE_API void ResetDynamics(ETeleportType InTeleportType);
534
536 ENGINE_API TArray<const FAnimNode_AssetPlayerBase*> GetInstanceAssetPlayers(const FName& GraphName) const;
537
539 ENGINE_API TArray<FAnimNode_AssetPlayerBase*> GetMutableInstanceAssetPlayers(const FName& GraphName);
540
542 ENGINE_API TArray<const FAnimNode_AssetPlayerRelevancyBase*> GetInstanceRelevantAssetPlayers(const FName& GraphName) const;
543
545 ENGINE_API TArray<FAnimNode_AssetPlayerRelevancyBase*> GetMutableInstanceRelevantAssetPlayers(const FName& GraphName);
546
548 ENGINE_API bool IsSyncGroupValid(FName InSyncGroupName) const;
549
550 UE_DEPRECATED(4.20, "Please use ResetDynamics with a ETeleportType argument")
551 ENGINE_API void ResetDynamics();
552
554 const FTransform& GetComponentRelativeTransform() const { return ComponentRelativeTransform; }
555
557 const FTransform& GetComponentTransform() const { return ComponentTransform; }
558
560 const FTransform& GetActorTransform() const { return ActorTransform; }
561
562 // Trace montage debug data for the specified slot
563 ENGINE_API void TraceMontageEvaluationData(const FAnimationUpdateContext& InContext, const FName& InSlotName);
564
566 ENGINE_API FAnimBlueprintDebugData* GetAnimBlueprintDebugData() const;
567
573 ENGINE_API void AddAnimNotifies(const TArray<FAnimNotifyEventReference>& NewNotifies, const float InstanceWeight);
574
576 ENGINE_API void SetInterpolationOverride(TOptional<EAnimInterpolationType> InterpolationType);
577
579 ENGINE_API TOptional<EAnimInterpolationType> GetInterpolationOverride() const;
580
582 friend class UAnimInstance;
584 friend class USkeletalMeshComponent;
588 friend struct FAnimTrace;
589 friend struct UE::Anim::FAnimSync;
592 friend struct FAnimNode_ControlRigInputPose;
593 friend struct FSequencerMixedAnimInstanceProxy;
594
595protected:
598
600 ENGINE_API virtual void Uninitialize(UAnimInstance* InAnimInstance);
601
603 ENGINE_API void UpdateActiveAnimNotifiesSinceLastTick(const FAnimNotifyQueue& AnimInstanceQueue);
604
606 ENGINE_API virtual void PreUpdate(UAnimInstance* InAnimInstance, float DeltaSeconds);
607
609 ENGINE_API void OnPreUpdateLODChanged(const int32 PreviousLODIndex, const int32 NewLODIndex);
610
612 virtual void Update(float DeltaSeconds) {}
613
615 ENGINE_API virtual void UpdateAnimationNode(const FAnimationUpdateContext& InContext);
616
618 ENGINE_API virtual void UpdateAnimationNode_WithRoot(const FAnimationUpdateContext& InContext, FAnimNode_Base* InRootNode, FName InLayerName);
619
621 ENGINE_API virtual void PreEvaluateAnimation(UAnimInstance* InAnimInstance);
622
625 {
626 return nullptr;
627 }
628
633
639 ENGINE_API virtual void CacheBones();
640
646 ENGINE_API virtual void CacheBones_WithRoot(FAnimNode_Base* InRootNode);
647
653 virtual bool Evaluate(FPoseContext& Output) { return false; }
654
661
663 ENGINE_API virtual void PostUpdate(UAnimInstance* InAnimInstance) const;
664
666 ENGINE_API virtual void PostEvaluate(UAnimInstance* InAnimInstance);
667
669 ENGINE_API virtual void InitializeObjects(UAnimInstance* InAnimInstance);
670
676 ENGINE_API virtual void ClearObjects();
677
679 ENGINE_API void UpdateAnimation();
680
683
685 ENGINE_API void EvaluateAnimation(FPoseContext& Output);
686
688 ENGINE_API void EvaluateAnimation_WithRoot(FPoseContext& Output, FAnimNode_Base* InRootNode);
689
691 ENGINE_API void EvaluateAnimationNode(FPoseContext& Output);
692
694 ENGINE_API void EvaluateAnimationNode_WithRoot(FPoseContext& Output, FAnimNode_Base* InRootNode);
695
696 // @todo document
697 ENGINE_API void SequenceAdvanceImmediate(UAnimSequenceBase* Sequence, bool bLooping, float PlayRate, float DeltaSeconds, /*inout*/ float& CurrentTime, FMarkerTickRecord& MarkerTickRecord);
698
699 // @todo document
700 ENGINE_API void BlendSpaceAdvanceImmediate(UBlendSpace* BlendSpace, const FVector& BlendInput, TArray<FBlendSampleData> & BlendSampleDataCache, FBlendFilter & BlendFilter, bool bLooping, float PlayRate, float DeltaSeconds, /*inout*/ float& CurrentTime, FMarkerTickRecord& MarkerTickRecord);
701
702 UE_DEPRECATED(5.0, "Function renamed to GetBufferReadIndex as this no longer deals with sync groups.")
703 int32 GetSyncGroupReadIndex() const
704 {
705 return GetBufferReadIndex();
706 }
707
708 UE_DEPRECATED(5.0, "Function renamed to GetBufferWriteIndex as this no longer deals with sync groups.")
709 int32 GetSyncGroupWriteIndex() const
710 {
711 return GetBufferWriteIndex();
712 }
713
714 // Gets the buffer we should be reading from
716 {
717 return 1 - BufferWriteIndex;
718 }
719
720 // Gets the sync group we should be writing to
722 {
723 return BufferWriteIndex;
724 }
725
727 ENGINE_API int32 GetSyncGroupIndexFromName(FName SyncGroupName) const;
728
729 ENGINE_API bool GetTimeToClosestMarker(FName SyncGroup, FName MarkerName, float& OutMarkerTime) const;
730
731 ENGINE_API bool HasMarkerBeenHitThisFrame(FName SyncGroup, FName MarkerName) const;
732
733 ENGINE_API bool IsSyncGroupBetweenMarkers(FName InSyncGroupName, FName PreviousMarker, FName NextMarker, bool bRespectMarkerOrder = true) const;
734
735 ENGINE_API FMarkerSyncAnimPosition GetSyncGroupPosition(FName InSyncGroupName) const;
736
737 // Set the mirror data table to sync animations
738 void SetSyncMirror(const UMirrorDataTable* MirrorDataTable)
739 {
740 Sync.SetMirror(MirrorDataTable);
741 }
742
743 // slot node run-time functions
744 ENGINE_API void ReinitializeSlotNodes();
745
746 // if it doesn't tick, it will keep old weight, so we'll have to clear it in the beginning of tick
747 ENGINE_API void ClearSlotNodeWeights();
748
751 ENGINE_API float GetSlotNodeGlobalWeight(const FName& SlotNodeName) const;
752
755 ENGINE_API float GetSlotMontageGlobalWeight(const FName& SlotNodeName) const;
756
760 ENGINE_API float GetSlotMontageLocalWeight(const FName& SlotNodeName) const;
761
765 ENGINE_API float CalcSlotMontageLocalWeight(const FName& SlotNodeName) const;
766
772 ENGINE_API void RecalcRequiredBones(USkeletalMeshComponent* Component, UObject* Asset);
773
777 ENGINE_API void RecalcRequiredCurves(const UE::Anim::FCurveFilterSettings& CurveFilterSettings);
778
779 UE_DEPRECATED(5.3, "Please use RecalcRequiredCurves that takes a FCurveEvaluationOption.")
780 ENGINE_API void RecalcRequiredCurves(const FCurveEvaluationOption& CurveEvalOption);
781
782 UE_DEPRECATED(5.3, "This function is no longer used.")
783 void UpdateCurvesToComponents(USkeletalMeshComponent* Component) {}
784
787 ENGINE_API const FMontageEvaluationState* GetActiveMontageEvaluationState() const;
788
789 UE_DEPRECATED(5.5, "Please use GetSlotGroupInertializationRequestDataMap instead.")
790 ENGINE_API TMap<FName, UE::Anim::FSlotInertializationRequest>& GetSlotGroupInertializationRequestMap();
791
792 ENGINE_API TMap<FName, FInertializationRequest>& GetSlotGroupInertializationRequestDataMap();
793
795 ENGINE_API TArray<FMontageEvaluationState>& GetMontageEvaluationData();
796
798 ENGINE_API const TArray<FMontageEvaluationState>& GetMontageEvaluationData() const;
799
803 UE_DEPRECATED(5.1, "Please use GetRelevantAssetPlayerInterfaceFromState")
804 const FAnimNode_AssetPlayerBase* GetRelevantAssetPlayerFromState(int32 MachineIndex, int32 StateIndex) const
805 {
806 return nullptr;
807 }
808
810 ENGINE_API const FAnimNode_AssetPlayerRelevancyBase* GetRelevantAssetPlayerInterfaceFromState(int32 MachineIndex, int32 StateIndex) const;
811
813 template<class NodeType>
815 {
816 return (NodeType*)Property->ContainerPtrToValuePtr<NodeType>(AnimInstanceObject);
817 }
818
820 ENGINE_API float GetInstanceAssetPlayerLength(int32 AssetPlayerIndex) const;
821
823 ENGINE_API float GetInstanceAssetPlayerTime(int32 AssetPlayerIndex) const;
824
826 ENGINE_API float GetInstanceAssetPlayerTimeFraction(int32 AssetPlayerIndex) const;
827
829 ENGINE_API float GetInstanceAssetPlayerTimeFromEnd(int32 AssetPlayerIndex) const;
830
832 ENGINE_API float GetInstanceAssetPlayerTimeFromEndFraction(int32 AssetPlayerIndex) const;
833
835 ENGINE_API float GetInstanceMachineWeight(int32 MachineIndex) const;
836
838 ENGINE_API float GetInstanceStateWeight(int32 MachineIndex, int32 StateIndex) const;
839
841 ENGINE_API float GetInstanceCurrentStateElapsedTime(int32 MachineIndex) const;
842
844 ENGINE_API float GetInstanceTransitionCrossfadeDuration(int32 MachineIndex, int32 TransitionIndex) const;
845
847 ENGINE_API float GetInstanceTransitionTimeElapsed(int32 MachineIndex, int32 TransitionIndex) const;
848
850 ENGINE_API float GetInstanceTransitionTimeElapsedFraction(int32 MachineIndex, int32 TransitionIndex) const;
851
853 ENGINE_API float GetRelevantAnimTimeRemaining(int32 MachineIndex, int32 StateIndex) const;
854
856 ENGINE_API float GetRelevantAnimTimeRemainingFraction(int32 MachineIndex, int32 StateIndex) const;
857
859 ENGINE_API float GetRelevantAnimLength(int32 MachineIndex, int32 StateIndex) const;
860
862 ENGINE_API float GetRelevantAnimTime(int32 MachineIndex, int32 StateIndex) const;
863
865 ENGINE_API float GetRelevantAnimTimeFraction(int32 MachineIndex, int32 StateIndex) const;
866
868 ENGINE_API bool WasAnimNotifyStateActiveInAnyState(TSubclassOf<UAnimNotifyState> AnimNotifyStateType) const;
869
871 ENGINE_API bool WasAnimNotifyStateActiveInStateMachine(int32 MachineIndex, TSubclassOf<UAnimNotifyState> AnimNotifyStateType) const;
872
874 ENGINE_API bool WasAnimNotifyStateActiveInSourceState(int32 MachineIndex, int32 StateIndex, TSubclassOf<UAnimNotifyState> AnimNotifyStateType) const;
875
877 ENGINE_API bool WasAnimNotifyTriggeredInSourceState(int32 MachineIndex, int32 StateIndex, TSubclassOf<UAnimNotify> AnimNotifyType) const;
878
880 ENGINE_API bool WasAnimNotifyNameTriggeredInSourceState(int32 MachineIndex, int32 StateIndex, FName NotifyName) const;
881
883 ENGINE_API bool WasAnimNotifyTriggeredInStateMachine(int32 MachineIndex, TSubclassOf<UAnimNotify> AnimNotifyType) const;
884
886 ENGINE_API bool WasAnimNotifyTriggeredInAnyState(TSubclassOf<UAnimNotify> AnimNotifyType) const;
887
889 ENGINE_API bool WasAnimNotifyNameTriggeredInAnyState(FName NotifyName) const;
890
892 ENGINE_API bool WasAnimNotifyNameTriggeredInStateMachine(int32 MachineIndex, FName NotifyName);
893
895 ENGINE_API bool RequestTransitionEvent(const FName& EventName, const double RequestTimeout, const ETransitionRequestQueueMode& QueueMode, const ETransitionRequestOverwriteMode& OverwriteMode);
896
898 ENGINE_API void ClearTransitionEvents(const FName& EventName);
899
901 ENGINE_API void ClearAllTransitionEvents();
902
904 ENGINE_API bool QueryTransitionEvent(int32 NodeIndex, int32 TransitionIndex, const FName& EventName) const;
905
907 ENGINE_API bool QueryAndMarkTransitionEvent(int32 NodeIndex, int32 TransitionIndex, const FName& EventName);
908
909 // Sets up a native transition delegate between states with PrevStateName and NextStateName, in the state machine with name MachineName.
910 // Note that a transition already has to exist for this to succeed
911 ENGINE_API void AddNativeTransitionBinding(const FName& MachineName, const FName& PrevStateName, const FName& NextStateName, const FCanTakeTransition& NativeTransitionDelegate, const FName& TransitionName = NAME_None);
912
913 // Check for whether a native rule is bound to the specified transition
914 ENGINE_API bool HasNativeTransitionBinding(const FName& MachineName, const FName& PrevStateName, const FName& NextStateName, FName& OutBindingName);
915
916 // Sets up a native state entry delegate from state with StateName, in the state machine with name MachineName.
917 ENGINE_API void AddNativeStateEntryBinding(const FName& MachineName, const FName& StateName, const FOnGraphStateChanged& NativeEnteredDelegate, const FName& BindingName = NAME_None);
918
919 // Check for whether a native entry delegate is bound to the specified state
920 ENGINE_API bool HasNativeStateEntryBinding(const FName& MachineName, const FName& StateName, FName& OutBindingName);
921
922 // Sets up a native state exit delegate from state with StateName, in the state machine with name MachineName.
923 ENGINE_API void AddNativeStateExitBinding(const FName& MachineName, const FName& StateName, const FOnGraphStateChanged& NativeExitedDelegate, const FName& BindingName = NAME_None);
924
925 // Check for whether a native exit delegate is bound to the specified state
926 ENGINE_API bool HasNativeStateExitBinding(const FName& MachineName, const FName& StateName, FName& OutBindingName);
927
929 ENGINE_API void BindNativeDelegates();
930
932 ENGINE_API const FBakedAnimationStateMachine* GetStateMachineInstanceDesc(FName MachineName) const;
933
935 ENGINE_API int32 GetStateMachineIndex(FName MachineName) const;
936
938 ENGINE_API int32 GetStateMachineIndex(FAnimNode_StateMachine* StateMachine) const;
939
940 ENGINE_API void GetStateMachineIndexAndDescription(FName InMachineName, int32& OutMachineIndex, const FBakedAnimationStateMachine** OutMachineDescription) const;
941
943 ENGINE_API void InitializeRootNode(bool bInDeferRootNodeInitialization = false);
944
946 ENGINE_API void InitializeRootNode_WithRoot(FAnimNode_Base* InRootNode);
947
949 ENGINE_API virtual void AddReferencedObjects(UAnimInstance* InAnimInstance, FReferenceCollector& Collector);
950
954
958
960 ENGINE_API void ResetAnimationCurves();
961
963 ENGINE_API void UpdateCurvesToEvaluationContext(const FAnimationEvaluationContext& InContext);
964
966 ENGINE_API void UpdateCurvesPostEvaluation(USkeletalMeshComponent* SkelMeshComp);
967
969 ENGINE_API bool HasActiveCurves() const;
970
971
972 UE_DEPRECATED(5.3, "Please use AddCurveValue that does not take a FSmartNameMapping.")
973 void AddCurveValue(const FSmartNameMapping& Mapping, const FName& CurveName, float Value) { AddCurveValue(CurveName, Value); }
974
976 ENGINE_API void AddCurveValue(const FName& CurveName, float Value, bool bMorphtarget = false, bool bMaterial = false);
977
979 static ENGINE_API void InitializeInputProxy(FAnimInstanceProxy* InputProxy, UAnimInstance* InAnimInstance);
980 static ENGINE_API void GatherInputProxyDebugData(FAnimInstanceProxy* InputProxy, FNodeDebugData& DebugData);
981 static ENGINE_API void CacheBonesInputProxy(FAnimInstanceProxy* InputProxy);
982 static ENGINE_API void UpdateInputProxy(FAnimInstanceProxy* InputProxy, const FAnimationUpdateContext& Context);
983 static ENGINE_API void EvaluateInputProxy(FAnimInstanceProxy* InputProxy, FPoseContext& Output);
984 static ENGINE_API void ResetCounterInputProxy(FAnimInstanceProxy* InputProxy);
985
988 {
989 Sync.ResetAll();
990 }
991
992#if ENABLE_ANIM_DRAW_DEBUG
995#endif
996
997private:
998
999 FName GetTargetLogNameForCurrentWorldType() const;
1000
1002 ENGINE_API void ForEachStateMachine(const TFunctionRef<void(FAnimNode_StateMachine&)>& Functor);
1003
1006
1008 ENGINE_API void InitializeCachedClassData();
1009
1011 FTransform ComponentTransform;
1012
1014 FTransform ComponentRelativeTransform;
1015
1017 FTransform ActorTransform;
1018
1020 mutable UObject* AnimInstanceObject;
1021
1023 IAnimClassInterface* AnimClassInterface;
1024
1027
1029 USkeletalMeshComponent* SkeletalMeshComponent;
1030
1032 FAnimInstanceProxy* MainInstanceProxy;
1033
1035 float CurrentDeltaSeconds;
1036
1038 float CurrentTimeDilation;
1039
1040#if WITH_EDITORONLY_DATA
1043
1047
1050#endif
1051
1052#if ENABLE_ANIM_LOGGING
1054 FString ActorName;
1055#endif
1056
1058 FAnimNode_Base* RootNode;
1059
1061 FAnimNode_LinkedInputPose* DefaultLinkedInstanceInputNode;
1062
1065
1068
1070 TArray<float> MachineWeightArrays[2];
1071
1073 TArray<float> StateWeightArrays[2];
1074
1076 TMap<int32, int32> StateMachineClassIndexToWeightOffset;
1077
1078 // Current buffer index
1079 int32 BufferWriteIndex;
1080
1082 FAnimNotifyQueue NotifyQueue;
1083
1084 // Root motion mode duplicated from the anim instance
1085 ERootMotionMode::Type RootMotionMode;
1086
1087 // Read/write buffers Tracker map for slot name->weights/relevancy
1088 TMap<FName, int32> SlotNameToTrackerIndex;
1089 TArray<FMontageActiveSlotTracker> SlotWeightTracker[2];
1090
1092 TMap<FName, float> AnimationCurves[(uint8)EAnimCurveType::MaxAnimCurveType];
1093
1095 TSet<FName> MaterialParametersToClear;
1096
1097protected:
1098 // Animation Notifies that has been triggered since the last tick. These can be safely consumed at any point.
1100
1101 // Counters for synchronization
1107
1108 // Sync counter
1111
1114
1115private:
1116 // Root motion extracted from animation since the last time ConsumeExtractedRootMotion was called
1117 FRootMotionMovementParams ExtractedRootMotion;
1118
1123 TSharedPtr<FBoneContainer> RequiredBones;
1124
1126 int32 LODLevel = 0;
1127
1129 int32 CacheBonesRecursionCounter;
1130
1132 int16 NumUroSkippedFrames_Update;
1133 int16 NumUroSkippedFrames_Eval;
1134
1135private:
1137 TArray<FMontageEvaluationState> MontageEvaluationData;
1138
1139 UE_DEPRECATED(5.5, "This property is deprecated. Please use SlotGroupInertializationRequestDataMap instead")
1140 TMap<FName, UE::Anim::FSlotInertializationRequest> SlotGroupInertializationRequestMap;
1141
1142 // Inertialization request for each slot.
1144 TMap<FName, FInertializationRequest> SlotGroupInertializationRequestDataMap;
1145
1147 TArray<FAnimNode_Base*> GameThreadPreUpdateNodes;
1148
1150 TArray<FAnimNode_Base*> LODDisabledGameThreadPreUpdateNodes;
1151
1153 TArray<FAnimNode_Base*> DynamicResetNodes;
1154
1156 TArray<FNativeTransitionBinding> NativeTransitionBindings;
1157
1159 TArray<FNativeStateBinding> NativeStateEntryBindings;
1160
1162 TArray<FNativeStateBinding> NativeStateExitBindings;
1163
1165 TArray<FPoseSnapshot> PoseSnapshots;
1166
1167#if ENABLE_ANIM_LOGGING
1172 mutable TMap<FName, TArray<FLogMessageEntry>> LoggedMessagesMap;
1173
1175 mutable TArray<FGuid> PreviouslyLoggedMessages;
1176#endif
1177
1179 bool bUpdatingRoot;
1180
1181protected:
1184
1185private:
1186 // Diplicate of bool result of ShouldExtractRootMotion()
1187 uint8 bShouldExtractRootMotion : 1;
1188
1190 uint8 bDeferRootNodeInitialization : 1;
1191
1192#if WITH_EDITORONLY_DATA
1195
1197 uint8 bIsGameWorld : 1;
1198#endif
1199
1200 // Whether subsystems should be initialized
1201 uint8 bInitializeSubsystems : 1;
1202
1203 uint8 bUseMainInstanceMontageEvaluationData : 1;
1204};
1205
1206#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_6
1207#include "Animation/AnimTrace.h"
1208#endif
OODEFFUNC typedef const int const char * function
Definition oodle2.h:710
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
EAnimCurveType
Definition AnimCurveTypes.h:29
const FName NAME_AnimBlueprintLog
const FName NAME_Evaluate
const FName NAME_AnimGraph
const FName NAME_Update
NotifyName
Definition AnimInstance.h:121
ETransitionRequestQueueMode
Definition AnimStateMachineTypes.h:18
ETransitionRequestOverwriteMode
Definition AnimStateMachineTypes.h:25
EAnimSyncGroupScope
Definition AnimationAsset.h:618
#define ensureAlways( InExpression)
Definition AssertionMacros.h:466
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::int16 int16
A 16-bit signed integer.
Definition Platform.h:1123
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_DELEGATE_RetVal(ReturnValueType, DelegateName)
Definition DelegateCombinations.h:41
#define DECLARE_DELEGATE_ThreeParams(DelegateName, Param1Type, Param2Type, Param3Type)
Definition DelegateCombinations.h:66
ETeleportType
Definition EngineTypes.h:2401
ESceneDepthPriorityGroup
Definition EngineTypes.h:187
@ SDPG_World
Definition EngineTypes.h:189
#define FVector
Definition IOSSystemIncludes.h:8
UE::Math::TVector2< double > FVector2D
Definition MathFwd.h:48
UE::Math::TRotator< double > FRotator
Definition MathFwd.h:57
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
uint32 Size
Definition VulkanMemory.cpp:4034
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition Actor.h:257
Definition NameTypes.h:617
Definition UnrealType.h:3087
Definition UnrealType.h:174
Definition UObjectGlobals.h:2492
Definition Text.h:385
Definition TokenizedMessage.h:112
Definition AnimClassInterface.h:193
static ENGINE_API UClass * GetActualAnimClass(IAnimClassInterface *AnimClassInterface)
Definition AnimClassInterface.cpp:51
Definition Array.h:670
Definition EnumAsByte.h:22
Definition AssetRegistryState.h:50
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition SubclassOf.h:30
Definition AnimBlueprint.h:82
Definition AnimInstance.h:353
Definition AnimNotifyState.h:25
Definition AnimNotify.h:52
Definition AnimSequenceBase.h:37
Definition AnimSingleNodeInstance.h:24
Definition BlendProfile.h:132
Definition BlendSpace.h:467
Definition Class.h:3793
Definition ActiveStateMachineScope.h:51
Definition AnimSyncScope.h:33
Definition MirrorDataTable.h:102
Definition Object.h:95
Definition PoseAsset.h:186
Definition Class.h:1720
Definition Skeleton.h:295
Definition World.h:918
Definition AnimInstanceProxy.h:77
Type
Definition AnimInstanceProxy.h:79
@ DirectionalArrow
Definition AnimInstanceProxy.h:80
@ InWorldMessage
Definition AnimInstanceProxy.h:88
@ OnScreenMessage
Definition AnimInstanceProxy.h:83
Definition TokenizedMessage.h:18
Type
Definition TokenizedMessage.h:21
Type
Definition AnimEnums.h:30
int
Definition TestServer.py:515
Definition AnimationAsset.h:42
TPair< float, const UBlendProfile * > FSlotInertializationRequest
Definition AnimInstance.h:55
Definition AdvancedWidgetsModule.cpp:13
Definition AnimBlueprintGeneratedClass.h:149
Definition AnimBlueprintGeneratedClass.h:134
Definition AnimBlueprintGeneratedClass.h:163
Definition AnimationAsset.h:642
Definition AnimInstanceProxy.h:144
ENGINE_API void AnimDrawDebugOnScreenMessage(const FString &DebugMessage, const FColor &Color, const FVector2D &TextScale=FVector2D::UnitVector, ESceneDepthPriorityGroup DepthPriority=SDPG_World)
FAnimNode_Base * GetRootNode()
Definition AnimInstanceProxy.h:453
const FGraphTraversalCounter & GetEvaluationCounter() const
Definition AnimInstanceProxy.h:284
FString GetAnimInstanceName() const
Definition AnimInstanceProxy.h:499
virtual void Update(float DeltaSeconds)
Definition AnimInstanceProxy.h:612
const FGraphTraversalCounter & GetUpdateCounter() const
Definition AnimInstanceProxy.h:283
UObject * GetAnimInstanceObject()
Definition AnimInstanceProxy.h:293
uint64 FrameCounterForUpdate
Definition AnimInstanceProxy.h:1109
IAnimClassInterface * GetAnimClassInterface() const
Definition AnimInstanceProxy.h:160
void SetSyncMirror(const UMirrorDataTable *MirrorDataTable)
Definition AnimInstanceProxy.h:738
virtual bool Evaluate(FPoseContext &Output)
Definition AnimInstanceProxy.h:653
const FTransform & GetComponentTransform() const
Definition AnimInstanceProxy.h:557
USkeleton * GetSkeleton()
Definition AnimInstanceProxy.h:367
FAnimInstanceProxy * GetMainInstanceProxy() const
Definition AnimInstanceProxy.h:385
USkeletalMeshComponent * GetSkelMeshComponent() const
Definition AnimInstanceProxy.h:376
int32 GetLODLevel() const
Definition AnimInstanceProxy.h:349
const FString & GetActorName() const
Definition AnimInstanceProxy.h:493
void ResetUpdateCounter()
Definition AnimInstanceProxy.h:287
virtual bool Evaluate_WithRoot(FPoseContext &Output, FAnimNode_Base *InRootNode)
Definition AnimInstanceProxy.h:660
FGraphTraversalCounter SlotNodeInitializationCounter
Definition AnimInstanceProxy.h:1106
uint8 bBoneCachesInvalidated
Definition AnimInstanceProxy.h:1183
float GetTimeDilation() const
Definition AnimInstanceProxy.h:172
ENGINE_API void AnimDrawDebugCoordinateSystem(FVector const &AxisLoc, FRotator const &AxisRot, float Scale=1.f, bool bPersistentLines=false, float LifeTime=-1.f, float Thickness=0.f, ESceneDepthPriorityGroup DepthPriority=SDPG_World)
int32 GetBufferReadIndex() const
Definition AnimInstanceProxy.h:715
ENGINE_API FAnimInstanceProxy(const FAnimInstanceProxy &)
int32 GetBufferWriteIndex() const
Definition AnimInstanceProxy.h:721
const FSyncGroupMap & GetSyncGroupMapRead() const
Definition AnimInstanceProxy.h:233
void AddCurveValue(const FSmartNameMapping &Mapping, const FName &CurveName, float Value)
Definition AnimInstanceProxy.h:973
FGraphTraversalCounter CachedBonesCounter
Definition AnimInstanceProxy.h:1103
const FTransform & GetActorTransform() const
Definition AnimInstanceProxy.h:560
TArray< FQueuedDrawDebugItem > QueuedDrawDebugItems
Definition AnimInstanceProxy.h:465
NodeType * GetMutableNodeFromIndex(int32 NodeIdx) const
Definition AnimInstanceProxy.h:331
const FGraphTraversalCounter & GetCachedBonesCounter() const
Definition AnimInstanceProxy.h:282
TArray< FAnimNotifyEventReference > ActiveAnimNotifiesSinceLastTick
Definition AnimInstanceProxy.h:1099
const FGraphTraversalCounter & GetInitializationCounter() const
Definition AnimInstanceProxy.h:281
FGraphTraversalCounter EvaluationCounter
Definition AnimInstanceProxy.h:1105
ENGINE_API FAnimInstanceProxy & operator=(const FAnimInstanceProxy &)
const FBoneContainer & GetRequiredBones() const
Definition AnimInstanceProxy.h:337
virtual FAnimNode_Base * GetCustomRootNode()
Definition AnimInstanceProxy.h:624
NodeType * GetNodeFromProperty(FProperty *Property)
Definition AnimInstanceProxy.h:814
const TMap< FName, float > & GetAnimationCurves(EAnimCurveType InCurveType) const
Definition AnimInstanceProxy.h:957
ENGINE_API void AnimDrawDebugSphere(const FVector &Center, float Radius, int32 Segments, const FColor &Color, bool bPersistentLines=false, float LifeTime=-1.f, float Thickness=0.f, ESceneDepthPriorityGroup DepthPriority=SDPG_World)
FGraphTraversalCounter InitializationCounter
Definition AnimInstanceProxy.h:1102
virtual ENGINE_API ~FAnimInstanceProxy()
void FlipBufferWriteIndex()
Definition AnimInstanceProxy.h:220
const NodeType * GetNodeFromIndex(int32 NodeIdx) const
Definition AnimInstanceProxy.h:324
const TArray< FAnimTickRecord > & GetUngroupedActivePlayersRead()
Definition AnimInstanceProxy.h:239
FRootMotionMovementParams & GetExtractedRootMotion()
Definition AnimInstanceProxy.h:290
void ResetSync()
Definition AnimInstanceProxy.h:987
ENGINE_API void AnimDrawDebugCone(const FVector &Center, float Radius, const FVector &Direction, float AngleWidth, float AngleHeight, int32 Segments, const FColor &Color, bool bPersistentLines=false, float LifeTime=-1.f, ESceneDepthPriorityGroup DepthPriority=SDPG_World, float Thickness=0.f)
bool ShouldExtractRootMotion() const
Definition AnimInstanceProxy.h:263
const NodeType * GetCheckedNodeFromIndex(int32 NodeIdx) const
Definition AnimInstanceProxy.h:310
TOptional< EAnimInterpolationType > InterpolationOverride
Definition AnimInstanceProxy.h:1113
ENGINE_API void AnimDrawDebugCircle(const FVector &Center, float Radius, int32 Segments, const FColor &Color, const FVector &UpVector=FVector::UpVector, bool bPersistentLines=false, float LifeTime=-1.f, ESceneDepthPriorityGroup DepthPriority=SDPG_World, float Thickness=0.f)
ENGINE_API void AnimDrawDebugLine(const FVector &StartLoc, const FVector &EndLoc, const FColor &Color, bool bPersistentLines=false, float LifeTime=-1.f, float Thickness=0.f, ESceneDepthPriorityGroup DepthPriority=SDPG_World)
TMap< FName, float > & GetAnimationCurves(EAnimCurveType InCurveType)
Definition AnimInstanceProxy.h:956
ENGINE_API FAnimInstanceProxy & operator=(FAnimInstanceProxy &&)
ENGINE_API void AnimDrawDebugInWorldMessage(const FString &DebugMessage, const FVector &TextLocation, const FColor &Color, float TextScale)
FGraphTraversalCounter UpdateCounter
Definition AnimInstanceProxy.h:1104
const FGraphTraversalCounter & GetSlotNodeInitializationCounter() const
Definition AnimInstanceProxy.h:285
const UObject * GetAnimInstanceObject() const
Definition AnimInstanceProxy.h:294
NodeType * GetCheckedMutableNodeFromIndex(int32 NodeIdx) const
Definition AnimInstanceProxy.h:317
ERootMotionMode::Type GetRootMotionMode() const
Definition AnimInstanceProxy.h:505
ENGINE_API void AnimDrawDebugCapsule(const FVector &Center, float HalfHeight, float Radius, const FRotator &Rotation, const FColor &Color, bool bPersistentLines=false, float LifeTime=-1.f, float Thickness=0.f, ESceneDepthPriorityGroup DepthPriority=SDPG_World)
ENGINE_API void AnimDrawDebugDirectionalArrow(const FVector &LineStart, const FVector &LineEnd, float ArrowSize, const FColor &Color, bool bPersistentLines=false, float LifeTime=-1.f, float Thickness=0.f, ESceneDepthPriorityGroup DepthPriority=SDPG_World)
virtual void GetCustomNodes(TArray< FAnimNode_Base * > &OutNodes)
Definition AnimInstanceProxy.h:630
FBoneContainer & GetRequiredBones()
Definition AnimInstanceProxy.h:343
uint64 FrameCounterForNodeUpdate
Definition AnimInstanceProxy.h:1110
ENGINE_API void AnimDrawDebugPlane(const FTransform &BaseTransform, float Radii, const FColor &Color, bool bPersistentLines=false, float LifeTime=-1.f, float Thickness=0.f, ESceneDepthPriorityGroup DepthPriority=SDPG_World)
float GetDeltaSeconds() const
Definition AnimInstanceProxy.h:166
void FlushQueuedDebugDrawItems(AActor *InActor, UWorld *InWorld) const
ENGINE_API void AnimDrawDebugPoint(const FVector &Loc, float Size, const FColor &Color, bool bPersistentLines=false, float LifeTime=-1.f, ESceneDepthPriorityGroup DepthPriority=SDPG_World)
Definition AnimNode_AssetPlayerBase.h:15
Definition AnimNode_RelevantAssetPlayerBase.h:14
Definition AnimNodeBase.h:853
Definition AnimNode_LinkedAnimGraph.h:22
Definition AnimNode_LinkedAnimLayer.h:22
Definition AnimNode_LinkedInputPose.h:14
Definition AnimNode_SaveCachedPose.h:47
Definition AnimNode_StateMachine.h:123
Definition AnimNotifyQueue.h:161
Definition AnimationAsset.h:411
Definition AnimNodeBase.h:159
Definition SkeletalMeshComponent.h:87
Definition AnimationPoseData.h:16
Definition AnimNodeBase.h:354
Definition AnimStateMachineTypes.h:364
Definition AnimationAsset.h:209
Definition AnimationAsset.h:122
Definition AnimCurveTypes.h:1041
Definition BoneContainer.h:192
Definition BonePose.h:408
Definition Color.h:486
Definition BonePose.h:347
Definition AnimNodeBase.h:600
Definition BoneContainer.h:57
Definition AnimTypes.h:144
Definition AnimInertializationRequest.h:15
Definition AnimationAsset.h:361
Definition AnimationAsset.h:67
Definition AnimInstance.h:330
Definition AnimMontageEvaluationState.h:8
Definition AnimInstance.h:302
Definition AnimInstance.h:270
Definition AnimNodeBase.h:642
Definition AnimNodeBase.h:479
Definition PoseSnapshot.h:11
Definition AnimInstanceProxy.h:96
FVectorEntry(const FVector &InVector)
Definition AnimInstanceProxy.h:97
FVector Value
Definition AnimInstanceProxy.h:101
Definition AnimInstanceProxy.h:94
float AngleHeight
Definition AnimInstanceProxy.h:113
FRotator Rotation
Definition AnimInstanceProxy.h:124
TEnumAsByte< ESceneDepthPriorityGroup > DepthPriority
Definition AnimInstanceProxy.h:134
FVectorEntry EndLoc
Definition AnimInstanceProxy.h:119
float Radius
Definition AnimInstanceProxy.h:125
FVector Center
Definition AnimInstanceProxy.h:123
float Length
Definition AnimInstanceProxy.h:111
float Thickness
Definition AnimInstanceProxy.h:131
FVectorEntry Direction
Definition AnimInstanceProxy.h:120
FString Message
Definition AnimInstanceProxy.h:132
FVector2D TextScale
Definition AnimInstanceProxy.h:133
FColor Color
Definition AnimInstanceProxy.h:128
int32 Segments
Definition AnimInstanceProxy.h:127
FQueuedDrawDebugItem()
Definition AnimInstanceProxy.h:135
float AngleWidth
Definition AnimInstanceProxy.h:112
bool bPersistentLines
Definition AnimInstanceProxy.h:129
float LifeTime
Definition AnimInstanceProxy.h:130
FVector StartLoc
Definition AnimInstanceProxy.h:108
TEnumAsByte< EDrawDebugItemType::Type > ItemType
Definition AnimInstanceProxy.h:104
float Size
Definition AnimInstanceProxy.h:126
Definition ResourceArray.h:31
Definition AnimationAsset.h:711
Definition SmartName.h:20
Definition Optional.h:131
Definition Tuple.h:652
Definition AnimSync.h:34
Definition BoneContainer.h:76
static CORE_API const TVector2< double > UnitVector
Definition Vector2D.h:70
static CORE_API const TVector< double > UpVector
Definition Vector.h:85