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 reset() 🔗
Resets the internal jiggle simulation state to the current bone positions, clearing velocity, acceleration, and accumulated forces.
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 修改器將考慮碰撞器,防止它們進入這些碰撞對象。