Налаштування трекінгу рук та жестів в AR-іграх

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

Від імерсивних застосунків до ігрових світів і 3D-сцен

Наша виділена команда для VR/AR/MR-розробки, Unity-продакшну і 3D-моделювання та анімації — з власними кейсами і презентаціями.

Відвідати персоналізований сайт
Показано 1 з 1 послугУсі 242 послуг
Налаштування трекінгу рук та жестів в AR-іграх
Складна
~7 робочих днів
Часті питання

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

Які етапи розробки гри?

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

  • image_games_mortal_motors_495_0.webp
    Розробка гри для компанії Mortal Motors
    683
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Покрокова стратегія у фентезі сеттингу With Fire And Sword
    862
  • image_games_second_team_604_0.webp
    Розробка ігри для компанії Second term
    491
  • image_games_phoenix_ii_606_0.webp
    3D-анімація – тизер для гри phoenix 2.
    533

Настройка трекінгу рук та жестів в AR-іграх

Коли користувач бачить свої реальні руки поверх AR-контенту і може взаємодіяти з віртуальними об'єктами без контролерів — це інший рівень занурення. Але під капотом це одна з найбільш технічно нетривіальних задач в AR-розробці: відстеження 21 точки на кожній руці в реальному часі, розпізнавання жестів з неперервного потоку поз, і все це при змінюючомуся освітленню, частковому перекритті рук та русі пристрою.

Апаратна та програмна основа

Для мобільного AR (iOS/Android) основний шлях — AR Foundation з XRHandSubsystem, поданий у AR Foundation 5.x. На iOS під капотом використовується ARKit Hand Tracking (доступний з iPhone X на A12 та новіше), на Android — ARCore, але з важливим обмеженням: ARCore не має вбудованого hand tracking в основному SDK. Для Android hand tracking потрібно або використовувати пристрій з підтримкою Qualcomm Snapdragon Spaces, або інтегрувати сторонні рішення — MediaPipe Hands (працює через plugin або нативну інтеграцію) або XR Hands package від Unity з користувацьким провайдером.

Для шолемів без контролерів: Meta Quest 2/3 — через компоненти OVR Hand з Meta XR SDK або через OpenXR Hand Tracking Extension (XR_EXT_hand_tracking). Другий шлях кращий для крос-платформних проектів — один код працює на Quest, Pico, HoloLens 2 без умовної компіляції під кожен SDK.

HoloLens 2 — через Microsoft Mixed Reality Toolkit (MRTK3), який забезпечує абстракцію над WMR hand tracking та вже включає готові компоненти для pinch, grab, poke-взаємодій.

Чому розпізнавання жестів складніше, ніж здається

Розпізнавання жестів — це не просто «перевірити, сжата ли долоня». Це класифікація часового паттерну поз з урахуванням переходних станів та шуму відстеження.

Проблема перша: дрижання суглобів. Навіть нерухома рука дає коливання позицій суглобів на ±2–5 мм через шум сенсора. Якщо перевіряти жест «щипок» (pinch) за raw-позиціями великого та указного пальця — триггер будуть спрацьовувати випадково. Рішення: low-pass фільтр на позиції кожного суглоба (Kalman filter або простий exponential moving average з alpha ≈ 0.3–0.5) перед класифікацією.

Проблема друга: гістерезис порогу. Один поріг для входу і виходу зі стану жесту — шлях до миготіння стану. Правильно: поріг для активації жесту (наприклад, pinch_distance < 15 мм), і окремий, ширший поріг для дезактивації (pinch_distance > 25 мм). Це стандартна техніка, але часто забувається.

Проблема третя: часова послідовність. Жест повинен утримуватися мінімум N кадрів (зазвичай 3–5 при 30 fps) перед тим, як вважатися розпізнаним. Це фільтрує випадкові збіги при переходах між позами.

У XR Interaction Toolkit з XR Hands package є компоненти HandShape та GestureDetector, які реалізують частину цієї логіки. Але для нестандартних жестів (наприклад, «намалювати коло в повітрі» або «подвійний щипок») потрібна користувацька логіка — скінченний автомат або sequence recognizer з часовими вікнами.

Інтеграція трекінгу рук з ігровими об'єктами

Після налаштування трекінгу потрібно привязати руки до ігрової логіки. Типові взаємодії в AR: near interaction (торкнутися/натиснути об'єкт рукою) та far interaction (ray з долоні або пальця).

Для near interaction ключовий компонент — правильне налаштування Poke Interactor з MRTK або користувацький колайдер на кінчику пальця з isTrigger = true. Головна проблема: швидкість переміщення кінчика пальця при швидкому русі може бути такою, що за один кадр він переміщується на 5–10 см, проходячи крізь тонкі об'єкти без спрацювання триггера. Рішення: sweep test (SphereCast вздовж вектору руху пальця) замість простого колайдера.

Для AR-ігор на мобільних пристроях важливо враховувати, що рука періодично виходить з поля зору камери. Потрібно реалізувати graceful degradation: при втраті трекінгу руки перервати поточну взаємодію коректно, а не залишати об'єкт «зависшим» у повітрі з останньою відомою позиціонуванням.

Етапи настройки

Починаємо з вибору SDK під цільові платформи та пристрої. Це визначає 80% подальшої архітектури.

Потім настройка базового hand tracking: імпорт суглобів, візуалізація скелета для отладки, перевірка якості відстеження на цільових пристроях при різних умовах освітлення.

Далі: реалізація жестів (починаючи з pinch як базового interaction trigger), інтеграція з interactable-об'єктами, тонка настройка фільтрів та порогів.

Фінальний етап — тестування на реальних користувачах. Жоден розробник не передбачить всі варіанти того, як люди тримають руки.

Задача Орієнтовні терміни
Базовий hand tracking (pinch + grab) 1–2 тижні
Користувацький набір жестів (5–10 жестів) 2–4 тижні
Повна система взаємодії без контролерів 4–8 тижнів

Вартість розраховується після аналізу платформ та необхідних взаємодій.