unreal.RigUnit_StepPhysicsSolver1

class unreal.RigUnit_StepPhysicsSolver1(execute_pin: RigVMExecutePin = [], physics_solver_component_key: RigComponentKey = Ellipsis, delta_time_override: float = 0.0, simulation_space_delta_time_override: float = 0.0, alpha: float = 0.0, track_velocities_during_pass_through: bool = False, visualization_settings: RigPhysicsVisualizationSettings1 = [])

Bases: RigUnit_PhysicsBaseMutable

Steps the specified physics solver

C++ Source:

  • Plugin: ControlRigPhysics

  • Module: ControlRigPhysics

  • File: RigPhysicsSolverExecution.h

Editor Properties: (see get_editor_property/set_editor_property)

  • alpha (float): [Read-Write] How much of the simulation is combined with the input bone. This currently happens in component space. Each body additionally has its own PhysicsBlendWeight, and the effective blend per body is Alpha * PhysicsBlendWeight.

    When Alpha is zero the simulation is bypassed entirely (pass-through) - see bTrackVelocitiesDuringPassThrough for the resume behaviour. Note that only Alpha triggers the fast pass-through: setting every body’s PhysicsBlendWeight to zero leaves the bones at the input animation pose (no hierarchy writeback), but the simulation still runs. Set Alpha to zero if you want to skip the simulation cost entirely.

  • delta_time_override (float): [Read-Write] If this is zero, then the execute context time will be used. If this is positive then it will override the delta time. A negative value will prevent the solver from stepping, but there will still be update costs associated with the node.

  • execute_pin (RigVMExecutePin): [Read-Write] This property is used to chain multiple mutable units together

  • physics_solver_component_key (RigComponentKey): [Read-Write] The physics solver that should be stepped

  • simulation_space_delta_time_override (float): [Read-Write] If this is zero, then the simulation delta time will be used for evaluating movement of the simulation space. If this is positive then it will override. This may be needed if the component movement is being done in parallel, in which case you might need to pass in the previous time delta here.

  • track_velocities_during_pass_through (bool): [Read-Write] When true and Alpha is zero, the solver still tracks source bone transforms each frame so that velocities are valid when Alpha increases (smooth resume), at a small per-body cost. When false and Alpha is zero, the pass-through is near-zero cost but the simulation does a brief warm-up reset (forcing kinematic tracking for a few frames) when Alpha increases.

  • visualization_settings (RigPhysicsVisualizationSettings1): [Read-Write] Settings that specify how the solver state should be visualized during/after the step

property alpha: float

[Read-Write] How much of the simulation is combined with the input bone. This currently happens in component space. Each body additionally has its own PhysicsBlendWeight, and the effective blend per body is Alpha * PhysicsBlendWeight.

When Alpha is zero the simulation is bypassed entirely (pass-through) - see bTrackVelocitiesDuringPassThrough for the resume behaviour. Note that only Alpha triggers the fast pass-through: setting every body’s PhysicsBlendWeight to zero leaves the bones at the input animation pose (no hierarchy writeback), but the simulation still runs. Set Alpha to zero if you want to skip the simulation cost entirely.

Type:

(float)

property delta_time_override: float

[Read-Write] If this is zero, then the execute context time will be used. If this is positive then it will override the delta time. A negative value will prevent the solver from stepping, but there will still be update costs associated with the node.

Type:

(float)

property physics_solver_component_key: RigComponentKey

[Read-Write] The physics solver that should be stepped

Type:

(RigComponentKey)

property simulation_space_delta_time_override: float

[Read-Write] If this is zero, then the simulation delta time will be used for evaluating movement of the simulation space. If this is positive then it will override. This may be needed if the component movement is being done in parallel, in which case you might need to pass in the previous time delta here.

Type:

(float)

property track_velocities_during_pass_through: bool

[Read-Write] When true and Alpha is zero, the solver still tracks source bone transforms each frame so that velocities are valid when Alpha increases (smooth resume), at a small per-body cost. When false and Alpha is zero, the pass-through is near-zero cost but the simulation does a brief warm-up reset (forcing kinematic tracking for a few frames) when Alpha increases.

Type:

(bool)

property visualization_settings: RigPhysicsVisualizationSettings1

[Read-Write] Settings that specify how the solver state should be visualized during/after the step

Type:

(RigPhysicsVisualizationSettings1)