Особенности VR-разработки. Часть 1 — С чего начать?
Совсем скоро состоится релиз нашей игры Playground VR в Steam. В этом блоге мы хотим поделиться особенностями разработки игр в виртуальной реальности (их у нас уже две!), а также рассказать и о других наших играх. А еще всех подписчиков ждет регулярная раздача ключей.
VR Игры
Только в Steam насчитывается около 5000 игр для виртуальной реальности, к которым относятся как эксклюзивы для VR, так и адаптированные к новой технологии старые игры.
Playground VR уже можно найти в Steam и добавить в вишлист!
Концепция VR-проекта
Первый шаг в создании VR-игры вашей мечты — поиск или генерация свежей идеи игры. На этом этапе необходимо подготовить сценарий игры, которым вы можете поделиться со своим разработчиком. Кроме того, либо вы, либо нанятый продюсер игры должны работать над геймдизайн-документом. Не стоит забывать, что эта работа обычно входит в стоимость разработки VR-игры.
Ответьте на вопрос — в чем уникальность вашего проекта и почему необходимо использовать именно VR? Определите «фишки» игры.
В Playground VR, например, основой геймплея является свободное взаимодействие с окружением без потели эффекта погружения.
Перемещение на большие расстояния осуществляется за счёт ручных ракет — так решается одна из основных проблем передвижения в VR, а игрок не теряет погружения.
Выберите целевое устройство
В зависимости от выбранного устройства будет строиться не только вся разработка, но и определяться размер аудитории продукта. Обычно VR игры в зависимости от устройства делят на 5 категорий:
● Легкий мобильный VR, такой как Google Cardboard и подобные решения
● Премиум Мобильный VR (Gear VR, Daydream и др.)
● PC VR-гарнитуры (Oculus Rift, HTC Vive, Windows Mixed Reality и др.)
● Автономные решения (Oculus Go, Oculus Quest)
● Консольный VR (Sony PlayStation VR)
Разрабатывая игру для VR приходится балансировать между размером аудитории и иммерсивностью игры.
Выбор игрового движка
Чаще всего при разработке игр для VR выбирать приходится между двумя стульями движками — Unity и Unreal Engine. Каждая из них имеет свои преимущества, подробное сравнение движков для VR провели circuitstream, мы огласим краткую выжимку из этого материала.
Преимущества Unity:
● Unity хорош как для кросс-платформеных решений, так и для сложных проектов;
● Количество ассетов в Unity Asset Store в пять раз больше, чем в Unreal Engine Marketplace;
● Более крупное сообщество разработчиков.
Преимущества UE:
● Большее количество визуальных эффектов «из коробки»;
● Лучше подходит для крупных проектов ААА-уровня;
● Система Blueprints является отличным решением для новичков.
На самом деле сейчас обе платформы совершенствуются до такой степени, что нет никакого видимого различия между визуальным качеством, которое они могут производить.
Мы в свою очередь сделали выбор в пользу Unity 3D, так как он лучше подходит для быстрого прототипирования и переноса игры на различные платформы.
Исследование и выбор платформы
Создание VR-игры также имеет свои особенности с точки зрения создания прототипа. Необходимо убедиться, что это игра интересна для игроков, поэтому нужно проводить регулярные тесты после каждой итерации. Если для игр с классическим управлением паттерны поведения игрока давно изучены, то для игр в виртуальной реальности проблема выстраивания между игроком и игрой системы взаимодействия решается прямо сейчас. И вы можете принять участие в развитии совершенно новой индустрии, разве это не круто?
Еще один важный шаг: опубликовать свою игру на платформе, где игроки смогут ее найти. Маркетплейсы обычно обеспечивают ряд требований, которые игра должна удовлетворить, чтобы быть представленной общественности.
Вы можете опубликовать свою игру самостоятельно. А еще лучше выбрать издателя, который сможет подсказать и помочь на каждом этапе разработки.
Игры с дополненной и виртуальной реальностью
Создано в играх, используется в самых разных отраслях для разработки инновационного AR/VR-контента. Гибкая платформа реального времени открывает безграничные возможности для реализации вашего творческого потенциала.


