15#include "AnimInstanceProxy.generated.h"
52 class FAnimSyncGroupScope;
53 class FActiveStateMachineScope;
54 struct FAnimSyncParams;
59template<
class PoseType>
struct FCSPose;
62#define ENABLE_ANIM_DRAW_DEBUG (1 && !(UE_BUILD_SHIPPING || UE_BUILD_TEST))
65#define ENABLE_ANIM_LOGGING (1 && !NO_LOGGING && !(UE_BUILD_SHIPPING || UE_BUILD_TEST))
142USTRUCT(meta = (DisplayName =
"Native Variables"))
162 return AnimClassInterface;
168 return CurrentDeltaSeconds;
174 return CurrentTimeDilation;
177#if WITH_EDITORONLY_DATA
203 UE_DEPRECATED(5.6,
"Please use RegisterWatchedPose that takes a pose context")
213 UE_DEPRECATED(5.0,
"Function renamed to FlipBufferWriteIndex as this no longer deals with sync groups.")
216 FlipBufferWriteIndex();
222 BufferWriteIndex = GetBufferReadIndex();
225 UE_DEPRECATED(5.0,
"Sync groups are no longer stored in arrays, please use GetSyncGroupMapRead.")
235 return Sync.GetSyncGroupMapRead();
241 return Sync.GetUngroupedActivePlayersRead();
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);
254 ENGINE_API void TriggerAnimNotifies(USkeletalMeshComponent* SkelMeshComp,
float DeltaSeconds);
265 return bShouldExtractRootMotion;
309 template<
class NodeType>
312 return (NodeType*)GetCheckedNodeFromIndexUntyped(NodeIdx, NodeType::StaticStruct());
316 template<
class NodeType>
319 return (NodeType*)GetCheckedMutableNodeFromIndexUntyped(NodeIdx, NodeType::StaticStruct());
323 template<
class NodeType>
326 return (NodeType*)GetNodeFromIndexUntyped(NodeIdx, NodeType::StaticStruct());
330 template<
class NodeType>
333 return (NodeType*)GetNodeFromIndexUntyped(NodeIdx, NodeType::StaticStruct());
339 return *RequiredBones;
345 return *RequiredBones;
357 return ComponentTransform;
363 return ActorTransform;
381 return SkeletalMeshComponent;
388 return MainInstanceProxy;
391 UE_DEPRECATED(4.26,
"Please use the overload that takes a group FName")
397 UE_DEPRECATED(5.0, "Please use FAnimSyncGroupScope")
400 UE_DEPRECATED(5.0, "Please use FAnimSyncGroupScope")
430 UE_DEPRECATED(4.26,
"Use SlotEvaluatePose with other signature")
438 UE_DEPRECATED(5.5, "Please use GetSlotInertializationRequestData
instead.")
447 bool HasRootNode()
const
449 return RootNode !=
nullptr;
464#if ENABLE_ANIM_DRAW_DEBUG
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);
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) {}
492#if ENABLE_ANIM_LOGGING
501 return AnimInstanceObject->GetFullName();
507 return RootMotionMode;
550 UE_DEPRECATED(4.20,
"Please use ResetDynamics with a ETeleportType argument")
554 const
FTransform& GetComponentRelativeTransform()
const {
return ComponentRelativeTransform; }
584 friend class USkeletalMeshComponent;
588 friend struct FAnimTrace;
592 friend struct FAnimNode_ControlRigInputPose;
593 friend struct FSequencerMixedAnimInstanceProxy;
612 virtual void Update(
float DeltaSeconds) {}
702 UE_DEPRECATED(5.0,
"Function renamed to GetBufferReadIndex as this no longer deals with sync groups.")
705 return GetBufferReadIndex();
708 UE_DEPRECATED(5.0,
"Function renamed to GetBufferWriteIndex as this no longer deals with sync groups.")
709 int32 GetSyncGroupWriteIndex()
const
711 return GetBufferWriteIndex();
717 return 1 - BufferWriteIndex;
723 return BufferWriteIndex;
740 Sync.SetMirror(MirrorDataTable);
779 UE_DEPRECATED(5.3,
"Please use RecalcRequiredCurves that takes a FCurveEvaluationOption.")
783 void UpdateCurvesToComponents(USkeletalMeshComponent*
Component) {}
789 UE_DEPRECATED(5.5,
"Please use GetSlotGroupInertializationRequestDataMap instead.")
790 ENGINE_API TMap<
FName,
UE::Anim::FSlotInertializationRequest>& GetSlotGroupInertializationRequestMap();
803 UE_DEPRECATED(5.1, "Please use GetRelevantAssetPlayerInterfaceFromState")
813 template<
class NodeType>
816 return (NodeType*)
Property->ContainerPtrToValuePtr<NodeType>(AnimInstanceObject);
841 ENGINE_API float GetInstanceCurrentStateElapsedTime(
int32 MachineIndex)
const;
844 ENGINE_API float GetInstanceTransitionCrossfadeDuration(
int32 MachineIndex,
int32 TransitionIndex)
const;
847 ENGINE_API float GetInstanceTransitionTimeElapsed(
int32 MachineIndex,
int32 TransitionIndex)
const;
850 ENGINE_API float GetInstanceTransitionTimeElapsedFraction(
int32 MachineIndex,
int32 TransitionIndex)
const;
856 ENGINE_API float GetRelevantAnimTimeRemainingFraction(
int32 MachineIndex,
int32 StateIndex)
const;
966 ENGINE_API void UpdateCurvesPostEvaluation(USkeletalMeshComponent* SkelMeshComp);
972 UE_DEPRECATED(5.3,
"Please use AddCurveValue that does not take a FSmartNameMapping.")
976 ENGINE_API void AddCurveValue(
const FName& CurveName,
float Value,
bool bMorphtarget =
false,
bool bMaterial =
false);
992#if ENABLE_ANIM_DRAW_DEBUG
999 FName GetTargetLogNameForCurrentWorldType()
const;
1020 mutable UObject* AnimInstanceObject;
1029 USkeletalMeshComponent* SkeletalMeshComponent;
1035 float CurrentDeltaSeconds;
1038 float CurrentTimeDilation;
1040#if WITH_EDITORONLY_DATA
1052#if ENABLE_ANIM_LOGGING
1079 int32 BufferWriteIndex;
1129 int32 CacheBonesRecursionCounter;
1132 int16 NumUroSkippedFrames_Update;
1133 int16 NumUroSkippedFrames_Eval;
1139 UE_DEPRECATED(5.5,
"This property is deprecated. Please use SlotGroupInertializationRequestDataMap instead")
1140 TMap<
FName,
UE::Anim::FSlotInertializationRequest> SlotGroupInertializationRequestMap;
1167#if ENABLE_ANIM_LOGGING
1187 uint8 bShouldExtractRootMotion : 1;
1190 uint8 bDeferRootNodeInitialization : 1;
1192#if WITH_EDITORONLY_DATA
1201 uint8 bInitializeSubsystems : 1;
1203 uint8 bUseMainInstanceMontageEvaluationData : 1;
1206#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_6
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
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
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
Definition NameTypes.h:617
Definition UnrealType.h:3087
Definition UnrealType.h:174
Definition UObjectGlobals.h:2492
Definition TokenizedMessage.h:112
Definition AnimClassInterface.h:193
static ENGINE_API UClass * GetActualAnimClass(IAnimClassInterface *AnimClassInterface)
Definition AnimClassInterface.cpp:51
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 ActiveStateMachineScope.h:51
Definition AnimSyncScope.h:33
Definition MirrorDataTable.h:102
Definition PoseAsset.h:186
Definition Skeleton.h:295
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_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 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 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