Navigation
Unreal Engine C++ API Reference > Runtime > AnimGraphRuntime > BoneControllers
Inheritance Hierarchy
- FAnimNode_Base
- FAnimNode_SkeletalControlBase
- FAnimNode_RigidBody
References
Module | AnimGraphRuntime |
Header | /Engine/Source/Runtime/AnimGraphRuntime/Public/BoneControllers/AnimNode_RigidBody.h |
Include | #include "BoneControllers/AnimNode_RigidBody.h" |
Syntax
struct FAnimNode_RigidBody : public FAnimNode_SkeletalControlBase
Remarks
Controller that simulates physics based on the physics asset of the skeletal mesh component
Variables
Type | Name | Description | |
---|---|---|---|
![]() |
FBoneReference | BaseBoneRef | Matters if SimulationSpace is BaseBone |
![]() |
uint8: 1 | bClampLinearTranslationLimitToRefPose | Correct for linear tearing on bodies with all axes Locked. |
![]() |
uint8: 1 | bEnableWorldGeometry | |
![]() |
bool | bForceDisableCollisionBetweenConstraintBodies | Whether to allow collisions between two bodies joined by a constraint |
![]() |
uint8: 1 | bFreezeIncomingPoseOnStart | When simulation starts, freeze incoming pose. |
![]() |
uint8: 1 | bOverrideWorldGravity | |
![]() |
uint8: 1 | bTransferBoneVelocities | When simulation starts, transfer previous bone velocities (from animation) to make transition into simulation seamless. |
![]() |
bool | bUseExternalClothCollision | If true, kinematic objects will be added to the simulation at runtime to represent any cloth colliders defined for the parent object. |
![]() |
float | CachedBoundsScale | Scale of cached bounds (vs. actual bounds). |
![]() |
FVector | 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 | 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 | 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 | 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. |
![]() |
FVector | ExternalForce | Applies a uniform external force in world space. |
![]() |
TEnumAsByte< ECollisionChannel > | OverlapChannel | The channel we use to find static geometry to collide with |
![]() |
TObjectPtr< UPhysicsAsset > | OverridePhysicsAsset | Physics asset to use. If empty use the skeletal mesh's default physics asset |
![]() |
FVector | OverrideWorldGravity | Override gravity |
![]() |
FSimSpaceSettings | SimSpaceSettings | Settings for the system which passes motion of the simulation's space into the simulation. |
![]() |
ESimulationSpace | SimulationSpace | What space to simulate the bodies in. This affects how velocities are generated |
![]() |
ESimulationTiming | SimulationTiming | Whether the physics simulation runs synchronously with the node's evaluation or is run in the background until the next frame. |
![]() |
float | WorldSpaceMinimumScale | For world-space simulations, if the magnitude of the component's 3D scale is less than WorldSpaceMinimumScale, do not update the node. |
Constructors
Type | Name | Description | |
---|---|---|---|
![]() |
Destructors
Type | Name | Description | |
---|---|---|---|
![]() |
Functions
Type | Name | Description | |
---|---|---|---|
![]() ![]() |
void | AddImpulseAtLocation
(
FVector Impulse, |
|
![]() ![]() |
UPhysicsAsset * | ||
![]() ![]() |
ImmediatePhysics::FSimulation * | TEMP: Exposed for use in PhAt as a quick way to get drag handles working with Chaos. | |
![]() |
void | PostSerialize
(
const FArchive& Ar |
Overridden from FAnimNode_SkeletalControlBase
Type | Name | Description | |
---|---|---|---|
![]() ![]() |
void | Evaluate incoming component pose. | |
![]() ![]() |
void | EvaluateSkeletalControl_AnyThread
(
FComponentSpacePoseContext& Output, |
Evaluate the new component-space transforms for the affected bones. |
![]() ![]() |
bool | IsValidToEvaluate
(
const USkeleton* Skeleton, |
Return true if it is valid to Evaluate |
![]() ![]() |
void | UpdateComponentPose_AnyThread
(
const FAnimationUpdateContext& Context |
Update incoming component pose. |
![]() ![]() |
void | UpdateInternal
(
const FAnimationUpdateContext& Context |
Interface for derived skeletal controls to implement use this function to update for skeletal control base |
Overridden from FAnimNode_Base
Type | Name | Description | |
---|---|---|---|
![]() ![]() |
void | GatherDebugData
(
FNodeDebugData& DebugData |
Called to gather on-screen debug data. This is called on the game thread. |
![]() ![]() ![]() |
int32 | Get the LOD threshold at which this node is enabled. | |
![]() ![]() ![]() |
bool | HasPreUpdate () |
Override this to indicate that PreUpdate() should be called on the game thread (usually to gather non-thread safe data) before Update() is called. |
![]() ![]() |
void | Initialize_AnyThread
(
const FAnimationInitializeContext& Context |
Called when the node first runs. |
![]() ![]() ![]() |
bool | For nodes that implement some kind of simulation, return true here so ResetDynamics() gets called when things like teleports, time skips etc. | |
![]() ![]() ![]() |
bool | 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. | |
![]() ![]() |
void | OnInitializeAnimInstance
(
const FAnimInstanceProxy* InProxy, |
Called once, from game thread as the parent anim instance is created |
![]() ![]() |
void | PreUpdate
(
const UAnimInstance* InAnimInstance |
Override this to perform game-thread work prior to non-game thread Update() being called |
![]() ![]() |
void | ResetDynamics
(
ETeleportType InTeleportType |
Called to help dynamics-based updates to recover correctly from large movements/teleports |