Build immersive VR experiences
Build engaging games, tell interactive stories, transport people to new worlds by building virtual reality (VR) experiences with Unity.
Reach most headsets with multiplatform support. Achieve amazing graphics with flexible graphics pipelines, and build complex multiplayer experiences with advanced performance tools.

Tools for VR developers

Platform support
Build for SteamVR, Meta Quest, PlayStation® VR, and more. Optimized graphics, profiling tools, and the XR Interaction toolkit help streamline development and reduce cross-platform coding requirements.

Creative graphics
Build impressive VR games that run across different hardware requirements. Unity’s Universal Render Pipeline (URP) allows for smooth VR games that hit 90hz.

Performance that scales
Accessible for beginners and built for pros, the Unity real-time development platform helps you get started with VR templates and reduce coding with visual scripting. Advanced developers can use Unity DOTS, Addressables, and customize their graphics pipeline to squeeze even more performance.
Success stories

Zenith by RamenVR
How does a small, remote team create a massively multiplayer online role-playing game in VR? With a flexible development platform, robust DevOps tools, and the support of an active community, Ramen VR launched Zenith: The Last City, a well-optimized, multiplatform VR MMO that’s delighting players and ushering in a new era of gaming.

Bonfire by Baobab
Bonfire is a cinematic virtual reality (VR) movie that enables viewers to become actual participants. Learn how Emmy Award-winning Studio Baobab brought this crazy adventure to life with Unity.

I Expect you to Die 2
In this blog post, Schell Games shares a behind-the-scenes look at how they leveraged Unity to create an immersive, elite spy experience in VR while using Scriptable Render Pipeline to achieve a unique visual style.
Разработка VR приложений под Oculus Quest 2 на Unity
Пост написан: 20 февраля 2021 , обновлен: 12 сентября 2021
Автор: @Pavel419
https://vr419.ru/wp-content/uploads/2021/02/Превью-1.jpg
Как и ранее с Карбордом, мне захотелось слепить какую-нибудь демку для Квеста. Пока что вопросов больше, чем ответов, но, в этом посте я собрал полезные ссылки, которые помогут вам начать разрабатывать под Oculus Quest свою первую игру. Ну и поделюсь какими-то соображениями, которые у меня уже появились.
С чего начать
Прямо с вот этой статьи от Oculus, которую сходу фиг найдешь. Там по пунктам рассказывается, что и как делать, чтобы сделать своё первое приложение (да, в конце у вас будет APK для установки в Oculus Quest).
В начале статьи есть пять подготовительных шагов, разберем их чуть подробнее. Первые ссылки из той статьи кинут вас на эту статью, где всё это разобрано по шагам и со скринами. Я не буду переводить всё, разберу только неочевидные вещи, которые помешали мне сделать первую сборку.
ВАЖНО : Про это нигде не написано явно, но, не забудьте перед старом установить Oculus софт, т.к. в конце сборки Unity постоянно его запускает. При этом, сам Квест для создания APK вам вообще не нужен. А вот для тестирования — уже да. Возможно, билдиться сборка будет и без окулус-софта, я не проверял, у меня он установлен.
Разрешить режим разработчика для шлема
Если вы читали мой гайд по запуску Oculus Quest 2, этот режим у вас уже будет активирован для работы с SideQuest. Если нет — то вот этот момент. Почитайте, там ничего сложного. Эта штука даст вам устанавливать на шлем файлы из неизвестных источников.
Установить Unity
Всё подробно расписывают тут же, там прямо скрины, что нам нужно установить, правда, почему-то там нет Microsoft Visual Studio, ее так же ставьте, если у вас нет подобного редактора (оно будет в вверху на этом скрине):

