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.
Tutorials
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. See Collision layers and masks in the documentation for more information.
int collision_mask
| Default | 1 | 
| Setter | set_collision_mask(value) | 
| Getter | get_collision_mask() | 
The physics layers this SoftBody scans for collisions. See Collision layers and masks in the documentation for more information.
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.
bool get_collision_layer_bit ( int bit ) const
Returns an individual bit on the collision mask.
bool get_collision_mask_bit ( int bit ) const
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.
void set_collision_layer_bit ( int bit, bool value )
Sets individual bits on the layer mask. Use this if you only need to change one layer's value.
void set_collision_mask_bit ( int bit, bool value )
Sets individual bits on the collision mask. Use this if you only need to change one layer's value.
    © 2014–2020 Juan Linietsky, Ariel Manzur, Godot Engine contributors
Licensed under the MIT License.
    https://docs.godotengine.org/en/3.2/classes/class_softbody.html