Navigation
API > API/Plugins > API/Plugins/PhysicsControl
Inheritance Hierarchy
- FAnimNode_SkeletalControlBase
- FAnimNode_RigidBodyWithControl
References
| Module | PhysicsControl |
| Header | /Engine/Plugins/Experimental/PhysicsControl/Source/PhysicsControl/Public/AnimNode_RigidBodyWithControl.h |
| Include | #include "AnimNode_RigidBodyWithControl.h" |
Syntax
USTRUCT ()
struct FAnimNode_RigidBodyWithControl : public FAnimNode_SkeletalControlBase
Remarks
Controller that simulates physics based on the physics asset of the skeletal mesh component
Variables
| Type | Name | Description | |
|---|---|---|---|
| FPhysicsControlAndBodyModifierCreationDatas | AdditionalControlsAndBodyModifiers | Controls and modifiers that should be created, in addition to those made as part of the limb setup. | |
| FPhysicsControlSetUpdates | AdditionalSets | Allows additional sets of controls or modifiers to be created, and existing sets to be modified | |
| FBoneReference | BaseBoneRef | Matters if SimulationSpace is BaseBone | |
| uint8: 1 | bCalculateVelocitiesForWorldGeometry | Whether or not to calculate velocities for world geometry. | |
| bool | bDefaultToSkeletalMeshPhysicsAsset | Use the skeletal mesh physics asset as default in case set to True. | |
| bool | bEnableCharacterSetupData | ||
| bool | bEnableControls | If false, then controls will not be created. | |
| uint8: 1 | bEnableWorldGeometry | ||
| uint8: 1 | bForceDisableCollisionBetweenConstraintBodies | Whether to allow collisions between two bodies joined by a constraint | |
| uint8: 1 | bFreezeIncomingPoseOnStart | When simulation starts, freeze incoming pose. | |
| uint8: 1 | bMakeKinematicConstraints | If true, constraints will be made even when both objects are kinematic, in case they are subsequently made dynamic. | |
| TMap< FName, FName > | BoneToBodyNameMap | A map of bone names to "body" names, the latter being used to assign names to controls/modifiers. | |
| uint8: 1 | bOverrideWorldGravity | ||
| uint8: 1 | bTransferBoneVelocities | When simulation starts, transfer previous bone velocities (from animation) to make transition into simulation seamless. | |
| bool | bUpdateCacheEveryFrame | This can be used to force the cached collision objects to be updated every frame, even when we are not moving. | |
| uint8: 1 | 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) used for obtaining the list of objects we might collide with. | |
| FPhysicsControlCharacterSetupData | CharacterSetupData | Setup data for creating the main controls (world- and parent-space) and modifiers, based on splitting the skeleton up into limbs. | |
| 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. | |
| FName | ConstraintProfile | The constraint profile to use on all the joints in the physics asset. | |
| FPhysicsControlControlAndModifierParameters | ControlAndModifierParameters | Controls that should be applied each frame, and can be expected to change. | |
| FPhysicsControlControlAndModifierUpdates | ControlAndModifierUpdates | Updates to controls that can be applied. Note that these update the normal/original state. | |
| FName | ControlProfile | The control profile to use. | |
| FRigidBodyControlTargets | ControlTargets | Targets that should be applied to the controls. | |
| 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. | |
| FPhysicsControlControlAndModifierParameters | InitialControlAndBodyModifierUpdates | An initial set of controls that should be applied immediately after setup. | |
| FRigidBodyKinematicTargets | KinematicTargets | Targets that should be applied to kinematic bodies that are under the influence of a body modifier. | |
| TEnumAsByte< ECollisionChannel > | OverlapChannel | The channel we use to find static geometry to collide with | |
| TObjectPtr< UPhysicsAsset > | OverridePhysicsAsset | Physics asset to use. | |
| FVector | OverrideWorldGravity | Override gravity | |
| TObjectPtr< USkeletalMesh > | PhysicsAssetAuthoredSkeletalMesh | These options configure the way constraint transforms can be modified at runtime to match the current Skeletal Mesh. | |
| MapConstraintsBehaviorType | PhysicsAssetConditioningConstraintOrientation | Configure the way constraint orientations can be modified at runtime to match the current Skeletal Mesh. | |
| MapConstraintsBehaviorType | PhysicsAssetConditioningConstraintPosition | Configure the way constraint positions can be modified at runtime to match the current Skeletal Mesh. | |
| TObjectPtr< UPhysicsControlAsset > | PhysicsControlAsset | Physics control asset to use. | |
| 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, |
||
| FName | CreateBodyModifier
(
const FName BoneName, |
||
| FName | CreateControl
(
const FName ParentBoneName, |
||
| bool | CreateNamedBodyModifier
(
const FName ModifierName, |
||
| bool | CreateNamedControl
(
const FName ControlName, |
||
| void | EvaluateComponentPose_AnyThread
(
FComponentSpacePoseContext& Output |
||
| void | EvaluateSkeletalControl_AnyThread
(
FComponentSpacePoseContext& Output, |
||
| void | GatherDebugData
(
FNodeDebugData& DebugData |
||
| const FTransform | GetBodyTransform
(
const int32 BodyIndex |
||
| int32 | |||
| const FPhysicsControlNameRecords & | |||
| const int32 | GetNumBodies () |
||
| UPhysicsAsset * | |||
| ImmediatePhysics::FSimulation * | TEMP: Exposed for use in PhAT as a quick way to get drag handles working with Chaos. | ||
| bool | HasPreUpdate () |
||
| void | Initialize_AnyThread
(
const FAnimationInitializeContext& Context |
||
| void | InvokeControlProfile
(
FName ControlProfileName |
Invoke the profile stored in the control profile asset, and sets the current profile. | |
| bool | IsValidToEvaluate
(
const USkeleton* Skeleton, |
||
| bool | |||
| bool | |||
| void | OnInitializeAnimInstance
(
const FAnimInstanceProxy* InProxy, |
||
| void | PostSerialize
(
const FArchive& Ar |
||
| void | PreUpdate
(
const UAnimInstance* InAnimInstance |
||
| void | ResetDynamics
(
ETeleportType InTeleportType |
||
| void | SetOverridePhysicsAsset
(
UPhysicsAsset* PhysicsAsset |
Set the override physics asset. | |
| void | UpdateComponentPose_AnyThread
(
const FAnimationUpdateContext& Context |
||
| void | UpdateInternal
(
const FAnimationUpdateContext& Context |
Deprecated Variables
| Type | Name | Description | |
|---|---|---|---|
| uint8: 1 | bModifyConstraintTransformsToMatchSkeleton_DEPRECATED |