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.