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.
属性
|
方法
BitField[AxisFlag] |
get_axis_flags(index: int) const |
BitField[TransformFlag] |
get_copy_flags(index: int) const |
BitField[AxisFlag] |
get_invert_flags(index: int) const |
is_additive(index: int) const |
|
is_axis_x_enabled(index: int) const |
|
is_axis_x_inverted(index: int) const |
|
is_axis_y_enabled(index: int) const |
|
is_axis_y_inverted(index: int) const |
|
is_axis_z_enabled(index: int) const |
|
is_axis_z_inverted(index: int) const |
|
is_position_copying(index: int) const |
|
is_relative(index: int) const |
|
is_rotation_copying(index: int) const |
|
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
如果设置,则会允许处理所有轴。
属性说明
修改器中设置的数量。
方法说明
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) 🔗
如果 enabled 为 true,则会复制 X 轴。
void set_axis_x_inverted(index: int, enabled: bool) 🔗
如果 enabled 为 true,则会翻转 X 轴。
void set_axis_y_enabled(index: int, enabled: bool) 🔗
如果 enabled 为 true,则会复制 Y 轴。
void set_axis_y_inverted(index: int, enabled: bool) 🔗
如果 enabled 为 true,则会翻转 Y 轴。
void set_axis_z_enabled(index: int, enabled: bool) 🔗
如果 enabled 为 true,则会复制 Z 轴。
void set_axis_z_inverted(index: int, enabled: bool) 🔗
如果 enabled 为 true,则会翻转 Z 轴。
void set_copy_flags(index: int, copy_flags: BitField[TransformFlag]) 🔗
设置处理变换操作的标志。如果标志有效,则会处理变换操作。
注意:如果旋转仅对一个轴有效,就会考虑有效轴的滚转值。如果旋转对两个轴有效,就会丢弃无效轴的滚转值。
void set_copy_position(index: int, enabled: bool) 🔗
如果 enabled 为 true,则会复制位置。
void set_copy_rotation(index: int, enabled: bool) 🔗
如果 enabled 为 true,则会复制旋转。
void set_copy_scale(index: int, enabled: bool) 🔗
如果 enabled 为 true,则会复制缩放。
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,则提取到的变换是绝对的。