TwoBoneIK3D
Решатель обратной кинематики на основе вращения при пересечении двух окружностей.
Решатель обратной кинематики на основе вращения при пересечении двух окружностей.
Этот IKModifier3D требует наличия целевого полюса. Он обеспечивает детерминированные результаты, строя плоскость из каждого сустава и целевого полюса и находя пересечение двух окружностей (дисков в 3D).
Этот IK может обрабатывать скручивание, задавая направление полюса. Если между каждой заданной костью находится более одной кости, их вращения игнорируются, а прямая линия, соединяющая корневой, средний и средний конечный суставы, рассматривается как виртуальная кость.
Примечание: Все методы в этом классе принимают параметр index. Этот параметр указывает, какую запись списка настроек возвращать, если IK имеет несколько записей (например, settings/<index>/root_bone_name).
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
TwoBoneIK3DКонструктор
public TwoBoneIK3D();Свойства1
SettingCountСвойство
public int SettingCount { get; set; }Количество настроек.
Методы28
GetEndBoneint
public int GetEndBone(int index);Возвращает индекс конечной кости.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
intGetEndBoneDirectionSkeletonModifier3D.BoneDirection
public SkeletonModifier3D.BoneDirection GetEndBoneDirection(int index);Возвращает направление хвоста конечной кости, когда TwoBoneIK3D.IsEndBoneExtended имеет значение true.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
SkeletonModifier3D.BoneDirectionGetEndBoneLengthfloat
public float GetEndBoneLength(int index);Возвращает длину хвостовой части конечной кости цепочки костей, когда TwoBoneIK3D.IsEndBoneExtended имеет значение true.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
floatGetEndBoneNamestring
public string GetEndBoneName(int index);Возвращает название конечной кости.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
stringGetMiddleBoneint
public int GetMiddleBone(int index);Возвращает индекс средней кости.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
intGetMiddleBoneNamestring
public string GetMiddleBoneName(int index);Возвращает название средней кости.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
stringGetPoleDirectionSkeletonModifier3D.SecondaryDirection
public SkeletonModifier3D.SecondaryDirection GetPoleDirection(int index);Возвращает направление полюса.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
SkeletonModifier3D.SecondaryDirectionGetPoleDirectionVectorVector3
public Vector3 GetPoleDirectionVector(int index);Возвращает вектор направления полюса.
Если TwoBoneIK3D.GetPoleDirection равен SkeletonModifier3D.SecondaryDirection.None, этот метод возвращает Vector3(0, 0, 0).
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
Vector3GetPoleEntityEntityPath
public EntityPath GetPoleEntity(int index);Возвращает целевой узел столба, который строит плоскость, на которой находятся все шарниры и которую столб пытается направить.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
EntityPathGetRootBoneint
public int GetRootBone(int index);Возвращает индекс корневой кости.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
intGetRootBoneNamestring
public string GetRootBoneName(int index);Возвращает имя корневой кости.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
stringGetTargetEntityEntityPath
public EntityPath GetTargetEntity(int index);Возвращает целевой узел, до которого пытается добраться конечная кость.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
EntityPathIsEndBoneExtendedbool
public bool IsEndBoneExtended(int index);Возвращает true, если конечная кость удлинена и имеет хвост.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
boolIsUsingVirtualEndbool
public bool IsUsingVirtualEnd(int index);Возвращает true, если конечная кость является продолжением средней кости в качестве виртуальной кости.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
boolSetEndBonevoid
public void SetEndBone(int index, int bone);Устанавливает индекс конечной кости.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
bone | int | — |
SetEndBoneDirectionvoid
public void SetEndBoneDirection(int index, SkeletonModifier3D.BoneDirection boneDirection);Задает направление хвостовой части конечной кости, когда TwoBoneIK3D.IsEndBoneExtended имеет значение true.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
boneDirection | SkeletonModifier3D.BoneDirection | — |
SetEndBoneLengthvoid
public void SetEndBoneLength(int index, float length);Устанавливает длину хвостовой части конечной кости, когда TwoBoneIK3D.IsEndBoneExtended имеет значение true.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
length | float | — |
SetEndBoneNamevoid
public void SetEndBoneName(int index, string boneName);Задает имя конечной кости. Примечание: Конечная кость должна быть дочерней по отношению к средней кости.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
boneName | string | — |
SetExtendEndBonevoid
public void SetExtendEndBone(int index, bool enabled);Если enabled равно true, конечная кость удлиняется, образуя хвост.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
enabled | bool | — |
SetMiddleBonevoid
public void SetMiddleBone(int index, int bone);Устанавливает средний индекс кости.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
bone | int | — |
SetMiddleBoneNamevoid
public void SetMiddleBoneName(int index, string boneName);Задает имя средней кости. Примечание: Средняя кость должна быть дочерней по отношению к корневой кости.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
boneName | string | — |
SetPoleDirectionvoid
public void SetPoleDirection(int index, SkeletonModifier3D.SecondaryDirection direction);Задает направление полюса. Полюс расположен на средней кости и будет направлен к целевой точке. Ось вращения — это вектор, ортогональный этому вектору и вектору прямого вращения. Примечание: Направление полюса и вектор прямого вращения не должны быть коллинеарными, чтобы избежать непреднамеренного вращения.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
direction | SkeletonModifier3D.SecondaryDirection | — |
SetPoleDirectionVectorvoid
public void SetPoleDirectionVector(int index, Vector3 vector);Задает вектор направления полюса.
Этот вектор нормализуется внутренним процессом.
Если длина вектора равна 0, он считается синонимом SkeletonModifier3D.SecondaryDirection.None.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
vector | Vector3 | — |
SetPoleEntityvoid
public void SetPoleEntity(int index, EntityPath poleNode);Задает целевой узел столба, который строит плоскость, на которой находятся все соединения и которую столб пытается направить.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
poleNode | EntityPath | — |
SetRootBonevoid
public void SetRootBone(int index, int bone);Устанавливает индекс корневой кости.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
bone | int | — |
SetRootBoneNamevoid
public void SetRootBoneName(int index, string boneName);Задает имя корневой кости.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
boneName | string | — |
SetTargetEntityvoid
public void SetTargetEntity(int index, EntityPath targetEntity);Задает целевой узел, до которого пытается добраться конечная кость.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
targetEntity | EntityPath | — |
SetUseVirtualEndvoid
public void SetUseVirtualEnd(int index, bool enabled);Если enabled равно true, конечная кость отходит от средней кости как виртуальная кость.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
enabled | bool | — |