reckfellENGINE

Skeleton3D

Иерархия костей, их опорные трансформации и текущие позы в 3D.

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

Skeleton3D — Entity для скелетной анимации. Кости хранятся внутри скелета, а не как отдельные дочерние Entity. Rest задаёт опорную локальную трансформацию; Pose — текущую локальную трансформацию. Для корневой кости локальное пространство совпадает с пространством скелета, для дочерней — с пространством родительской кости.

GetBoneGlobalPose объединяет позы родителей, но остаётся в пространстве скелета. Пример вычисляет мировую трансформацию существующей кости у скелета в дереве. Это чтение текущего состояния; если нужен результат конкретного модификатора, согласуйте вызов с его фазой обновления.

C#
using Reckfell;

public static class BoneWorldExample
{
    public static bool TryGetWorldTransform(Skeleton3D skeleton, string boneName,
        out Transform3D worldTransform)
    {
        worldTransform = Transform3D.Identity;
        if (!skeleton.IsInsideTree())
            return false;
        int index = skeleton.FindBone(boneName);
        if (index < 0)
            return false;
        worldTransform = skeleton.GlobalTransform * skeleton.GetBoneGlobalPose(index);
        return true;
    }
}

Имена и позы при переносе анимации рассматриваются в ретаргетинге.

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

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

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

Свойства4

AnimatePhysicalBonesСвойство · Устарело
# AnimatePhysicalBones
C#
public bool AnimatePhysicalBones { get; set; }

Если вы следуете рекомендуемому рабочему процессу и явно указываете PhysicalBoneSimulator3D как дочерний элемент Skeleton3D, вы можете контролировать, будет ли он затронут raycasting без запуска Skeleton3D.PhysicalBonesStartSimulation, с помощью его SkeletonModifier3D.Active. Однако для старых (устаревших) конфигураций Skeleton3D имеет внутренний виртуальный PhysicalBoneSimulator3D для совместимости. Это свойство управляет внутренним виртуальным PhysicalBoneSimulator3D SkeletonModifier3D.Active.

ModifierCallbackModeProcessСвойство
# ModifierCallbackModeProcess
C#
public Skeleton3D.ModifierCallbackModeProcessEnum ModifierCallbackModeProcess { get; set; }

Устанавливает время обработки для модификатора.

MotionScaleСвойство
# MotionScale
C#
public float MotionScale { get; set; }

Положительный множитель позиционных анимационных треков костей в AnimationMixer. Не меняет трансформацию Entity или напрямую заданную SetBonePosePosition позицию. Значения <= 0 нативный setter отклоняет с восстановлением 1; не используйте 0 для остановки анимации.

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

Если true, то кости возвращаются в исходную позу покоя, независимо от их значений. В редакторе это также предотвращает редактирование костей.

Методы60

AddBoneint
# AddBone
C#
public int AddBone(string name);

Добавляет новую кость с указанным именем. Возвращает индекс новой кости или -1, если этот метод не срабатывает. Примечание: Имена костей должны быть уникальными, непустыми и не могут включать символы : и /.

Параметры
ИмяТипПо умолчанию
namestring—
Возвращает int
Advancevoid
# Advance
C#
public void Advance(double delta);

Вручную переместите дочерние SkeletonModifier3D на указанное время (в секундах). Примечание: delta временно накапливается в Skeleton3D, а отложенный процесс использует накопленное значение для обработки модификации.

Параметры
ИмяТипПо умолчанию
deltadouble—
ClearBonesvoid
# ClearBones
C#
public void ClearBones();

Очистите этот скелет от всех костей.

ClearBonesGlobalPoseOverridevoid · Устарело
# ClearBonesGlobalPoseOverride
C#
public void ClearBonesGlobalPoseOverride();

Удаляет глобальное переопределение позы для всех костей скелета.

CreateSkinFromRestTransformsSkin
# CreateSkinFromRestTransforms
C#
public Skin CreateSkinFromRestTransforms();
Возвращает Skin
FindBoneint
# FindBone
C#
public int FindBone(string name);

Возвращает индекс кости, который соответствует name в качестве имени. Возвращает -1, если кости с таким именем не существует.

Параметры
ИмяТипПо умолчанию
namestring—
Возвращает int
ForceUpdateAllBoneTransformsvoid · Устарело
# ForceUpdateAllBoneTransforms
C#
public void ForceUpdateAllBoneTransforms();

Принудительно обновляет трансформации/позы костей для всех костей скелета.

