unreal.PhysicsAssetSolverSettings

class unreal.PhysicsAssetSolverSettings(position_iterations: int = 0, velocity_iterations: int = 0, projection_iterations: int = 0, cull_distance: float = 0.0, max_depenetration_velocity: float = 0.0, fixed_time_step: float = 0.0, use_linear_joint_solver: bool = False)

Bases: StructBase

Solver iterations settings for use by RigidBody AnimNode (RBAN) in the Anim Graph. Each RBAN node runs its own solver with these settings. note: These settings have no effect when the Physics Asset is used in a world simulation (i.e., as a ragdoll on a SkeletalMeshComponent).

C++ Source:

  • Module: Engine

  • File: PhysicsAsset.h

Editor Properties: (see get_editor_property/set_editor_property)

  • cull_distance (float): [Read-Write] Cull Distance: RBAN: The distance at which collisions are ignored. In general you need this to be a bit larger than the typical relative body movement in your simulation, but small enough so that we don’t have to speculatively create too many unused collisions.

  • fixed_time_step (float): [Read-Write] Fixed Time Step: RBAN: The recommended fixed timestep for the RBAN solver. Set to 0 to run with variable timestep (default). NOTE: If this value is non-zero and less than the current frame time, the simulation will step multiple times which increases the cost.

  • max_depenetration_velocity (float): [Read-Write] Max Depenetration Velocity: RBAN: When bodies are penetrating, this is the maximum velocity delta that can be applied in one frame.

  • position_iterations (int32): [Read-Write] Position Iterations: RBAN: The number of position iterations to run. The position solve is responsible for depenetration. Increasing this will improve simulation stability, but increase the cost.

  • projection_iterations (int32): [Read-Write] Projection Iterations: RBAN: The number of projection iterations to run. The projection phase is a final pass over the constraints, applying a semi-physical correction to any joint errors remaining after the position and velocity solves. It can be very helpful to stabilize joint chains, but can cause issues with collision response. The projection magnitude can be controlled per-constraint in the constraint settings (assuming ProjectionIteration is not zero). This should be left as 1 in almost all cases.

  • use_linear_joint_solver (bool): [Read-Write] Use Linear Joint Solver: RBAN: Whether to use the linear or non-linear solver for RBAN Joints. The linear solver is significantly cheaper than the non-linear solver when you are running multiple iterations, but is more likely to suffer from jitter. In general you should try to use the linear solver and increase the PositionIterations to improve stability if possible, only using the non-linear solver as a last resort.

  • velocity_iterations (int32): [Read-Write] Velocity Iterations: RBAN: The number of velocity iterations to run. The velocity solve is responsible for restitution (bounce) and friction. This should usually be 1, but could be 0 if you don’t care about friction and restitution.

property cull_distance: float

[Read-Write] Cull Distance: RBAN: The distance at which collisions are ignored. In general you need this to be a bit larger than the typical relative body movement in your simulation, but small enough so that we don’t have to speculatively create too many unused collisions.

Type:

(float)

property fixed_time_step: float

[Read-Write] Fixed Time Step: RBAN: The recommended fixed timestep for the RBAN solver. Set to 0 to run with variable timestep (default). NOTE: If this value is non-zero and less than the current frame time, the simulation will step multiple times which increases the cost.

Type:

(float)

property max_depenetration_velocity: float

[Read-Write] Max Depenetration Velocity: RBAN: When bodies are penetrating, this is the maximum velocity delta that can be applied in one frame.

Type:

(float)

property position_iterations: int

[Read-Write] Position Iterations: RBAN: The number of position iterations to run. The position solve is responsible for depenetration. Increasing this will improve simulation stability, but increase the cost.

Type:

(int32)

property projection_iterations: int

[Read-Write] Projection Iterations: RBAN: The number of projection iterations to run. The projection phase is a final pass over the constraints, applying a semi-physical correction to any joint errors remaining after the position and velocity solves. It can be very helpful to stabilize joint chains, but can cause issues with collision response. The projection magnitude can be controlled per-constraint in the constraint settings (assuming ProjectionIteration is not zero). This should be left as 1 in almost all cases.

Type:

(int32)

property use_linear_joint_solver: bool

[Read-Write] Use Linear Joint Solver: RBAN: Whether to use the linear or non-linear solver for RBAN Joints. The linear solver is significantly cheaper than the non-linear solver when you are running multiple iterations, but is more likely to suffer from jitter. In general you should try to use the linear solver and increase the PositionIterations to improve stability if possible, only using the non-linear solver as a last resort.

Type:

(bool)

property velocity_iterations: int

[Read-Write] Velocity Iterations: RBAN: The number of velocity iterations to run. The velocity solve is responsible for restitution (bounce) and friction. This should usually be 1, but could be 0 if you don’t care about friction and restitution.

Type:

(int32)