id: 236 slug: oculus-vrc-and-steamvr-guideline-compliance-check title_ua: "Перевірка відповідності іграв гайдлайнам Oculus VRC та SteamVR" tags: [vr-ar]
Перевірка відповідності іграх гайдлайнам Oculus VRC та SteamVR
Meta відхиляє програми по VRC (VR Check) без детальних пояснень. У листі прийде код порушення — VRC.Quest.Performance.1, VRC.Quest.Security.2 — та два тижні на виправлення. Якщо цикл ревю займає 7–10 робочих днів, одне повернення на доробку означає місяць втраченого часу. Перевірка відповідності до подачі — не формальність, а частина production pipeline.
Oculus VRC: що перевіряється та де частіше всього падають
Документ VRC налічує кілька десятків вимог, розділених за категоріями. Критичні для прохождення:
VRC.Quest.Performance.1 — стабільні 72 FPS (Quest 2) / 90 FPS (Quest 3) на рекомендованих параметрах. Meta перевіряє це на фізичних пристроях. Типові причини провалу: занадто високий Draw Call count (>300 без batching), відсутність Fixed Foveated Rendering, некорректні налаштування Eye Buffer Resolution. Для Quest 2: OVRManager.eyeTextureResolutionScale повинен бути ≤1.0 за замовчуванням.
VRC.Quest.Performance.2 — програма не повинна перегрівати пристрій. Перевіряється тестом на тепловий троттлінг за 10 хвилин. GPU-інтенсивні шейдери без LOD, постійна робота з максимальним CPU Clock — гарантований провал.
VRC.Quest.Security.1 — програма не запитує Android permissions, які не потрібні для роботи. READ_CONTACTS, ACCESS_FINE_LOCATION в AndroidManifest.xml без обґрунтування — відказ. Unity додає деякі permissions автоматично через плагіни — потрібно явно перевіряти підсумковий manifest.
VRC.Quest.Input.1 — обов'язкова підтримка Guardian System та корректна поведінка при виході з ігрової зони. Програма повинна показувати Guardian passthrough та не блокувати його власною геометрією.
VRC.Quest.Content — вимоги до контенту: немає 2D-інтерфейсу без VR-адаптації (плоскі екрани без просторового UI не проходять), немає довготривалого fade-to-black (>3 секунди без контенту), немає сцен з прискоренням вище 1.5G без попередження.
SteamVR Guidelines: відмінності від Meta
SteamVR технічно менш жорсткий за вимогами до продуктивності — немає фіксованого FPS порогу, оскільки PC-конфігурації різноманітні. Ключові вимоги:
Reprojection support. Програма повинна коректно працювати з ASW (Asynchronous SpaceWarp) та ATW (Asynchronous Timewarp). Геометрія, яка рендерится лише в один очей, або некорректні depth buffer дані — reprojection буде артефачити. Перевіряється через SteamVR Compositor Mirror з включеним Reprojection.
SteamVR Input Actions. Усі інпути повинні бути оголошені в actions.json та підтримувати rebinding через SteamVR Input Binding UI. Захардкодені кнопки без action manifest — не пройде ревю.
OpenVR SDK версія. Застарілі виклики openvr_api без перевірки null для опціональних інтерфейсів — краші на нестандартних конфігураціях.
Як будується compliance-перевірка
Автоматизований аудит. Використовуємо Oculus Platform Command Line Utility (OPCU) для базових перевірок APK без відправки в магазин. Інструмент перевіряє manifest, permissions, наявність 64-bit native libraries.
Аудит продуктивності. Прогон на цільових пристроях з OVR Metrics Tool (для Quest) або SteamVR Frame Timing (для ПК). Фіксуємо GPU time, CPU time, теплове состояние за 15 хвилин.
Ручна перевірка за чеклистом VRC. Проходимо кожен пункт документа, документуємо статус та при необхідності — спосіб виправлення.
Тест користувацьких сценаріїв. Guardian вихід, швидке зняття/надягання шолома, переходи між сценами, обробка системних сповіщень (вхідний дзвінок, low battery).
Після аудиту видаємо структурований звіт: список порушень, критичність (блокує публікацію / рекомендація), спосіб виправлення з прикладами коду.
Типові виправлення за результатами аудиту
Зайві Android permissions видаляємо через <uses-permission android:name="..." tools:node="remove"/> в кастомному AndroidManifest.xml. Це переопределяет permissions, додані Unity або плагінами.
Fixed Foveated Rendering включаємо через OVRManager.fixedFoveatedRenderingLevel = OVRManager.FixedFoveatedRenderingLevel.High — звичайно забувають включити в release build.
Action Manifest для SteamVR генерується через SteamVR Input → Save and Generate — але часто пропускають крок тестування binding UI в SteamVR параметрах.
| Тип перевірки | Орієнтовні строки |
|---|---|
| Аудит + звіт (без виправлень) | 3–5 днів |
| Аудит + виправлення типових порушень | 1–2 тижні |
| Повне супровід до прохождення ревю | 2–6 тижнів |
Вартість розраховується після первинного огляду проекту та оцінки обсягу порушень.





