SkeletonModification2DTwoBoneIK
Експериментальний: This class may be changed or removed in future versions.
Успадковує: SkeletonModification2D < Resource < RefCounted < Object
Модифікація, яка повертає дві кістки, використовуючи закон косинусів, щоб досягти цілі.
Опис
Цей SkeletonModification2D використовує алгоритм, який зазвичай називається TwoBoneIK. Цей алгоритм працює, використовуючи закон косинусів і довжини кісток, щоб визначити, яке обертання мають кістки на даний момент і яке обертання їм потрібно, щоб створити повний трикутник, де перша кістка, друга кістка та ціль утворюють три вершини трикутника. Оскільки алгоритм працює, створюючи трикутник, він може працювати лише з двома кістками.
TwoBoneIK чудово підходить для рук, ніг та взагалі будь-яких суглобів, які можна представити лише двома кістками, що згинаються, щоб досягти цілі. Цей розв'язувач легший, ніж SkeletonModification2DFABRIK, але дає подібні, природні результати.
Властивості
|
||
|
||
|
||
|
Методи
get_joint_one_bone2d_node() const |
|
get_joint_one_bone_idx() const |
|
get_joint_two_bone2d_node() const |
|
get_joint_two_bone_idx() const |
|
void |
set_joint_one_bone2d_node(bone2d_node: NodePath) |
void |
set_joint_one_bone_idx(bone_idx: int) |
void |
set_joint_two_bone2d_node(bone2d_node: NodePath) |
void |
set_joint_two_bone_idx(bone_idx: int) |
Описи властивостей
bool flip_bend_direction = false 🔗
Якщо true, кістки в модифікації будуть згинатися назовні, а не всередину під час скорочення. Якщо false, кістки будуть згинатися всередину під час скорочення.
float target_maximum_distance = 0.0 🔗
Максимальна відстань, на якій може бути ціль. Якщо ціль знаходиться далі, ніж ця відстань, модифікація вирішить так, ніби вона знаходиться на цій максимальній відстані. Якщо встановлено значення 0, модифікація вирішуватиметься без обмежень відстані.
float target_minimum_distance = 0.0 🔗
Мінімальна відстань, на якій може бути ціль. Якщо ціль знаходиться ближче, ніж ця відстань, модифікація вирішить так, ніби вона знаходиться на цій мінімальній відстані. Якщо встановлено значення 0, модифікація вирішуватиметься без обмежень відстані.
NodePath target_nodepath = NodePath("") 🔗
NodePath до вузла, який є метою для модифікації TwoBoneIK. Цей вузол модифікація використовуватиме під час згинання вузлів Bone2D.
Описи методів
NodePath get_joint_one_bone2d_node() const 🔗
Повертає вузол Bone2D, який використовується як перша кістка в модифікації TwoBoneIK.
int get_joint_one_bone_idx() const 🔗
Повертає індекс вузла Bone2D, який використовується як перша кістка в модифікації TwoBoneIK.
NodePath get_joint_two_bone2d_node() const 🔗
Повертає вузол Bone2D, який використовується як друга кістка в модифікації TwoBoneIK.
int get_joint_two_bone_idx() const 🔗
Повертає індекс вузла Bone2D, який використовується як друга кістка в модифікації TwoBoneIK.
void set_joint_one_bone2d_node(bone2d_node: NodePath) 🔗
Встановлює вузол Bone2D, який використовується як перша кістка в модифікації TwoBoneIK.
void set_joint_one_bone_idx(bone_idx: int) 🔗
Встановлює індекс вузла Bone2D, який використовується як перша кістка в модифікації TwoBoneIK.
void set_joint_two_bone2d_node(bone2d_node: NodePath) 🔗
Встановлює вузол Bone2D, який використовується як друга кістка в модифікації TwoBoneIK.
void set_joint_two_bone_idx(bone_idx: int) 🔗
Встановлює індекс вузла Bone2D, який використовується як друга кістка в модифікації TwoBoneIK.