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
Перераховане значення повороту осі Х.
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.