Необходимые компоненты Unity
Настроить окружение Unity
У них это три шага: создать проект, установить параметры сборки и включить поддержку VR. Я опишу свой алгоритм:
Создаем проект в Юнити-Хабе, выбрав 3D;
В свойствах сборки (File -> Build Settings) выбираем Android и задаем компрессию текстур в ASTC:

Параметры сборки Unity для Oculus Quest
Жмем Switch Platform (оно может думать несколько минут, пока будет переключаться, в зависимости от вашего ПК, это нормально) — эта кнопка будет у вас там, где у меня Build на верхнем скрине;
В Edit > Project Settings выбираем XR Plugin Management и там выбираем галочку для Oculus (так врубаем поддержку VR);
В Edit > Project Settings > Player прописываем разработчика и название приложения;

Настройки автора и названия приложения
В табе андроида (стрелка 3 на предыдущем скрине) в Other settings в разделе Identification пишем уникальное имя пакета андроид. Это важно, оно должно быть уникальным, к тому же, если вы далее будете вносить изменения в ваше приложение и снова устанавливать его в шлем, вам не придется удалять старую версию, за счет имени пакета она будет просто перезаписываться.
Там же ставим Minimum API Level — 23 (6,0 Marshmallow) — это важно, т.к. первую ошибку при сборке я поймал именно потому, что не была указана эта штука.
Там же ставим: Install Location — Automatic
Всё это на следующем скрине:

Настройки пакета для Oculus Quest
Сделать первое приложение
А дальше идете по статье, с которой мы начали. Оно на инглише, но, переводчик в помощь, я пробовал, у меня получилось. Единственное, что при сборке была ошибка о том, что не указана версия андирода, я говорю об этом в прошлом пункте. На выходе у вас должно получиться что-то вот такое (APK будет далее в примерах):
Установить приложение на Oculus Quest
Если шлем у вас подрублен кабелем к ПК и настроен весь софт, то по идее кнопка в Unity Build and run вам всё и установит и запустит. Но, я так не пробовал, т.к. не хочу подрубать шлем к компу по кабелю. Ну и точно не хочу, чтобы он всё время висел на проводе, пока я что-то делаю в Unity, хотя в теории это и более удобно, если хочешь что-то сразу тестировать в самом шлеме.
Изначально я ставил свои APK через SideQuest (я уже про него упоминал, ему нет разницы, будешь ты ставить приложение из их магазина или свою поделку). Там же описан способ работы сайдквеста по беспроводу, почитайте вобщем, зря писал чтоли.
Но, в итоге я пришол к более удобному, как мне кажется, способу установки своего APK на Oculus Quest (и совсем без проводов!).
- Настраиваем FTP на шлеме, для беспроводной передачи APK.
- Ставим на Квест какой-то файлменеджер, например, этот.
- Далее, через FTP (в моём случае — это просто вкладка в ТоталКоммандере на ПК) закидываем на шлем наш APK-файл, и через установленный файлменеджер его открываем. В случае с указанным менеджером оно спросит, чем открыть APK, выбираем «Файлы» (да, внутри Квеста, оказывается, есть свой менеджер файлов, только он скрыт).
- Оно откроет приложение «Файлы», в нем снова ищем наш APK и открыаем снова, и вот теперь оно предложит его установить, предварительно предупредив, что файл может быть вредоносным.
- Устанавливаем файл, никуда не переходим! У нас сразу появится кнопка «Открыть», жмем ее и запускаем наше приложение. (Если что, оно потом будет в незивестных источниках, его оттуда можно удалить).
- Профит!
Теперь, когда у нас настроена связка: ПК -> шлем порядок работы прост. Изменили что-то в Unity, сделали сборку, залили по FTP на шлем, взяли в руки шлем, там у нас всё еще открыто окно «Файлы» с нашей папкой, куда мы закидывали APK, просто жмем на него и оно запишет новое приложение поверх старого (т.к. мы не меняли имя пакета).
Так очень быстро и просто можно проверять изменения, которые вы вносите в приолжение, и вам вообще не нужен кабель!
Есть еще способ через ODH, но про него далее, тем более, что у меня он не заработал.
Интеграция пакета Oculus в Unity
После того, как вы сделаете первое приложение, вы увидите, что:
- Камера жестко прибита к голове;
- Вы не можете перемещаться по этому миру;
- И вообще не ясно, что делать дальше.
А дальше вам понадобится вот эта штука Oculus Integration Package — пакет префабов и заготовок от Oculus для вашей дальнейшей разработки. Чтобы его установить, делаем следующее:

