SkeletonModification2DCCDIK
Экспериментальное: This class may be changed or removed in future versions.
Наследует: SkeletonModification2D < Resource < RefCounted < Object
Модификация, использующая CCDIK для манипулирования серией костей с целью достижения цели в 2D.
Описание
Этот SkeletonModification2D использует алгоритм, называемый Обратная кинематика циклического спуска по координатам (CCDIK), для управления цепочкой костей в Skeleton2D так, чтобы она достигла определенной цели.
CCDIK работает, вращая набор костей, обычно называемый «цепочкой костей», вокруг одной оси. Каждая кость поворачивается так, чтобы быть обращенной к цели с кончика (по умолчанию), что позволяет ей вращаться правильно, достигая цели, через цепочку костей. Поскольку кости вращаются только вокруг одной оси, CCDIK может выглядеть более роботизированным, чем другие решатели IK.
Примечание: Модификатор CCDIK имеет ccdik_joints, которые являются объектами данных, которые содержат данные для каждого сустава в цепочке CCDIK. Это отличается от кости! Суставы CCDIK содержат данные, необходимые для каждой кости в цепочке костей, используемой CCDIK.
CCDIK также полностью поддерживает угловые ограничения, что позволяет лучше контролировать выполнение решения.
Свойства
|
||
|
||
|
Методы
get_ccdik_joint_bone2d_node(joint_idx: int) const |
|
get_ccdik_joint_bone_index(joint_idx: int) const |
|
get_ccdik_joint_constraint_angle_invert(joint_idx: int) const |
|
get_ccdik_joint_constraint_angle_max(joint_idx: int) const |
|
get_ccdik_joint_constraint_angle_min(joint_idx: int) const |
|
get_ccdik_joint_enable_constraint(joint_idx: int) const |
|
get_ccdik_joint_rotate_from_joint(joint_idx: int) const |
|
void |
set_ccdik_joint_bone2d_node(joint_idx: int, bone2d_nodepath: NodePath) |
void |
set_ccdik_joint_bone_index(joint_idx: int, bone_idx: int) |
void |
set_ccdik_joint_constraint_angle_invert(joint_idx: int, invert: bool) |
void |
set_ccdik_joint_constraint_angle_max(joint_idx: int, angle_max: float) |
void |
set_ccdik_joint_constraint_angle_min(joint_idx: int, angle_min: float) |
void |
set_ccdik_joint_enable_constraint(joint_idx: int, enable_constraint: bool) |
void |
set_ccdik_joint_rotate_from_joint(joint_idx: int, rotate_from_joint: bool) |
Описания свойств
int ccdik_data_chain_length = 0 🔗
Количество соединений CCDIK в модификации CCDIK.
NodePath target_nodepath = NodePath("") 🔗
NodePath к узлу, который является целью модификации CCDIK. Это узел, к которому цепь CCDIK попытается повернуть цепочку костей.
NodePath tip_nodepath = NodePath("") 🔗
Конечная позиция цепочки CCDIK. Обычно это должен быть дочерний узел Bone2D, прикрепленный к конечному Bone2D в цепочке CCDIK.
Описания метода
NodePath get_ccdik_joint_bone2d_node(joint_idx: int) const 🔗
Возвращает узел Bone2D, назначенный суставу CCDIK в joint_idx.
int get_ccdik_joint_bone_index(joint_idx: int) const 🔗
Возвращает индекс узла Bone2D, назначенного суставу CCDIK в joint_idx.
bool get_ccdik_joint_constraint_angle_invert(joint_idx: int) const 🔗
Возвращает, использует ли соединение CCDIK в joint_idx инвертированное ограничение соединения. Подробности см. в set_ccdik_joint_constraint_angle_invert().
float get_ccdik_joint_constraint_angle_max(joint_idx: int) const 🔗
Возвращает максимальное ограничение угла для сочленения в joint_idx.
float get_ccdik_joint_constraint_angle_min(joint_idx: int) const 🔗
Возвращает минимальное ограничение угла для сочленения в joint_idx.
bool get_ccdik_joint_enable_constraint(joint_idx: int) const 🔗
Возвращает информацию о том, включены ли ограничения угла для соединения CCDIK в joint_idx.
bool get_ccdik_joint_rotate_from_joint(joint_idx: int) const 🔗
Возвращает, установлено ли соединение в joint_idx для вращения от сочленения, true, или для вращения от кончика, false. По умолчанию вращение происходит от кончика.
void set_ccdik_joint_bone2d_node(joint_idx: int, bone2d_nodepath: NodePath) 🔗
Устанавливает узел Bone2D, назначенный суставу CCDIK в joint_idx.
void set_ccdik_joint_bone_index(joint_idx: int, bone_idx: int) 🔗
Устанавливает индекс кости bone_idx сустава CCDIK в joint_idx. Когда это возможно, это также обновит bone2d_node сустава CCDIK на основе данных, предоставленных связанным скелетом.
void set_ccdik_joint_constraint_angle_invert(joint_idx: int, invert: bool) 🔗
Устанавливает, использует ли соединение CCDIK в joint_idx инвертированное ограничение соединения.
Инвертированное ограничение соединения ограничивает соединение CCDIK только углами вне введенных минимальных и максимальных углов. По этой причине оно называется инвертированным ограничением соединения, так как оно ограничивает соединение снаружи введенных значений.
void set_ccdik_joint_constraint_angle_max(joint_idx: int, angle_max: float) 🔗
Устанавливает максимальное ограничение угла для сочленения в joint_idx.
void set_ccdik_joint_constraint_angle_min(joint_idx: int, angle_min: float) 🔗
Устанавливает минимальное ограничение угла для сочленения в joint_idx.
void set_ccdik_joint_enable_constraint(joint_idx: int, enable_constraint: bool) 🔗
Определяет, включены ли ограничения угла на сочленении CCDIK в joint_idx. Когда true, ограничения будут включены и учтены при решении.
void set_ccdik_joint_rotate_from_joint(joint_idx: int, rotate_from_joint: bool) 🔗
Устанавливает, будет ли сочленение в joint_idx настроено на вращение от сочленения, true, или на вращение от кончика, false.