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 修改器將考慮碰撞器,防止它們進入這些碰撞對象。