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.

ConvertTransformModifier3D

继承: BoneConstraint3D < SkeletonModifier3D < Node3D < Node < Object

对骨骼应用变换的 SkeletonModifier3D,变换转换自参考骨骼。

描述

从通过 BoneConstraint3D.set_reference_bone() 指定的骨骼上复制变换,将所复制的变换沿特定轴应用到通过 BoneConstraint3D.set_apply_bone() 设置的骨骼上,并可使用一些选项对这个变换进行调整。

根据 set_relative()(相对)和 set_additive()(叠加)的组合,有四种方式可以应用该变换:

相对 + 叠加

  • 提取相对于静止姿态的参考姿态,并将其添加到目标骨骼的姿态上。

相对 + 非叠加:

  • 提取相对于静止姿态的参考姿态,并将其添加到目标骨骼的静止姿态上。

非相对 + 叠加:

  • 提取参考姿态的绝对姿态,并将其添加到目标骨骼的姿态上。

非相对 + 非叠加

  • 提取参考姿态的绝对姿态,并将其替换目标骨骼的姿态。

注意:相对选项仅当 BoneConstraint3D.get_reference_type()BoneConstraint3D.REFERENCE_TYPE_BONE 时可用。另见 ReferenceType

注意:如果旋转角度大于 180 度且轴受到约束,则可能会发生翻转。

属性

int

setting_count

0

方法

Axis

get_apply_axis(index: int) const

float

get_apply_range_max(index: int) const

float

get_apply_range_min(index: int) const

TransformMode

get_apply_transform_mode(index: int) const

Axis

get_reference_axis(index: int) const

float

get_reference_range_max(index: int) const

float

get_reference_range_min(index: int) const

TransformMode

get_reference_transform_mode(index: int) const

bool

is_additive(index: int) const

bool

is_relative(index: int) const

void

set_additive(index: int, enabled: bool)

void

set_apply_axis(index: int, axis: Axis)

void

set_apply_range_max(index: int, range_max: float)

void

set_apply_range_min(index: int, range_min: float)

void

set_apply_transform_mode(index: int, transform_mode: TransformMode)

void

set_reference_axis(index: int, axis: Axis)

void

set_reference_range_max(index: int, range_max: float)

void

set_reference_range_min(index: int, range_min: float)

void

set_reference_transform_mode(index: int, transform_mode: TransformMode)

void

set_relative(index: int, enabled: bool)


枚举

enum TransformMode: 🔗

TransformMode TRANSFORM_MODE_POSITION = 0

转换时使用位置。传递差值。

TransformMode TRANSFORM_MODE_ROTATION = 1

转换时使用旋转。角度是指定轴的翻滚值。

TransformMode TRANSFORM_MODE_SCALE = 2

转换时使用缩放。传递比例而不是差值。


属性说明

int setting_count = 0 🔗

  • void set_setting_count(value: int)

  • int get_setting_count()

修改器中设置的数量。


方法说明

Axis get_apply_axis(index: int) const 🔗

返回重映射目标变换的轴。


float get_apply_range_max(index: int) const 🔗

返回重映射目标范围的最大值。


float get_apply_range_min(index: int) const 🔗

返回重映射目标范围的最小值。


TransformMode get_apply_transform_mode(index: int) const 🔗

返回重映射目标变换的操作。


Axis get_reference_axis(index: int) const 🔗

返回重映射来源变换的轴。


float get_reference_range_max(index: int) const 🔗

返回重映射来源范围的最大值。


float get_reference_range_min(index: int) const 🔗

返回重映射来源范围的最小值。


TransformMode get_reference_transform_mode(index: int) const 🔗

返回重映射来源变换的操作。


bool is_additive(index: int) const 🔗

如果索引为 index 的设置启用了加法选项,则返回 true


bool is_relative(index: int) const 🔗

如果索引为 index 的设置启用了相对选项,则返回 true


void set_additive(index: int, enabled: bool) 🔗

将索引为 index 的设置的叠加选项设置为 enabled。主要影响对 BoneConstraint3D.set_apply_bone() 施加变换的过程。

如果将 enabled 设置为 true,则会将处理后的变换叠加到当前应用骨骼的姿势之上。

如果将 enabled 设置为 false,则会将当前应用骨骼的姿势替换为处理后的变换。不过如果将 set_relative() 设为 true,则该变换是相对于放松姿势的。


void set_apply_axis(index: int, axis: Axis) 🔗

设置重映射目标变换的轴。


void set_apply_range_max(index: int, range_max: float) 🔗

设置重映射目标范围的最大值。


void set_apply_range_min(index: int, range_min: float) 🔗

设置重映射目标范围的最小值。


void set_apply_transform_mode(index: int, transform_mode: TransformMode) 🔗

设置重映射目标变换的操作。


void set_reference_axis(index: int, axis: Axis) 🔗

设置重映射来源变换的轴。


void set_reference_range_max(index: int, range_max: float) 🔗

设置重映射来源范围的最大值。


void set_reference_range_min(index: int, range_min: float) 🔗

设置重映射来源范围的最小值。


void set_reference_transform_mode(index: int, transform_mode: TransformMode) 🔗

设置重映射来源变换的操作。


void set_relative(index: int, enabled: bool) 🔗

将索引为 index 的设置的相对选项设置为 enabled

如果将 enabled 设置为 true,则提取并应用的变换是相对于放松姿势的。

如果将 enabled 设置为 false,则提取到的变换是绝对的。