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–2021 Juan Linietsky, Ariel Manzur, Godot Engine contributors
Licensed under the MIT License.
https://docs.godotengine.org/en/3.3/classes/class_softbody.html