reckfellENGINE

BoneTwistDisperser3D

Узел, который распространяет и распределяет скручивание дочерней кости на родительские кости.

На этой странице
class BoneTwistDisperser3DReckfellSharpНаследует SkeletonModifier3D

Узел, который распространяет и распределяет скручивание дочерней кости на родительские кости.

Класс BoneTwistDisperser3D обеспечивает плавную интерполяцию скручивания между несколькими костями, распределяя скручивание конечной кости по родительским. При этом изменяется только скручивание, без изменения глобальной позиции каждого сустава. Это полезно для плавного скручивания костей в сочетании с CopyTransformModifier3D и IK. Примечание: Если извлечённое скручивание превышает 180 градусов, происходит переворот. Это поведение аналогично ConvertTransformModifier3D. Примечание: Большинство методов этого класса принимают параметр index. Он указывает, какую запись из списка настроек следует возвращать, если IK содержит несколько записей (например, settings/<index>/root_bone_name).

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

BoneTwistDisperser3DКонструктор
# BoneTwistDisperser3D
C#
public BoneTwistDisperser3D();

Свойства2

MutableBoneAxesСвойство
# MutableBoneAxes
C#
public bool MutableBoneAxes { get; set; }

Если true, решатель извлекает ось кости из положения кости каждый кадр. Если false, решатель извлекает ось кости из положения кости и кэширует её.

SettingCountСвойство
# SettingCount
C#
public int SettingCount { get; set; }

Количество настроек.

Методы34

AreBoneAxesMutablebool
# AreBoneAxesMutable
C#
public bool AreBoneAxesMutable();
Возвращает bool
ClearSettingsvoid
# ClearSettings
C#
public void ClearSettings();

Очищает все настройки.

GetDampingCurveCurve
# GetDampingCurve
C#
public Curve GetDampingCurve(int index);

Возвращает кривую затухания, когда BoneTwistDisperser3D.GetDisperseMode равен BoneTwistDisperser3D.DisperseMode.Custom.

Параметры
ИмяТипПо умолчанию
indexint—
Возвращает Curve
GetDisperseModeBoneTwistDisperser3D.DisperseMode
# GetDisperseMode
C#
public BoneTwistDisperser3D.DisperseMode GetDisperseMode(int index);

Возвращает значение, указывающее, следует ли использовать автоматическое присвоение суммы или разрешить ручное присвоение.

Параметры
ИмяТипПо умолчанию
indexint—
Возвращает BoneTwistDisperser3D.DisperseMode
GetEndBoneint
# GetEndBone
C#
public int GetEndBone(int index);

Возвращает индекс конечной кости цепочки костей.

Параметры
ИмяТипПо умолчанию
indexint—
Возвращает int
GetEndBoneDirectionSkeletonModifier3D.BoneDirection
# GetEndBoneDirection
C#
public SkeletonModifier3D.BoneDirection GetEndBoneDirection(int index);

Возвращает направление хвоста конечной кости цепочки костей, когда BoneTwistDisperser3D.IsEndBoneExtended имеет значение true.

Параметры
ИмяТипПо умолчанию
indexint—
Возвращает SkeletonModifier3D.BoneDirection
GetEndBoneNamestring
# GetEndBoneName
C#
public string GetEndBoneName(int index);

Возвращает имя конечной кости цепочки костей.

Параметры
ИмяТипПо умолчанию
indexint—
Возвращает string
GetJointBoneint
# GetJointBone
C#
public int GetJointBone(int index, int joint);

Возвращает индекс кости в joint в списке суставов цепочки костей.

Параметры
ИмяТипПо умолчанию
indexint—
jointint—
Возвращает int
GetJointBoneNamestring
# GetJointBoneName
C#
public string GetJointBoneName(int index, int joint);

Возвращает имя кости в joint в списке суставов цепочки костей.

Параметры
ИмяТипПо умолчанию
indexint—
jointint—
Возвращает string
GetJointCountint
# GetJointCount
C#
public int GetJointCount(int index);

Возвращает количество суставов в списке суставов цепочки костей.

Параметры
ИмяТипПо умолчанию
indexint—
Возвращает int
GetJointTwistAmountfloat
# GetJointTwistAmount
C#
public float GetJointTwistAmount(int index, int joint);