- В Unity жмем Ctrl + 9 (или идем в меню Window -> Asset store);
- В окно поиска вводим oculus integration, листаем, пока не найдем нужный нам пакет:
- Переходим внутрь, жмем Download, ждем, пока оно скачается. После этого Download сменится на Import, жмем эту кнопку.
- Далее, выбираем нужные нам компоненты вот в этом окне. Там много всего, для простейшей разработки нам понадобится только секция VR, но в первый раз можете импортировать всё, ваш проект на диске разопрет где-то до гигабайта, это его нормальное состояние:

Выбирайте только нужное

Ассеты Oculus
Там есть и демо-сцены, и разные модельки, и готовые префабы, покопайтесь.
ВАЖНО : в какой-то момент при импорте Unity скажет, что вы качаете новый плагин для VR и не обновить ли старый — соглашаемся обновить.
Как заставить игрока ходить и смотреть по сторонам
Для этого нужно добавить в сцену префаб OVR Player Controller, который лежит вот тут:

Учим игрока ходить
Само собой, у вас в сцене не должно быть других камер и других подобных префабов. В лучшем случае, оно просто не заработает, в худшем при сборке начнет выдавать ошибки.
После добавляения этой штуки в проект и создания сборки для квеста вы сможете ходить внутри мира и крутить головой по сторонам.
Как сделать плавный поворот
В описанном выше префабе убрать эту галочку Snap rotation:

Делаем плавный поворот для игрока
Теперь крутиться в VR мире куда приятнее. Там же можете посмотреть и другие настройки.
Как оценить производительность игры на Oculus Quest 2
А это важно, т.к. когда я пытался переделать демку с башней, она у меня просто начала тормозить, хотя, даже на Карборде работало же как-то через пень колоду. Думаю, всё дело в слишком детализированной земле. В конце я приложу APK, чтобы вы поняли, о какой тупке я говорю)
Потому, когда вы поставите свое приложение, у вас возникнет вопрос, тянет его Квест или нет (а там может быть 35 FPS, хотя будет казаться, что все 90). У нас есть для этого внутренний инструмент Окулкуса, который можно активировать двумя способами.
Активируем OVR Metrics на шлеме
Эта штука дает нам, например, глянуть, в каком разрешении работают экраны, сколько оперативной и видео-памяти занято и свободно и т.п. Вам понадобится вот эта софтина, OVR Metrics Tool. Там скачивается архив и дальше из него достаем апк-шку и ставим через СайдКвест (ну или выше описанным мной методом).
Вот статья по работе с этой тулзой, там инглиш, но с переводчиком разберетесь. В самом простом случае просто запускаем установленную софтину в неизвестных источниках и оно покажет нам оверлей с параметрами вроде загрузки CPU, рабочего разрешения экранов и прочего в таком роде. Там всё это можно настраивать, оно даже графики писать умеет.
Интересный факт: по дефолту Oculus Quest 2 работает с разрешением 1440 (ширина) и 1584 (высота) пикселей на глаз, можете проверить. Товарищ на Реддите ставил заявленные 1832*1920 и некоторые игры начинали тормозить…
Про Oculus Developer Hub
Это такая штука, которая в теории должна облегчать жизнь разработчику.
Качаете софтину, подрубаете шлем кабелем к ПК, даете внутри шлема все нужные разрешения, когда оно спросит и после этого у вас на ПК можно будет:
- Стримить видео со шлема;
- Делать скрины со шлема;
- Видеть состояние шлем — заряд, заряд контроллеров, загрузка железа и т.п.
- Можно ставить приложения через эту софтину, но, работает только по кабелю. Для этого нужно перетащить ваш APK в зону с приложениями из неизвестных источнчинков.
Так же, эту штуку можно заставить работать по Wi-Fi, если установить галочку вот тут:

