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 修改器将考虑碰撞器,防止它们进入这些碰撞对象。