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.