SkeletonModifier3D

Успадковує: Node3D < Node < Object

Успадковано від: BoneConstraint3D, LookAtModifier3D, ModifierBoneTarget3D, PhysicalBoneSimulator3D, RetargetModifier3D, SkeletonIK3D, SpringBoneSimulator3D, XRBodyModifier3D, XRHandModifier3D

Вузол, який може змінювати кістки Skeleton3D.

Опис

SkeletonModifier3D отримує цільовий Skeleton3D, маючи батьківський елемент Skeleton3D.

Якщо є AnimationMixer, модифікація завжди виконується після процесу відтворення AnimationMixer.

Цей вузол слід використовувати для реалізації користувацьких IK-розв'язувачів, обмежень або фізики скелета.

Посібники

Властивості

bool

active

true

float

influence

1.0

Методи

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

Skeleton3D

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.


Описи властивостей

bool active = true 🔗

  • void set_active(value: bool)

  • bool is_active()

Якщо true, то SkeletonModifier3D буде оброблятися.


float influence = 1.0 🔗

  • void set_influence(value: float)

  • float get_influence()

Встановлює вплив модифікації.

Примітка: Це значення використовується 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, якщо знайдено.