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...
SkeletonModifier3D
Наследует: Node3D < Node < Object
Наследуется от: BoneConstraint3D, BoneTwistDisperser3D, IKModifier3D, LimitAngularVelocityModifier3D, 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.
enum BoneDirection: 🔗
BoneDirection BONE_DIRECTION_PLUS_X = 0
Перечисленное значение для оси +X.
BoneDirection BONE_DIRECTION_MINUS_X = 1
Перечисленное значение для оси -X.
BoneDirection BONE_DIRECTION_PLUS_Y = 2
Перечисленное значение для оси +Y.
BoneDirection BONE_DIRECTION_MINUS_Y = 3
Перечисленное значение для оси -Y.
BoneDirection BONE_DIRECTION_PLUS_Z = 4
Перечисленное значение для оси +Z.
BoneDirection BONE_DIRECTION_MINUS_Z = 5
Перечисленное значение для оси -Z.
BoneDirection BONE_DIRECTION_FROM_PARENT = 6
Перечисленное значение для оси от родительской кости до дочерней кости.
enum SecondaryDirection: 🔗
SecondaryDirection SECONDARY_DIRECTION_NONE = 0
Перечисляемое значение для случая, когда ось не определена.
SecondaryDirection SECONDARY_DIRECTION_PLUS_X = 1
Перечисленное значение для оси +X.
SecondaryDirection SECONDARY_DIRECTION_MINUS_X = 2
Перечисленное значение для оси -X.
SecondaryDirection SECONDARY_DIRECTION_PLUS_Y = 3
Перечисленное значение для оси +Y.
SecondaryDirection SECONDARY_DIRECTION_MINUS_Y = 4
Перечисленное значение для оси -Y.
SecondaryDirection SECONDARY_DIRECTION_PLUS_Z = 5
Перечисленное значение для оси +Z.
SecondaryDirection SECONDARY_DIRECTION_MINUS_Z = 6
Перечисленное значение для оси -Z.
SecondaryDirection SECONDARY_DIRECTION_CUSTOM = 7
Перечисляемое значение для необязательной оси.
enum RotationAxis: 🔗
RotationAxis ROTATION_AXIS_X = 0
Перечисленное значение для вращения оси X.
RotationAxis ROTATION_AXIS_Y = 1
Перечисленное значение для вращения оси Y.
RotationAxis ROTATION_AXIS_Z = 2
Перечисленное значение для вращения оси Z.
RotationAxis ROTATION_AXIS_ALL = 3
Перечисленное значение для неограниченного вращения.
RotationAxis ROTATION_AXIS_CUSTOM = 4
Перечисляемое значение для необязательной оси вращения.
Описания свойств
Если 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().
Примечание: Этот метод может быть вызван вне Node._process() и Node._physics_process() с delta равным 0.0, поскольку модификация должна быть обработана сразу после инициализации Skeleton3D.
void _skeleton_changed(old_skeleton: Skeleton3D, new_skeleton: Skeleton3D) virtual 🔗
Вызывается при изменении скелета.
void _validate_bone_names() virtual 🔗
Вызывается, когда необходимо проверить имена и индексы костей, например, при входе в дерево сцены или изменении скелета.
Skeleton3D get_skeleton() const 🔗
Возвращает родительский узел Skeleton3D, если он существует. В противном случае возвращает null.