SoftDynamicBody3D¶
Inherits: MeshInstance3D < GeometryInstance3D < VisualInstance3D < Node3D < 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 in SoftDynamicBody3D
. 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 |
add_collision_exception_with ( Node body ) |
get_collision_layer_value ( int layer_number ) const |
|
get_collision_mask_value ( int layer_number ) const |
|
get_physics_rid ( ) const |
|
get_point_transform ( int point_index ) |
|
is_point_pinned ( int point_index ) const |
|
void |
remove_collision_exception_with ( Node body ) |
void |
set_collision_layer_value ( int layer_number, bool value ) |
void |
set_collision_mask_value ( int layer_number, bool value ) |
void |
set_point_pinned ( int point_index, bool pinned, NodePath attachment_path=NodePath("") ) |
Enumerations¶
enum DisableMode:
DISABLE_MODE_REMOVE = 0 --- When Node.process_mode is set to Node.PROCESS_MODE_DISABLED, remove from the physics simulation to stop all physics interactions with this
SoftDynamicBody3D
.
Automatically re-added to the physics simulation when the Node is processed again.
DISABLE_MODE_KEEP_ACTIVE = 1 --- When Node.process_mode is set to Node.PROCESS_MODE_DISABLED, do not affect the physics simulation.
Property Descriptions¶
int collision_layer
Default |
|
Setter |
set_collision_layer(value) |
Getter |
get_collision_layer() |
The physics layers this SoftDynamicBody3D is in. Collision objects can exist in one or more of 32 different layers. See also collision_mask.
Note: Object A can detect a contact with object B only if object B is in any of the layers that object A scans. See Collision layers and masks in the documentation for more information.
int collision_mask
Default |
|
Setter |
set_collision_mask(value) |
Getter |
get_collision_mask() |
The physics layers this SoftDynamicBody3D scans. Collision objects can scan one or more of 32 different layers. See also collision_layer.
Note: Object A can detect a contact with object B only if object B is in any of the layers that object A scans. See Collision layers and masks in the documentation for more information.
float damping_coefficient
Default |
|
Setter |
set_damping_coefficient(value) |
Getter |
get_damping_coefficient() |
DisableMode disable_mode
Default |
|
Setter |
set_disable_mode(value) |
Getter |
get_disable_mode() |
Defines the behavior in physics when Node.process_mode is set to Node.PROCESS_MODE_DISABLED. See DisableMode for more details about the different modes.
float drag_coefficient
Default |
|
Setter |
set_drag_coefficient(value) |
Getter |
get_drag_coefficient() |
float linear_stiffness
Default |
|
Setter |
set_linear_stiffness(value) |
Getter |
get_linear_stiffness() |
NodePath parent_collision_ignore
Default |
|
Setter |
set_parent_collision_ignore(value) |
Getter |
get_parent_collision_ignore() |
NodePath to a CollisionObject3D this SoftDynamicBody3D should avoid clipping.
float pressure_coefficient
Default |
|
Setter |
set_pressure_coefficient(value) |
Getter |
get_pressure_coefficient() |
bool ray_pickable
Default |
|
Setter |
set_ray_pickable(value) |
Getter |
is_ray_pickable() |
If true
, the SoftDynamicBody3D
will respond to RayCast3Ds.
int simulation_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.
float total_mass
Default |
|
Setter |
set_total_mass(value) |
Getter |
get_total_mass() |
The SoftDynamicBody3D's mass.
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 whether or not the specified layer of the collision_layer is enabled, given a layer_number
between 1 and 32.
Returns whether or not the specified layer of the collision_mask is enabled, given a layer_number
between 1 and 32.
RID get_physics_rid ( ) const
Returns local translation of a vertex in the surface array.
Returns true
if vertex is set to pinned.
void remove_collision_exception_with ( Node body )
Removes a body from the list of bodies that this body can't collide with.
Based on value
, enables or disables the specified layer in the collision_layer, given a layer_number
between 1 and 32.
Based on value
, enables or disables the specified layer in the collision_mask, given a layer_number
between 1 and 32.
Sets the pinned state of a surface vertex. When set to true
, the optional attachment_path
can define a Node3D the pinned vertex will be attached to.