SoftBody¶
Inherits:MeshInstance<GeometryInstance<VisualInstance<CullInstance<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.
Note: There are many known bugs inSoftBody. Therefore, it's not recommended to use them for things that can affect gameplay (such as a player character made entirely out of soft bodies).
Tutorials¶
Properties¶
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
|
Methods¶
void | |
get_point_transform(int point_index) | |
is_point_pinned(int point_index)const | |
void | |
void | set_collision_layer_bit(int bit,bool value) |
void | set_collision_mask_bit(int bit,bool value) |
void | set_point_pinned(int point_index,bool pinned,NodePath attachment_path=NodePath("")) |
Property Descriptions¶
floatareaAngular_stiffness
Default |
|
Setter | set_areaAngular_stiffness(value) |
Getter | get_areaAngular_stiffness() |
intcollision_layer
Default |
|
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. SeeCollision layers and masks in the documentation for more information.
intcollision_mask
Default |
|
Setter | set_collision_mask(value) |
Getter | get_collision_mask() |
The physics layers this SoftBody scans for collisions. SeeCollision layers and masks in the documentation for more information.
floatdamping_coefficient
Default |
|
Setter | set_damping_coefficient(value) |
Getter | get_damping_coefficient() |
floatdrag_coefficient
Default |
|
Setter | set_drag_coefficient(value) |
Getter | get_drag_coefficient() |
floatlinear_stiffness
Default |
|
Setter | set_linear_stiffness(value) |
Getter | get_linear_stiffness() |
NodePathparent_collision_ignore
Default |
|
Setter | set_parent_collision_ignore(value) |
Getter | get_parent_collision_ignore() |
NodePath to aCollisionObject this SoftBody should avoid clipping.
boolphysics_enabled
Default |
|
Setter | set_physics_enabled(value) |
Getter | is_physics_enabled() |
Iftrue, theSoftBody is simulated in physics. Can be set tofalse to pause the physics simulation.
floatpose_matching_coefficient
Default |
|
Setter | set_pose_matching_coefficient(value) |
Getter | get_pose_matching_coefficient() |
floatpressure_coefficient
Default |
|
Setter | set_pressure_coefficient(value) |
Getter | get_pressure_coefficient() |
boolray_pickable
Default |
|
Setter | set_ray_pickable(value) |
Getter | is_ray_pickable() |
Iftrue, theSoftBody will respond toRayCasts.
intsimulation_precision
Default |
|
Setter | set_simulation_precision(value) |
Getter | get_simulation_precision() |
Increasing this value will improve the resulting simulation, but can affect performance. Use with care.
floattotal_mass
Default |
|
Setter | set_total_mass(value) |
Getter | get_total_mass() |
The SoftBody's mass.
floatvolume_stiffness
Default |
|
Setter | set_volume_stiffness(value) |
Getter | get_volume_stiffness() |
Method Descriptions¶
voidadd_collision_exception_with(Node body)
Adds a body to the list of bodies that this body can't collide with.
Arrayget_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.
Returns local translation of a vertex in the surface array.
Returnstrue if vertex is set to pinned.
voidremove_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.
Sets the pinned state of a surface vertex. When set totrue, the optionalattachment_path can define aSpatial the pinned vertex will be attached to.