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.

Tutorials

Methods

void

add_collision_exception_with ( Node body )

Array

get_collision_exceptions ( )

bool

get_collision_layer_value ( int layer_number ) const

bool

get_collision_mask_value ( int layer_number ) const

RID

get_physics_rid ( ) const

Vector3

get_point_transform ( int point_index )

bool

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:

Automatically re-added to the physics simulation when the Node is processed again.

Property Descriptions

  • int collision_layer

Default

1

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

1

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

0.01

Setter

set_damping_coefficient(value)

Getter

get_damping_coefficient()


Default

0

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.


Default

0.0

Setter

set_drag_coefficient(value)

Getter

get_drag_coefficient()


Default

0.5

Setter

set_linear_stiffness(value)

Getter

get_linear_stiffness()


Default

NodePath("")

Setter

set_parent_collision_ignore(value)

Getter

get_parent_collision_ignore()

NodePath to a CollisionObject3D this SoftDynamicBody3D should avoid clipping.


  • float pressure_coefficient

Default

0.0

Setter

set_pressure_coefficient(value)

Getter

get_pressure_coefficient()


Default

true

Setter

set_ray_pickable(value)

Getter

is_ray_pickable()

If true, the SoftDynamicBody3D will respond to RayCast3Ds.


  • 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.


Default

1.0

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.


  • bool get_collision_layer_value ( int layer_number ) const

Returns whether or not the specified layer of the collision_layer is enabled, given a layer_number between 1 and 32.


  • bool get_collision_mask_value ( int layer_number ) const

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.


  • bool is_point_pinned ( int point_index ) const

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.


  • void set_collision_layer_value ( int layer_number, bool value )

Based on value, enables or disables the specified layer in the collision_layer, given a layer_number between 1 and 32.


  • void set_collision_mask_value ( int layer_number, bool value )

Based on value, enables or disables the specified layer in the collision_mask, given a layer_number between 1 and 32.


  • void set_point_pinned ( int point_index, bool pinned, NodePath attachment_path=NodePath("") )

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.