Активируем Wi-Fi для ODH
Ну и из нее же можно делать настойку оверлея для OVR Metrics, про который я писал выше.
ВАЖНО : всё глючное и сырое. Оверлей в шлеме может зависать, может не отображаться, до перезагрузки шлема и т.п. Будьте готовы к этому. Те же приложения через ODH по вайфаю у меня ставиться отказались, так что, я остался на способе FTP -> Файл менеджер.
Но, кому-то эта штука может пригодиться.
Полезные ссылки
Здесь кое-что, может вам пригодиться.
- Стартовая статья, с которой мы начали, после нее вы сможете сделать своё первое приложение с шариком;
- Установка пакета Oculus на Unity;
- ВидеоКурс из 11-ти бесплатных уроков от Oculus и Unity, после которого вы сделаете свою первую игру в стиле «выберись из комнаты» (англ.);
- Стартовая статья на сайте Oculus про разработку под Oculus Quest (по сути, это главная всего раздела про разработку);
- Магазин ассетов Unity (но он так же доступен и в самом приложении Unity, из него мы ставили пакет Oculus);
- Простой и полезный первый урок по Unity на YouTube, из него вы узнаете основы интерфейса, как перемещаться по сцене и т.п.
Для начала этого более чем достаточно.
Мои примеры
Немного демок, чтобы вы глянули, что должно получаться.
Пример с шариком
Уже было, но напомню еще раз, это то, что у вас должно выйти после первой статьи:
Чтобы перемещать шарик, используйте левый стик на таче. То, что камера прибита ко взгляду — так и должно быть.
Темная Башня
Которая не смогла. Точнее, землю я перенести смог из старого проекта, но, уже увидев, что оно не тянет, понял, что лучше не продолжать:

И вышла она не тёмной, а белой, т.к. без текстур
Если подойти к краю, там хорошо видно, что шлем начинает подтормаживать. Если у вас активирован оверлей овр-метрики, то там будет 35 FPS. Далее, я пробовал еще деревья добавить, это был ад, 1-5 FPS, с большим трудом вообще вышел из приложения без перезагрузки.
Демка со слоном и мышом
Еще с лета остались модельки, и я решил пустить их в ход. Если что, для импорта из Blender нужно, чтобы сам файл блендера лежал у вас в ассетах проекта. Тогда его будет видно и в окне в Unity и вы сможете использовать модельки оттуда. Но, материалы всё равно придется делать уже в Unity.
В данном случае, пол сделан как раз с помощью нескольких карт, потому так круто смотрится, а ведь по факту — одна плоскоть! Слава PBR!
Модельки остались еще с прошлого изучения Blender, вполне себе пригодились для демонтсрацци.
Что дальше (подводя итог)
А дальше думаю, как всегда, немного поколупаю и пойду заниматься чем-то еще, как это часто бывает. Т.к. есть вопросы, ответы на которые найти непросто, да и лень искать. Это же был стартовый пост, который вполне может пригодиться вам для быстрого начала в изучении разработки под Oculus Quest.
- Почему я решил обновиться на Oculus Quest 2 с Oculus Rift S
- Какие приложения/игры установить/купить для Oculus Quest 2
- Что делать после покупки Oculus Quest 2: пошаговый гайд
- Аксессуары для VR шлема Oculus Quest 2 — что можно докупить?
- Полезные фишки по работе с Oculus Quest 2
- Проблемы с Oculus Quest 2 и способы их решения
- Трекинг рук на Oculus Quest 2: как это работает + список демок
- Интересные игры и приложения из SideQuest для Oculus Quest 2
- Как смотреть видео с ПК на Oculus Quest 2 через SKYBOX
- Firefox Reality — лучший браузер для Oculus Quest 2 и просмотра YouTube в VR
С вами был @Pavel419., до новых постов!
Рубрика: Блог о виртуальной реальности (ПК VR)
Метки: Всё про Oculus Quest 2
Мой VR-Канал на YouTube
Популярные записи
- Что делать после покупки Oculus Quest 2: пошаговый гайд
- UEVR — универсальный VR инжектор для игр на UE4 и UE5
- VR шлем Pico 4 — ожидание и реальность
- Ещё десять моих любимых VR игр
- Как запускать VR ПК игры на Oculus без Steam VR и зачем это нужно?
- Новости виртуальной реальности за 2023 год
- Запуск «плоских» игр в VR: VorpX и другие решения
- Как устанавливать моды на Skyrim VR + список модов и возможные проблемы
Свежие записи
- Что купить из VR игр в Steam: часть 9 07.01.2024
- Новости виртуальной реальности за 2024 год 07.01.2024
- UEVR — универсальный VR инжектор для игр на UE4 и UE5 05.01.2024
- Ещё десять моих любимых VR игр 03.12.2023
- Мой новый VR дом (замена Oculus Home) 03.11.2023
- Скайбоксы (окружения) для VR шлема Quest 2 11.06.2023
- VR-Игры, которые мне подарили (часть 3) 16.02.2023
- Новости виртуальной реальности за 2023 год 06.01.2023
Полезное для ПК VR

