SkeletonModification2DTwoBoneIK

Экспериментальное: This class may be changed or removed in future versions.

Наследует: SkeletonModification2D < Resource < RefCounted < Object

Модификация, которая вращает две кости, используя закон косинусов, чтобы достичь цели.

Описание

Этот SkeletonModification2D использует алгоритм, обычно называемый TwoBoneIK. Этот алгоритм работает, используя закон косинусов и длины костей, чтобы выяснить, какое вращение имеют кости в данный момент, и какое вращение им нужно, чтобы составить полный треугольник, где первая кость, вторая кость и цель образуют три вершины треугольника. Поскольку алгоритм работает, создавая треугольник, он может работать только с двумя костями.

TwoBoneIK отлично подходит для рук, ног и любых суставов, которые можно представить всего двумя костями, которые сгибаются, чтобы достичь цели. Этот решатель более легкий, чем SkeletonModification2DFABRIK, но дает похожие, естественно выглядящие результаты.

Свойства

bool

flip_bend_direction

false

float

target_maximum_distance

0.0

float

target_minimum_distance

0.0

NodePath

target_nodepath

NodePath("")

Методы

NodePath

get_joint_one_bone2d_node() const

int

get_joint_one_bone_idx() const

NodePath

get_joint_two_bone2d_node() const

int

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 🔗

  • void set_flip_bend_direction(value: bool)

  • bool get_flip_bend_direction()

Если true, кости в модификации будут изгибаться наружу, а не внутрь при сокращении. Если false, кости будут изгибаться внутрь при сокращении.


float target_maximum_distance = 0.0 🔗

  • void set_target_maximum_distance(value: float)

  • float get_target_maximum_distance()

Максимальное расстояние, на котором может находиться цель. Если цель находится дальше этого расстояния, модификация будет решаться так, как будто она находится на этом максимальном расстоянии. Если установлено значение 0, модификация будет решаться без ограничений по расстоянию.


float target_minimum_distance = 0.0 🔗

  • void set_target_minimum_distance(value: float)

  • float get_target_minimum_distance()

Минимальное расстояние, на котором может находиться цель. Если цель находится ближе этого расстояния, модификация будет решаться так, как будто она находится на этом минимальном расстоянии. Если установлено значение 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.