Navigation
API > API/Runtime > API/Runtime/AnimGraphRuntime
Controller that simulates physics based on the physics asset of the skeletal mesh component
| Name | FAnimNode_RigidBody |
| Type | struct |
| Header File | /Engine/Source/Runtime/AnimGraphRuntime/Public/BoneControllers/AnimNode_RigidBody.h |
| Include Path | #include "BoneControllers/AnimNode_RigidBody.h" |
Syntax
USTRUCT ()
struct FAnimNode_RigidBody : public FAnimNode_SkeletalControlBase
Inheritance Hierarchy
- FAnimNode_Base → FAnimNode_SkeletalControlBase → FAnimNode_RigidBody
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FAnimNode_RigidBody() |
BoneControllers/AnimNode_RigidBody.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
~FAnimNode_RigidBody() |
BoneControllers/AnimNode_RigidBody.h |
Structs
| Name | Remarks |
|---|---|
| FBodyAnimData | |
| FClothCollider | Information required to identify and update a kinematic object representing a cloth collision source in the sim. |
| FOutputBoneData | |
| FWorldObject |
Variables
Public
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| BaseBoneRef | FBoneReference | Matters if SimulationSpace is BaseBone | BoneControllers/AnimNode_RigidBody.h |
|
| bClampLinearTranslationLimitToRefPose | uint8 | Correct for linear tearing on bodies with all axes Locked. | BoneControllers/AnimNode_RigidBody.h |
|
| bDefaultToSkeletalMeshPhysicsAsset | bool | Use the skeletal mesh physics asset as default in case set to True. | BoneControllers/AnimNode_RigidBody.h |
|
| bEnableWorldGeometry | uint8 | BoneControllers/AnimNode_RigidBody.h |
|
|
| bForceDisableCollisionBetweenConstraintBodies | bool | Whether to allow collisions between two bodies joined by a constraint | BoneControllers/AnimNode_RigidBody.h |
|
| bFreezeIncomingPoseOnStart | uint8 | When simulation starts, freeze incoming pose. | BoneControllers/AnimNode_RigidBody.h |
|
| bOverrideWorldGravity | uint8 | BoneControllers/AnimNode_RigidBody.h |
|
|
| bTransferBoneVelocities | uint8 | When simulation starts, transfer previous bone velocities (from animation) to make transition into simulation seamless. | BoneControllers/AnimNode_RigidBody.h |
|
| bUseExternalClothCollision | bool | If true, kinematic objects will be added to the simulation at runtime to represent any cloth colliders defined for the parent object. | BoneControllers/AnimNode_RigidBody.h |
|
| bUseLocalLODThresholdOnly | bool | Enable if you want to ignore the p.RigidBodyLODThreshold CVAR and force the node to solely use the LOD threshold. | BoneControllers/AnimNode_RigidBody.h |
|
| CachedBoundsScale | float | Scale of cached bounds (vs. actual bounds). | BoneControllers/AnimNode_RigidBody.h |
|
| ComponentAppliedLinearAccClamp | FVector | 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. | BoneControllers/AnimNode_RigidBody.h |
|
| ComponentLinearAccScale | FVector | When using non-world-space sim, this controls how much of the components world-space acceleration is passed on to the local-space simulation. | BoneControllers/AnimNode_RigidBody.h |
|
| ComponentLinearVelScale | FVector | 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. | BoneControllers/AnimNode_RigidBody.h |
|
| EvaluationResetTime | float | 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. | BoneControllers/AnimNode_RigidBody.h |
|
| ExternalForce | FVector | Applies a uniform external force in world space. | BoneControllers/AnimNode_RigidBody.h |
|
| OverlapChannel | TEnumAsByte< ECollisionChannel > | The channel we use to find static geometry to collide with | BoneControllers/AnimNode_RigidBody.h |
|
| OverridePhysicsAsset | TObjectPtr< UPhysicsAsset > | Physics asset to use. | BoneControllers/AnimNode_RigidBody.h |
|
| OverrideWorldGravity | FVector | Override gravity | BoneControllers/AnimNode_RigidBody.h |
|
| SimSpaceSettings | FSimSpaceSettings | Settings for the system which passes motion of the simulation's space into the simulation. | BoneControllers/AnimNode_RigidBody.h |
|
| SimulationSpace | ESimulationSpace | What space to simulate the bodies in. This affects how velocities are generated | BoneControllers/AnimNode_RigidBody.h |
|
| SimulationTiming | ESimulationTiming | Whether the physics simulation runs synchronously with the node's evaluation or is run in the background until the next frame. | BoneControllers/AnimNode_RigidBody.h |
|
| WorldSpaceMinimumScale | float | For world-space simulations, if the magnitude of the component's 3D scale is less than WorldSpaceMinimumScale, do not update the node. | BoneControllers/AnimNode_RigidBody.h |
|
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| AccumulatedDeltaTime | float | BoneControllers/AnimNode_RigidBody.h | ||
| AnimPhysicsMinDeltaTime | float | BoneControllers/AnimNode_RigidBody.h | ||
| bCheckForBodyTransformInit | uint8 | BoneControllers/AnimNode_RigidBody.h | ||
| bEnabled | uint8 | BoneControllers/AnimNode_RigidBody.h | ||
| Bodies | TArray< ImmediatePhysics::FActorHandle * > | BoneControllers/AnimNode_RigidBody.h | ||
| BodyAnimData | TArray< FBodyAnimData > | BoneControllers/AnimNode_RigidBody.h | ||
| bSimulateAnimPhysicsAfterReset | bool | BoneControllers/AnimNode_RigidBody.h | ||
| bSimulationStarted | uint8 | BoneControllers/AnimNode_RigidBody.h | ||
| CachedBounds | FSphere | Bounds used to gather world objects copied into the simulation. | BoneControllers/AnimNode_RigidBody.h | |
| CapturedBoneVelocityBoneContainer | FBoneContainer | BoneControllers/AnimNode_RigidBody.h | ||
| CapturedBoneVelocityPose | FCSPose< FCompactHeapPose > | BoneControllers/AnimNode_RigidBody.h | ||
| CapturedFrozenCurves | FBlendedHeapCurve | BoneControllers/AnimNode_RigidBody.h | ||
| CapturedFrozenPose | FCSPose< FCompactHeapPose > | BoneControllers/AnimNode_RigidBody.h | ||
| ClothColliders | TArray< FClothCollider > | List of actors in the sim that represent objects collected from other parts of this character. | BoneControllers/AnimNode_RigidBody.h | |
| ComponentsInSim | TMap< const UPrimitiveComponent *, FWorldObject > | BoneControllers/AnimNode_RigidBody.h | ||
| ComponentsInSimTick | int32 | BoneControllers/AnimNode_RigidBody.h | ||
| Constraints | TArray< FPhysicsConstraintHandle * > | BoneControllers/AnimNode_RigidBody.h | ||
| CurrentTransform | FTransform | BoneControllers/AnimNode_RigidBody.h | ||
| LastEvalTimeSeconds | double | BoneControllers/AnimNode_RigidBody.h | ||
| OutputBoneData | TArray< FOutputBoneData > | BoneControllers/AnimNode_RigidBody.h | ||
| PendingRadialForces | TArray< USkeletalMeshComponent::FPendingRadialForces > | BoneControllers/AnimNode_RigidBody.h | ||
| PerSolverField | FPerSolverFieldSystem | BoneControllers/AnimNode_RigidBody.h | ||
| PhysicsSimulation | ImmediatePhysics::FSimulation * | BoneControllers/AnimNode_RigidBody.h | ||
| PhysScene | FPhysScene * | BoneControllers/AnimNode_RigidBody.h | ||
| PreviousComponentLinearVelocity | FVector | BoneControllers/AnimNode_RigidBody.h | ||
| PreviousCompWorldSpaceTM | FTransform | BoneControllers/AnimNode_RigidBody.h | ||
| PreviousDt | float | BoneControllers/AnimNode_RigidBody.h | ||
| PreviousPreviousSimulationSpaceTransform | FTransform | BoneControllers/AnimNode_RigidBody.h | ||
| PreviousSimulationSpaceTransform | FTransform | Used by the world-space to simulation-space motion transfer system in Component- or Bone-Space sims. | BoneControllers/AnimNode_RigidBody.h | |
| PreviousTransform | FTransform | BoneControllers/AnimNode_RigidBody.h | ||
| QueryParams | FCollisionQueryParams | BoneControllers/AnimNode_RigidBody.h | ||
| ResetSimulatedTeleportType | ETeleportType | BoneControllers/AnimNode_RigidBody.h | ||
| SimulationTask | UE::Tasks::FTask | BoneControllers/AnimNode_RigidBody.h | ||
| SkeletonBoneIndexToBodyIndex | TArray< int32 > | BoneControllers/AnimNode_RigidBody.h | ||
| SkelMeshCompWeakPtr | TWeakObjectPtr< USkeletalMeshComponent > | This should only be used for removing the delegate during termination. | BoneControllers/AnimNode_RigidBody.h | |
| SolverIterations | FSolverIterations | BoneControllers/AnimNode_RigidBody.h | ||
| SolverSettings | FPhysicsAssetSolverSettings | BoneControllers/AnimNode_RigidBody.h | ||
| TotalMass | double | BoneControllers/AnimNode_RigidBody.h | ||
| UnsafeOwner | const AActor * | Used by CollectWorldObjects and UpdateWorldGeometry in Task Thread Only used for a pointer comparison. | BoneControllers/AnimNode_RigidBody.h | |
| UnsafeWorld | const UWorld * | Used by CollectWorldObjects and UpdateWorldGeometry in Task Thread Typically, World should never be accessed off the Game Thread. | BoneControllers/AnimNode_RigidBody.h | |
| UsePhysicsAsset | UPhysicsAsset * | BoneControllers/AnimNode_RigidBody.h | ||
| WorldSpaceGravity | FVector | BoneControllers/AnimNode_RigidBody.h | ||
| WorldTimeSeconds | double | BoneControllers/AnimNode_RigidBody.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void AddImpulseAtLocation
(
FVector Impulse, |
BoneControllers/AnimNode_RigidBody.h | ||
UPhysicsAsset * GetPhysicsAsset() |
BoneControllers/AnimNode_RigidBody.h | ||
virtual ImmediatePhysics::FSimulation * GetSimulation() |
TEMP: Exposed for use in PhAt as a quick way to get drag handles working with Chaos. | BoneControllers/AnimNode_RigidBody.h | |
void PostSerialize
(
const FArchive& Ar |
BoneControllers/AnimNode_RigidBody.h | ||
void SetOverridePhysicsAsset
(
UPhysicsAsset* PhysicsAsset |
Set the override physics asset. | BoneControllers/AnimNode_RigidBody.h |
Overridden from FAnimNode_SkeletalControlBase
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void EvaluateComponentPose_AnyThread
(
FComponentSpacePoseContext& Output |
Evaluate incoming component pose. | BoneControllers/AnimNode_RigidBody.h | |
virtual void EvaluateSkeletalControl_AnyThread
(
FComponentSpacePoseContext& Output, |
Evaluate the new component-space transforms for the affected bones. | BoneControllers/AnimNode_RigidBody.h | |
virtual bool IsValidToEvaluate
(
const USkeleton* Skeleton, |
Return true if it is valid to Evaluate | BoneControllers/AnimNode_RigidBody.h | |
virtual void UpdateComponentPose_AnyThread
(
const FAnimationUpdateContext& Context |
Update incoming component pose. | BoneControllers/AnimNode_RigidBody.h | |
virtual void UpdateInternal
(
const FAnimationUpdateContext& Context |
Interface for derived skeletal controls to implement use this function to update for skeletal control base | BoneControllers/AnimNode_RigidBody.h |
Overridden from FAnimNode_Base
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void GatherDebugData
(
FNodeDebugData& DebugData |
BoneControllers/AnimNode_RigidBody.h | ||
virtual int32 GetLODThreshold() |
BoneControllers/AnimNode_RigidBody.h | ||
virtual bool HasPreUpdate() |
BoneControllers/AnimNode_RigidBody.h | ||
virtual void Initialize_AnyThread
(
const FAnimationInitializeContext& Context |
BoneControllers/AnimNode_RigidBody.h | ||
virtual bool NeedsDynamicReset() |
BoneControllers/AnimNode_RigidBody.h | ||
virtual bool NeedsOnInitializeAnimInstance() |
BoneControllers/AnimNode_RigidBody.h | ||
virtual void OnInitializeAnimInstance
(
const FAnimInstanceProxy* InProxy, |
BoneControllers/AnimNode_RigidBody.h | ||
virtual void PreUpdate
(
const UAnimInstance* InAnimInstance |
BoneControllers/AnimNode_RigidBody.h | ||
virtual void ResetDynamics
(
ETeleportType InTeleportType |
BoneControllers/AnimNode_RigidBody.h |