reckfellENGINE

BoneMap

Карта имён: кость профиля → кость исходного скелета.

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

Например, ключ Hips профиля может хранить Pelvis исходной модели. Сначала назначьте Profile, затем задайте соответствия. BoneMap хранит данные для ретаргетинга; сам не меняет имена, позы или иерархию Skeleton3D.

Одинаковые имена не устраняют различия Rest, осей и путей анимации. Дублирующиеся назначения возможны, поэтому проверяйте карту и конкретный персонаж. Порядок работы — в ретаргетинге.

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

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

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

Создаёт карту без профиля. Сначала назначьте Profile, затем заполняйте существующие ключи профиля через SetSkeletonBoneName. Карта не содержит ссылки на конкретный Skeleton3D.

Свойства1

ProfileСвойство
# Profile
C#
public SkeletonProfile Profile { get; set; }

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

Методы5

FindProfileBoneNameStringName
# FindProfileBoneName
C#
public StringName FindProfileBoneName(StringName skeletonBoneName);

Ищет ключ профиля по имени исходной кости. При дублирующихся значениях возвращает одно из совпадений; не используйте порядок обхода как правило выбора. Отсутствие совпадения возвращает пустое имя.

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

Имя кости исходного скелета, например Pelvis. Для проверки его существования используйте Skeleton3D.FindBone отдельно.

Возвращает StringName

Найденный ключ профиля либо пустой StringName. Не индекс кости.

GetProfileSkeletonProfile
# GetProfile
C#
public SkeletonProfile GetProfile();

Возвращает тот же объект профиля, что свойство Profile, без создания копии. У новой карты профиль отсутствует, несмотря на ненулевой тип в сигнатуре SDK.

Возвращает SkeletonProfile

Текущий профиль или null, если он не назначен.

GetSkeletonBoneNameStringName
# GetSkeletonBoneName
C#
public StringName GetSkeletonBoneName(StringName profileBoneName);

Читает прямое соответствие: имя кости профиля → имя кости исходного скелета. Существующий ключ может иметь пустое значение. Не используйте произвольное имя, отсутствующее в профиле: это ошибка нативного API, а не гарантированное исключение C#.

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

Существующее имя кости в Profile, например Hips; это ключ назначения, не имя исходной кости.

Возвращает StringName

Сохранённое имя исходной кости для ключа профиля; пустое имя означает отсутствие назначения.

SetProfilevoid
# SetProfile
C#
public void SetProfile(SkeletonProfile profile);

Назначает Profile и синхронизирует ключи с его костями. Та же ссылка повторно не запускает синхронизацию через этот setter. Замена профиля не означает автоматическое заполнение имён исходного скелета.

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

Объект профиля с целевыми именами костей. Карта удерживает ссылку на ресурс; это не копирование профиля.

SetSkeletonBoneNamevoid
# SetSkeletonBoneName
C#
public void SetSkeletonBoneName(StringName profileBoneName, StringName skeletonBoneName);

Записывает имя исходной кости для существующего ключа профиля. Не проверяет наличие кости в Skeleton3D и допускает дублирующиеся значения у разных ключей. Не меняет живой скелет. Вызывает BoneMapUpdated даже при повторной записи того же значения.

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

Существующее имя кости в Profile, например Hips; это ключ назначения, не имя исходной кости.

skeletonBoneName

Имя кости исходного скелета, например Pelvis. Для проверки его существования используйте Skeleton3D.FindBone отдельно.

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

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

Событие уведомления от SetSkeletonBoneName. Оно не доказывает, что значение изменилось: повторная запись того же имени тоже уведомляет. Повторно прочитайте нужное соответствие.

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

Уведомляет о синхронизации карты после замены профиля или уведомления ProfileUpdated от самого профиля. Это отдельное событие от BoneMapUpdated; повторное назначение той же ссылки само по себе его не вызывает.

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

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

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

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