Up to date

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

SkeletonModificationStack2D

继承: Resource < RefCounted < Object

存放 SkeletonModification2D 栈的资源。

描述

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

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

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

属性

bool

enabled

false

int

modification_count

0

float

strength

1.0

方法

void

add_modification ( SkeletonModification2D modification )

void

delete_modification ( int mod_idx )

void

enable_all_modifications ( bool enabled )

void

execute ( float delta, int execution_mode )

bool

get_is_setup ( ) const

SkeletonModification2D

get_modification ( int mod_idx ) const

Skeleton2D

get_skeleton ( ) const

void

set_modification ( int mod_idx, SkeletonModification2D modification )

void

setup ( )


属性说明

bool enabled = false

  • void set_enabled ( bool value )

  • bool get_enabled ( )

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


int modification_count = 0

  • void set_modification_count ( int value )

  • int get_modification_count ( )

栈中修改器的数量。


float strength = 1.0

  • void set_strength ( float value )

  • float get_strength ( )

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


方法说明

void add_modification ( SkeletonModification2D modification )

将传入的 SkeletonModification2D 入栈。


void delete_modification ( int mod_idx )

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


void enable_all_modifications ( bool enabled )

启用栈中的所有 SkeletonModification2D


void execute ( float delta, int execution_mode )

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

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


bool get_is_setup ( ) const

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


SkeletonModification2D get_modification ( int mod_idx ) const

返回传入索引 mod_idx 处的 SkeletonModification2D


Skeleton2D get_skeleton ( ) const

返回 SkeletonModification2D 绑定到的 Skeleton2D 节点。


void set_modification ( int mod_idx, SkeletonModification2D modification )

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


void setup ( )

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