reckfellENGINE

Компоненты XR: модели рук и сторонние пакеты

Рабочий риг, pose и tracking, ввод и проверка сторонних пакетов без вымышленных загрузок.

На этой странице

Поддержка XR даёт tracking, позы и ввод контроллеров. Захват предметов, телепортацию, анимацию рук и взаимодействие с меню нужно реализовать отдельно. Начните с рабочего рига, затем добавляйте свои механики или проверенный сторонний пакет. Для этого раздела скачивать toolkit не требуется.

Подготовьте рабочий риг

Выполните настройку XR и обработку запуска. До добавления взаимодействий проверьте изображение в гарнитуре и обработку фокуса.

Отслеживаемые Entity размещайте непосредственно под XROrigin3D. Модели — под соответствующим контроллером:

Текст
XROrigin3D
├── XRCamera3D
├── XRController3D (left_hand, grip)
│   └── Entity3D (visual offset)
│       └── MeshInstance3D
└── XRController3D (right_hand, grip)
    └── Entity3D (visual offset)
        └── MeshInstance3D

Сначала задайте Tracker, затем Pose: смена Tracker сбрасывает Pose в default. Для левого контроллера используйте left_hand, для правого — right_hand; для модели удерживаемого предмета выберите grip. Это имена tracker и pose, а не файлов ресурсов. Доступную позу aim используйте для направления указателя, если её предоставляют настроенная карта действий и runtime.

Подгоняйте модель локальным трансформом дочернего Entity. Не исправляйте смещение модели перемещением отслеживаемого контроллера каждый кадр: обновления pose заменяют его локальный трансформ. Для проверки расположения достаточно MeshInstance3D; руке со скелетной анимацией дополнительно нужны модель, скелет и логика анимации. Дочерняя модель сама по себе не добавляет tracking пальцев или коллизии.

Свяжите ввод с механикой

Создайте нужную карту действий. Читайте действия по точным внутренним именам через IsButtonPressed или GetVector2. Булево действие select можно использовать для выбора; действию движения Vector2 нужны подходящие привязки для целевых профилей контроллеров. Минимальная карта выбора Simple Controller не предоставляет стики.

Различайте три условия:

УсловиеЧто оно подтверждает
HasFocus из примера запускаВспомогательный скрипт сообщает о фокусе; это не свойство XRController3D
GetIsActive()У выбранного tracker есть указанная pose
GetHasTrackingData()Для выбранной pose сейчас есть данные tracking

После потери tracking контроллер может сохранить последний трансформ, а GetIsActive() — остаться true. При невалидном tracking прекращайте пространственные взаимодействия; неподвижная модель не подтверждает наличие актуальных данных. Без tracker чтение ввода возвращает нейтральные значения: по ним одним нельзя отличить отключение устройства от отпущенной кнопки. ShowWhenTracked меняет видимость только при наличии основного XR-интерфейса; разрешение взаимодействий контролируйте отдельно.

Для коллизий игрока и управления origin перейдите к room scale. Модель руки не создаёт коллайдер игрока и не мешает физической голове пересечь виртуальную геометрию.

При динамической смене Pose есть подтверждённый дефект: SetPoseName не пересчитывает GetHasTrackingData(), и после выбора отсутствующей pose может остаться true. Получите GetPose(), проверьте null и HasTrackingData самой pose. Предпочтительно настроить Tracker и Pose до обработки ввода. Фокус приложения проверяется отдельно.

Подключите сторонний пакет

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

Используйте реальные файлы и инструкцию выбранного пакета. У плагина редактора есть plugin.cfg; импорт моделей или игрового префаба сам по себе не всегда требует включения плагина редактора. Ошибки загрузки скриптов нужно разбирать: сначала первая ошибка, отсутствующие типы и пути, затем зависимости. Это не нормальный результат успешной установки.

Сравните проект до и после подключения: запуск, позы обоих контроллеров, потерю и восстановление tracking, ввод, потерю фокуса и экспортированную сборку. Оставьте одного владельца перемещения и коллизий игрока: два скрипта, двигающих origin, будут конфликтовать. Если пакет не проходит эти проверки, сохраните рабочий риг и подключайте только нужную механику.

Что проверено

Двенадцать проверок установленного Windows runtime использовали искусственный XRControllerTracker: передачу pose, трансформы дочернего Entity, именованный ввод, потерю tracking, смену и удаление tracker. Они не подтверждают tracking настоящей гарнитуры, качество моделей, сторонний пакет, установку в редакторе или экспортированную сборку. Этот раздел не подтверждает наличие скачиваемого универсального набора XR Tools.

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

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

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

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