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.

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 所需的資料。

屬性

float

damping

0.75

Vector2

gravity

Vector2(0, 6)

int

jiggle_data_chain_length

0

float

mass

0.75

float

stiffness

3.0

NodePath

target_nodepath

NodePath("")

bool

use_gravity

false

方法

int

get_collision_mask() const

NodePath

get_jiggle_joint_bone2d_node(joint_idx: int) const

int

get_jiggle_joint_bone_index(joint_idx: int) const

float

get_jiggle_joint_damping(joint_idx: int) const

Vector2

get_jiggle_joint_gravity(joint_idx: int) const

float

get_jiggle_joint_mass(joint_idx: int) const

bool

get_jiggle_joint_override(joint_idx: int) const

float

get_jiggle_joint_stiffness(joint_idx: int) const

bool

get_jiggle_joint_use_gravity(joint_idx: int) const

bool

get_use_colliders() const

void

reset()

void

set_collision_mask(collision_mask: int)

void

set_jiggle_joint_bone2d_node(joint_idx: int, bone2d_node: NodePath)

void

set_jiggle_joint_bone_index(joint_idx: int, bone_idx: int)

void

set_jiggle_joint_damping(joint_idx: int, damping: float)

void

set_jiggle_joint_gravity(joint_idx: int, gravity: Vector2)

void

set_jiggle_joint_mass(joint_idx: int, mass: float)

void

set_jiggle_joint_override(joint_idx: int, override: bool)

void

set_jiggle_joint_stiffness(joint_idx: int, stiffness: float)

void

set_jiggle_joint_use_gravity(joint_idx: int, use_gravity: bool)

void

set_use_colliders(use_colliders: bool)


屬性說明

float damping = 0.75 🔗

  • void set_damping(value: float)

  • float get_damping()

未被覆蓋時,Jiggle 關節所受到的預設阻尼大小。值約高,所套用的計算得到的速度也就約多。


Vector2 gravity = Vector2(0, 6) 🔗

未被覆蓋時,Jiggle 關節所受到的預設重力大小。


int jiggle_data_chain_length = 0 🔗

  • void set_jiggle_data_chain_length(value: int)

  • int get_jiggle_data_chain_length()

該 Jiggle 修改器中的 Jiggle 關節的數量。


float mass = 0.75 🔗

未被覆蓋時,Jiggle 關節所分配的預設品質大小。值約高,移動速度也就約快,超出的距離也就越大。


float stiffness = 3.0 🔗

  • void set_stiffness(value: float)

  • float get_stiffness()

未被覆蓋時,Jiggle 關節所分配的預設剛度大小。值約高越像彈簧,會很快到達正確的位置。


NodePath target_nodepath = NodePath("") 🔗

該 Jiggle 修改器目標節點的 NodePath 路徑。這個節點是 Jiggle 鏈所要旋轉至的目標。


bool use_gravity = false 🔗

  • void set_use_gravity(value: bool)

  • bool get_use_gravity()

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