SkeletonModificationStack2D

实验性: This class may be changed or removed in future versions.

继承: Resource < RefCounted < Object

存放 SkeletonModification2D 栈的资源。

描述

该资源由 Skeleton 使用,并持有一个 SkeletonModification2D 堆栈。

这控制了修改的顺序以及它们的应用方式。修改顺序对于全身 IK 设置尤为重要,因为需要以正确的顺序执行修改以获得所需的结果。例如,想在人形骨骼的手臂之前对脊柱执行一个修改。

该资源还控制所有修改被应用于 Skeleton2D 的强度。

属性

bool

enabled

false

int

modification_count

0

float

strength

1.0

方法

void

add_modification(modification: SkeletonModification2D)

void

delete_modification(mod_idx: int)

void

enable_all_modifications(enabled: bool)

void

execute(delta: float, execution_mode: int)

bool

get_is_setup() const

SkeletonModification2D

get_modification(mod_idx: int) const

Skeleton2D

get_skeleton() const

void

set_modification(mod_idx: int, modification: SkeletonModification2D)

void

setup()


属性说明

bool enabled = false 🔗

  • void set_enabled(value: bool)

  • bool get_enabled()

如果为 true,则会调用该堆栈中的修改器。这是通过 Skeleton2D 节点自动处理的。


int modification_count = 0 🔗

  • void set_modification_count(value: int)

  • int get_modification_count()

栈中修改器的数量。


float strength = 1.0 🔗

  • void set_strength(value: float)

  • float get_strength()

堆栈中修改的插值强度。0 的值将使修改不被应用,0.5 的强度将应用一半,1 的强度将允许修改被完全应用并覆盖 Skeleton2D Bone2D 姿势。


方法说明

void add_modification(modification: SkeletonModification2D) 🔗

将传入的 SkeletonModification2D 入栈。


void delete_modification(mod_idx: int) 🔗

如果存在,则删除位于索引位置 mod_idxSkeletonModification2D


void enable_all_modifications(enabled: bool) 🔗

启用栈中的所有 SkeletonModification2D


void execute(delta: float, execution_mode: int) 🔗

使用传入的执行模式 execution_mode 执行栈中的所有 SkeletonModification2D,从索引 0 执行到 modification_count

注意:根据修改器的不同,结果可能会因修改器顺序的不同而不同。例如,对脊柱的修改应该在对手臂的修改之前执行,这样才能得到正确的结果。


bool get_is_setup() const 🔗

返回一个布尔值,指示该修改堆栈是否已被设置并可以执行。


SkeletonModification2D get_modification(mod_idx: int) const 🔗

返回传入索引 mod_idx 处的 SkeletonModification2D


Skeleton2D get_skeleton() const 🔗

返回 SkeletonModification2D 绑定到的 Skeleton2D 节点。


void set_modification(mod_idx: int, modification: SkeletonModification2D) 🔗

将位于 mod_idx 的修改器设置为传入的 modification


void setup() 🔗

设置该修改堆栈以便它可以执行。该函数应由 Skeleton2D 调用,除非知道自己在做什么,否则不应被手动调用。