Налаштування XR Interaction Toolkit: конфігурація під ваші механіки

При запуску VR-проєкту на Unity з XR Interaction Toolkit ви стикаєтеся з тим, що взаємодії працюють нестабільно, батч-рейт падає, а об'єкти не захоплюються правильно. Ми, команда сертифікованих інженерів з понад 5 роками досвіду в геймдеві, допомагаємо налаштувати XRIT так, щоб механіки були плавним

Наші компетенції

Інші послуги студії

VR/AR/MR застосунки на замовлення

Вражайте клієнтів і навчайте команду у віртуальній реальності

Розробка ігор на Unity

Від ідеї до релізу — ігри, які запам'ятовуються

3D-моделювання та анімація

Оживимо ваш продукт в об'ємній графіці та анімації

VR-тренажери промислового обладнання

Тренуємо операторів на техніці без ризику і простою

AR-інструкції для виробництва

Покрокові підказки прямо на обладнанні — без паперу

Safety-тренажери

Відпрацювання НС і техніки безпеки без виходу на об'єкт

VR/AR-тренінги

Навчаємо персонал сервісу, адаптації та soft skills у VR

Навчальні вікторини

Перевірка знань у форматі гри — легко і без стресу

Корпоративні відеоінструкції

Зрозумілі ролики для навчання співробітників і клієнтів

Гейміфікація бізнес-процесів

Мотивуємо команду через ігрові механіки в KPI та HR

Застосунки для інфокіосків

Інтерактивні екрани для магазинів, стендів і офісів

VR/AR-інсталяції

Wow-ефект для брендів на виставках, івентах і в шоу-румах

Віртуальні виставки та музеї

Ваша експозиція доступна з будь-якої точки світу — 24/7

Event-квести та брендовані ігри

Незабутні ігри для конференцій та клієнтських івентів

Часті запитання

Останні роботи

  • image_games_mortal_motors_495_0.webp
    Розробка гри для компанії Mortal Motors
    1504
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Покрокова стратегія у фентезі сеттингу With Fire And Sword
    1005
  • image_games_second_team_604_0.webp
    Розробка ігри для компанії Second term
    635
  • image_games_phoenix_ii_606_0.webp
    3D-анімація – тизер для гри phoenix 2.
    716
  • image_training-quizzes_kids_shopping_quiz_614_0.webp
    Навчальна вікторина для дітей «Покупки в магазині»
    95

При запуску VR-проєкту на Unity з XR Interaction Toolkit ви стикаєтеся з тим, що взаємодії працюють нестабільно, батч-рейт падає, а об'єкти не захоплюються правильно. Ми, команда сертифікованих інженерів з понад 5 роками досвіду в геймдеві, допомагаємо налаштувати XRIT так, щоб механіки були плавними та продуктивними. Отримайте консультацію з налаштування XRIT — це зекономить до 2 тижнів на етапі інтеграції та знизить витрати на подальші доопрацювання.

Правильний вибір версії XRIT та уникнення прихованих проблем

XRIT 2.x та 3.x — це фактично різні системи. Версія 3.x переписала Input handling з Legacy Input Manager на нову Input System, змінила архітектуру Interactor/Interactable, додала Affordance System для візуальних станів. Якщо проєкт розпочато на 2.5, а документацію читали для 3.0 — частина API просто не існує або працює інакше.

Перед початком налаштування: зафіксуйте версію XRIT у manifest.json, переконайтеся, що Input System Package (com.unity.inputsystem) версії ≥ 1.6, і що XR Plugin Management налаштовано під цільові платформи. Без явного вказання OpenXR Loader або Oculus XR Plugin у XR Plug-in Management багато компонентів XRIT просто не ініціалізуються без зрозумілого повідомлення про помилку.

Чому XR Origin — джерело більшості проблем з позиціонуванням?

Корінь усієї VR-сцени — XR Origin. Неправильне його налаштування — причина 80% проблем з позиціонуванням та масштабом.

Tracking Origin Mode має відповідати типу гри. Floor — для room-scale, гравець стоїть на підлозі, Y=0 це реальна підлога. Device — для stationary, початок координат там, де шолом при старті. Якщо обрати неправильно, аватар гравця опиниться або під підлогою, або в повітрі — і це не баг у геймплейному коді, а одне налаштування в XROrigin.RequestedTrackingOriginMode.

Camera Floor Offset Object — проміжний об'єкт між XR Origin та Camera Offset. Його Y-позиція в Device-режимі задає віртуальну висоту очей (зазвичай 1.5–1.8 м). У Floor-режимі його Y = 0.

Структура ієрархії: XR Origin → Camera Offset → Main Camera (шолом) + LeftHand Controller + RightHand Controller. Додавати ігрові об'єкти безпосередньо в Camera Offset — погана практика: вони будуть рухатися з головою. Елементи, які мають бути у світі — мають бути у світовому просторі, не в дочірніх об'єктах XR Origin.

Як перевірити Attach Transform у три кроки

  1. Створіть дочірній порожній об'єкт на XRGrabInteractable, розташуйте його в точці хвату (наприклад, рукоять меча).
  2. Перетягніть цей об'єкт у поле Attach Transform компонента XRGrabInteractable.
  3. Переконайтеся, що при захопленні об'єкт опиняється в правильній позиції відносно контролера. Якщо ні — підкоригуйте локальні координати Attach Transform.

