SoftBody

Inherits: MeshInstance < GeometryInstance < VisualInstance < CullInstance < Spatial < Node < Object

柔性网格物理体。

描述

可变形的物理体。用于创建弹性或可变形的物体,如布、橡胶或其他柔性材质。

教程

属性

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(“”)

bool

physics_enabled

true

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

方法

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

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_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(“”) )

属性说明

  • 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()


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()

指向 CollisionObjectNodePath,这个 SoftBody 应该避免穿过它。


  • bool physics_enabled

Default

true

Setter

set_physics_enabled(value)

Getter

is_physics_enabled()

trueSoftBody 会进行物理模拟。可以通过设置为 false 来暂停物理模拟。


  • 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()


Default

true

Setter

set_ray_pickable(value)

Getter

is_ray_pickable()

true 时该 SoftBody 会响应 RayCast


  • int simulation_precision

Default

5

Setter

set_simulation_precision(value)

Getter

get_simulation_precision()

增加这个值会改善模拟结果,但会影响性能。请小心使用。


Default

1.0

Setter

set_total_mass(value)

Getter

get_total_mass()

该 SoftBody 的质量。


Default

0.5

Setter

set_volume_stiffness(value)

Getter

get_volume_stiffness()

方法说明

  • 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

返回碰撞遮罩上的单个的个体。


返回表面数组中顶点的局部平移。


  • bool is_point_pinned ( int point_index ) const

如果顶点设置为固定,则返回 true


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

设置碰撞掩码上的各个位。如果只需要更改一层的值,请使用此选项。


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

设置表面顶点的固定状态。当设置为 true 时,可选的attachment_path可以定义一个空间Spatial,被固定的顶点将连接到这个空间。