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.
Checking the stable version of the documentation...
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 所需的数据。
属性¶
|
||
|
||
|
||
|
||
|
||
|
||
|
方法¶
属性说明¶
未被覆盖时,Jiggle 关节所受到的默认阻尼大小。值约高,所应用的计算得到的速度也就约多。
Vector2 gravity = Vector2(0, 6)
🔗
未被覆盖时,Jiggle 关节所受到的默认重力大小。
int jiggle_data_chain_length = 0
🔗
该 Jiggle 修改器中的 Jiggle 关节的数量。
未被覆盖时,Jiggle 关节所分配的默认质量大小。值约高,移动速度也就约快,超出的距离也就越大。
未被覆盖时,Jiggle 关节所分配的默认刚度大小。值约高越像弹簧,会很快到达正确的位置。
NodePath target_nodepath = NodePath("")
🔗
该 Jiggle 修改器目标节点的 NodePath 路径。这个节点是 Jiggle 链所要旋转至的目标。
假设 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 修改器将考虑碰撞器,防止它们进入这些碰撞对象。