BoneTwistDisperser3D
Узел, который распространяет и распределяет скручивание дочерней кости на родительские кости.
Узел, который распространяет и распределяет скручивание дочерней кости на родительские кости.
Класс BoneTwistDisperser3D обеспечивает плавную интерполяцию скручивания между несколькими костями, распределяя скручивание конечной кости по родительским. При этом изменяется только скручивание, без изменения глобальной позиции каждого сустава.
Это полезно для плавного скручивания костей в сочетании с CopyTransformModifier3D и IK.
Примечание: Если извлечённое скручивание превышает 180 градусов, происходит переворот. Это поведение аналогично ConvertTransformModifier3D.
Примечание: Большинство методов этого класса принимают параметр index. Он указывает, какую запись из списка настроек следует возвращать, если IK содержит несколько записей (например, settings/<index>/root_bone_name).
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
BoneTwistDisperser3DКонструктор
public BoneTwistDisperser3D();Свойства2
MutableBoneAxesСвойство
public bool MutableBoneAxes { get; set; }Если true, решатель извлекает ось кости из положения кости каждый кадр.
Если false, решатель извлекает ось кости из положения кости и кэширует её.
SettingCountСвойство
public int SettingCount { get; set; }Количество настроек.
Методы34
AreBoneAxesMutablebool
public bool AreBoneAxesMutable();boolClearSettingsvoid
public void ClearSettings();Очищает все настройки.
GetDampingCurveCurve
public Curve GetDampingCurve(int index);Возвращает кривую затухания, когда BoneTwistDisperser3D.GetDisperseMode равен BoneTwistDisperser3D.DisperseMode.Custom.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
CurveGetDisperseModeBoneTwistDisperser3D.DisperseMode
public BoneTwistDisperser3D.DisperseMode GetDisperseMode(int index);Возвращает значение, указывающее, следует ли использовать автоматическое присвоение суммы или разрешить ручное присвоение.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
BoneTwistDisperser3D.DisperseModeGetEndBoneint
public int GetEndBone(int index);Возвращает индекс конечной кости цепочки костей.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
intGetEndBoneDirectionSkeletonModifier3D.BoneDirection
public SkeletonModifier3D.BoneDirection GetEndBoneDirection(int index);Возвращает направление хвоста конечной кости цепочки костей, когда BoneTwistDisperser3D.IsEndBoneExtended имеет значение true.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
SkeletonModifier3D.BoneDirectionGetEndBoneNamestring
public string GetEndBoneName(int index);Возвращает имя конечной кости цепочки костей.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
stringGetJointBoneint
public int GetJointBone(int index, int joint);Возвращает индекс кости в joint в списке суставов цепочки костей.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
joint | int | — |
intGetJointBoneNamestring
public string GetJointBoneName(int index, int joint);Возвращает имя кости в joint в списке суставов цепочки костей.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
joint | int | — |
stringGetJointCountint
public int GetJointCount(int index);Возвращает количество суставов в списке суставов цепочки костей.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
intGetJointTwistAmountfloat
public float GetJointTwistAmount(int index, int joint);Возвращает величину скручивания в joint в списке суставов цепочки костей, когда BoneTwistDisperser3D.GetDisperseMode имеет значение BoneTwistDisperser3D.DisperseMode.Custom.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
joint | int | — |
floatGetReferenceBoneint
public int GetReferenceBone(int index);Возвращает опорную кость для извлечения скручивания в настройке по адресу index.
Эта кость является либо концом цепочки, либо ее родительской, в зависимости от BoneTwistDisperser3D.IsEndBoneExtended.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
intGetReferenceBoneNamestring
public string GetReferenceBoneName(int index);Возвращает имя опорной кости для извлечения значения скручивания в настройке по адресу index.
Эта кость является либо концом цепочки, либо ее родительской костью, в зависимости от BoneTwistDisperser3D.IsEndBoneExtended.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
stringGetRootBoneint
public int GetRootBone(int index);Возвращает индекс корневой кости цепочки костей.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
intGetRootBoneNamestring
public string GetRootBoneName(int index);Возвращает имя корневой кости цепочки костей.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
stringGetSettingCountint
public int GetSettingCount();intGetTwistFromQuaternion
public Quaternion GetTwistFrom(int index);Возвращает вращение в произвольное состояние перед поворотом для текущей позы кости, чтобы извлечь поворот, когда BoneTwistDisperser3D.IsTwistFromRest имеет значение false.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
QuaternionGetWeightPositionfloat
public float GetWeightPosition(int index);Возвращает позицию, в которой следует разделить сегмент между суставами для присвоения весов, когда BoneTwistDisperser3D.GetDisperseMode равен BoneTwistDisperser3D.DisperseMode.Weighted.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
floatIsEndBoneExtendedbool
public bool IsEndBoneExtended(int index);Возвращает true, если конечная кость удлинена и имеет хвост.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
boolIsTwistFromRestbool
public bool IsTwistFromRest(int index);Возвращает true, если величина скручивания вычисляется как разница между состоянием покоя кости и текущим положением кости.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
boolSetDampingCurvevoid
public void SetDampingCurve(int index, Curve curve);Устанавливает кривую затухания, когда BoneTwistDisperser3D.GetDisperseMode имеет значение BoneTwistDisperser3D.DisperseMode.Custom.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
curve | Curve | — |
SetDisperseModevoid
public void SetDisperseMode(int index, BoneTwistDisperser3D.DisperseMode disperseMode);Определяет, следует ли использовать автоматическое присвоение сумм или разрешить ручное присвоение.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
disperseMode | BoneTwistDisperser3D.DisperseMode | — |
SetEndBonevoid
public void SetEndBone(int index, int bone);Устанавливает индекс конечной кости в костной цепи.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
bone | int | — |
SetEndBoneDirectionvoid
public void SetEndBoneDirection(int index, SkeletonModifier3D.BoneDirection boneDirection);Устанавливает направление хвоста конечной кости цепочки костей, когда BoneTwistDisperser3D.IsEndBoneExtended имеет значение true.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
boneDirection | SkeletonModifier3D.BoneDirection | — |
SetEndBoneNamevoid
public void SetEndBoneName(int index, string boneName);Задает имя конечной кости цепочки костей. Примечание: Конечная кость должна быть дочерней по отношению к корневой кости.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
boneName | string | — |
SetExtendEndBonevoid
public void SetExtendEndBone(int index, bool enabled);Если enabled равно true, конечная кость удлиняется, образуя хвост.
Если enabled равно false, BoneTwistDisperser3D.GetReferenceBone становится родительским элементом для конечной кости и использует вектор к конечной кости в качестве оси скручивания.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
enabled | bool | — |
SetJointTwistAmountvoid
public void SetJointTwistAmount(int index, int joint, float twistAmount);Устанавливает величину скручивания в joint в списке суставов цепочки костей, когда BoneTwistDisperser3D.GetDisperseMode имеет значение BoneTwistDisperser3D.DisperseMode.Custom.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
joint | int | — |
twistAmount | float | — |
SetMutableBoneAxesvoid
public void SetMutableBoneAxes(bool enabled);| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
SetRootBonevoid
public void SetRootBone(int index, int bone);Устанавливает индекс корневой кости цепочки костей.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
bone | int | — |
SetRootBoneNamevoid
public void SetRootBoneName(int index, string boneName);Задает имя корневой кости цепочки костей.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
boneName | string | — |
SetSettingCountvoid
public void SetSettingCount(int count);| Имя | Тип | По умолчанию |
|---|---|---|
count | int | — |
SetTwistFromvoid
public void SetTwistFrom(int index, Quaternion from);Устанавливает вращение в произвольное состояние перед скручиванием для текущей позы кости, чтобы извлечь скручивание, когда BoneTwistDisperser3D.IsTwistFromRest равен false.
Другими словами, вызвав BoneTwistDisperser3D.SetTwistFrom с помощью SkeletonModifier3D.ModificationProcessed конкретного SkeletonModifier3D, вы можете извлечь только скручивания, сгенерированные модификаторами, обработанными после, но до этого BoneTwistDisperser3D.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
from | Quaternion | — |
SetTwistFromRestvoid
public void SetTwistFromRest(int index, bool enabled);Если enabled равно true, то величина скручивания вычисляется как разница между положением кости в состоянии покоя и текущим положением кости.
Если enabled равно false, то величина скручивания вычисляется как разница между BoneTwistDisperser3D.GetTwistFrom и текущим положением кости. См. также BoneTwistDisperser3D.SetTwistFrom.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
enabled | bool | — |
SetWeightPositionvoid
public void SetWeightPosition(int index, float weightPosition);Задает положение, в котором следует разделить сегмент между суставами для присвоения весов, когда BoneTwistDisperser3D.GetDisperseMode равен BoneTwistDisperser3D.DisperseMode.Weighted.
Например, если weight_position равен 0.5, и между тремя суставами существуют два костных сегмента длиной 1.0, каждому суставу присваиваются веса от корня до конца в соотношениях 0.5, 1.0 и 0.5. Тогда значения становятся 0.25, 0.75 и 1.0 соответственно.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
weightPosition | float | — |
BoneTwistDisperser3D.DisperseMode
| Значение | Описание |
|---|---|
Custom = 2 | Вы можете присваивать произвольные значения списку суставов. См. также |
Even = 0 | Назначьте значения таким образом, чтобы они монотонно возрастали от |
Weighted = 1 | Назначьте значения таким образом, чтобы они монотонно возрастали от |