Navigation
API > API/Plugins > API/Plugins/PhysicsControl
Controller that simulates physics based on the physics asset of the skeletal mesh component
| Name | FAnimNode_RigidBodyWithControl |
| Type | struct |
| Header File | /Engine/Plugins/Experimental/PhysicsControl/Source/PhysicsControl/Public/AnimNode_RigidBodyWithControl.h |
| Include Path | #include "AnimNode_RigidBodyWithControl.h" |
Syntax
USTRUCT ()
struct FAnimNode_RigidBodyWithControl : public FAnimNode_SkeletalControlBase
Inheritance Hierarchy
- FAnimNode_Base → FAnimNode_SkeletalControlBase → FAnimNode_RigidBodyWithControl
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FAnimNode_RigidBodyWithControl() |
AnimNode_RigidBodyWithControl.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
~FAnimNode_RigidBodyWithControl() |
AnimNode_RigidBodyWithControl.h |
Structs
| Name | Remarks |
|---|---|
| FBodyAnimData | |
| FClothCollider | Information required to identify and update a kinematic object representing a cloth collision source in the sim. |
| FWorldObject |
Variables
Public
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| AdditionalControlsAndBodyModifiers | FPhysicsControlAndBodyModifierCreationDatas | Controls and modifiers that should be created, in addition to those made as part of the limb setup. | AnimNode_RigidBodyWithControl.h |
|
| AdditionalSets | FPhysicsControlSetUpdates | Allows additional sets of controls or modifiers to be created, and existing sets to be modified | AnimNode_RigidBodyWithControl.h |
|
| BaseBoneRef | FBoneReference | Matters if SimulationSpace is BaseBone | AnimNode_RigidBodyWithControl.h |
|
| bCalculateVelocitiesForWorldGeometry | uint8 | Whether or not to calculate velocities for world geometry. | AnimNode_RigidBodyWithControl.h |
|
| bDefaultToSkeletalMeshPhysicsAsset | bool | Use the skeletal mesh physics asset as default in case set to True. | AnimNode_RigidBodyWithControl.h |
|
| bEnableCharacterSetupData | bool | AnimNode_RigidBodyWithControl.h |
|
|
| bEnableControls | bool | If false, then controls will not be created. | AnimNode_RigidBodyWithControl.h |
|
| bEnableWorldGeometry | uint8 | AnimNode_RigidBodyWithControl.h |
|
|
| bForceDisableCollisionBetweenConstraintBodies | uint8 | Whether to allow collisions between two bodies joined by a constraint | AnimNode_RigidBodyWithControl.h |
|
| bFreezeIncomingPoseOnStart | uint8 | When simulation starts, freeze incoming pose. | AnimNode_RigidBodyWithControl.h |
|
| bMakeKinematicConstraints | uint8 | If true, constraints will be made even when both objects are kinematic, in case they are subsequently made dynamic. | AnimNode_RigidBodyWithControl.h |
|
| BoneToBodyNameMap | TMap< FName, FName > | A map of bone names to "body" names, the latter being used to assign names to controls/modifiers. | AnimNode_RigidBodyWithControl.h |
|
| bOverrideWorldGravity | uint8 | AnimNode_RigidBodyWithControl.h |
|
|
| bTransferBoneVelocities | uint8 | When simulation starts, transfer previous bone velocities (from animation) to make transition into simulation seamless. | AnimNode_RigidBodyWithControl.h |
|
| bUpdateCacheEveryFrame | bool | This can be used to force the cached collision objects to be updated every frame, even when we are not moving. | AnimNode_RigidBodyWithControl.h |
|
| bUseExternalClothCollision | uint8 | If true, kinematic objects will be added to the simulation at runtime to represent any cloth colliders defined for the parent object. | AnimNode_RigidBodyWithControl.h |
|
| CachedBoundsScale | float | Scale of cached bounds (vs. actual bounds) used for obtaining the list of objects we might collide with. | AnimNode_RigidBodyWithControl.h |
|
| CharacterSetupData | FPhysicsControlCharacterSetupData | Setup data for creating the main controls (world- and parent-space) and modifiers, based on splitting the skeleton up into limbs. | AnimNode_RigidBodyWithControl.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. | AnimNode_RigidBodyWithControl.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. | AnimNode_RigidBodyWithControl.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. | AnimNode_RigidBodyWithControl.h |
|
| ConstraintProfile | FName | The constraint profile to use on all the joints in the physics asset. | AnimNode_RigidBodyWithControl.h |
|
| ControlAndModifierParameters | FPhysicsControlControlAndModifierParameters | Controls that should be applied each frame, and can be expected to change. | AnimNode_RigidBodyWithControl.h |
|
| ControlAndModifierUpdates | FPhysicsControlControlAndModifierUpdates | Updates to controls that can be applied. Note that these update the normal/original state. | AnimNode_RigidBodyWithControl.h |
|
| ControlProfile | FName | The control profile to use. | AnimNode_RigidBodyWithControl.h |
|
| ControlTargets | FRigidBodyControlTargets | Targets that should be applied to the controls. | AnimNode_RigidBodyWithControl.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. | AnimNode_RigidBodyWithControl.h |
|
| ExternalForce | FVector | Applies a uniform external force in world space. | AnimNode_RigidBodyWithControl.h |
|
| InitialControlAndBodyModifierUpdates | FPhysicsControlControlAndModifierParameters | An initial set of controls that should be applied immediately after setup. | AnimNode_RigidBodyWithControl.h |
|
| KinematicTargets | FRigidBodyKinematicTargets | Targets that should be applied to kinematic bodies that are under the influence of a body modifier. | AnimNode_RigidBodyWithControl.h |
|
| OverlapChannel | TEnumAsByte< ECollisionChannel > | The channel we use to find static geometry to collide with | AnimNode_RigidBodyWithControl.h |
|
| OverridePhysicsAsset | TObjectPtr< UPhysicsAsset > | Physics asset to use. | AnimNode_RigidBodyWithControl.h |
|
| OverrideWorldGravity | FVector | Override gravity | AnimNode_RigidBodyWithControl.h |
|
| PhysicsAssetAuthoredSkeletalMesh | TObjectPtr< USkeletalMesh > | These options configure the way constraint transforms can be modified at runtime to match the current Skeletal Mesh. | AnimNode_RigidBodyWithControl.h |
|
| PhysicsAssetConditioningConstraintOrientation | MapConstraintsBehaviorType | Configure the way constraint orientations can be modified at runtime to match the current Skeletal Mesh. | AnimNode_RigidBodyWithControl.h |
|
| PhysicsAssetConditioningConstraintPosition | MapConstraintsBehaviorType | Configure the way constraint positions can be modified at runtime to match the current Skeletal Mesh. | AnimNode_RigidBodyWithControl.h |
|
| PhysicsControlAsset | TObjectPtr< UPhysicsControlAsset > | Physics control asset to use. | AnimNode_RigidBodyWithControl.h |
|
| SimSpaceSettings | FSimSpaceSettings | Settings for the system which passes motion of the simulation's space into the simulation. | AnimNode_RigidBodyWithControl.h |
|
| SimulationSpace | ESimulationSpace | What space to simulate the bodies in. This affects how velocities are generated | AnimNode_RigidBodyWithControl.h |
|
| SimulationTiming | ESimulationTiming | Whether the physics simulation runs synchronously with the node's evaluation or is run in the background until the next frame. | AnimNode_RigidBodyWithControl.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. | AnimNode_RigidBodyWithControl.h |
|
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| AccumulatedDeltaTime | float | AnimNode_RigidBodyWithControl.h | ||
| AnimPhysicsMinDeltaTime | float | AnimNode_RigidBodyWithControl.h | ||
| bCheckForBodyTransformInit | uint8 | AnimNode_RigidBodyWithControl.h | ||
| bEnabled | uint8 | AnimNode_RigidBodyWithControl.h | ||
| bHaveSetupControls | uint8 | AnimNode_RigidBodyWithControl.h | ||
| Bodies | TArray< ImmediatePhysics::FActorHandle * > | Note that the Bodies and Joints arrays will be the same size - i.e. there will be a correspondence between every joint and body. | AnimNode_RigidBodyWithControl.h | |
| BodyAnimData | TArray< FBodyAnimData > | AnimNode_RigidBodyWithControl.h | ||
| BodyNameToIndexMap | TMap< FName, int32 > | AnimNode_RigidBodyWithControl.h | ||
| bSimulateAnimPhysicsAfterReset | bool | AnimNode_RigidBodyWithControl.h | ||
| bSimulationStarted | uint8 | AnimNode_RigidBodyWithControl.h | ||
| CachedBounds | FSphere | Bounds used to gather world objects copied into the simulation. | AnimNode_RigidBodyWithControl.h | |
| CapturedBoneVelocityBoneContainer | FBoneContainer | AnimNode_RigidBodyWithControl.h | ||
| CapturedBoneVelocityPose | FCSPose< FCompactHeapPose > | AnimNode_RigidBodyWithControl.h | ||
| CapturedFrozenCurves | FBlendedHeapCurve | AnimNode_RigidBodyWithControl.h | ||
| CapturedFrozenPose | FCSPose< FCompactHeapPose > | AnimNode_RigidBodyWithControl.h | ||
| ClothColliders | TArray< FClothCollider > | List of cloth colliders in the sim that represent objects collected from other parts of this character. | AnimNode_RigidBodyWithControl.h | |
| ComponentsInSim | TMap< const UPrimitiveComponent *, FWorldObject > | List of actors in the sim that represent objects collected from the world. | AnimNode_RigidBodyWithControl.h | |
| ComponentsInSimTick | int32 | AnimNode_RigidBodyWithControl.h | ||
| ControlRecords | TMap< FName, FRigidBodyControlRecord > | Map of control records - they will be referenced by name. | AnimNode_RigidBodyWithControl.h | |
| CurrentConstraintProfile | FName | AnimNode_RigidBodyWithControl.h | ||
| CurrentControlProfile | FName | AnimNode_RigidBodyWithControl.h | ||
| CurrentTransform | FTransform | AnimNode_RigidBodyWithControl.h | ||
| Joints | TArray< ImmediatePhysics::FJointHandle * > | AnimNode_RigidBodyWithControl.h | ||
| LastEvalTimeSeconds | float | AnimNode_RigidBodyWithControl.h | ||
| ModifierRecords | TMap< FName, FRigidBodyModifierRecord > | Map of body modifier records - they will be referenced by name. | AnimNode_RigidBodyWithControl.h | |
| NameRecords | FPhysicsControlNameRecords | Details about sets etc. | AnimNode_RigidBodyWithControl.h | |
| OutputBoneData | TArray< UE::PhysicsControl::FOutputBoneData > | AnimNode_RigidBodyWithControl.h | ||
| PendingRadialForces | TArray< USkeletalMeshComponent::FPendingRadialForces > | AnimNode_RigidBodyWithControl.h | ||
| PerSolverField | FPerSolverFieldSystem | AnimNode_RigidBodyWithControl.h | ||
| PhysicsAssetToUse | UPhysicsAsset * | AnimNode_RigidBodyWithControl.h | ||
| PoseData | UE::PhysicsControl::FRigidBodyPoseData | Each update we cache the incoming pose transforms in whatever space the simulation is running in. | AnimNode_RigidBodyWithControl.h | |
| PreviousComponentLinearVelocity | FVector | AnimNode_RigidBodyWithControl.h | ||
| PreviousCompWorldSpaceTM | FTransform | AnimNode_RigidBodyWithControl.h | ||
| PreviousPreviousSimulationSpaceTransform | FTransform | AnimNode_RigidBodyWithControl.h | ||
| PreviousSimulationSpaceTransform | FTransform | Used by the world-space to simulation-space motion transfer system in Component- or Bone-Space sims. | AnimNode_RigidBodyWithControl.h | |
| PreviousTransform | FTransform | AnimNode_RigidBodyWithControl.h | ||
| QueryParams | FCollisionQueryParams | AnimNode_RigidBodyWithControl.h | ||
| ResetSimulatedTeleportType | ETeleportType | AnimNode_RigidBodyWithControl.h | ||
| Simulation | ImmediatePhysics::FSimulation * | AnimNode_RigidBodyWithControl.h | ||
| SimulationTask | UE::Tasks::FTask | AnimNode_RigidBodyWithControl.h | ||
| SkeletalMeshAtLastPhysicsInit | const USkeletalMesh * | The Skeletal Mesh parsed during the last physics initialization. | AnimNode_RigidBodyWithControl.h | |
| SkeletonBoneIndexToBodyIndex | TArray< int32 > | AnimNode_RigidBodyWithControl.h | ||
| SkelMeshCompWeakPtr | TWeakObjectPtr< USkeletalMeshComponent > | This should only be used for removing the delegate during termination. | AnimNode_RigidBodyWithControl.h | |
| SolverIterations | FSolverIterations | AnimNode_RigidBodyWithControl.h | ||
| SolverSettings | FPhysicsAssetSolverSettings | AnimNode_RigidBodyWithControl.h | ||
| TotalMass | float | AnimNode_RigidBodyWithControl.h | ||
| UnsafeOwner | const AActor * | Used by CollectWorldObjects and UpdateWorldGeometry in Task Thread. Only used for a pointer comparison. | AnimNode_RigidBodyWithControl.h | |
| UnsafeWorld | const UWorld * | Used by CollectWorldObjects and UpdateWorldGeometry in the Task Thread. | AnimNode_RigidBodyWithControl.h | |
| WorldSpaceControlActorHandle | ImmediatePhysics::FActorHandle * | AnimNode_RigidBodyWithControl.h | ||
| WorldSpaceGravity | FVector | AnimNode_RigidBodyWithControl.h | ||
| WorldTimeSeconds | float | AnimNode_RigidBodyWithControl.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void AddImpulseAtLocation
(
FVector Impulse, |
AnimNode_RigidBodyWithControl.h | ||
FName CreateBodyModifier
(
const FName BoneName, |
AnimNode_RigidBodyWithControl.h | ||
FName CreateControl
(
const FName ParentBoneName, |
AnimNode_RigidBodyWithControl.h | ||
bool CreateNamedBodyModifier
(
const FName ModifierName, |
AnimNode_RigidBodyWithControl.h | ||
bool CreateNamedControl
(
const FName ControlName, |
AnimNode_RigidBodyWithControl.h | ||
virtual void EvaluateComponentPose_AnyThread
(
FComponentSpacePoseContext& Output |
AnimNode_RigidBodyWithControl.h | ||
virtual void EvaluateSkeletalControl_AnyThread
(
FComponentSpacePoseContext& Output, |
AnimNode_RigidBodyWithControl.h | ||
virtual void GatherDebugData
(
FNodeDebugData& DebugData |
AnimNode_RigidBodyWithControl.h | ||
const FTransform GetBodyTransform
(
const int32 BodyIndex |
AnimNode_RigidBodyWithControl.h | ||
virtual int32 GetLODThreshold() |
AnimNode_RigidBodyWithControl.h | ||
const FPhysicsControlNameRecords & GetNameRecords() |
AnimNode_RigidBodyWithControl.h | ||
const int32 GetNumBodies() |
AnimNode_RigidBodyWithControl.h | ||
UPhysicsAsset * GetPhysicsAsset() |
AnimNode_RigidBodyWithControl.h | ||
virtual ImmediatePhysics::FSimulation * GetSimulation() |
TEMP: Exposed for use in PhAT as a quick way to get drag handles working with Chaos. | AnimNode_RigidBodyWithControl.h | |
virtual bool HasPreUpdate() |
AnimNode_RigidBodyWithControl.h | ||
virtual void Initialize_AnyThread
(
const FAnimationInitializeContext& Context |
AnimNode_RigidBodyWithControl.h | ||
void InvokeControlProfile
(
FName ControlProfileName |
Invoke the profile stored in the control profile asset, and sets the current profile. | AnimNode_RigidBodyWithControl.h | |
virtual bool IsValidToEvaluate
(
const USkeleton* Skeleton, |
AnimNode_RigidBodyWithControl.h | ||
virtual bool NeedsDynamicReset() |
AnimNode_RigidBodyWithControl.h | ||
virtual bool NeedsOnInitializeAnimInstance() |
AnimNode_RigidBodyWithControl.h | ||
virtual void OnInitializeAnimInstance
(
const FAnimInstanceProxy* InProxy, |
AnimNode_RigidBodyWithControl.h | ||
void PostSerialize
(
const FArchive& Ar |
AnimNode_RigidBodyWithControl.h | ||
virtual void PreUpdate
(
const UAnimInstance* InAnimInstance |
AnimNode_RigidBodyWithControl.h | ||
virtual void ResetDynamics
(
ETeleportType InTeleportType |
AnimNode_RigidBodyWithControl.h | ||
void SetOverridePhysicsAsset
(
UPhysicsAsset* PhysicsAsset |
Set the override physics asset. | AnimNode_RigidBodyWithControl.h | |
virtual void UpdateComponentPose_AnyThread
(
const FAnimationUpdateContext& Context |
AnimNode_RigidBodyWithControl.h | ||
virtual void UpdateInternal
(
const FAnimationUpdateContext& Context |
AnimNode_RigidBodyWithControl.h |
Deprecated Variables
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| bModifyConstraintTransformsToMatchSkeleton_DEPRECATED | uint8 | AnimNode_RigidBodyWithControl.h |