SkeletonModifier3D
Наследует: Node3D < Node < Object
Наследуется от: BoneConstraint3D, LookAtModifier3D, ModifierBoneTarget3D, PhysicalBoneSimulator3D, RetargetModifier3D, SkeletonIK3D, SpringBoneSimulator3D, XRBodyModifier3D, XRHandModifier3D
Узел, который может модифицировать кости Skeleton3D.
Описание
SkeletonModifier3D извлекает целевой Skeleton3D, имея родителя Skeleton3D.
Если есть AnimationMixer, модификация всегда выполняется после процесса воспроизведения AnimationMixer.
Этот узел следует использовать для реализации пользовательских решателей IK, ограничений или физики скелета.
Обучающие материалы
Свойства
|
||
|
Методы
void |
_process_modification() virtual |
void |
_process_modification_with_delta(delta: float) virtual |
void |
_skeleton_changed(old_skeleton: Skeleton3D, new_skeleton: Skeleton3D) virtual |
void |
_validate_bone_names() virtual |
get_skeleton() const |
Сигналы
modification_processed() 🔗
Уведомляет о завершении модификации.
Примечание: Если вы хотите получить измененную позу кости модификатором, вы должны использовать Skeleton3D.get_bone_pose() или Skeleton3D.get_bone_global_pose() в момент срабатывания этого сигнала.
Перечисления
enum BoneAxis: 🔗
BoneAxis BONE_AXIS_PLUS_X = 0
Перечисленное значение для оси +X.
BoneAxis BONE_AXIS_MINUS_X = 1
Перечисленное значение для оси -X.
BoneAxis BONE_AXIS_PLUS_Y = 2
Перечисленное значение для оси +Y.
BoneAxis BONE_AXIS_MINUS_Y = 3
Перечисленное значение для оси -Y.
BoneAxis BONE_AXIS_PLUS_Z = 4
Перечисленное значение для оси +Z.
BoneAxis BONE_AXIS_MINUS_Z = 5
Перечисленное значение для оси -Z.
Описания свойств
Если true, то SkeletonModifier3D будет обработан.
Устанавливает влияние модификации.
Примечание: Это значение используется Skeleton3D для смешивания, поэтому SkeletonModifier3D всегда должен применять только 100% результата без интерполяции.
Описания метода
void _process_modification() virtual 🔗
Устарело: Use _process_modification_with_delta() instead.
Переопределите этот виртуальный метод, чтобы реализовать пользовательский модификатор скелета. Вам следует сделать что-то вроде получения текущей позы Skeleton3D и применить позу здесь.
_process_modification() не должен применять influence к позам костей, поскольку Skeleton3D автоматически применяет влияние ко всем позам костей, заданным модификатором.
void _process_modification_with_delta(delta: float) virtual 🔗
Переопределите этот виртуальный метод для реализации пользовательского модификатора скелета. Вам следует сделать что-то вроде получения текущей позы Skeleton3D и применить позу здесь.
_process_modification_with_delta() не должен применять influence к позам костей, поскольку Skeleton3D автоматически применяет влияние ко всем позам костей, заданным модификатором.
delta передается из родительского Skeleton3D. См. также Skeleton3D.advance().
void _skeleton_changed(old_skeleton: Skeleton3D, new_skeleton: Skeleton3D) virtual 🔗
Вызывается при изменении скелета.
void _validate_bone_names() virtual 🔗
Вызывается, когда необходимо проверить имя и индекс кости, например, время входа в дерево или изменение скелета.
Skeleton3D get_skeleton() const 🔗
Получить родительский узел Skeleton3D, если он найден.