Возвращает величину скручивания в joint в списке суставов цепочки костей, когда BoneTwistDisperser3D.GetDisperseMode имеет значение BoneTwistDisperser3D.DisperseMode.Custom.

Параметры
ИмяТипПо умолчанию
indexint—
jointint—
Возвращает float
GetReferenceBoneint
# GetReferenceBone
C#
public int GetReferenceBone(int index);

Возвращает опорную кость для извлечения скручивания в настройке по адресу index. Эта кость является либо концом цепочки, либо ее родительской, в зависимости от BoneTwistDisperser3D.IsEndBoneExtended.

Параметры
ИмяТипПо умолчанию
indexint—
Возвращает int
GetReferenceBoneNamestring
# GetReferenceBoneName
C#
public string GetReferenceBoneName(int index);

Возвращает имя опорной кости для извлечения значения скручивания в настройке по адресу index. Эта кость является либо концом цепочки, либо ее родительской костью, в зависимости от BoneTwistDisperser3D.IsEndBoneExtended.

Параметры
ИмяТипПо умолчанию
indexint—
Возвращает string
GetRootBoneint
# GetRootBone
C#
public int GetRootBone(int index);

Возвращает индекс корневой кости цепочки костей.

Параметры
ИмяТипПо умолчанию
indexint—
Возвращает int
GetRootBoneNamestring
# GetRootBoneName
C#
public string GetRootBoneName(int index);

Возвращает имя корневой кости цепочки костей.

Параметры
ИмяТипПо умолчанию
indexint—
Возвращает string
GetSettingCountint
# GetSettingCount
C#
public int GetSettingCount();
Возвращает int
GetTwistFromQuaternion
# GetTwistFrom
C#
public Quaternion GetTwistFrom(int index);

Возвращает вращение в произвольное состояние перед поворотом для текущей позы кости, чтобы извлечь поворот, когда BoneTwistDisperser3D.IsTwistFromRest имеет значение false.

Параметры
ИмяТипПо умолчанию
indexint—
Возвращает Quaternion
GetWeightPositionfloat
# GetWeightPosition
C#
public float GetWeightPosition(int index);

Возвращает позицию, в которой следует разделить сегмент между суставами для присвоения весов, когда BoneTwistDisperser3D.GetDisperseMode равен BoneTwistDisperser3D.DisperseMode.Weighted.

Параметры
ИмяТипПо умолчанию
indexint—
Возвращает float
IsEndBoneExtendedbool
# IsEndBoneExtended
C#
public bool IsEndBoneExtended(int index);

Возвращает true, если конечная кость удлинена и имеет хвост.

Параметры
ИмяТипПо умолчанию
indexint—
Возвращает bool
IsTwistFromRestbool
# IsTwistFromRest
C#
public bool IsTwistFromRest(int index);

Возвращает true, если величина скручивания вычисляется как разница между состоянием покоя кости и текущим положением кости.

Параметры
ИмяТипПо умолчанию
indexint—
Возвращает bool
SetDampingCurvevoid
# SetDampingCurve
C#
public void SetDampingCurve(int index, Curve curve);

Устанавливает кривую затухания, когда BoneTwistDisperser3D.GetDisperseMode имеет значение BoneTwistDisperser3D.DisperseMode.Custom.

Параметры
ИмяТипПо умолчанию
indexint—
curveCurve—
SetDisperseModevoid
# SetDisperseMode
C#
public void SetDisperseMode(int index, BoneTwistDisperser3D.DisperseMode disperseMode);

Определяет, следует ли использовать автоматическое присвоение сумм или разрешить ручное присвоение.

Параметры
ИмяТипПо умолчанию
indexint—
disperseModeBoneTwistDisperser3D.DisperseMode—
SetEndBonevoid
# SetEndBone
C#
public void SetEndBone(int index, int bone);

Устанавливает индекс конечной кости в костной цепи.

Параметры
ИмяТипПо умолчанию
indexint—
boneint—
SetEndBoneDirectionvoid
# SetEndBoneDirection
C#
public void SetEndBoneDirection(int index, SkeletonModifier3D.BoneDirection boneDirection);

Устанавливает направление хвоста конечной кости цепочки костей, когда BoneTwistDisperser3D.IsEndBoneExtended имеет значение true.

