TwoBoneIK3D
Наследует: IKModifier3D < SkeletonModifier3D < Node3D < Node < Object
Решатель обратной кинематики на основе вращения при пересечении двух окружностей.
Описание
Этот IKModifier3D требует наличия целевого полюса. Он обеспечивает детерминированные результаты, строя плоскость из каждого сустава и целевого полюса и находя пересечение двух окружностей (дисков в 3D).
Этот IK может обрабатывать скручивание, задавая направление полюса. Если между каждой заданной костью находится более одной кости, их вращения игнорируются, а прямая линия, соединяющая корневой, средний и средний конечный суставы, рассматривается как виртуальная кость.
Свойства
|
Методы
Описания свойств
Количество настроек.
Описания метода
int get_end_bone(index: int) const 🔗
Возвращает индекс конечной кости.
BoneDirection get_end_bone_direction(index: int) const 🔗
Возвращает направление хвоста конечной кости, когда is_end_bone_extended() имеет значение true.
float get_end_bone_length(index: int) const 🔗
Возвращает длину хвостовой части конечной кости цепочки костей, когда is_end_bone_extended() имеет значение true.
String get_end_bone_name(index: int) const 🔗
Возвращает название конечной кости.
int get_middle_bone(index: int) const 🔗
Возвращает индекс средней кости.
String get_middle_bone_name(index: int) const 🔗
Возвращает название средней кости.
SecondaryDirection get_pole_direction(index: int) const 🔗
Возвращает направление полюса.
Vector3 get_pole_direction_vector(index: int) const 🔗
Возвращает вектор направления полюса.
Если get_pole_direction() равен SkeletonModifier3D.SECONDARY_DIRECTION_NONE, этот метод возвращает Vector3(0, 0, 0).
NodePath get_pole_node(index: int) const 🔗
Возвращает целевой узел столба, который строит плоскость, на которой находятся все шарниры и которую столб пытается направить.
int get_root_bone(index: int) const 🔗
Возвращает индекс корневой кости.
String get_root_bone_name(index: int) const 🔗
Возвращает имя корневой кости.
NodePath get_target_node(index: int) const 🔗
Возвращает целевой узел, до которого пытается добраться конечная кость.
bool is_end_bone_extended(index: int) const 🔗
Возвращает true, если конечная кость удлинена и имеет хвост.
bool is_using_virtual_end(index: int) const 🔗
Возвращает true, если конечная кость является продолжением средней кости в качестве виртуальной кости.
void set_end_bone(index: int, bone: int) 🔗
Устанавливает индекс конечной кости.
void set_end_bone_direction(index: int, bone_direction: BoneDirection) 🔗
Задает направление хвостовой части конечной кости, когда is_end_bone_extended() имеет значение true.
void set_end_bone_length(index: int, length: float) 🔗
Устанавливает длину хвостовой части конечной кости, когда is_end_bone_extended() имеет значение true.
void set_end_bone_name(index: int, bone_name: String) 🔗
Задает имя конечной кости.
Примечание: Конечная кость должна быть дочерней по отношению к средней кости.
void set_extend_end_bone(index: int, enabled: bool) 🔗
Если enabled равно true, конечная кость удлиняется, образуя хвост.
void set_middle_bone(index: int, bone: int) 🔗
Устанавливает средний индекс кости.
void set_middle_bone_name(index: int, bone_name: String) 🔗
Задает имя средней кости.
Примечание: Средняя кость должна быть дочерней по отношению к корневой кости.
void set_pole_direction(index: int, direction: SecondaryDirection) 🔗
Задает направление полюса.
Полюс расположен на средней кости и будет направлен к целевой точке.
Ось вращения — это вектор, ортогональный этому вектору и вектору прямого вращения.
Примечание: Направление полюса и вектор прямого вращения не должны быть коллинеарными, чтобы избежать непреднамеренного вращения.
void set_pole_direction_vector(index: int, vector: Vector3) 🔗
Задает вектор направления полюса.
Этот вектор нормализуется внутренним процессом.
Если длина вектора равна 0, он считается синонимом SkeletonModifier3D.SECONDARY_DIRECTION_NONE.
void set_pole_node(index: int, pole_node: NodePath) 🔗
Задает целевой узел столба, который строит плоскость, на которой находятся все соединения и которую столб пытается направить.
void set_root_bone(index: int, bone: int) 🔗
Устанавливает индекс корневой кости.
void set_root_bone_name(index: int, bone_name: String) 🔗
Задает имя корневой кости.
void set_target_node(index: int, target_node: NodePath) 🔗
Задает целевой узел, до которого пытается добраться конечная кость.
void set_use_virtual_end(index: int, enabled: bool) 🔗
Если enabled равно true, конечная кость отходит от средней кости как виртуальная кость.