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.
Checking the stable version of the documentation...
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 度且轴受到约束,则可能会发生翻转。
属性
|
方法
get_apply_axis(index: int) const |
|
get_apply_range_max(index: int) const |
|
get_apply_range_min(index: int) const |
|
get_apply_transform_mode(index: int) const |
|
get_reference_axis(index: int) const |
|
get_reference_range_max(index: int) const |
|
get_reference_range_min(index: int) const |
|
get_reference_transform_mode(index: int) const |
|
is_additive(index: int) const |
|
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
转换时使用缩放。传递比例而不是差值。
属性说明
修改器中设置的数量。
方法说明
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,则提取到的变换是绝对的。