![]() |
UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
|
#include <AnimNode_RigidBody.h>
Inheritance diagram for FAnimNode_RigidBody:Friends | |
| class | FRigidBodyNodeSimulationTask |
Additional Inherited Members | |
Protected Member Functions inherited from FAnimNode_SkeletalControlBase | |
| virtual ANIMGRAPHRUNTIME_API void | EvaluateComponentSpaceInternal (FComponentSpacePoseContext &Context) |
| ANIMGRAPHRUNTIME_API void | AddDebugNodeData (FString &OutDebugData) |
Protected Member Functions inherited from FAnimNode_Base | |
| template<typename DataType > | |
| const DataType & | GetData (UE::Anim::FNodeDataId InId, const UObject *InObject=nullptr) const |
| template<typename DataType > | |
| DataType * | GetInstanceDataPtr (UE::Anim::FNodeDataId InId, UObject *InObject=nullptr) |
| ENGINE_API bool | IsLODEnabled (FAnimInstanceProxy *AnimInstanceProxy) |
Controller that simulates physics based on the physics asset of the skeletal mesh component
| FAnimNode_RigidBody::FAnimNode_RigidBody | ( | ) |
| FAnimNode_RigidBody::~FAnimNode_RigidBody | ( | ) |
|
virtual |
|
overridevirtual |
Reimplemented from FAnimNode_SkeletalControlBase.
|
overridevirtual |
Reimplemented from FAnimNode_SkeletalControlBase.
|
overridevirtual |
Called to gather on-screen debug data. This is called on the game thread.
| DebugData | Debug data structure used to output any relevant data |
Reimplemented from FAnimNode_Base.
|
overridevirtual |
Get the LOD level at which this node is enabled. Node is enabled if the current LOD is less than or equal to this threshold.
Reimplemented from FAnimNode_SkeletalControlBase.
|
inline |
|
inlinevirtual |
Override this to indicate that PreUpdate() should be called on the game thread (usually to gather non-thread safe data) before Update() is called. Note that this is called at load on the UAnimInstance CDO to avoid needing to call this at runtime. This is called on the game thread.
Reimplemented from FAnimNode_Base.
|
overridevirtual |
Called when the node first runs. If the node is inside a state machine or cached pose branch then this can be called multiple times. This can be called on any thread.
| Context | Context structure providing access to relevant data |
Reimplemented from FAnimNode_SkeletalControlBase.
|
overridevirtual |
Reimplemented from FAnimNode_SkeletalControlBase.
|
overridevirtual |
For nodes that implement some kind of simulation, return true here so ResetDynamics() gets called when things like teleports, time skips etc. occur that might require special handling. Note that this is called at load on the UAnimInstance CDO to avoid needing to call this at runtime. This is called on the game thread.
Reimplemented from FAnimNode_Base.
For nodes that need some kind of initialization that is not dependent on node relevancy (i.e. it is insufficient or inefficient to use Initialize_AnyThread), return true here. Note that this is called at load on the UAnimInstance CDO to avoid needing to call this at runtime.
Reimplemented from FAnimNode_Base.
|
overridevirtual |
Called once, from game thread as the parent anim instance is created
Reimplemented from FAnimNode_Base.
| ANIMGRAPHRUNTIME_API void FAnimNode_RigidBody::PostSerialize | ( | const FArchive & | Ar | ) |
|
overridevirtual |
Override this to perform game-thread work prior to non-game thread Update() being called
Reimplemented from FAnimNode_Base.
|
overridevirtual |
Called to help dynamics-based updates to recover correctly from large movements/teleports
Reimplemented from FAnimNode_Base.
| void FAnimNode_RigidBody::SetOverridePhysicsAsset | ( | UPhysicsAsset * | PhysicsAsset | ) |
Set the override physics asset. This will automatically trigger a physics re-init in case the override physics asset changes. Users can get access to this in the Animation Blueprint via the Animation Node Functions.
|
overridevirtual |
Reimplemented from FAnimNode_SkeletalControlBase.
|
overridevirtual |
Reimplemented from FAnimNode_SkeletalControlBase.
|
friend |
| FBoneReference FAnimNode_RigidBody::BaseBoneRef |
Matters if SimulationSpace is BaseBone
| uint8 FAnimNode_RigidBody::bClampLinearTranslationLimitToRefPose |
Correct for linear tearing on bodies with all axes Locked. This only works if all axes linear translation are locked
Use the skeletal mesh physics asset as default in case set to True. The Override Physics Asset will always have priority over this.
| uint8 FAnimNode_RigidBody::bEnableWorldGeometry |
| bool FAnimNode_RigidBody::bForceDisableCollisionBetweenConstraintBodies |
Whether to allow collisions between two bodies joined by a constraint
| uint8 FAnimNode_RigidBody::bFreezeIncomingPoseOnStart |
When simulation starts, freeze incoming pose. This is useful for ragdolls, when we want the simulation to take over. It prevents non simulated bones from animating.
| uint8 FAnimNode_RigidBody::bOverrideWorldGravity |
| uint8 FAnimNode_RigidBody::bTransferBoneVelocities |
When simulation starts, transfer previous bone velocities (from animation) to make transition into simulation seamless.
Treat parts in the Physics Asset with PhysicsType Default as Simulated for RBAN.
| bool FAnimNode_RigidBody::bUseExternalClothCollision |
If true, kinematic objects will be added to the simulation at runtime to represent any cloth colliders defined for the parent object.
Enable if you want to ignore the p.RigidBodyLODThreshold CVAR and force the node to solely use the LOD threshold.
| float FAnimNode_RigidBody::CachedBoundsScale |
Scale of cached bounds (vs. actual bounds). Increasing this may improve performance, but overlaps may not work as well. (A value of 1.0 effectively disables cached bounds).
| FVector FAnimNode_RigidBody::ComponentAppliedLinearAccClamp |
When using non-world-space sim, this is an overall clamp on acceleration derived from ComponentLinearAccScale and ComponentLinearVelScale, to ensure it is not too large.
| FVector FAnimNode_RigidBody::ComponentLinearAccScale |
When using non-world-space sim, this controls how much of the components world-space acceleration is passed on to the local-space simulation.
| FVector FAnimNode_RigidBody::ComponentLinearVelScale |
When using non-world-space sim, this applies a 'drag' to the bodies in the local space simulation, based on the components world-space velocity.
| float FAnimNode_RigidBody::EvaluationResetTime |
If the node is not evaluated for this amount of time (seconds), either because a lower LOD was in use for a while or the component was not visible, reset the simulation to the default pose on the next evaluation. Set to 0 to disable time-based reset.
| FVector FAnimNode_RigidBody::ExternalForce |
Applies a uniform external force in world space. This allows for easily faking inertia of movement while still simulating in component space for example
| TEnumAsByte<ECollisionChannel> FAnimNode_RigidBody::OverlapChannel |
The channel we use to find static geometry to collide with
| TObjectPtr<UPhysicsAsset> FAnimNode_RigidBody::OverridePhysicsAsset |
Physics asset to use. If empty use the skeletal mesh's default physics asset in case Default To Skeletal Mesh Physics Asset is set to True.
| FVector FAnimNode_RigidBody::OverrideWorldGravity |
Override gravity
| FSimSpaceSettings FAnimNode_RigidBody::SimSpaceSettings |
Settings for the system which passes motion of the simulation's space into the simulation. This allows the simulation to pass a fraction of the world space motion onto the bodies which allows Bone-Space and Component-Space simulations to react to world-space movement in a controllable way. This system is a superset of the functionality provided by ComponentLinearAccScale, ComponentLinearVelScale, and ComponentAppliedLinearAccClamp. In general you should not have both systems enabled.
| ESimulationSpace FAnimNode_RigidBody::SimulationSpace |
What space to simulate the bodies in. This affects how velocities are generated
| ESimulationTiming FAnimNode_RigidBody::SimulationTiming |
| float FAnimNode_RigidBody::WorldSpaceMinimumScale |
For world-space simulations, if the magnitude of the component's 3D scale is less than WorldSpaceMinimumScale, do not update the node.