Параметры
ИмяТипПо умолчанию
indexint—
boneDirectionSkeletonModifier3D.BoneDirection—
SetEndBoneNamevoid
# SetEndBoneName
C#
public void SetEndBoneName(int index, string boneName);

Задает имя конечной кости цепочки костей. Примечание: Конечная кость должна быть дочерней по отношению к корневой кости.

Параметры
ИмяТипПо умолчанию
indexint—
boneNamestring—
SetExtendEndBonevoid
# SetExtendEndBone
C#
public void SetExtendEndBone(int index, bool enabled);

Если enabled равно true, конечная кость удлиняется, образуя хвост. Если enabled равно false, BoneTwistDisperser3D.GetReferenceBone становится родительским элементом для конечной кости и использует вектор к конечной кости в качестве оси скручивания.

Параметры
ИмяТипПо умолчанию
indexint—
enabledbool—
SetJointTwistAmountvoid
# SetJointTwistAmount
C#
public void SetJointTwistAmount(int index, int joint, float twistAmount);

Устанавливает величину скручивания в joint в списке суставов цепочки костей, когда BoneTwistDisperser3D.GetDisperseMode имеет значение BoneTwistDisperser3D.DisperseMode.Custom.

Параметры
ИмяТипПо умолчанию
indexint—
jointint—
twistAmountfloat—
SetMutableBoneAxesvoid
# SetMutableBoneAxes
C#
public void SetMutableBoneAxes(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
SetRootBonevoid
# SetRootBone
C#
public void SetRootBone(int index, int bone);

Устанавливает индекс корневой кости цепочки костей.

Параметры
ИмяТипПо умолчанию
indexint—
boneint—
SetRootBoneNamevoid
# SetRootBoneName
C#
public void SetRootBoneName(int index, string boneName);

Задает имя корневой кости цепочки костей.

Параметры
ИмяТипПо умолчанию
indexint—
boneNamestring—
SetSettingCountvoid
# SetSettingCount
C#
public void SetSettingCount(int count);
Параметры
ИмяТипПо умолчанию
countint—
SetTwistFromvoid
# SetTwistFrom
C#
public void SetTwistFrom(int index, Quaternion from);

Устанавливает вращение в произвольное состояние перед скручиванием для текущей позы кости, чтобы извлечь скручивание, когда BoneTwistDisperser3D.IsTwistFromRest равен false. Другими словами, вызвав BoneTwistDisperser3D.SetTwistFrom с помощью SkeletonModifier3D.ModificationProcessed конкретного SkeletonModifier3D, вы можете извлечь только скручивания, сгенерированные модификаторами, обработанными после, но до этого BoneTwistDisperser3D.

Параметры
ИмяТипПо умолчанию
indexint—
fromQuaternion—
SetTwistFromRestvoid
# SetTwistFromRest
C#
public void SetTwistFromRest(int index, bool enabled);

Если enabled равно true, то величина скручивания вычисляется как разница между положением кости в состоянии покоя и текущим положением кости. Если enabled равно false, то величина скручивания вычисляется как разница между BoneTwistDisperser3D.GetTwistFrom и текущим положением кости. См. также BoneTwistDisperser3D.SetTwistFrom.

Параметры
ИмяТипПо умолчанию
indexint—
enabledbool—
SetWeightPositionvoid
# SetWeightPosition
C#
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 соответственно.

Параметры
ИмяТипПо умолчанию
indexint—
weightPositionfloat—

BoneTwistDisperser3D.DisperseMode

ЗначениеОписание
Custom = 2

Вы можете присваивать произвольные значения списку суставов. См. также BoneTwistDisperser3D.SetJointTwistAmount. Когда BoneTwistDisperser3D.IsEndBoneExtended имеет значение false, дочерний элемент опорной кости существует исключительно для определения оси скручивания, поэтому его пользовательское значение абсолютно никак не влияет на результат.

Even = 0

Назначьте значения таким образом, чтобы они монотонно возрастали от 0.0 до 1.0, обеспечивая при этом равенство всех весов. Например, для пяти суставов значения будут 0.2, 0.4, 0.6, 0.8 и 1.0, начиная с корневой кости.

Weighted = 1

Назначьте значения таким образом, чтобы они монотонно возрастали от 0.0 до 1.0 в зависимости от длины костей между суставными сегментами. См. также BoneTwistDisperser3D.SetWeightPosition.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.