tags: [vr-ar]
Тестирование комфорта использования (Comfort QA) в VR играх
Motion sickness в VR — не субъективное ощущение, которое «у кого-то есть, у кого-то нет». Это физиологическая реакция на конкретные паттерны в движении, рендеринге и взаимодействиях. Comfort QA — систематическое выявление и устранение этих паттернов до выпуска.
Meta требует соответствие Comfort guidelines для размещения в Quest Store. Без прохождения Comfort QA приложение получает рейтинг «Intense» и ограниченную аудиторию, либо отклоняется.
Вестибулярный конфликт: что его вызывает
Первопричина VR-укачивания — несоответствие между тем, что видят глаза, и тем, что чувствует вестибулярный аппарат. Если в игре камера движется, а пользователь физически стоит на месте — конфликт. Не все пользователи на него реагируют одинаково, но проектировать нужно с расчётом на чувствительных.
Самые частые триггеры:
Acceleration/deceleration. Плавное движение камеры с постоянной скоростью переносится значительно лучше, чем движение с ускорением и торможением. Телепортация (мгновенный переход без промежуточного движения) — стандартная альтернатива для 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 недель для полного цикла с итерациями. Стоимость рассчитывается после ознакомления с проектом и определения объёма тестирования.





