SoftBody¶
Inherits: MeshInstance < GeometryInstance < VisualInstance < Spatial < Node < Object
A soft mesh physics body.
Description¶
A deformable physics body. Used to create elastic or deformable objects such as cloth, rubber, or other flexible materials.
Properties¶
float | areaAngular_stiffness | 0.5 |
int | collision_layer | 1 |
int | collision_mask | 1 |
float | damping_coefficient | 0.01 |
float | drag_coefficient | 0.0 |
float | linear_stiffness | 0.5 |
NodePath | parent_collision_ignore | NodePath("") |
float | pose_matching_coefficient | 0.0 |
float | pressure_coefficient | 0.0 |
bool | ray_pickable | true |
int | simulation_precision | 5 |
float | total_mass | 1.0 |
float | volume_stiffness | 0.5 |
Methods¶
void | add_collision_exception_with ( Node body ) |
Array | get_collision_exceptions ( ) |
bool | get_collision_layer_bit ( int bit ) const |
bool | get_collision_mask_bit ( int bit ) const |
void | remove_collision_exception_with ( Node body ) |
void | set_collision_layer_bit ( int bit, bool value ) |
void | set_collision_mask_bit ( int bit, bool value ) |
Property Descriptions¶
- float areaAngular_stiffness
Default | 0.5 |
Setter | set_areaAngular_stiffness(value) |
Getter | get_areaAngular_stiffness() |
- int collision_layer
Default | 1 |
Setter | set_collision_layer(value) |
Getter | get_collision_layer() |
The physics layers this SoftBody is in.
Collidable objects can exist in any of 32 different layers. These layers work like a tagging system, and are not visual. A collidable can use these layers to select with which objects it can collide, using the collision_mask property.
A contact is detected if object A is in any of the layers that object B scans, or object B is in any layer scanned by object A.
- int collision_mask
Default | 1 |
Setter | set_collision_mask(value) |
Getter | get_collision_mask() |
The physics layers this SoftBody scans for collisions.
- float damping_coefficient
Default | 0.01 |
Setter | set_damping_coefficient(value) |
Getter | get_damping_coefficient() |
- float drag_coefficient
Default | 0.0 |
Setter | set_drag_coefficient(value) |
Getter | get_drag_coefficient() |
- float linear_stiffness
Default | 0.5 |
Setter | set_linear_stiffness(value) |
Getter | get_linear_stiffness() |
- NodePath parent_collision_ignore
Default | NodePath("") |
Setter | set_parent_collision_ignore(value) |
Getter | get_parent_collision_ignore() |
NodePath to a CollisionObject this SoftBody should avoid clipping.
- float pose_matching_coefficient
Default | 0.0 |
Setter | set_pose_matching_coefficient(value) |
Getter | get_pose_matching_coefficient() |
- float pressure_coefficient
Default | 0.0 |
Setter | set_pressure_coefficient(value) |
Getter | get_pressure_coefficient() |
- bool ray_pickable
Default | true |
Setter | set_ray_pickable(value) |
Getter | is_ray_pickable() |
If true
, the SoftBody
will respond to RayCasts.
- int simulation_precision
Default | 5 |
Setter | set_simulation_precision(value) |
Getter | get_simulation_precision() |
Increasing this value will improve the resulting simulation, but can affect performance. Use with care.
- float total_mass
Default | 1.0 |
Setter | set_total_mass(value) |
Getter | get_total_mass() |
The SoftBody’s mass.
- float volume_stiffness
Default | 0.5 |
Setter | set_volume_stiffness(value) |
Getter | get_volume_stiffness() |
Method Descriptions¶
- void add_collision_exception_with ( Node body )
Adds a body to the list of bodies that this body can’t collide with.
- Array get_collision_exceptions ( )
Returns an array of nodes that were added as collision exceptions for this body.
Returns an individual bit on the collision mask.
Returns an individual bit on the collision mask.
- void remove_collision_exception_with ( Node body )
Removes a body from the list of bodies that this body can’t collide with.
Sets individual bits on the layer mask. Use this if you only need to change one layer’s value.
Sets individual bits on the collision mask. Use this if you only need to change one layer’s value.