ForceUpdateBoneChildTransformvoid
# ForceUpdateBoneChildTransform
C#
public void ForceUpdateBoneChildTransform(int boneIdx);

Принудительно обновляет преобразование кости для кости с параметром bone_idx и всех ее дочерних элементов.

Параметры
ИмяТипПо умолчанию
boneIdxint—
GetAnimatePhysicalBonesbool
# GetAnimatePhysicalBones
C#
public bool GetAnimatePhysicalBones();
Возвращает bool
GetBoneChildrenint[]
# GetBoneChildren
C#
public int[] GetBoneChildren(int boneIdx);

Возвращает массив, содержащий индексы костей всех дочерних узлов переданной кости, bone_idx.

Параметры
ИмяТипПо умолчанию
boneIdxint—
Возвращает int[]
GetBoneCountint
# GetBoneCount
C#
public int GetBoneCount();

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

Возвращает int
GetBoneGlobalPoseTransform3D
# GetBoneGlobalPose
C#
public Transform3D GetBoneGlobalPose(int boneIdx);

Вычисляет текущую позу кости с учётом её родителей, в системе координат Skeleton3D. Слово Global здесь не означает мировую трансформацию. Для мира умножьте Skeleton3D.GlobalTransform на результат. Значение зависит от текущей фазы обновления анимации и модификаторов.

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

Индекс существующей кости: 0 <= boneIdx < GetBoneCount(). Результат FindBone сначала проверьте на -1.

Возвращает Transform3D

Трансформация в системе Skeleton3D, без мировой трансформации Entity.

GetBoneGlobalPoseNoOverrideTransform3D · Устарело
# GetBoneGlobalPoseNoOverride
C#
public Transform3D GetBoneGlobalPoseNoOverride(int boneIdx);

Возвращает общую трансформацию указанной кости относительно скелета, но без глобальных переопределений позы. Будучи относительно скелетного кадра, это не фактическая "глобальная" трансформация кости.

Параметры
ИмяТипПо умолчанию
boneIdxint—
Возвращает Transform3D
GetBoneGlobalPoseOverrideTransform3D · Устарело
# GetBoneGlobalPoseOverride
C#
public Transform3D GetBoneGlobalPoseOverride(int boneIdx);

Возвращает глобальное преобразование переопределения позы для bone_idx.

Параметры
ИмяТипПо умолчанию
boneIdxint—
Возвращает Transform3D
GetBoneGlobalRestTransform3D
# GetBoneGlobalRest
C#
public Transform3D GetBoneGlobalRest(int boneIdx);

Читает композицию Rest кости и её родителей в системе Skeleton3D. Не использует текущие анимационные позы и не включает мировую трансформацию самого скелета.

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

Индекс существующей кости: 0 <= boneIdx < GetBoneCount(). Результат FindBone сначала проверьте на -1.

Возвращает Transform3D

Трансформация в системе Skeleton3D, без мировой трансформации Entity.

GetBoneMetaVariant
# GetBoneMeta
C#
public Variant GetBoneMeta(int boneIdx, StringName key);

Возвращает метаданные с заданным ключом key для кости по индексу bone_idx.

Параметры
ИмяТипПо умолчанию
boneIdxint—
keyStringName—
Возвращает Variant
GetBoneMetaListReckfell.Collections.Array<StringName>
# GetBoneMetaList
C#
public Reckfell.Collections.Array<StringName> GetBoneMetaList(int boneIdx);

Возвращает список всех ключей метаданных для кости по индексу bone_idx.

Параметры
ИмяТипПо умолчанию
boneIdxint—
Возвращает Reckfell.Collections.Array<StringName>
GetBoneNamestring
# GetBoneName
C#
public string GetBoneName(int boneIdx);

Возвращает имя кости по индексу bone_idx.

Параметры
ИмяТипПо умолчанию
boneIdxint—
Возвращает string
GetBoneParentint
# GetBoneParent
C#
public int GetBoneParent(int boneIdx);

Возвращает индекс кости, которая является родителем кости в bone_idx. Если -1, то у кости нет родителя. Примечание: Возвращаемая родительская кость всегда будет меньше, чем bone_idx.

Параметры
ИмяТипПо умолчанию
boneIdxint—
Возвращает int
GetBonePoseTransform3D
# GetBonePose
C#
public Transform3D GetBonePose(int boneIdx);

Читает текущую локальную трансформацию кости относительно родительской кости, либо скелета для корня. Это не дополнительная трансформация, автоматически умножаемая на Rest. Анимация и модификаторы могут изменить позу в своей фазе обновления.

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

