Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

SkeletonModification2DJiggle

继承: 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 ( int joint_idx ) const

int

get_jiggle_joint_bone_index ( int joint_idx ) const

float

get_jiggle_joint_damping ( int joint_idx ) const

Vector2

get_jiggle_joint_gravity ( int joint_idx ) const

float

get_jiggle_joint_mass ( int joint_idx ) const

bool

get_jiggle_joint_override ( int joint_idx ) const

float

get_jiggle_joint_stiffness ( int joint_idx ) const

bool

get_jiggle_joint_use_gravity ( int joint_idx ) const

bool

get_use_colliders ( ) const

void

set_collision_mask ( int collision_mask )

void

set_jiggle_joint_bone2d_node ( int joint_idx, NodePath bone2d_node )

void

set_jiggle_joint_bone_index ( int joint_idx, int bone_idx )

void

set_jiggle_joint_damping ( int joint_idx, float damping )

void

set_jiggle_joint_gravity ( int joint_idx, Vector2 gravity )

void

set_jiggle_joint_mass ( int joint_idx, float mass )

void

set_jiggle_joint_override ( int joint_idx, bool override )

void

set_jiggle_joint_stiffness ( int joint_idx, float stiffness )

void

set_jiggle_joint_use_gravity ( int joint_idx, bool use_gravity )

void

set_use_colliders ( bool use_colliders )


属性说明

float damping = 0.75

  • void set_damping ( float value )

  • float get_damping ( )

未被覆盖时,Jiggle 关节所受到的默认阻尼大小。值约高,所应用的计算得到的速度也就约多。


Vector2 gravity = Vector2(0, 6)

未被覆盖时,Jiggle 关节所受到的默认重力大小。


int jiggle_data_chain_length = 0

  • void set_jiggle_data_chain_length ( int value )

  • int get_jiggle_data_chain_length ( )

该 Jiggle 修改器中的 Jiggle 关节的数量。


float mass = 0.75

  • void set_mass ( float value )

  • float get_mass ( )

未被覆盖时,Jiggle 关节所分配的默认质量大小。值约高,移动速度也就约快,超出的距离也就越大。


float stiffness = 3.0

  • void set_stiffness ( float value )

  • float get_stiffness ( )

未被覆盖时,Jiggle 关节所分配的默认刚度大小。值约高越像弹簧,会很快到达正确的位置。


NodePath target_nodepath = NodePath("")

该 Jiggle 修改器目标节点的 NodePath 路径。这个节点是 Jiggle 链所要旋转至的目标。


bool use_gravity = false

  • void set_use_gravity ( bool value )

  • bool get_use_gravity ( )

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