Налаштування трекінгу рук і жестів в AR-іграх: від SDK до фільтрації
Ми часто стикаємося з ситуацією: розробник намагається зробити керування без контролерів, але отримує сіпання пальців, хибні спрацьовування жестів та вильоти при втраті трекінгу. Розберемо, як налаштувати стабільний hand tracking в AR-проектах — від вибору SDK до просунутих фільтрів. Спираємося на реальний досвід впровадження в мобільних та standalone-шоломах.
Апаратна та програмна основа
Для мобільного AR (iOS/Android) основний шлях — AR Foundation з XRHandSubsystem (доступний з AR Foundation 5.x). На iOS під капотом використовується ARKit Hand Tracking (A12+), на Android — ARCore не має вбудованого hand tracking, тому доводиться використовувати MediaPipe Hands або XR Hands package з кастомним провайдером. Для шоломів без контролерів: Meta Quest 2/3 — через OVR Hand або OpenXR Hand Tracking Extension (XR_EXT_hand_tracking). Другий варіант кращий для кроссплатформених проектів — один код працює на Quest, Pico, HoloLens 2. На HoloLens 2 використовуємо Microsoft Mixed Reality Toolkit (MRTK3).
Чому жести складніші, ніж здається?
Розпізнавання жестів — класифікація часового патерну поз з урахуванням перехідних станів та шуму трекінгу. Основні проблеми:
- Тремтіння joints: навіть нерухома рука дає коливання ±2–5 мм. Рішення — low-pass фільтр (Kalman або exponential moving average з alpha ≈ 0.3–0.5).
- Threshold hysteresis: один поріг входу/виходу дає мерехтіння. Ставимо поріг активації (pinch_distance < 15 мм) та деактивації (пінч > 25 мм).
- Temporal consistency: жест має триматися мінімум 3–5 кадрів (при 30 FPS) до розпізнавання.
Для нестандартних жестів (коло в повітрі, подвійний щипок) пишемо кастомний скінченний автомат або sequence recognizer з часовими вікнами.
Як інтегрувати трекінг рук з ігровими об'єктами?
Два основних типи взаємодії: near interaction (фізичний дотик) та far interaction (промінь з долоні або пальця). Для near interaction ключовий момент — sweep test замість простого колайдера на кінчику пальця, інакше при швидкому русі (швидкість до 10 см/кадр) об'єкт проскакує. Для far interaction використовуємо промінь з центру долоні з урахуванням occlusion: якщо об'єкт перекритий реальною рукою, не реагуємо.
Важливо: при втраті трекінгу руки (вихід з поля зору) реалізуємо graceful degradation — перериваємо взаємодію коректно, не залишаємо об'єкт завислим. Використовуємо таймаут та плавне згасання візуалізації.
Порівняння платформ за продуктивністю
| Платформа | SDK | Затримка трекінгу | Точність (мм) | Кроссплатформенність |
|---|---|---|---|---|
| iOS | ARKit Hand Tracking | 10–15 мс | ±2 | Ні |
| Android | MediaPipe Hands (CPU) | 20–30 мс | ±3 | Частково (кастомна інтеграція) |
| Quest 2 | OpenXR Hand Tracking | 8–12 мс | ±2 | Так (через XR_EXT_hand_tracking) |
| HoloLens 2 | MRTK3 | 15–20 мс | ±3 | Так (WMR універсально) |
OpenXR Hand Tracking в 2–3 рази швидше OVR Hand на Quest при кроссплатформенності.
Етапи налаштування
- Аналіз платформ та пристроїв — визначає 80% архітектури.
- Базовий hand tracking — імпорт joints, візуалізація скелета для налагодження, перевірка при різному освітленні.
- Реалізація жестів — починаючи з pinch як базового trigger, налаштування фільтрів та thresholds.
- Інтеграція з interactable-об'єктами — налаштування collider, sweep test, far interaction ray.
- Тестування на реальних користувачах — жоден розробник не передбачить всі варіанти положення рук.
Що входить в роботу
- Вибір та налаштування SDK (AR Foundation, OpenXR, MediaPipe) під цільові пристрої
- Реалізація базового набору жестів (pinch, grab, point, swipe)
- Кастомні жести за ТЗ (до 10 унікальних)
- Інтеграція з ігровими об'єктами (near/far interaction)
- Оптимізація: зниження draw calls, batching, occlusion culling
- Документація та навчання команди
- Пост-релізна підтримка 30 днів
Наш досвід — 10+ років в AR/VR, 50+ проектів з hand tracking. Сертифіковані спеціалісти з Unity та Unreal Engine. Гарантуємо стабільність трекінгу на всіх цільових пристроях. Замовте аналіз вашого проекту — ми підберемо оптимальний стек та налаштуємо фільтри.
Орієнтовні терміни
| Завдання | Терміни |
|---|---|
| Базовий hand tracking (пінч + захоплення) | 1–2 тижні |
| Кастомний набір жестів (5–10 жестів) | 2–4 тижні |
| Повна система взаємодії без контролерів | 4–8 тижнів |
Вартість розраховується індивідуально після аналізу проекту. Зв'яжіться з нами для консультації — оцінимо задачу та запропонуємо оптимальне рішення під ключ. Отримайте консультацію спеціаліста з трекінгу рук.






