CopyTransformModifier3D

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

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

描述

Apply the copied transform of the bone set by BoneConstraint3D.set_reference_bone() to the bone set by BoneConstraint3D.set_apply_bone() with processing it with some masks and options.

There are 4 ways to apply the transform, depending on the combination of set_relative() and set_additive().

Relative + Additive:

  • Extract reference pose relative to the rest and add it to the apply bone's pose.

Relative + Not Additive:

  • Extract reference pose relative to the rest and add it to the apply bone's rest.

Not Relative + Additive:

  • Extract reference pose absolutely and add it to the apply bone's pose.

Not Relative + Not Additive:

  • Extract reference pose absolutely and the apply bone's pose is replaced with it.

Note: Relative option is available only in the case BoneConstraint3D.get_reference_type() is BoneConstraint3D.REFERENCE_TYPE_BONE. See also ReferenceType.

属性

int

setting_count

0

方法

BitField[AxisFlag]

get_axis_flags(index: int) const

BitField[TransformFlag]

get_copy_flags(index: int) const

BitField[AxisFlag]

get_invert_flags(index: int) const

bool

is_additive(index: int) const

bool

is_axis_x_enabled(index: int) const

bool

is_axis_x_inverted(index: int) const

bool

is_axis_y_enabled(index: int) const

bool

is_axis_y_inverted(index: int) const

bool

is_axis_z_enabled(index: int) const

bool

is_axis_z_inverted(index: int) const

bool

is_position_copying(index: int) const

bool

is_relative(index: int) const

bool

is_rotation_copying(index: int) const

bool

is_scale_copying(index: int) const

void

set_additive(index: int, enabled: bool)

void

set_axis_flags(index: int, axis_flags: BitField[AxisFlag])

void

set_axis_x_enabled(index: int, enabled: bool)

void

set_axis_x_inverted(index: int, enabled: bool)

void

set_axis_y_enabled(index: int, enabled: bool)

void

set_axis_y_inverted(index: int, enabled: bool)

void

set_axis_z_enabled(index: int, enabled: bool)

void

set_axis_z_inverted(index: int, enabled: bool)

void

set_copy_flags(index: int, copy_flags: BitField[TransformFlag])

void

set_copy_position(index: int, enabled: bool)

void

set_copy_rotation(index: int, enabled: bool)

void

set_copy_scale(index: int, enabled: bool)

void

set_invert_flags(index: int, axis_flags: BitField[AxisFlag])

void

set_relative(index: int, enabled: bool)


枚举

flags TransformFlag: 🔗

TransformFlag TRANSFORM_FLAG_POSITION = 1

如果设置,则会允许复制位置。

TransformFlag TRANSFORM_FLAG_ROTATION = 2

如果设置,则会允许复制旋转。

TransformFlag TRANSFORM_FLAG_SCALE = 4

如果设置,则会允许复制缩放。

TransformFlag TRANSFORM_FLAG_ALL = 7

如果设置,则会允许复制位置、旋转、缩放。


flags AxisFlag: 🔗

AxisFlag AXIS_FLAG_X = 1

如果设置,则会允许处理 X 轴。

AxisFlag AXIS_FLAG_Y = 2

如果设置,则会允许处理 Y 轴。

AxisFlag AXIS_FLAG_Z = 4

如果设置,则会允许处理 Z 轴。

AxisFlag AXIS_FLAG_ALL = 7

如果设置,则会允许处理所有轴。


属性说明

int setting_count = 0 🔗

  • void set_setting_count(value: int)

  • int get_setting_count()

修改器中设置的数量。


方法说明

BitField[AxisFlag] get_axis_flags(index: int) const 🔗

返回索引为 index 的设置的轴标志。


BitField[TransformFlag] get_copy_flags(index: int) const 🔗

返回索引为 index 的设置的复制标志。


BitField[AxisFlag] get_invert_flags(index: int) const 🔗

返回索引为 index 的设置的翻转标志。


bool is_additive(index: int) const 🔗

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


bool is_axis_x_enabled(index: int) const 🔗

如果索引为 index 的设置的启用标志中存在 X 轴对应的标志,则返回 true。另见 set_axis_flags()


bool is_axis_x_inverted(index: int) const 🔗

如果索引为 index 的设置的翻转标志中存在 X 轴对应的标志,则返回 true。另见 set_invert_flags()


bool is_axis_y_enabled(index: int) const 🔗

如果索引为 index 的设置的启用标志中存在 Y 轴对应的标志,则返回 true。另见 set_axis_flags()


bool is_axis_y_inverted(index: int) const 🔗

如果索引为 index 的设置的翻转标志中存在 Y 轴对应的标志,则返回 true。另见 set_invert_flags()


bool is_axis_z_enabled(index: int) const 🔗

如果索引为 index 的设置的启用标志中存在 Z 轴对应的标志,则返回 true。另见 set_axis_flags()


bool is_axis_z_inverted(index: int) const 🔗

如果索引为 index 的设置的翻转标志中存在 Z 轴对应的标志,则返回 true。另见 set_invert_flags()


bool is_position_copying(index: int) const 🔗

如果索引为 index 的设置的复制标志中存在位置对应的标志,则返回 true。另见 set_copy_flags()


bool is_relative(index: int) const 🔗

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


bool is_rotation_copying(index: int) const 🔗

如果索引为 index 的设置的复制标志中存在旋转对应的标志,则返回 true。另见 set_copy_flags()


bool is_scale_copying(index: int) const 🔗

如果索引为 index 的设置的复制标志中存在缩放对应的标志,则返回 true。另见 set_copy_flags()


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

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

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

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


void set_axis_flags(index: int, axis_flags: BitField[AxisFlag]) 🔗

设置复制轴标志。如果标志有效,则会复制对应的轴。


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

如果 enabledtrue,则会复制 X 轴。


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

如果 enabledtrue,则会翻转 X 轴。


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

如果 enabledtrue,则会复制 Y 轴。


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

如果 enabledtrue,则会翻转 Y 轴。


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

如果 enabledtrue,则会复制 Z 轴。


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

如果 enabledtrue,则会翻转 Z 轴。


void set_copy_flags(index: int, copy_flags: BitField[TransformFlag]) 🔗

设置处理变换操作的标志。如果标志有效,则会处理变换操作。

注意:如果旋转仅对一个轴有效,就会考虑有效轴的滚转值。如果旋转对两个轴有效,就会丢弃无效轴的滚转值。


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

如果 enabledtrue,则会复制位置。


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

如果 enabledtrue,则会复制旋转。


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

如果 enabledtrue,则会复制缩放。


void set_invert_flags(index: int, axis_flags: BitField[AxisFlag]) 🔗

设置翻转轴的标志。如果标志有效,则会复制该轴。

注意:缩放翻转意味着对数值取倒数,并不是负数缩放。例如将 2.0 翻转就是 0.5

注意:旋转翻转会翻转四元数的元素。例如,双轴反转会翻转每个轴的滚转,而三轴反转会翻转最终朝向。不过请注意,仅翻转一个轴可能会导致未翻转轴的意外旋转,这是由于四元数的特性所导致的。


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

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

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

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