Индекс существующей кости: 0 <= boneIdx < GetBoneCount(). Результат FindBone сначала проверьте на -1.

Возвращает Transform3D

Локальная трансформация относительно родительской кости, либо скелета для корня.

GetBonePosePositionVector3
# GetBonePosePosition
C#
public Vector3 GetBonePosePosition(int boneIdx);

Читает позиционную часть локальной Bone Pose относительно родительской кости; для корневой кости — относительно скелета. Это не мировая позиция и не общая позиция дочерней кости в скелете.

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

Индекс существующей кости: 0 <= boneIdx < GetBoneCount(). Результат FindBone сначала проверьте на -1.

Возвращает Vector3

Локальная позиция в системе родительской кости, либо скелета для корня.

GetBonePoseRotationQuaternion
# GetBonePoseRotation
C#
public Quaternion GetBonePoseRotation(int boneIdx);

Возвращает вращение позы кости в bone_idx. Возвращаемый Quaternion является локальным для кости по отношению к вращению любых родительских костей.

Параметры
ИмяТипПо умолчанию
boneIdxint—
Возвращает Quaternion
GetBonePoseScaleVector3
# GetBonePoseScale
C#
public Vector3 GetBonePoseScale(int boneIdx);

Возвращает масштаб позы кости в bone_idx.

Параметры
ИмяТипПо умолчанию
boneIdxint—
Возвращает Vector3
GetBoneRestTransform3D
# GetBoneRest
C#
public Transform3D GetBoneRest(int boneIdx);

Читает опорную трансформацию кости относительно её родительской кости, либо скелета для корня. Это отдельные данные от изменяемой текущей позы.

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

Индекс существующей кости: 0 <= boneIdx < GetBoneCount(). Результат FindBone сначала проверьте на -1.

Возвращает Transform3D

Локальная трансформация относительно родительской кости, либо скелета для корня.

GetBoneSkinScaleVector3
# GetBoneSkinScale
C#
public Vector3 GetBoneSkinScale(int boneIdx);

Возвращает размер кожи кости в bone_idx.

Параметры
ИмяТипПо умолчанию
boneIdxint—
Возвращает Vector3
GetConcatenatedBoneNamesStringName
# GetConcatenatedBoneNames
C#
public StringName GetConcatenatedBoneNames();

Возвращает все имена костей, объединенные запятыми (,) как один StringName. Полезно задать его как подсказку для свойства enum.

Возвращает StringName
GetModifierCallbackModeProcessSkeleton3D.ModifierCallbackModeProcessEnum
# GetModifierCallbackModeProcess
C#
public Skeleton3D.ModifierCallbackModeProcessEnum GetModifierCallbackModeProcess();
Возвращает Skeleton3D.ModifierCallbackModeProcessEnum
GetMotionScalefloat
# GetMotionScale
C#
public float GetMotionScale();
Возвращает float
GetParentlessBonesint[]
# GetParentlessBones
C#
public int[] GetParentlessBones();

Возвращает массив со всеми костями, которые не имеют родителей. Другой способ взглянуть на это — это то, что он возвращает индексы всех костей, которые не зависят или не изменяются другими костями в Скелете.

Возвращает int[]
GetVersionulong
# GetVersion
C#
public ulong GetVersion();

Возвращает количество раз, когда иерархия костей изменялась в этом скелете, включая переименования. Версия скелета не сериализуется: используется только в одном экземпляре Skeleton3D. Используется для аннулирования кэшей в IK и других узлах, которые обрабатывают кости.

Возвращает ulong
HasBoneMetabool
# HasBoneMeta
C#
public bool HasBoneMeta(int boneIdx, StringName key);

Возвращает true, если кость с индексом bone_idx имеет метаданные с заданным key.

Параметры
ИмяТипПо умолчанию
boneIdxint—
keyStringName—
Возвращает bool
IsBoneEnabledbool
# IsBoneEnabled
C#
public bool IsBoneEnabled(int boneIdx);

Возвращает, включена ли поза кости для кости в bone_idx.

Параметры
ИмяТипПо умолчанию
boneIdxint—
Возвращает bool
IsShowRestOnlybool
# IsShowRestOnly
C#
public bool IsShowRestOnly();
Возвращает bool
LocalizeRestsvoid
# LocalizeRests
C#
public void LocalizeRests();

Возвращает все кости скелета в исходное (rest) положение.