Налаштування XRGrabInteractable під конкретні механіки

Стандартний XRGrabInteractable працює з коробки для простих випадків. Для нестандартних — потрібно розуміти його внутрішню будову.

Movement Type визначає, як об'єкт слідує за рукою:

  • Instantaneous — телепортується до позиції attach point кожен кадр. Немає фізики, немає плавності. Підходить для інтерфейсних елементів.
  • Kinematic — Rigidbody переміщується через MovePosition/MoveRotation. Коректно взаємодіє з іншими Rigidbody та колайдерами, але може «проходити» крізь статичні colliders при високій швидкості.
  • VelocityTracking — об'єкт отримує velocity, яка тягне його до цільової позиції. Найбільш «фізичний» варіант, найкращий для об'єктів, які можуть бути заблоковані іншими об'єктами. Вимагає тонкого налаштування TrackingSpeed та TrackingRotationSpeed.

Для зброї зазвичай VelocityTracking з TrackingSpeed = 12–15 та окремою обробкою кидка через SelectExited event + Rigidbody.AddForce з розрахунком velocity з історії позицій за останні 5 кадрів (просто current velocity контролера дає неточний кидок).

Attach Transform — критично важливий параметр, який часто не налаштовують. Без явного Attach Transform об'єкт прикріплюється до позиції контролера — це правильно лише якщо хват має бути біля основи. Для меча attach point має бути біля рукояті; для пістолета — біля рукоятки з правильним кутом. Створюємо порожній child-об'єкт з потрібною позицією та ротацією, призначаємо в поле Attach Transform.

Socket Interactor для розміщення об'єктів

XRSocketInteractor — для механік «покласти об'єкт на полицю/у слот». Часті проблеми: об'єкт стрибає при snapping якщо Snap Threshold занадто великий (рекомендуємо 0.1–0.2 м), або snap не відбувається, якщо Interactor Layer Mask не збігається з тегами Interactable. Перевіряємо: на XRSocketInteractor Interaction Layer Mask має включати шари всіх об'єктів, які можна покласти в слот.

Для складних механік (зброя з модулями, головоломки зі складанням) стандартний Socket часто недостатній — пишемо кастомний Interactor з наслідуванням від XRBaseInteractor, перевизначаємо CanHover та CanSelect з додатковими умовами (тип об'єкта, орієнтація, стан).

Ray Interactor для UI та дистанційної взаємодії

XRRayInteractor + XRUIInputModule для взаємодії з World Space Canvas. Типова проблема: ray проходить крізь UI-елементи або спрацьовує на елементи за іншими елементами. Рішення: правильний sorting layer на Canvas та Blocked Physics Raycasts = true на GraphicRaycaster.

Для ігрових об'єктів XRRayInteractor в парі з XRInteractableSnapVolume дає «притягування» променя до центру об'єкта при наближенні — покращує точність взаємодії з дрібними об'єктами без зміни колайдера.

Вибір Interactor залежить від сценарію. XRGrabInteractable дає повний контроль з фізикою, але вимагає тонкого налаштування для нестандартних механік. XRSocketInteractor простий у налаштуванні для слотів, однак гнучкість обмежена. XRRayInteractor зручний для UI, але точність нижча при дистанційній взаємодії.

Що входить у роботу з налаштування XRIT?

Ми надаємо:

  • Аналіз існуючої конфігурації XRIT та виявлення вузьких місць
  • Налаштування XR Origin під конкретний сценарій використання (room-scale / stationary)
  • Конфігурацію XRGrabInteractable, XRSocketInteractor, XRRayInteractor під ваші механіки
  • Кастомні Interactors для унікальних механік (наприклад, зброя, головоломки)
  • Оптимізацію продуктивності: зниження draw calls на 20–30%, налаштування LOD та culling
  • Документацію з налаштувань та навчання команди
  • Підтримку на етапі інтеграції
Етап Орієнтовні терміни Орієнтовна вартість
Базове налаштування XRIT (grab + ray + socket) 3–5 днів від 500$
Кастомні Interactor/Interactable під механіки 1–2 тижні від 1000$
Повна система взаємодій для гри 3–6 тижнів індивідуально

Вартість розраховується після аналізу ігрових механік та цільових платформ. Правильне налаштування економить до 2 тижнів на етапі інтеграції.

Чому варто довірити налаштування XRIT професіоналам?

Наша команда — сертифіковані інженери з 5+ років досвіду та 20+ успішних VR-проєктів. Наш підхід у 2 рази швидше стандартної конфігурації. Ми використовуємо перевірені практики: фіксовані версії пакетів, правильну ієрархію сцени, налаштування фізичних параметрів. Гарантуємо якість налаштування та підтримку.

Якщо хочете отримати стабільну систему взаємодій — зв'яжіться з нами для консультації. Ми оцінимо ваш проєкт і запропонуємо оптимальну конфігурацію, яка зекономить час та ресурси.

Згідно з документацією XR Interaction Toolkit, правильна ієрархія сцени та налаштування Attach Transform критичні для коректної роботи.