Подборка статей

Подборка статей

VR-канал в Telegram
VR клубы на карте России
Новости VR 2024

Помочь проекту

Каталог игр для Cardboard

Популярные файлы
- Сравнение шлемов VR для смартфона (16 кб.)
- Инструкция для джойстика-брелка (1,4 Мб.)
Как сделать vr игру в юнити
Искать на сайте Unity
Начинаем работу с виртуальной реальностью! Примеры и полезные статьи
9 декабря 2015 г. через Игры | 5 мин. читать

Расширить

Расширить
Охваченные темы
Поделиться
Is this article helpful for you?
Thank you for your feedback!
Виртуальная реальность — горячая тема для обсуждения. Совсем недавно на выставке PlayStation Experience демонстрировалась PlayStation VR, а система GearVR от Oculus и Samsung вышла в продажу. Многие разработчики на Unity уже работают с новой платформой и создают игры, интерактивные истории и инструменты, не имеющие аналогов.
Технологии VR все больше и больше становятся доступными при одновременном снижении их стоимости, и мы в Unity хотим помочь начать работать с VR как можно большему числу разработчиков. Мы видим в VR великолепную возможность погружения игроков и зрителей в новые увлекательные миры. И мы планируем, помимо развития VR-функционала в редакторе Unity, распространять контент и обучающие материалы, которые помогут в работе с VR.
Наш первый шаг в этом направлении — проект Virtual Samples и новый раздел Virtual Reality на страницах «Изучение» нашего сайта. Эти материалы призваны облегчить начало работы с VR, а также продемонстрировать образцы простых VR-игр.
VR Samples: демонстрация
VR Samples сделан в стиле продукта для конечного пользователя: он состоит из меню и четырех мини-игр. Он распространяется через Asset Store, поддерживает Oculus Rift DK2 и Gear VR и использует Unity 5.3 и выше. В будущем мы добавим поддержку дополнительных платформ.
В самом начале дается описание в виде набора коротких сцен, после чего можно выбрать мини-игры из меню.
Пользователь располагается в центре круга из дугообразных экранов, с помощью которых он выбирает игру. Экран, на который пользователь смотрит в данный момент, показывает стилизованную версию соответствующей игры. Для заполнения полосы загрузки и запуска игры надо удерживать кнопку «огонь».