SkeletonModification2DJiggle
继承: SkeletonModification2D < Resource < RefCounted < Object
让 Bone2D 节点在朝某个目标移动的过程中产生摇晃的修改器。
描述
这种修改器会将一系列的骨骼朝某个目标移动,这些骨骼通常称作骨骼链。这种修改器的特点在于,它会为骨骼链中的每一个骨骼计算速度和加速度,并使用输入值运行一段非常轻量级的类物理计算。这样这些骨骼就能够越过目标并来回“摇晃”(Jiggle)。根据配置的不同,可以得到类似弹簧的摇晃,也可以得到类似布料的摇晃。
这种修改器可用于为头发、衣服边缘等添加额外的运动。可以通过不同的设置控制目标移动时关节的移动方式。
注意:Jiggle 修改器的 jiggle_joints
属性中保存的是数据对象,记录 Jiggle 链中各个关节的数据。这一点与 Bone2D 节点不同!Jiggle 关节保存了 Jiggle 修改器使用的骨骼链中各个 Bone2D 所需的数据。
属性
| ||
| ||
| ||
| ||
| ||
| ||
|
方法
属性说明
float damping = 0.75
未被覆盖时,Jiggle 关节所受到的默认阻尼大小。值约高,所应用的计算得到的速度也就约多。
Vector2 gravity = Vector2(0, 6)
未被覆盖时,Jiggle 关节所受到的默认重力大小。
int jiggle_data_chain_length = 0
该 Jiggle 修改器中的 Jiggle 关节的数量。
float mass = 0.75
未被覆盖时,Jiggle 关节所分配的默认质量大小。值约高,移动速度也就约快,超出的距离也就越大。
float stiffness = 3.0
未被覆盖时,Jiggle 关节所分配的默认刚度大小。值约高越像弹簧,会很快到达正确的位置。
NodePath target_nodepath = NodePath("")
该 Jiggle 修改器目标节点的 NodePath 路径。这个节点是 Jiggle 链所要旋转至的目标。
bool use_gravity = false
假设 Jiggle 关节没有覆盖默认设置的前提下,是否应该对这些关节施加重力向量 gravity。
方法说明
int get_collision_mask ( ) const
返回在启用碰撞时 Jiggle 修改器所使用的碰撞掩码。
NodePath get_jiggle_joint_bone2d_node ( int joint_idx ) const
返回 joint_idx
处 Jiggle 关节所分配的 Bone2D 节点。
int get_jiggle_joint_bone_index ( int joint_idx ) const
返回 joint_idx
处 Jiggle 关节所分配 Bone2D 节点的索引。
float get_jiggle_joint_damping ( int joint_idx ) const
返回 joint_idx
处 Jiggle 关节的阻尼大小。
Vector2 get_jiggle_joint_gravity ( int joint_idx ) const
返回表示 joint_idx
处 Jiggle 关节所受到的重力的 Vector2。
float get_jiggle_joint_mass ( int joint_idx ) const
返回 joint_idx
处 Jiggle 关节的质量大小。
bool get_jiggle_joint_override ( int joint_idx ) const
返回表示 joint_idx
处 Jiggle 关节是否覆盖修改器中定义的默认 Jiggle 关节数据的布尔值。
float get_jiggle_joint_stiffness ( int joint_idx ) const
返回 joint_idx
处 Jiggle 关节的刚度。
bool get_jiggle_joint_use_gravity ( int joint_idx ) const
返回表示 joint_idx
处 Jiggle 关节是否使用重力的布尔值。
bool get_use_colliders ( ) const
返回 Jiggle 修改器在求解时是否考虑物理碰撞器。
void set_collision_mask ( int collision_mask )
在 Jiggle 修改器被设为考虑碰撞器时,设置该 Jiggle 修改器所需作出反应的碰撞器的碰撞掩码。
void set_jiggle_joint_bone2d_node ( int joint_idx, NodePath bone2d_node )
设置 joint_idx
处 Jiggle 关节所分配的 Bone2D 节点。
void set_jiggle_joint_bone_index ( int joint_idx, int bone_idx )
设置 joint_idx
处 Jiggle 关节的骨骼索引 bone_idx
。如果适用,还会根据所链接骨架提供的数据来更新 Jiggle 关节的 bone2d_node
。
void set_jiggle_joint_damping ( int joint_idx, float damping )
设置 joint_idx
处 Jiggle 关节的阻尼量。
void set_jiggle_joint_gravity ( int joint_idx, Vector2 gravity )
设置 joint_idx
处 Jiggle 关节的重力向量。
void set_jiggle_joint_mass ( int joint_idx, float mass )
设置 joint_idx
处 Jiggle 关节的质量。
void set_jiggle_joint_override ( int joint_idx, bool override )
设置 joint_idx
处 Jiggle 关节是否应覆盖默认 Jiggle 关节设置。设置为 true
会使该关节使用自身的设置,不使用附加至修改器的设置。
void set_jiggle_joint_stiffness ( int joint_idx, float stiffness )
设置 joint_idx
处 Jiggle 关节的刚度。
void set_jiggle_joint_use_gravity ( int joint_idx, bool use_gravity )
设置 joint_idx
处 Jiggle 关节是否应使用重力。
void set_use_colliders ( bool use_colliders )
如果为 true
,则 Jiggle 修改器将考虑碰撞器,防止它们进入这些碰撞对象。
© 版权所有 2014-present Juan Linietsky, Ariel Manzur and the Godot community (CC BY 3.0). Revision b1c660f7
.
Built with Sphinx using a theme provided by Read the Docs.