Быстрый старт разработки для Oculus Quest 2 на Unreal Engine 4

Совсем недавно приобрел Oculus Quest 2, который является довольно удивительным устройством.

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

Быстрый старт Oculus Quest 2 и Unreal Engine 4

С нетерпением ждал возможности написать мои первые программы для VR, просмотрел несколько кратких руководств онлайн, но не нашел ни одного, который бы помог с 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) находится в разделе Configure -> SDK Configuration (Настройка -> SDK Конфигурация). Здесь вы должны выбрать версию 29.

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

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

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

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

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

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

Короче говоря, я смог воспользоваться последней версией Unreal Engine 4 через Epic Games Launcher. Несколько онлайновых руководств предлагали использовать старые версии по разным причинам, но с Quest 2 все они устарели. Используйте последнюю версию.

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

Шаг 8 раздела «Настройка Unreal Engine для Android Development» из краткого руководства 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 снова. Вам, возможно, придется убить эти задачи вручную из диспетчера задач, и как только вы это сделаете, вы сможете снова запустить Unreal Engine.

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

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

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

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

Совет 6: Магические числа

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

Однако не сразу понятно, как это сделать, и ответ на этот вопрос — настройка для вашей пешки (pawn):

  • Создать новую пешку Blueprint.
  • Под «Default Scene Root» в этом сценарии, добавьте другую сцену и назовите ее «VRCameraRoot» (например).
  • В разделе VRCameraRoot добавьте камеру и назовите ее VRCamera (например).
  • Каждый из перечисленных выше элементов должен быть масштабирован до 1 и установлен на 0,0,0 в соответствующих окошках.
  • Убедитесь, что в разделе «Camera Options» (Параметры камеры) VRC-камеры установлен флажок «Lock to Hmd» (Блокировка в Hmd).
  • Добавьте 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, чтобы увидеть, каково это — находиться в этом пространстве. И решил, что на самом деле это довольно удобный формат!

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

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

Источник: codeburst.io

Об авторе

Mishganitto
На сайте с 25 июля 2018

Новости VR / AR