tags: [vr-ar]
Тестування комфорту використання (Comfort QA) у VR іграх
Motion sickness у VR — не субјективне ощущення, яке «у кого-то є, у кого-то немає». Це фізіологічна реакція на конкретні паттерни в русі, рендерингу та взаємодіях. Comfort QA — систематичне виявлення та усунення цих паттернів до випуску.
Meta вимагає відповідність Comfort guidelines для розміщення в Quest Store. Без прохідження Comfort QA приложення отримує рейтинг «Intense» та обмежену аудиторію, або відклоняється.
Вестибулярний конфлікт: що його викликає
Першопричина VR-укачивання — розбіжність між тим, що бачать очі, та тим, що відчуває вестибулярний апарат. Якщо у грі камера рухається, а користувач фізично стоїть на місці — конфлікт. Не всі користувачі на нього реагують однаково, але проектувати потрібно з розрахунком на чутливих.
Найчастіші триггери:
Прискорення/гальмування. Плавний рух з постійною швидкістю переноситься значно краще, ніж рух з прискоренням та гальмуванням. Телепортація (миттєвий перехід без проміжного руху) — стандартна альтернатива для locomotion-чутливих користувачів.
Горизонт roll. Коли камера нахиляється по осі Z (roll) без відповідного фізичного нахилу голови користувача — сильний триггер. Нахил літака у авіасимуляторі: або обмежувати кут roll до 15–20°, або давати користувачу опцію «stabilized horizon».
Field of View під час руху. Динамічне звуження FOV при прискоренні (Vignette effect) знижує сприйняття периферійного руху та зменшує укачивання. У Unity реалізується через Post Processing Volume з динамічним параметром Vignette.intensity, привязаним до швидкості руху персонажа.
Framerate drops. Пропуск фрейму при 90 Hz — 11 мс затримки. Регулярні дропи до 60 fps при цільових 90 — сприйняване «дергання» картинки. Для чутливих користувачів достатньо 10–15 хвилин при 60 fps замість 90, щоб отримати дискомфорт.
Методологія Comfort QA тестування
Comfort QA — не «пограли й ок». Це протокол з документуванням.
Фізичні тестувальники. Потрібні люди з різною чутливістю до VR: від «залізного шлунка» до тих, кого укачує при будь-якому locomotion. Мінімум 3–5 осіб, включаючи хоча б одного з високою чутливістю. Штучно імітувати цей параметр неможливо.
Симуляторна хвороба — Simulator Sickness Questionnaire (SSQ). Стандартизований опитувальник з 16 пунктів, розроблений NASA. Заповнюється до та після сесії. Рахуємо нормалізовані бали за трьома шкалами: Nausea, Oculomotor, Disorientation. Для Comfort QA фіксуємо SSQ після кожної сесії тестування — видна тенденція при ітераціях.
Протокол сесії. 15 хвилин безперервного активного геймплею (саме активного — статичний досвід не виявляє locomotion-триггери). Після — SSQ. Пауза 30 хвилин. Повторна сесія при необхідності. Тестувальник, у якого з'явився дискомфорт, припиняє сесію одразу — продовження погіршує стан та не дає додаткових даних.
Технічні перевірки Comfort QA
Крім субјективного тестування — автоматичні технічні перевірки:
Latency to photons. Motion to photon latency мають бути нижче 20 мс. Вимірюється через OVR Metrics Tool (режим Motion-to-Photon Latency). Вище 20 мс — видима затримка картинки за рухом голови, прямий триггер дискомфорту.
Frame time consistency. Не просто середній fps, а стандартне відхилення frame time. Нестійкий 90 fps з піками до 30 мс — гірше, ніж стійкі 72 fps. Frame time вимірюється через OVR Metrics Tool у режимі запису — дивимось гістограму, а не середнє.
Head movement tracking fidelity. Перевіряємо, що Camera.main.transform точно слідує за HMD без програмних вирівнювань. Будь-який Lerp або SmoothDamp на трансформі камери — одразу триггер. XROrigin оновлюється через XRInputSubsystem, без додаткових скриптів «покращення» руху.
Stroboscopic effects. Перелік мигаючих елементів у сцені перевіряється проти 3 Hz обмеження Meta. Особливо актуально для particle effects та shader animations.
Комфортні vs некомфортні паттерни
| Паттерн | Рекомендація |
|---|---|
| Locomotion через стик | Додати опцію телепортації, vignette при русі |
| Вільний поворот камери | Додати snap rotation (30°/45°/60° крок) як опцію |
| Roll камери > 20° | Обмежити або додати stabilized horizon |
| Масштабування об'єктів у VR-руках | Уникати зміни scale відносно HMD |
| UI з дрібним текстом | Мінімум 0.5° кутовий розмір символу |
Строки Comfort QA: від однієї тижня (аудит + базовий протокол) до 3–4 тижнів для повного циклу з ітераціями. Вартість розраховується після ознайомлення з проектом та визначення обсягу тестування.





