SoftBody3D

Inherits: MeshInstance3D < GeometryInstance3D < VisualInstance3D < Node3D < Node < Object

A deformable 3D physics mesh.

Description

A deformable 3D physics mesh. Used to create elastic or deformable objects such as cloth, rubber, or other flexible materials.

Note: There are many known bugs in SoftBody3D. Therefore, it's not recommended to use them for things that can affect gameplay (such as trampolines).

Tutorials

Properties

int

collision_layer

1

int

collision_mask

1

float

damping_coefficient

0.01

DisableMode

disable_mode

0

float

drag_coefficient

0.0

float

linear_stiffness

0.5

NodePath

parent_collision_ignore

NodePath("")

float

pressure_coefficient

0.0

bool

ray_pickable

true

int

simulation_precision

5

float

total_mass

1.0

Methods

void

add_collision_exception_with ( Node body )

PhysicsBody3D[]

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:

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

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

DisableMode 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 = 1

  • void set_collision_layer ( int value )

  • int get_collision_layer ( )

The physics layers this SoftBody3D 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 = 1

  • void set_collision_mask ( int value )

  • int get_collision_mask ( )

The physics layers this SoftBody3D 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 s