unreal.RigDynamicsParticleProperties

class unreal.RigDynamicsParticleProperties(radius: float = 0.0, mass: float = 0.0, movement_type: RigParticleSimulationMovementType = Ellipsis, gravity_multiplier: float = 0.0, strength: float = 0.0, damping_ratio: float = 0.0, extra_damping: float = 0.0, acceleration_mode: bool = False, target_velocity_influence: float = 0.0, target_mode: float = 0.0, angle_limit: float = 0.0, angle_limit_strength: float = 0.0, damping: float = 0.0, scale_damping_by_inverse_mass: bool = False, collide_with_colliders: bool = False, no_collision_colliders: None = [], collision_particles: None = [], confiners: None = [])

Bases: StructBase

Rig Dynamics Particle Properties

C++ Source:

  • Plugin: ControlRigDynamics

  • Module: ControlRigDynamics

  • File: RigDynamicsData.h

Editor Properties: (see get_editor_property/set_editor_property)

  • acceleration_mode (bool): [Read-Write] When true, Strength is a mass-independent natural frequency. When false, the spring/damper acts as a true force, so heavier particles oscillate more slowly. Applies to target tracking only - the per-particle angle limit is always acceleration-mode regardless of this flag.

  • angle_limit (float): [Read-Write] Constrains this particle to align with the target direction from its parent, to within this angle (in degrees). This effectively gives us a limit on the deviation from the target pose.

  • angle_limit_strength (float): [Read-Write] The strength of the angle limit constraint (oscillation frequency). High values impose the limit more rigidly, low values allow soft/springy deviation before settling. Zero disables the angle limit.

  • collide_with_colliders (bool): [Read-Write] If false, this particle ignores all colliders regardless of NoCollisionColliders.

  • collision_particles (Array[RigComponentKey]): [Read-Write] A list of other particles we should collide with

  • confiners (Array[RigComponentKey]): [Read-Write] A list of confiners that will keep this particle inside their shapes (opt-in).

  • damping (float): [Read-Write] Air/ether damping (like drag). Particle velocity in simulation space is relaxed toward the local air/ether (world-at-rest, plus any simulation-space motion scaled by the solver’s linear / angular drag multipliers). With bScaleDampingByInverseMass=false, the relaxation timescale is 1/Damping for any mass. With bScaleDampingByInverseMass=true, Damping is divided by mass so lighter particles damp faster, making this behave more like drag.

  • damping_ratio (float): [Read-Write] DampingRatio for the tracking particle target

  • extra_damping (float): [Read-Write] Additional damping for tracking the particle target

  • gravity_multiplier (float): [Read-Write] Scales the solver gravity

  • mass (float): [Read-Write] The mass of the particle, affecting how it will respond to constraints (and external forces etc)

  • movement_type (RigParticleSimulationMovementType): [Read-Write] How the particle moves

  • no_collision_colliders (Array[RigComponentKey]): [Read-Write] A list of colliders we shouldn’t collide with

  • radius (float): [Read-Write] The radius of the particle, used for collision

  • scale_damping_by_inverse_mass (bool): [Read-Write] When true, Damping is divided by mass (drag-like - light particles damp faster). When false, Damping is mass-independent (same relaxation timescale for any mass). Matches the FRigPhysicsDynamics::bScaleDampingByInverseMass flag in ControlRigPhysics.

  • strength (float): [Read-Write] The strength which we drive towards the target (when simulated). This is the oscillation frequency, so low values will be soft and springy, but values significantly above 1/timestep will track the target very accurately.

  • target_mode (float): [Read-Write] 0 = SimSpace (child tracks absolute animation target), 1 = directional (child+parent track animation direction). Values between blend the two modes.

  • target_velocity_influence (float): [Read-Write] If TargetVelocityInfluence = 1 then the target’s velocity will be used for damping. If 0 then the damping is in simulation space (so acting more like drag)

property acceleration_mode: bool

[Read-Only] When true, Strength is a mass-independent natural frequency. When false, the spring/damper acts as a true force, so heavier particles oscillate more slowly. Applies to target tracking only - the per-particle angle limit is always acceleration-mode regardless of this flag.

Type:

(bool)

property angle_limit: float

[Read-Only] Constrains this particle to align with the target direction from its parent, to within this angle (in degrees). This effectively gives us a limit on the deviation from the target pose.

Type:

(float)

property angle_limit_strength: float

[Read-Only] The strength of the angle limit constraint (oscillation frequency). High values impose the limit more rigidly, low values allow soft/springy deviation before settling. Zero disables the angle limit.

Type:

(float)

property collide_with_colliders: bool

[Read-Only] If false, this particle ignores all colliders regardless of NoCollisionColliders.

Type:

(bool)

property collision_particles: None

[Read-Only] A list of other particles we should collide with

Type:

(Array[RigComponentKey])

property confiners: None

[Read-Only] A list of confiners that will keep this particle inside their shapes (opt-in).

Type:

(Array[RigComponentKey])

property damping: float

[Read-Only] Air/ether damping (like drag). Particle velocity in simulation space is relaxed toward the local air/ether (world-at-rest, plus any simulation-space motion scaled by the solver’s linear / angular drag multipliers). With bScaleDampingByInverseMass=false, the relaxation timescale is 1/Damping for any mass. With bScaleDampingByInverseMass=true, Damping is divided by mass so lighter particles damp faster, making this behave more like drag.

Type:

(float)

property damping_ratio: float

[Read-Only] DampingRatio for the tracking particle target

Type:

(float)

property extra_damping: float

[Read-Only] Additional damping for tracking the particle target

Type:

(float)

property gravity_multiplier: float

[Read-Only] Scales the solver gravity

Type:

(float)

property mass: float

[Read-Only] The mass of the particle, affecting how it will respond to constraints (and external forces etc)

Type:

(float)

property movement_type: RigParticleSimulationMovementType

[Read-Only] How the particle moves

Type:

(RigParticleSimulationMovementType)

property no_collision_colliders: None

[Read-Only] A list of colliders we shouldn’t collide with

Type:

(Array[RigComponentKey])

property radius: float

[Read-Only] The radius of the particle, used for collision

Type:

(float)

property scale_damping_by_inverse_mass: bool

[Read-Only] When true, Damping is divided by mass (drag-like - light particles damp faster). When false, Damping is mass-independent (same relaxation timescale for any mass). Matches the FRigPhysicsDynamics::bScaleDampingByInverseMass flag in ControlRigPhysics.

Type:

(bool)

property strength: float

[Read-Only] The strength which we drive towards the target (when simulated). This is the oscillation frequency, so low values will be soft and springy, but values significantly above 1/timestep will track the target very accurately.

Type:

(float)

property target_mode: float

[Read-Only] 0 = SimSpace (child tracks absolute animation target), 1 = directional (child+parent track animation direction). Values between blend the two modes.

Type:

(float)

property target_velocity_influence: float

[Read-Only] If TargetVelocityInfluence = 1 then the target’s velocity will be used for damping. If 0 then the damping is in simulation space (so acting more like drag)

Type:

(float)