Начало работы с виртуальной реальностью

Недавно я приобрел Oculus Quest 2, довольно удивительное оборудование.

Я программист и геймер. До этого я никогда не использовал VR, но, очевидно, видел много примеров Unreal’s Engine во многих играх. Мне нравится программировать, и у меня есть несколько визуальных идей, которые я хотел бы видеть в VR. Я узнал, что двумя основными фреймворками, используемыми большинством устройств VR, являются Unity и Unreal. Я выбрал Unreal, поскольку он основан на C ++, и у меня уже есть опыт работы с этим языком.

В восторге от попытки написать свои первые программы для виртуальной реальности, я просмотрел несколько онлайн-руководств по быстрому запуску, но не нашел ни одного, которое работало бы с Quest 2. Хотя есть несколько руководств для Oculus Quest и Unreal Engine 4, ни одно из них не было исчерпывающим. или достаточно свежи, чтобы начать работу. Наиболее полное руководство, которое я нашел, было здесь:

Https://developer.oculus.com/documentation/unreal/unreal-quick-start-guide-quest/

В этом руководстве, написанном Oculus, рассказывается, как начать работу с Oculus Quest (1), и его стоит прочитать, чтобы получить общее представление. К сожалению, у Oculus нет нового руководства для Quest 2, а в руководстве Quest 1 выше не указаны правильные версии программного обеспечения для Quest 2, Unreal Engine и даже для общей настройки.

Итак, после долгих исследований и экспериментов я собрал свои уроки ниже, чтобы помочь другим начать работу быстрее.

Совет 1. Используйте Android Studio, чтобы получить Android SDK 29 и NDK 21.3

Многие из устаревших руководств рекомендуют Android API версии 24, но Quest 2 - это Android OS 10, поэтому вам следует использовать версию 29. Если вы пропустили настройку Android Studio в кратком руководстве, посмотрите здесь:

Https://docs.unrealengine.com/en-US/SharingAndReleasing/Mobile/Android/Setup/AndroidStudio/index.html

Выберите нужную версию Android Software Development Kit (SDK) в разделе «Настроить» - ›Конфигурация SDK. Здесь вам следует выбрать версию 29.

Вам необходимо связать SDK с соответствующим Native Development Kit (NDK). В этом случае нажмите «Инструменты SDK» в конфигурации SDK, а затем нажмите «Показать сведения о пакете», чтобы развернуть выбор. Установил версию 21.3.

Вам также может потребоваться установить Java SDK, если у вас его еще нет. У меня уже был установлен OpenJDK 12, и это хорошо сработало. Я подозреваю, что все, что угодно версии 8+, должно работать.

Совет 2: сборка в Windows

Обычно я предпочитаю программировать в Linux. Разработчику доступно гораздо больше инструментов, и вы можете «использовать всю коробку», а не те ограничения, которые Windows накладывает на отдельные процессы. Это резко ускоряет разработку.

Я несколько раз пытался заставить это работать в Linux, особенно в дистрибутиве Mint, но это гораздо более длинный путь. Поскольку Unreal не имеет встроенного движка для Linux, они требуют, чтобы вы собирали его из репозитория кода. Одна только эта сборка заняла несколько часов, и каждая итерация, которую я пробовал, занимала еще несколько часов без какого-либо успеха из-за времени ожидания начальной установки Unreal Engine после его сборки. Я вернусь и попробую позже и обновлю это руководство, если оно у меня заработает.

Чтобы быстро начать работу, используйте Windows 10. Это позволяет вам использовать двоичный параметр, указанный в кратком руководстве по началу работы с Oculus, которое я указал выше.

Короче говоря, я смог использовать последнюю выпущенную версию Unreal Engine 4 через Epic Games Launcher. Несколько онлайн-руководств по разным причинам предложили использовать более старые версии, но в Quest 2 все они устарели. Получите самую свежую информацию.

Совет 3. Укажите версии сборки в Unreal Engine.

В шаге 8 раздела Настройка Unreal Engine для разработки под Android Краткого руководства по началу работы с Oculus указано использование Android SDK 23 в качестве минимальной версии и 25 в качестве целевой версии. Опять же, с Quest 2 под управлением Android 10 я установил как минимальную, так и целевую версии на Android 29.

В шаге 10 того же раздела говорится, что Unreal Engine выберет расположение по умолчанию для Android SDK, Android NDK и Java SDK. Я обнаружил, что это не всегда работает, но это легко указать вручную. Найдите установленный Java SDK и используйте эту версию в своих настройках. Android Studio должна установить Android SDK в папку AppData / Local / Android / Sdk вашего пользователя, а Android NDK - в папку AppData / Local / Android / Sdk / ndk / ‹номер версии› вашего пользователя.

Совет 4: будьте терпеливы, но осторожны

Unreal Engine не всегда сообщает о том, что он делает в фоновом режиме. Если вы обнаружите, что ждете вечно, проверьте диспетчер задач. Разверните задачи в Unreal Engine, и вы можете обнаружить, что запущено несколько потоков. Это может быть построение шейдеров или построение самого проекта. Если они есть, пока Unreal Engine заморожен, просто подождите.