PhysicalBonesAddCollisionExceptionvoid · Устарело
# PhysicalBonesAddCollisionException
C#
public void PhysicalBonesAddCollisionException(Rid exception);

Добавляет исключение столкновения к физической кости. Работает так же, как узел RigidBody3D.

Параметры
ИмяТипПо умолчанию
exceptionRid—
PhysicalBonesRemoveCollisionExceptionvoid · Устарело
# PhysicalBonesRemoveCollisionException
C#
public void PhysicalBonesRemoveCollisionException(Rid exception);

Удаляет исключение столкновения с физической костью. Работает так же, как узел RigidBody3D.

Параметры
ИмяТипПо умолчанию
exceptionRid—
PhysicalBonesStartSimulationvoid · Устарело
# PhysicalBonesStartSimulation
C#
public void PhysicalBonesStartSimulation(Reckfell.Collections.Array<StringName> bones = null);

Сообщает узлам PhysicalBone3D в скелете начать симуляцию и реагировать на физический мир. При желании можно передать список имен костей, что позволит моделировать только переданные кости.

Параметры
ИмяТипПо умолчанию
bonesReckfell.Collections.Array<StringName>null
PhysicalBonesStopSimulationvoid · Устарело
# PhysicalBonesStopSimulation
C#
public void PhysicalBonesStopSimulation();

Сообщает узлам PhysicalBone3D в скелете о необходимости прекратить симуляцию.

RegisterSkinSkinReference
# RegisterSkin
C#
public SkinReference RegisterSkin(Skin skin);

Привязывает указанный Skin к скелету.

Параметры
ИмяТипПо умолчанию
skinSkin—
Возвращает SkinReference
ResetBonePose2 перегрузки
# ResetBonePose · 1/2
C#
public void ResetBonePose(int boneIdx);

Копирует позицию, вращение и масштаб из Rest в текущую локальную позу одной кости. Не сбрасывает анимационный проигрыватель; следующая анимация или модификатор может снова изменить позу. Перегрузка без bool сохраняет отдельный Bone Skin Scale.

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

Индекс существующей кости: 0 <= boneIdx < GetBoneCount(). Результат FindBone сначала проверьте на -1.

# ResetBonePose · 2/2
C#
public void ResetBonePose(int boneIdx, bool resetBoneSkinScale = false);

Копирует позицию, вращение и масштаб из Rest в текущую локальную позу одной кости. Не сбрасывает анимационный проигрыватель; следующая анимация или модификатор может снова изменить позу. Перегрузка без bool сохраняет отдельный Bone Skin Scale.

Параметры
ИмяТипПо умолчанию
boneIdxint—
resetBoneSkinScaleboolfalse
boneIdx

Индекс существующей кости: 0 <= boneIdx < GetBoneCount(). Результат FindBone сначала проверьте на -1.

resetBoneSkinScale

При true дополнительно сбросить отдельный Bone Skin Scale к (1, 1, 1); при false сохранить его. Это не флаг сброса обычного масштаба Pose, который копируется из Rest в обоих случаях.

ResetBonePoses2 перегрузки
# ResetBonePoses · 1/2
C#
public void ResetBonePoses();

Выполняет сброс позы из Rest для каждой кости. Не меняет сами Rest и не останавливает анимацию. Перегрузка без bool сохраняет отдельные Bone Skin Scale.

# ResetBonePoses · 2/2
C#
public void ResetBonePoses(bool resetBoneSkinScale = false);

Выполняет сброс позы из Rest для каждой кости. Не меняет сами Rest и не останавливает анимацию. Перегрузка без bool сохраняет отдельные Bone Skin Scale.

Параметры
ИмяТипПо умолчанию
resetBoneSkinScaleboolfalse
resetBoneSkinScale

При true дополнительно сбросить отдельный Bone Skin Scale к (1, 1, 1); при false сохранить его. Это не флаг сброса обычного масштаба Pose, который копируется из Rest в обоих случаях.

