Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

SkeletonModification2DJiggle

实验性: This class may be changed or removed in future versions.

继承: SkeletonModification2D < Resource < RefCounted < Object

Bone2D 节点在朝某个目标移动的过程中产生摇晃的修改器。

描述

这种修改器会将一系列的骨骼朝某个目标移动,这些骨骼通常称作骨骼链。这种修改器的特点在于,它会为骨骼链中的每一个骨骼计算速度和加速度,并使用输入值运行一段非常轻量级的类物理计算。这样这些骨骼就能够越过目标并来回“摇晃”(Jiggle)。根据配置的不同,可以得到类似弹簧的摇晃,也可以得到类似布料的摇晃。

这种修改器可用于为头发、衣服边缘等添加额外的运动。可以通过不同的设置控制目标移动时关节的移动方式。

注意:Jiggle 修改器的 jiggle_joints 属性中保存的是数据对象,记录 Jiggle 链中各个关节的数据。这一点与 Bone2D 节点不同!Jiggle 关节保存了 Jiggle 修改器使用的骨骼链中各个 Bone2D 所需的数据。

属性

float

damping

0.75

Vector2

gravity

Vector2(0, 6)

int

jiggle_data_chain_length

0

float

mass

0.75

float

stiffness

3.0

NodePath

target_nodepath

NodePath("")

bool

use_gravity

false

方法

int

get_collision_mask() const

NodePath

get_jiggle_joint_bone2d_node(joint_idx: int) const

int

get_jiggle_joint_bone_index(joint_idx: int) const

float

get_jiggle_joint_damping(joint_idx: int) const

Vector2

get_jiggle_joint_gravity(joint_idx: int) const

float

get_jiggle_joint_mass(joint_idx: int) const

bool

get_jiggle_joint_override(joint_idx: int) const

float

get_jiggle_joint_stiffness(joint_idx: int) const

bool

get_jiggle_joint_use_gravity(joint_idx: int) const

bool

get_use_colliders() const

void

set_collision_mask(collision_mask: int)

void

set_jiggle_joint_bone2d_node(joint_idx: int, bone2d_node: NodePath)

void

set_jiggle_joint_bone_index(joint_idx: int, bone_idx: int)

void

set_jiggle_joint_damping(joint_idx: int, damping: float)

void

set_jiggle_joint_gravity(joint_idx: int, gravity: Vector2)

void

set_jiggle_joint_mass(joint_idx: int, mass: float)

void

set_jiggle_joint_override(joint_idx: int, override: bool)

void

set_jiggle_joint_stiffness(joint_idx: int, stiffness: float)

void

set_jiggle_joint_use_gravity(joint_idx: int, use_gravity: bool)

void

set_use_colliders(use_colliders: bool)


属性说明

float damping = 0.75 🔗

  • void set_damping(value: float)

  • float get_damping()

未被覆盖时,Jiggle 关节所受到的默认阻尼大小。值约高,所应用的计算得到的速度也就约多。


Vector2 gravity = Vector2(0, 6) 🔗

未被覆盖时,Jiggle 关节所受到的默认重力大小。


int jiggle_data_chain_length = 0 🔗

  • void set_jiggle_data_chain_length(value: int)

  • int get_jiggle_data_chain_length()

该 Jiggle 修改器中的 Jiggle 关节的数量。


float mass = 0.75 🔗

未被覆盖时,Jiggle 关节所分配的默认质量大小。值约高,移动速度也就约快,超出的距离也就越大。


float stiffness = 3.0 🔗

  • void set_stiffness(value: float)

  • float get_stiffness()

未被覆盖时,Jiggle 关节所分配的默认刚度大小。值约高越像弹簧,会很快到达正确的位置。


NodePath target_nodepath = NodePath("") 🔗

该 Jiggle 修改器目标节点的 NodePath 路径。这个节点是 Jiggle 链所要旋转至的目标。


bool use_gravity = false 🔗

  • void set_use_gravity(value: bool)

  • bool get_use_gravity()

假设 Jiggle 关节没有覆盖默认设置的前提下,是否应该对这些关节施加重力向量 gravity


方法说明

int get_collision_mask() const 🔗

返回在启用碰撞时 Jiggle 修改器所使用的碰撞掩码。


NodePath get_jiggle_joint_bone2d_node(joint_idx: int) const 🔗

返回 joint_idx 处 Jiggle 关节所分配的 Bone2D 节点。


int get_jiggle_joint_bone_index(joint_idx: int) const 🔗

返回 joint_idx 处 Jiggle 关节所分配 Bone2D 节点的索引。


float get_jiggle_joint_damping(joint_idx: int) const 🔗

返回 joint_idx 处 Jiggle 关节的阻尼大小。


Vector2 get_jiggle_joint_gravity(joint_idx: int) const 🔗

返回表示 joint_idx 处 Jiggle 关节所受到的重力的 Vector2


float get_jiggle_joint_mass(joint_idx: int) const 🔗

返回 joint_idx 处 Jiggle 关节的质量大小。


bool get_jiggle_joint_override(joint_idx: int) const 🔗

返回表示 joint_idx 处 Jiggle 关节是否覆盖修改器中定义的默认 Jiggle 关节数据的布尔值。


float get_jiggle_joint_stiffness(joint_idx: int) const 🔗

返回 joint_idx 处 Jiggle 关节的刚度。


bool get_jiggle_joint_use_gravity(joint_idx: int) const 🔗

返回表示 joint_idx 处 Jiggle 关节是否使用重力的布尔值。


bool get_use_colliders() const 🔗

返回 Jiggle 修改器在求解时是否考虑物理碰撞器。


void set_collision_mask(collision_mask: int) 🔗

在 Jiggle 修改器被设为考虑碰撞器时,设置该 Jiggle 修改器所需作出反应的碰撞器的碰撞掩码。


void set_jiggle_joint_bone2d_node(joint_idx: int, bone2d_node: NodePath) 🔗

设置 joint_idx 处 Jiggle 关节所分配的 Bone2D 节点。


void set_jiggle_joint_bone_index(joint_idx: int, bone_idx: int) 🔗

设置 joint_idx 处 Jiggle 关节的骨骼索引 bone_idx。如果适用,还会根据所链接骨架提供的数据来更新 Jiggle 关节的 bone2d_node


void set_jiggle_joint_damping(joint_idx: int, damping: float) 🔗

设置 joint_idx 处 Jiggle 关节的阻尼量。


void set_jiggle_joint_gravity(joint_idx: int, gravity: Vector2) 🔗

设置 joint_idx 处 Jiggle 关节的重力向量。


void set_jiggle_joint_mass(joint_idx: int, mass: float) 🔗

设置 joint_idx 处 Jiggle 关节的质量。


void set_jiggle_joint_override(joint_idx: int, override: bool) 🔗

设置 joint_idx 处 Jiggle 关节是否应覆盖默认 Jiggle 关节设置。设置为 true 会使该关节使用自身的设置,不使用附加至修改器的设置。


void set_jiggle_joint_stiffness(joint_idx: int, stiffness: float) 🔗

设置 joint_idx 处 Jiggle 关节的刚度。


void set_jiggle_joint_use_gravity(joint_idx: int, use_gravity: bool) 🔗

设置 joint_idx 处 Jiggle 关节是否应使用重力。


void set_use_colliders(use_colliders: bool) 🔗

如果为 true,则 Jiggle 修改器将考虑碰撞器,防止它们进入这些碰撞对象。