UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AnimNode_AnimDynamics.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"
6#include "Stats/Stats.h"
8#include "BoneContainer.h"
10#include "BonePose.h"
14#include "AnimNode_AnimDynamics.generated.h"
15
16class UAnimInstance;
17class USkeletalMeshComponent;
18template <class T> class TAutoConsoleVariable;
19
23
24#if ENABLE_ANIM_DRAW_DEBUG
25
28
29#endif
30
35
37UENUM()
43
45UENUM()
51
52UENUM(BlueprintType)
54{
55 Component UMETA(ToolTip = "Sim origin is the location/orientation of the skeletal mesh component."),
56 Actor UMETA(ToolTip = "Sim origin is the location/orientation of the actor containing the skeletal mesh component."),
57 World UMETA(ToolTip = "Sim origin is the world origin. Teleporting characters is not recommended in this mode."),
58 RootRelative UMETA(ToolTip = "Sim origin is the location/orientation of the root bone."),
59 BoneRelative UMETA(ToolTip = "Sim origin is the location/orientation of the bone specified in RelativeSpaceBone"),
60};
61
73
85
87USTRUCT()
89{
91
93 : LinearXLimitType(AnimPhysLinearConstraintType::Limited)
94 , LinearYLimitType(AnimPhysLinearConstraintType::Limited)
95 , LinearZLimitType(AnimPhysLinearConstraintType::Limited)
96 , bLinearFullyLocked(false)
97 , LinearAxesMin(ForceInitToZero)
98 , LinearAxesMax(ForceInitToZero)
99 , AngularConstraintType(AnimPhysAngularConstraintType::Angular)
100 , TwistAxis(AnimPhysTwistAxis::AxisX)
101 , AngularTargetAxis(AnimPhysTwistAxis::AxisX)
102 , ConeAngle(0.0f)
103#if WITH_EDITORONLY_DATA
107#endif
108 , AngularLimitsMin(ForceInitToZero)
109 , AngularLimitsMax(ForceInitToZero)
110 , AngularTarget(ForceInitToZero)
111 {}
112
114 UPROPERTY(EditAnywhere, Category = Linear)
116
118 UPROPERTY(EditAnywhere, Category = Linear)
120
122 UPROPERTY(EditAnywhere, Category = Linear)
124
126 bool bLinearFullyLocked;
127
129 UPROPERTY(EditAnywhere, Category = Linear, meta = (UIMax = "0", ClampMax = "0"))
130 FVector LinearAxesMin;
131
133 UPROPERTY(EditAnywhere, Category = Linear, meta = (UIMin = "0", ClampMin = "0"))
134 FVector LinearAxesMax;
135
137 UPROPERTY(EditAnywhere, Category = Angular)
138 AnimPhysAngularConstraintType AngularConstraintType;
139
141 UPROPERTY(EditAnywhere, Category = Angular)
143
149 UPROPERTY(EditAnywhere, Category = Angular, meta=(DisplayAfter=AngularLimitsMax))
150 AnimPhysTwistAxis AngularTargetAxis;
151
153 UPROPERTY(EditAnywhere, Category = Angular, meta = (UIMin = "0", UIMax = "90", ClampMin = "0", ClampMax = "90"))
154 float ConeAngle;
155
156#if WITH_EDITORONLY_DATA
158 UPROPERTY()
160
162 UPROPERTY()
164
166 UPROPERTY()
168#endif
169
170 UPROPERTY(EditAnywhere, Category = Angular, meta = (UIMin = "-180", UIMax = "180", ClampMin = "-180", ClampMax = "180"))
171 FVector AngularLimitsMin;
172
173 UPROPERTY(EditAnywhere, Category = Angular, meta = (UIMin = "-180", UIMax = "180", ClampMin = "-180", ClampMax = "180"))
174 FVector AngularLimitsMax;
175
182 UPROPERTY(EditAnywhere, Category = Angular)
183 FVector AngularTarget;
184};
185
186USTRUCT()
188{
190
192 UPROPERTY(EditAnywhere, Category=PlanarLimit)
193 FBoneReference DrivingBone;
194
198 UPROPERTY(EditAnywhere, Category=PlanarLimit)
199 FTransform PlaneTransform;
200};
201
203UENUM()
205{
206 Inner,
207 Outer
208};
209
210USTRUCT()
212{
214
216 : SphereLocalOffset(FVector::ZeroVector)
217 , LimitRadius(0.0f)
218 , LimitType(ESphericalLimitType::Outer)
219 {}
220
222 UPROPERTY(EditAnywhere, Category = SphericalLimit)
223 FBoneReference DrivingBone;
224
226 UPROPERTY(EditAnywhere, Category = SphericalLimit)
227 FVector SphereLocalOffset;
228
230 UPROPERTY(EditAnywhere, Category = SphericalLimit)
231 float LimitRadius;
232
234 UPROPERTY(EditAnywhere, Category = SphericalLimit)
236};
237
238USTRUCT()
240{
242
244 : BoxExtents(10.0f, 10.0f, 10.0f)
245 , LocalJointOffset(FVector::ZeroVector)
246 , CollisionType(AnimPhysCollisionType::CoM)
247 , SphereCollisionRadius(10.0f)
248 {}
249
251 {
252 this->BoundBone = Other.BoundBone;
253 this->BoxExtents = Other.BoxExtents;
254 this->LocalJointOffset = Other.LocalJointOffset;
255 this->ConstraintSetup = Other.ConstraintSetup;
256 this->CollisionType = Other.CollisionType;
257 this->SphereCollisionRadius = Other.SphereCollisionRadius;
258
259 return *this;
260 }
261
262 UPROPERTY(VisibleAnywhere, Category = PhysicsBodyDefinition, meta = (EditCondition = "false"))
263 FBoneReference BoundBone;
264
266 UPROPERTY(EditAnywhere, Category = PhysicsBodyDefinition, meta = (UIMin = "1", ClampMin = "1"))
267 FVector BoxExtents;
268
270 UPROPERTY(EditAnywhere, Category = PhysicsBodyDefinition)
271 FVector LocalJointOffset;
272
274 UPROPERTY(EditAnywhere, Category = Constraint)
276
278 UPROPERTY(EditAnywhere, Category = Collision)
280
282 UPROPERTY(EditAnywhere, Category = PhysicsBodyDefinition, meta = (UIMin = "1", ClampMin = "1", EditCondition = "CollisionType == AnimPhysCollisionType::CustomSphere"))
283 float SphereCollisionRadius;
284};
285
296
302template <> struct TIsPODType<FAnimPhysSimSpaceSettings> { enum { Value = true }; };
303
304USTRUCT(BlueprintType)
306{
308
310
314
319 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings, meta = (ClampMin = "0.0", ClampMax = "1.0"))
320 float SimSpaceAngularAlpha;
321
327 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings, meta = (ClampMin = "0.0"))
328 float MaxAngularVelocity;
329
335 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings, meta = (ClampMin = "0.0"))
336 float MaxAngularAcceleration;
337
343 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings)
344 FVector ExternalAngularVelocity;
345
346};
347
348
349USTRUCT(BlueprintInternalUseOnly)
351{
353
355
359 UPROPERTY(EditAnywhere, AdvancedDisplay, BlueprintReadWrite, Category = PhysicsParameters, meta = (PinHiddenByDefault, DisplayAfter = "NumSolverIterationsPostUpdate", EditCondition = bOverrideLinearDamping))
360 float LinearDampingOverride;
361
365 UPROPERTY(EditAnywhere, AdvancedDisplay, BlueprintReadWrite, Category = PhysicsParameters, meta = (PinHiddenByDefault, DisplayAfter = "LinearDampingOverride", EditCondition = bOverrideAngularDamping))
366 float AngularDampingOverride;
367
368 // Previous component & actor transforms, used to account for teleports
369 FTransform PreviousCompWorldSpaceTM;
370 FTransform PreviousActorWorldSpaceTM;
371 FTransform PreviousSimSpaceTM;
372
374 UPROPERTY(EditAnywhere, Category = Setup, meta=(DisplayAfter="SimulationSpace", EditCondition = "SimulationSpace == AnimPhysSimSpaceType::BoneRelative"))
375 FBoneReference RelativeSpaceBone;
376
378 UPROPERTY(EditAnywhere, Category = Setup)
379 FBoneReference BoundBone;
380
382 UPROPERTY(EditAnywhere, Category = Setup, meta = (EditCondition = bChain, DisplayAfter = "BoundBone"))
384
385 UPROPERTY(EditAnywhere, EditFixedSize, Category = PhysicsParameters, meta = (DisplayName = "Body Definitions", EditFixedOrder, DisplayAfter = "ChainEnd"))
386 TArray< FAnimPhysBodyDefinition > PhysicsBodyDefinitions;
387
389 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = PhysicsParameters, meta = (PinHiddenByDefault, DisplayAfter = "bGravityOverrideInSimSpace", EditCondition = "!bUseGravityOverride"))
390 float GravityScale;
391
393 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = PhysicsParameters, meta = (PinHiddenByDefault, DisplayAfter = "bUseGravityOverride", EditCondition = "bUseGravityOverride"))
394 FVector GravityOverride;
395
400 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = PhysicsParameters, meta = (EditCondition = bLinearSpring, PinHiddenByDefault, DisplayAfter = "AngularSpringConstant"))
401 float LinearSpringConstant;
402
408 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = PhysicsParameters, meta = (DisplayAfter = "PhysicsBodyDefinitions", EditCondition = bAngularSpring, PinHiddenByDefault))
409 float AngularSpringConstant;
410
412 UPROPERTY(EditAnywhere, Category = Wind, meta=(DisplayAfter="bEnableWind"))
413 float WindScale;
414
416 UPROPERTY(EditAnywhere, Category = Settings, meta = (PinHiddenByDefault))
417 FVector ComponentLinearAccScale;
418
420 UPROPERTY(EditAnywhere, Category = Settings, meta = (PinHiddenByDefault))
421 FVector ComponentLinearVelScale;
422
424 UPROPERTY(EditAnywhere, Category = Settings)
425 FVector ComponentAppliedLinearAccClamp;
426
437 UPROPERTY(EditAnywhere, Category = Settings, meta = (PinHiddenByDefault))
439
445 UPROPERTY(EditAnywhere, AdvancedDisplay, BlueprintReadWrite, Category = PhysicsParameters, meta = (PinHiddenByDefault, DisplayAfter = "AngularDampingOverride", EditCondition = bOverrideAngularBias))
446 float AngularBiasOverride;
447
449 UPROPERTY(EditAnywhere, AdvancedDisplay, Category = PhysicsParameters)
450 int32 NumSolverIterationsPreUpdate;
451
453 UPROPERTY(EditAnywhere, AdvancedDisplay, Category = PhysicsParameters, meta = (PinHiddenByDefault, DisplayAfter = "NumSolverIterationsPreUpdate"))
454 int32 NumSolverIterationsPostUpdate;
455
457 UPROPERTY(EditAnywhere, Category = SphericalLimit, meta=(DisplayAfter="bUseSphericalLimits"))
459
461 UPROPERTY(EditAnywhere, Category = Forces, meta = (PinShownByDefault))
462 FVector ExternalForce;
463
465 UPROPERTY(EditAnywhere, Category=PlanarLimit, meta=(DisplayAfter="bUsePlanarLimit"))
467
469 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Setup, meta = (PinHiddenByDefault, DisplayPriority=0))
470 AnimPhysSimSpaceType SimulationSpace;
471
472 // Cached sim space that we last used
474
475 // We can't get clean bone positions unless we are in the evaluate step.
476 // Requesting an init or reinit sets this flag for us to pick up during evaluate
477 ETeleportType InitTeleportType;
478
480 UPROPERTY(EditAnywhere, Category = SphericalLimit)
481 uint8 bUseSphericalLimits:1;
482
484 UPROPERTY(EditAnywhere, Category=PlanarLimit)
485 uint8 bUsePlanarLimit:1;
486
488 UPROPERTY(EditAnywhere, AdvancedDisplay, Category = PhysicsParameters, meta = (DisplayAfter = "bDoEval"))
489 uint8 bDoUpdate : 1;
490
492 UPROPERTY(EditAnywhere, AdvancedDisplay, Category = PhysicsParameters, meta = (DisplayAfter = "AngularBiasOverride"))
493 uint8 bDoEval : 1;
494
496 UPROPERTY(EditAnywhere, AdvancedDisplay, Category = PhysicsParameters, meta=(InlineEditConditionToggle, DisplayAfter="AngularSpringConstraint"))
497 uint8 bOverrideLinearDamping:1;
498
504 UPROPERTY(EditAnywhere, AdvancedDisplay, Category = PhysicsParameters, meta=(InlineEditConditionToggle, DisplayAfter="AngularDampingOverride"))
505 uint8 bOverrideAngularBias:1;
506
508 UPROPERTY(EditAnywhere, AdvancedDisplay, Category = PhysicsParameters, meta=(InlineEditConditionToggle, DisplayAfter="LinearDampingOverride"))
509 uint8 bOverrideAngularDamping:1;
510
512 UPROPERTY(EditAnywhere, Category = Wind)
513 uint8 bEnableWind:1;
514
515 uint8 bWindWasEnabled:1;
516
518 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = PhysicsParameters, meta = (DisplayAfter = "LinearSpringConstant"))
519 uint8 bUseGravityOverride:1;
520
522 UPROPERTY(EditAnywhere, Category = PhysicsParameters, meta=(DisplayAfter = "GravityOverride", DisplayName = "Gravity Override In Sim Space", EditCondition = "bUseGravityOverride"))
523 uint8 bGravityOverrideInSimSpace : 1;
524
526 UPROPERTY(EditAnywhere, Category = PhysicsParameters, meta = (InlineEditConditionToggle))
527 uint8 bLinearSpring:1;
528
530 UPROPERTY(EditAnywhere, Category = PhysicsParameters, meta = (InlineEditConditionToggle))
531 uint8 bAngularSpring:1;
532
534 UPROPERTY(EditAnywhere, Category = Setup, meta=(InlineEditConditionToggle))
535 uint8 bChain:1;
536
538 UPROPERTY(EditAnywhere, Category = Retargeting)
539 FRotationRetargetingInfo RetargetingSettings;
540
541#if WITH_EDITORONLY_DATA
542 UPROPERTY()
544 UPROPERTY()
546 UPROPERTY()
548 UPROPERTY()
550 UPROPERTY()
552#endif
553
554 // FAnimNode_SkeletalControlBase interface
555 ANIMGRAPHRUNTIME_API virtual void Initialize_AnyThread(const FAnimationInitializeContext& Context) override;
556 ANIMGRAPHRUNTIME_API virtual void UpdateInternal(const FAnimationUpdateContext& Context) override;
557 ANIMGRAPHRUNTIME_API virtual void EvaluateSkeletalControl_AnyThread(FComponentSpacePoseContext& Output, TArray<FBoneTransform>& OutBoneTransforms) override;
558 ANIMGRAPHRUNTIME_API virtual void GatherDebugData(FNodeDebugData& DebugData) override;
559 ANIMGRAPHRUNTIME_API virtual bool HasPreUpdate() const override;
560 ANIMGRAPHRUNTIME_API virtual void PreUpdate(const UAnimInstance* InAnimInstance) override;
561 virtual bool NeedsDynamicReset() const override { return true; }
562 virtual void ResetDynamics(ETeleportType InTeleportType) override { RequestInitialise(InTeleportType); }
563 ANIMGRAPHRUNTIME_API virtual int32 GetLODThreshold() const override;
564 // End of FAnimNode_SkeletalControlBase interface
565
566 ANIMGRAPHRUNTIME_API void RequestInitialise(ETeleportType InTeleportType);
568 ANIMGRAPHRUNTIME_API void TermPhysics();
569
570 ANIMGRAPHRUNTIME_API void UpdateChainPhysicsBodyDefinitions(const FReferenceSkeleton& ReferenceSkeleton);
571 ANIMGRAPHRUNTIME_API void ValidateChainPhysicsBodyDefinitions(const FReferenceSkeleton& ReferenceSkeleton);
572 ANIMGRAPHRUNTIME_API void FindChainBoneNames(const FReferenceSkeleton& ReferenceSkeleton, TArray<FName>& ChainBoneNames);
574
575 ANIMGRAPHRUNTIME_API int32 GetNumBodies() const;
576 ANIMGRAPHRUNTIME_API const FAnimPhysRigidBody& GetPhysBody(int32 BodyIndex) const;
577
578 ANIMGRAPHRUNTIME_API FTransform GetBodyComponentSpaceTransform(const FAnimPhysRigidBody& Body, const USkeletalMeshComponent* const SkelComp) const;
579
580#if WITH_EDITOR
581
582 // Accessors for editor code (mainly for visualization functions)
584
585 // True by default, if false physics simulation will not update this frame. Used to prevent the rig moving whilst interactively editing parameters with a widget in the viewport.
587
588#endif
589
590 ANIMGRAPHRUNTIME_API bool ShouldDoPhysicsUpdate() const;
591
592protected:
593
594 // FAnimNode_SkeletalControlBase protected interface
595 ANIMGRAPHRUNTIME_API virtual void InitializeBoneReferences(const FBoneContainer& RequiredBones) override;
596 ANIMGRAPHRUNTIME_API virtual bool IsValidToEvaluate(const USkeleton* Skeleton, const FBoneContainer& RequiredBones);
597 // End of FAnimNode_SkeletalControlBase protected interface
598
599private:
600 // Given a bone index, get it's transform in the currently selected simulation space
601 ANIMGRAPHRUNTIME_API FTransform GetBoneTransformInSimSpace(FComponentSpacePoseContext& Output, const FCompactPoseBoneIndex& BoneIndex) const;
602
603 // Given a transform in simulation space, convert it back to component space
604 ANIMGRAPHRUNTIME_API FTransform GetComponentSpaceTransformFromSimSpace(AnimPhysSimSpaceType SimSpace, FComponentSpacePoseContext& Output, const FTransform& InSimTransform) const;
606 ANIMGRAPHRUNTIME_API FTransform GetComponentSpaceTransformFromSimSpace(AnimPhysSimSpaceType SimSpace, const USkeletalMeshComponent* const SkelComp, const FTransform& InSimTransform) const;
607
608 FTransform GetSimToWorldSpaceTransform(AnimPhysSimSpaceType SimSpace, FComponentSpacePoseContext& Output) const;
609
610 // Given a transform in component space, convert it to the current sim space
611 ANIMGRAPHRUNTIME_API FTransform GetSimSpaceTransformFromComponentSpace(AnimPhysSimSpaceType SimSpace, FComponentSpacePoseContext& Output, const FTransform& InComponentTransform) const;
612
613 // Given a world-space vector, convert it into the current simulation space
614 ANIMGRAPHRUNTIME_API FVector TransformWorldVectorToSimSpace(FComponentSpacePoseContext& Output, const FVector& InVec) const;
615
616 ANIMGRAPHRUNTIME_API FVector TransformWorldVectorToSimSpaceScaled(FComponentSpacePoseContext& Output, const FVector& InVec) const;
617
619
620 void CalculateSimulationSpaceMotion(AnimPhysSimSpaceType Space, FAnimPhysSimSpaceSettings Settings, FComponentSpacePoseContext& Output, const float Dt,
622
623 // Maximum time to consider when accumulating time debt to avoid spiraling
624 static ANIMGRAPHRUNTIME_API const float MaxTimeDebt;
625
626 // Cached timestep from the update phase (needed in evaluate phase)
627 float NextTimeStep;
628
629 // Current amount of time debt
630 float TimeDebt;
631
632 // Cached physics settings. We cache these on initialise to avoid the cost of accessing UPhysicsSettings a lot each frame
633 float AnimPhysicsMinDeltaTime;
634 float MaxPhysicsDeltaTime;
635 float MaxSubstepDeltaTime;
636 int32 MaxSubsteps;
638
639 // Active body list
641
642 // Pointers to bodies that need to be reset to their bound bone.
643 // This happens on LOD change so we don't make the simulation unstable
644 TArray<FAnimPhysLinkedBody*> BodiesToReset;
645
646 // Pointers back to the base bodies to pass to the simulation
647 TArray<FAnimPhysRigidBody*> BaseBodyPtrs;
648
649 // List of current linear limits built for the current frame
650 TArray<FAnimPhysLinearLimit> LinearLimits;
651
652 // List of current angular limits built for the current frame
653 TArray<FAnimPhysAngularLimit> AngularLimits;
654
655 // List of spring force generators created for this frame
657
658 // Position of the physics object relative to the transform if its bound bone.
659 TArray<FVector> PhysicsBodyJointOffsets;
660
661 // A pair of positions (relative to their associated physics bodies) for each pair of bodies in a chain. These positions should be driven to match each other in sim space by the physics contstraints - See UpdateLimits() fns.
662 TArray<FAnimConstraintOffsetPair> ConstraintOffsets;
663
664 // Depending on the LOD we might not be running all of the bound bodies (for chains)
665 // this tracks the active bodies.
666 TArray<int32> ActiveBoneIndices;
667
668 // Gravity direction in sim space
669 FVector SimSpaceGravityDirection;
670
671 // Previous linear velocity to resolve world accelerations when not using world space simulation
672 FVector PreviousComponentLinearVelocity;
673
674 // Previous angular velocity to resolve world angular acceleration when not using world space simulation
675 FVector PreviousSimSpaceAngularVelocity;
676
678 // Live debug
680#if ENABLE_ANIM_DRAW_DEBUG
682
684#endif
685public:
686 static ANIMGRAPHRUNTIME_API bool IsAnimDynamicsSystemEnabledFor(int32 InLOD);
687};
AnimPhysSimSpaceType
Definition AnimNode_AnimDynamics.h:54
TAutoConsoleVariable< int32 > CVarEnableDynamics
AnimPhysAngularConstraintType
Definition AnimNode_AnimDynamics.h:39
TAutoConsoleVariable< int32 > CVarEnableWind
AnimPhysLinearConstraintType
Definition AnimNode_AnimDynamics.h:47
ANIMGRAPHRUNTIME_API TAutoConsoleVariable< int32 > CVarLODThreshold
ESphericalLimitType
Definition AnimNode_AnimDynamics.h:205
AnimPhysTwistAxis
Definition AnimPhysicsSolver.h:68
AnimPhysCollisionType
Definition AnimPhysicsSolver.h:76
@ ForceInitToZero
Definition CoreMiscDefines.h:156
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
#define DECLARE_CYCLE_STAT_EXTERN(CounterName, StatId, GroupId, API)
Definition Stats.h:679
#define DECLARE_DWORD_COUNTER_STAT_EXTERN(CounterName, StatId, GroupId, API)
Definition Stats.h:682
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
ETeleportType
Definition EngineTypes.h:2401
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition AnimPhysicsSolver.h:213
Definition Array.h:670
Definition IConsoleManager.h:1792
Definition AnimInstance.h:353
Definition Skeleton.h:295
@ false
Definition radaudio_common.h:23
Definition AnimNode_AnimDynamics.h:287
FAnimConstraintOffsetPair(const FVector &InBody0Offset, const FVector InBody1Offset)
Definition AnimNode_AnimDynamics.h:288
FVector Body0Offset
Definition AnimNode_AnimDynamics.h:293
FVector Body1Offset
Definition AnimNode_AnimDynamics.h:294
Definition AnimNode_AnimDynamics.h:351
virtual void ResetDynamics(ETeleportType InTeleportType) override
Definition AnimNode_AnimDynamics.h:562
virtual bool NeedsDynamicReset() const override
Definition AnimNode_AnimDynamics.h:561
Definition AnimNode_SkeletalControlBase.h:22
Definition AnimNode_AnimDynamics.h:240
FBoneReference BoundBone
Definition AnimNode_AnimDynamics.h:263
FAnimPhysBodyDefinition & operator=(const FAnimPhysBodyDefinition &Other)
Definition AnimNode_AnimDynamics.h:250
FAnimPhysBodyDefinition()
Definition AnimNode_AnimDynamics.h:243
Definition AnimNode_AnimDynamics.h:64
FBoneReference BoundBone
Definition AnimNode_AnimDynamics.h:71
FAnimPhysRigidBody PhysBody
Definition AnimNode_AnimDynamics.h:70
FAnimPhysBoneRigidBody(TArray< FAnimPhysShape > &Shapes, const FVector &Position, const FBoneReference &LinkedBone)
Definition AnimNode_AnimDynamics.h:65
Definition AnimNode_AnimDynamics.h:89
Definition AnimNode_AnimDynamics.h:76
FAnimPhysBoneRigidBody * ParentBody
Definition AnimNode_AnimDynamics.h:83
FAnimPhysBoneRigidBody RigidBody
Definition AnimNode_AnimDynamics.h:82
FAnimPhysLinkedBody(TArray< FAnimPhysShape > &Shapes, const FVector &Position, const FBoneReference &LinkedBone)
Definition AnimNode_AnimDynamics.h:77
Definition AnimNode_AnimDynamics.h:188
Definition AnimNode_AnimDynamics.h:306
~FAnimPhysSimSpaceSettings()=default
FAnimPhysSimSpaceSettings & operator=(const FAnimPhysSimSpaceSettings &)=default
FAnimPhysSimSpaceSettings(FAnimPhysSimSpaceSettings const &)=default
Definition AnimNode_AnimDynamics.h:212
FAnimPhysSphericalLimit()
Definition AnimNode_AnimDynamics.h:215
Definition AnimNodeBase.h:324
Definition AnimNodeBase.h:354
Definition BoneContainer.h:192
Definition BoneReference.h:14
Definition BoneIndices.h:63
Definition AnimNodeBase.h:600
Definition AnimNodeBase.h:642
Definition ReferenceSkeleton.h:100
Definition CommonAnimationTypes.h:72
Definition IsPODType.h:12
@ Value
Definition IsPODType.h:13