RetargetModifier3D
继承: SkeletonModifier3D < Node3D < Node < Object
修改器,能够将父骨架的姿势(或全局姿势)转移给在模型空间中具有不同放松姿势的子骨架。
描述
获取模型空间中相对于父骨架放松姿势的姿势(或全局姿势)并将其转移给子 Skeleton。
修改器会在父骨架的更新过程中直接重写子骨架的姿势。这意味着它会覆盖目标骨架上正常处理过程中设置的映射骨骼姿势。如果你想要在重新定向后设置目标骨架的骨骼姿势,则需要向目标骨架添加一个 SkeletonModifier3D 子节点才能修改姿势。
注意:启用 use_global_pose 时,即便是未映射的骨骼也可能导致视觉问题,因为如果父骨骼存在映射的子骨骼,那么应用全局姿势时会忽略父骨骼的姿势。另见 use_global_pose。
属性
BitField[TransformFlag] |
|
|
|
方法
is_position_enabled() const |
|
is_rotation_enabled() const |
|
is_scale_enabled() const |
|
void |
set_position_enabled(enabled: bool) |
void |
set_rotation_enabled(enabled: bool) |
void |
set_scale_enabled(enabled: bool) |
枚举
flags TransformFlag: 🔗
TransformFlag TRANSFORM_FLAG_POSITION = 1
如果设置,则允许重定向位置。
TransformFlag TRANSFORM_FLAG_ROTATION = 2
如果设置,则允许重定向旋转。
TransformFlag TRANSFORM_FLAG_SCALE = 4
如果设置,则允许重定向缩放。
TransformFlag TRANSFORM_FLAG_ALL = 7
如果设置,则允许重定向位置、旋转、位置。
属性说明
BitField[TransformFlag] enable = 7 🔗
void set_enable_flags(value: BitField[TransformFlag])
BitField[TransformFlag] get_enable_flags()
禁用 use_global_pose 时,用于单独控制变换元素过程的标志。
SkeletonProfile profile 🔗
void set_profile(value: SkeletonProfile)
SkeletonProfile get_profile()
用于重定向与骨骼列表中名称匹配骨骼的 SkeletonProfile。
bool use_global_pose = false 🔗
如果为 false,则在目标骨架的骨骼数量少于源骨架时,源骨架父级的变换将被忽略。
这样可以在不同体型的模型之间进行重定向,位置、旋转和缩放都可以单独重定向。
如果为 true,则在重定向时会考虑全局姿势。
在目标骨架的骨骼数量少于源骨架的情况下,会考虑源骨架父级的变换。然而,骨架之间的骨骼长度必须完全匹配,否则骨骼将被强制扩展或缩小。
适用于在骨骼数量不同的模型之间进行重定向时使用长度为 0 的虚设骨骼来匹配姿势。
方法说明
bool is_position_enabled() const 🔗
如果 enable 中有 TRANSFORM_FLAG_POSITION 则返回 true。
bool is_rotation_enabled() const 🔗
如果 enable 中有 TRANSFORM_FLAG_ROTATION 则返回 true。
bool is_scale_enabled() const 🔗
如果 enable 中有 TRANSFORM_FLAG_SCALE 则返回 true。
void set_position_enabled(enabled: bool) 🔗
在 enable 中设置 TRANSFORM_FLAG_POSITION。
void set_rotation_enabled(enabled: bool) 🔗
在 enable 中设置 TRANSFORM_FLAG_ROTATION。
void set_scale_enabled(enabled: bool) 🔗
在 enable 中设置 TRANSFORM_FLAG_SCALE。