И будьте терпеливы. На создание шейдеров в первый раз могут уйти часы, а на повторное построение проекта или шейдеры, если что-то пойдет не так, может потребоваться 30 минут или больше.

У меня определенно что-то пошло не так несколько раз, когда я экспериментировал с платформой! Иногда это была проблема сборки, когда Unreal неправильно обнаруживал дублирующиеся ресурсы или терял доступ к adb или другие странные проблемы. Если сборка постоянно срывается, даже когда все остальное кажется правильным, вы можете удалить папки Intermediate и Saved в своем проекте. Это заставит Unreal перестроить их, что снова займет очень много времени, но это простой выход из некоторых возникающих странных конфликтов.

Другая проблема возникает, когда Unreal некорректно очищается при закрытии. Иногда он оставляет работающим Android Studio (Unreal Engine основан на Android Studio) или adb.exe (который взаимодействует с вашим устройством Android) или различные другие задачи OVR или Epic. Если они работают, хотя сам Unreal Engine закрыт, возможно, вы не сможете снова запустить Unreal Engine. Возможно, вам придется убить эти задачи вручную из диспетчера задач, и как только вы это сделаете, вы сможете снова запустить Engine.

Совет 5. Не пытайтесь использовать базовый проект VR Unreal Engine.

В своем стартапе Oculus предлагает начать с пустого проекта, и они правы. База VR-проектов просто не работает. Вам придется создавать многие тонкости с нуля (или, по крайней мере, из других руководств), но, по крайней мере, вы сможете создавать и развертывать.

Если вам нужна помощь, чтобы начать работу с самим Unreal Engine, я обнаружил, что следующие руководства выполнены очень хорошо:

Https://www.raywenderlich.com/771-unreal-engine-4-tutorial-for-beginners-getting-started

Совет 6. Магические числа дают вам «Масштабирование комнат»

Есть много вещей, которые вы можете сделать, чтобы получить отличные впечатления от виртуальной реальности, но главная из них - использование местоположения гарнитуры для «автоматической» настройки поля зрения пользователя. Это помогает лучше погрузиться в воду и уменьшить тошноту.

Однако не сразу было очевидно, как добиться этого, и ответ - это особая установка для ваших пешек:

  • Создайте новую пешку Blueprint
  • Под корневым элементом сцены по умолчанию в этом чертеже добавьте еще одну сцену и назовите ее VRCameraRoot (например)
  • В VRCameraRoot добавьте камеру и назовите ее VRCamera (например)
  • Каждый из них должен быть масштабирован до 1 и установлен на 0,0,0 в соответствующих окнах деталей.
  • Убедитесь, что «Lock to Hmd» отмечен в разделе «Параметры камеры» VRCamera.
  • Добавьте Set Tracking Origin в график событий пешки, убедитесь, что Origin установлен на «Floor Level», и вызовите его из Event BeginPlay.
  • Когда вы кладете пешку, убедитесь, что вы разместили ее на высоте «0» (или на любой другой высоте пола, которую вы используете).

Это может показаться немного странным, поскольку пол делит камеру вашего VR-персонажа пополам, но это то, что Quest 2 и Unreal Engine используют в качестве подсказки, чтобы знать, что он должен подстраиваться под высоту Quest 2 (настраивается Quest 2, когда вы устанавливаете свой Oculus Guardian вверх).

Совет 7: получайте удовольствие

Как всегда, получайте удовольствие, создавая крутые новинки! Я новичок в Unreal Engine, поэтому весь этот метод кодирования «Blueprint» довольно интересен. Тем не менее, после выполнения описанных выше шагов я начал работать настолько быстро, насколько позволяла компиляция шейдеров. Вот несколько примеров того, что мне удалось построить:

Первым делом я построил шкаф. Действительно! Я планирую переоборудовать странное место в спальне в более крупный шкаф, но это странный размер даже для туалета. Я настроил его в виртуальной реальности, чтобы увидеть, каково это, идя в космос. Я решил, что это действительно полезный размер!

Во-вторых, я начал играть с эффектами, фоном и движением. Я создал космическую сцену с вращающимися «планетами», по которым я мог ходить.

Я, вероятно, продолжу развивать эту сцену VR в мини-игру RTS. Мне нужно многому научиться в Unreal и VR, и наличие проекта всегда помогает! Quest 2 - одна из самых продвинутых VR-гарнитур, доступных сегодня. Хотя это будет быстро меняться, базовые навыки для создания сцен VR будут полезны в течение некоторого времени. Выберите проект и приступайте к делу!

Citizen Upgrade - это сообщество экспертов в области технологий, общества и личного развития. Посетите нас на нашем сайте, в Facebook или Twitter. Присоединяйтесь к нашему списку рассылки, чтобы получить доступ к большему количеству интересного контента и другим полезным ресурсам.