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
Enumerated value for the case when the axis is undefined.
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
Enumerated value for an optional axis.
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
Enumerated value for an optional rotation axis.
Описания свойств
Если 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 🔗
Override this virtual method to implement a custom skeleton modifier. You should do things like get the Skeleton3D's current pose and apply the pose here.
_process_modification_with_delta() must not apply influence to bone poses because the Skeleton3D automatically applies influence to all bone poses set by the modifier.
delta is passed from parent Skeleton3D. See also Skeleton3D.advance().
Note: This method may be called outside Node._process() and Node._physics_process() with delta is 0.0, since the modification should be processed immediately after initialization of the Skeleton3D.
void _skeleton_changed(old_skeleton: Skeleton3D, new_skeleton: Skeleton3D) virtual 🔗
Вызывается при изменении скелета.
void _validate_bone_names() virtual 🔗
Called when bone names and indices need to be validated, such as when entering the scene tree or changing skeleton.
Skeleton3D get_skeleton() const 🔗
Returns the parent Skeleton3D node if it exists. Otherwise, returns null.