SetAnimatePhysicalBonesvoid
# SetAnimatePhysicalBones
C#
public void SetAnimatePhysicalBones(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
SetBoneEnabledvoid
# SetBoneEnabled
C#
public void SetBoneEnabled(int boneIdx, bool enabled = true);

Отключает позу кости в bone_idx если false, включает позу кости если true.

Параметры
ИмяТипПо умолчанию
boneIdxint—
enabledbooltrue
SetBoneGlobalPosevoid
# SetBoneGlobalPose
C#
public void SetBoneGlobalPose(int boneIdx, Transform3D pose);

Устанавливает глобальное преобразование позы, pose, для кости в bone_idx. Примечание: Если были изменены другие позы костей, этот метод выполняет грязный пересчет поз и приведет к ухудшению производительности. Если вы знаете, что будет применено несколько глобальных поз, рассмотрите возможность использования Skeleton3D.SetBonePose с предварительным расчетом.

Параметры
ИмяТипПо умолчанию
boneIdxint—
poseTransform3D—
SetBoneGlobalPoseOverridevoid · Устарело
# SetBoneGlobalPoseOverride
C#
public void SetBoneGlobalPoseOverride(int boneIdx, Transform3D pose, float amount, bool persistent = false);

Устанавливает глобальное преобразование позы, pose, для кости в bone_idx. amount — это сила интерполяции, которая будет использоваться при применении позы, а persistent определяет, останется ли примененная поза. Примечание: Преобразование позы должно быть глобальным! Чтобы преобразовать мировое преобразование из Entity3D в глобальную позу кости, умножьте Transform3D.AffineInverse узла Entity3D.GlobalTransform на желаемое мировое преобразование.

Параметры
ИмяТипПо умолчанию
boneIdxint—
poseTransform3D—
amountfloat—
persistentboolfalse
SetBoneMetavoid
# SetBoneMeta
C#
public void SetBoneMeta(int boneIdx, StringName key, Variant value);

Устанавливает метаданные с заданным значением key равным value для кости с индексом bone_idx.

Параметры
ИмяТипПо умолчанию
boneIdxint—
keyStringName—
valueVariant—
SetBoneNamevoid
# SetBoneName
C#
public void SetBoneName(int boneIdx, string name);

Устанавливает имя кости name для кости с параметром bone_idx.

Параметры
ИмяТипПо умолчанию
boneIdxint—
namestring—
SetBoneParentvoid
# SetBoneParent
C#
public void SetBoneParent(int boneIdx, int parentIdx);

Устанавливает индекс кости parent_idx как родительский для кости в bone_idx. Если -1, то у кости нет родителя. Примечание: parent_idx должен быть меньше bone_idx.

Параметры
ИмяТипПо умолчанию
boneIdxint—
parentIdxint—
SetBonePosevoid
# SetBonePose
C#
public void SetBonePose(int boneIdx, Transform3D pose);

Устанавливает преобразование позы pose для кости с bone_idx.

Параметры
ИмяТипПо умолчанию
boneIdxint—
poseTransform3D—
SetBonePosePositionvoid
# SetBonePosePosition
C#
public void SetBonePosePosition(int boneIdx, Vector3 position);

Заменяет позиционную часть локальной позы относительно родительской кости, либо скелета для корня. Не прибавляет position к Rest. Не меняет Rest, вращение или масштаб; последующее обновление анимации/модификаторов может перезаписать позу.

Параметры
ИмяТипПо умолчанию
boneIdxint—
positionVector3—
boneIdx

Индекс существующей кости: 0 <= boneIdx < GetBoneCount(). Результат FindBone сначала проверьте на -1.

position

Новая локальная позиция относительно родительской кости; для корневой кости — относительно Skeleton3D. Не мировая позиция и не добавка к Rest.

SetBonePoseRotationvoid
# SetBonePoseRotation
C#
public void SetBonePoseRotation(int boneIdx, Quaternion rotation);

Устанавливает вращение позы кости в bone_idx на rotation. rotation — это Quaternion, описывающий вращение в локальном координатном пространстве кости относительно вращения любых родительских костей.

Параметры
ИмяТипПо умолчанию
boneIdxint—
rotationQuaternion—
SetBonePoseScalevoid
# SetBonePoseScale
C#
public void SetBonePoseScale(int boneIdx, Vector3 scale);

Устанавливает масштаб позы кости в bone_idx на scale.

Параметры
ИмяТипПо умолчанию
boneIdxint—
scaleVector3—
SetBoneRestvoid
# SetBoneRest
C#
public void SetBoneRest(int boneIdx, Transform3D rest);

Задаёт локальную опорную трансформацию. Сам по себе не заменяет текущую позу: для возврата к новому Rest вызовите ResetBonePose или ResetBonePoses. Изменение Rest затрагивает опорную геометрию скелета; проверяйте скин и анимацию отдельно.

Параметры
ИмяТипПо умолчанию
boneIdxint—
restTransform3D—
boneIdx

Индекс существующей кости: 0 <= boneIdx < GetBoneCount(). Результат FindBone сначала проверьте на -1.

rest

Локальная опорная трансформация кости относительно родителя. Для общего пространства скелета используйте согласованное преобразование родителей.

SetBoneSkinScalevoid
# SetBoneSkinScale
C#
public void SetBoneSkinScale(int boneIdx, Vector3 skinScale);

Устанавливает размер кожи кости на bone_idx в адрес skin_scaleЭта шкала не влияет на костных детей, что полезно для изменения визуальной толщины кожи. Даже если кожа является визуально деформированной, не происходит ни масштабирования, ни перемещения костей. Это означает, что, возможно, необходимо скорректировать происхождение детской кости для синхронизации ее сустава с масштабированием путем использования BoneSpaceAdjuster3D. Примечание: Маскировка кожи может исказить внешний вид гизмо для некоторых классов скелета Модификатора, таких как SpringBoneSimular и SpringSimulator. IKModifier3D, которые зависят от длины костей для обнажения.

Параметры
ИмяТипПо умолчанию
boneIdxint—
skinScaleVector3—
SetModifierCallbackModeProcessvoid
# SetModifierCallbackModeProcess
C#
public void SetModifierCallbackModeProcess(Skeleton3D.ModifierCallbackModeProcessEnum mode);
Параметры
ИмяТипПо умолчанию
modeSkeleton3D.ModifierCallbackModeProcessEnum—
SetMotionScalevoid
# SetMotionScale
C#
public void SetMotionScale(float motionScale);
Параметры
ИмяТипПо умолчанию
motionScalefloat—
SetShowRestOnlyvoid
# SetShowRestOnly
C#
public void SetShowRestOnly(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
UnparentBoneAndRestvoid
# UnparentBoneAndRest
C#
public void UnparentBoneAndRest(int boneIdx);

Делает кость bone_idx без родительской, и устанавливает ее положение покоя в положение родительской кости перед сбросом.

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

Сигналы и события6

BoneEnabledChangedСобытие
# BoneEnabledChanged
C#
public event Skeleton3D.BoneEnabledChangedEventHandler BoneEnabledChanged;

Выдается, когда кость в bone_idx переключается с помощью Skeleton3D.SetBoneEnabled. Используйте Skeleton3D.IsBoneEnabled для проверки нового значения.

Параметры обработчика
ИмяТипПо умолчанию
boneIdxlong—
BoneListChangedСобытие
# BoneListChanged
C#
public event Action BoneListChanged;

Вызывается при изменении списка костей, например, при вызове Skeleton3D.AddBone, Skeleton3D.SetBoneParent, Skeleton3D.UnparentBoneAndRest или Skeleton3D.ClearBones.

PoseUpdatedСобытие
# PoseUpdated
C#
public event Action PoseUpdated;

Выдается при обновлении позы. Примечание: Во время процесса обновления этот сигнал не срабатывает, поэтому модификация SkeletonModifier3D не обнаруживается.

RestUpdatedСобытие
# RestUpdated
C#
public event Action RestUpdated;

Выдается при обновлении rest данных.

ShowRestOnlyChangedСобытие
# ShowRestOnlyChanged
C#
public event Action ShowRestOnlyChanged;

Вызывается при изменении значения Skeleton3D.ShowRestOnly.

SkeletonUpdatedСобытие
# SkeletonUpdated
C#
public event Action SkeletonUpdated;

Выдается, когда рассчитана окончательная поза, будет применена к skin'у в процессе обновления. Это означает, что вся обработка SkeletonModifier3D завершена. Чтобы обнаружить завершение обработки каждого SkeletonModifier3D, используйте SkeletonModifier3D.ModificationProcessed.

Поля и константы1

NotificationUpdateSkeletonПоле
# NotificationUpdateSkeleton
C#
public const long NotificationUpdateSkeleton = 50;

Уведомление получено, когда поза этого скелета должна быть обновлена. В этом случае это вызывается только один раз за кадр в отложенном процессе.

Skeleton3D.ModifierCallbackModeProcessEnum

ЗначениеОписание
Idle = 1

Установите флаг для модификации процесса во время кадров процесса (см. Entity.NotificationInternalProcess).

Manual = 2

Не обрабатывать модификации. Используйте Skeleton3D.Advance для ручной обработки модификации.

Physics = 0

Установите флаг для обработки изменений во время физических кадров (см. Entity.NotificationInternalPhysicsProcess).

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

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

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

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