SkeletonModification2DCcdik
Модификация, использующая CCDIK для манипулирования серией костей с целью достижения цели в 2D.
Модификация, использующая CCDIK для манипулирования серией костей с целью достижения цели в 2D.
Этот SkeletonModification2D использует алгоритм, называемый Обратная кинематика циклического спуска по координатам (CCDIK), для управления цепочкой костей в Skeleton2D так, чтобы она достигла определенной цели.
CCDIK работает, вращая набор костей, обычно называемый «цепочкой костей», вокруг одной оси. Каждая кость поворачивается так, чтобы быть обращенной к цели с кончика (по умолчанию), что позволяет ей вращаться правильно, достигая цели, через цепочку костей. Поскольку кости вращаются только вокруг одной оси, CCDIK может выглядеть более роботизированным, чем другие решатели IK.
Примечание: Модификатор CCDIK имеет ccdik_joints, которые являются объектами данных, которые содержат данные для каждого сустава в цепочке CCDIK. Это отличается от кости! Суставы CCDIK содержат данные, необходимые для каждой кости в цепочке костей, используемой CCDIK.
CCDIK также полностью поддерживает угловые ограничения, что позволяет лучше контролировать выполнение решения.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
SkeletonModification2DCcdikКонструктор
public SkeletonModification2DCcdik();Свойства3
CcdikDataChainLengthСвойство
public int CcdikDataChainLength { get; set; }Количество соединений CCDIK в модификации CCDIK.
TargetEntitypathСвойство
public EntityPath TargetEntitypath { get; set; }EntityPath к узлу, который является целью модификации CCDIK. Это узел, к которому цепь CCDIK попытается повернуть цепочку костей.
TipEntitypathСвойство
public EntityPath TipEntitypath { get; set; }Конечная позиция цепочки CCDIK. Обычно это должен быть дочерний узел Bone2D, прикрепленный к конечному Bone2D в цепочке CCDIK.
Методы20
GetCcdikDataChainLengthint
public int GetCcdikDataChainLength();intGetCcdikJointBone2DEntityEntityPath
public EntityPath GetCcdikJointBone2DEntity(int jointIdx);Возвращает узел Bone2D, назначенный суставу CCDIK в joint_idx.
| Имя | Тип | По умолчанию |
|---|---|---|
jointIdx | int | — |
EntityPathGetCcdikJointBoneIndexint
public int GetCcdikJointBoneIndex(int jointIdx);Возвращает индекс узла Bone2D, назначенного суставу CCDIK в joint_idx.
| Имя | Тип | По умолчанию |
|---|---|---|
jointIdx | int | — |
intGetCcdikJointConstraintAngleInvertbool
public bool GetCcdikJointConstraintAngleInvert(int jointIdx);Возвращает, использует ли соединение CCDIK в joint_idx инвертированное ограничение соединения. Подробности см. в SkeletonModification2DCcdik.SetCcdikJointConstraintAngleInvert.
| Имя | Тип | По умолчанию |
|---|---|---|
jointIdx | int | — |
boolGetCcdikJointConstraintAngleMaxfloat
public float GetCcdikJointConstraintAngleMax(int jointIdx);Возвращает максимальное ограничение угла для сочленения в joint_idx.
| Имя | Тип | По умолчанию |
|---|---|---|
jointIdx | int | — |
floatGetCcdikJointConstraintAngleMinfloat
public float GetCcdikJointConstraintAngleMin(int jointIdx);Возвращает минимальное ограничение угла для сочленения в joint_idx.
| Имя | Тип | По умолчанию |
|---|---|---|
jointIdx | int | — |
floatGetCcdikJointEnableConstraintbool
public bool GetCcdikJointEnableConstraint(int jointIdx);Возвращает информацию о том, включены ли ограничения угла для соединения CCDIK в joint_idx.
| Имя | Тип | По умолчанию |
|---|---|---|
jointIdx | int | — |
boolGetCcdikJointRotateFromJointbool
public bool GetCcdikJointRotateFromJoint(int jointIdx);Возвращает, установлено ли соединение в joint_idx для вращения от сочленения, true, или для вращения от кончика, false. По умолчанию вращение происходит от кончика.
| Имя | Тип | По умолчанию |
|---|---|---|
jointIdx | int | — |
boolGetTargetEntityEntityPath
public EntityPath GetTargetEntity();EntityPathGetTipEntityEntityPath
public EntityPath GetTipEntity();EntityPathSetCcdikDataChainLengthvoid
public void SetCcdikDataChainLength(int length);| Имя | Тип | По умолчанию |
|---|---|---|
length | int | — |
SetCcdikJointBone2DEntityvoid
public void SetCcdikJointBone2DEntity(int jointIdx, EntityPath bone2DEntitypath);Устанавливает узел Bone2D, назначенный суставу CCDIK в joint_idx.
| Имя | Тип | По умолчанию |
|---|---|---|
jointIdx | int | — |
bone2DEntitypath | EntityPath | — |
SetCcdikJointBoneIndexvoid
public void SetCcdikJointBoneIndex(int jointIdx, int boneIdx);Устанавливает индекс костей, bone_idx, из CCDIK, joint_idx. По возможности, это также позволит обновить bone2d_node на основе данных, предоставленных скелетом.
| Имя | Тип | По умолчанию |
|---|---|---|
jointIdx | int | — |
boneIdx | int | — |
SetCcdikJointConstraintAngleInvertvoid
public void SetCcdikJointConstraintAngleInvert(int jointIdx, bool invert);Устанавливает, использует ли соединение CCDIK в joint_idx инвертированное ограничение соединения.
Инвертированное ограничение соединения ограничивает соединение CCDIK только углами вне введенных минимальных и максимальных углов. По этой причине оно называется инвертированным ограничением соединения, так как оно ограничивает соединение снаружи введенных значений.
| Имя | Тип | По умолчанию |
|---|---|---|
jointIdx | int | — |
invert | bool | — |
SetCcdikJointConstraintAngleMaxvoid
public void SetCcdikJointConstraintAngleMax(int jointIdx, float angleMax);Устанавливает максимальное ограничение угла для сочленения в joint_idx.
| Имя | Тип | По умолчанию |
|---|---|---|
jointIdx | int | — |
angleMax | float | — |
SetCcdikJointConstraintAngleMinvoid
public void SetCcdikJointConstraintAngleMin(int jointIdx, float angleMin);Устанавливает минимальное ограничение угла для сочленения в joint_idx.
| Имя | Тип | По умолчанию |
|---|---|---|
jointIdx | int | — |
angleMin | float | — |
SetCcdikJointEnableConstraintvoid
public void SetCcdikJointEnableConstraint(int jointIdx, bool enableConstraint);Определяет, включены ли ограничения угла на сочленении CCDIK в joint_idx. Когда true, ограничения будут включены и учтены при решении.
| Имя | Тип | По умолчанию |
|---|---|---|
jointIdx | int | — |
enableConstraint | bool | — |
SetCcdikJointRotateFromJointvoid
public void SetCcdikJointRotateFromJoint(int jointIdx, bool rotateFromJoint);Устанавливает, будет ли сочленение в joint_idx настроено на вращение от сочленения, true, или на вращение от кончика, false.
| Имя | Тип | По умолчанию |
|---|---|---|
jointIdx | int | — |
rotateFromJoint | bool | — |
SetTargetEntityvoid
public void SetTargetEntity(EntityPath targetEntitypath);| Имя | Тип | По умолчанию |
|---|---|---|
targetEntitypath | EntityPath | — |
SetTipEntityvoid
public void SetTipEntity(EntityPath tipEntitypath);| Имя | Тип | По умолчанию |
|---|---|---|
tipEntitypath | EntityPath | — |