Содержание статьи (кликабельно)
Всем привет, с вами @Pavel419!
Сегодня статья для тех, кто хочет кастомизировать свой «Дом» на Quest 2 и кому мало стандартных окружений. Эта тема мне еще на ПК нравилась, но, на ПК свой дом надо запускать (и не всегда используешь ПК), а в Квесте его видишь автоматически, когда надеваешь шлем. Т.е., это окружение должно радовать и имеет смысл повозиться с ним.
Если вы хотите более простой вариант кастомизации вашего Квеста, почитайте мою другую статью про замену скайбоксов в родных окружениях, это проще чем то, о чём речь пойдет далее в этой статье
Как сменить окружение на Quest 2
Для начала я покажу, как можно сменить окружение на уже готовые окружения из SideQuest (их там наклепали вагон, возможно, вам этого вполне хватит):
По сути, там всё просто: идем в каталог окружений на SideQuest, выбираем понравившееся и устанавливаем как обычное приложение (об этом у меня есть большой подраздел в моем гайде для новичков). Далее, меняем его в разделе настроек «Персонализация».
Но, как быть, если вы хотите сделать своё окружение? Это рассмотрим далее
Полезные ссылки и софт
Посмотрите этот плейлист с обучалками на Ютюбе, или зайдите в дискорд для разработчиков Домов на Quest 2. Здесь нужно пролистать в самый верх, кроме того, там же слева увидите и тег с тулзами, которые нам нужны, а именно:
- Рекомендуемый инструмент для создания сред: Blender 2.83 LTS;
- Конвертор окружений;
- Пустышка для Blender (QuestCustomEnviromentStartup.blend или похожее название, либо там просто листайте вниз до последнее ее версии);
Вообще, все актуальные ссылки на софт и на Blender-пустышку ищите в Дискорде, они часто обновляются.
Ограничения и рекомендации
Взято с их дискорда и переведено автоматом) Будьте внимательны, если вы не будете им следовать, скорее всего, у вас будут ошибки либо при создании, либо про работе окружения уже внутри шлема!
Геометрия:
- До 200 000 треугольников (чем меньше, тем лучше, особенно при использовании огромных текстур);
- Только одна UV-карта для каждого объекта;
- Поддерживается несколько материалов на одном объекте;
Текстуры:
- До 8192×8192 пикселей (всегда используйте формат текстуры степень 2);
- Прозрачность: Альфа-клип и альфа-смешивание поддерживаются с помощью альфа-канала текстуры png;
- Поддерживаются только неосвещенные текстуры. Для освещения вы должны «испечь» свои текстуры;
- Никаких пробелов и, лучше всего, никаких необычных специальных символов в именах файлов текстур (Quest GLTF-Viewer не может это прочитать);
- Для многих текстур будет нарушена окружающая среда. Держитесь как можно ниже (я не понял, что они имели ввиду, видимо то, что с некоторыми текстурами могут быть проблемы и они будут выглядеть не так, как вы ожидаете);
- Работает только шейдер principled BSDF;
- Начиная с прошивки 35.x.x.xxx и выше, поддерживаются материалы PBR (металлические, шероховатости или карты нормалей) -> будьте осторожны, вы получили высокое влияние на производительность!
Анимация:
- Поддерживается трансформация и деформация костей (для многих ключевых кадров будет нарушена окружающая среда);
НЕ поддерживается:
- Вторая UV-карта;
- Световые карты;
- Цвета вершин;
- UV-анимация (UV-прокрутка или деформация);
- нет поддержки UDIM;
Советы и рекомендации:
- Проектируйте среду с учетом игрового пространства размером 2 м х 2 м (6,5 футов х 6,5 футов) и убедитесь, что ничто не мешает пользовательскому интерфейсу;
- Используйте как можно меньше отдельных материалов, чтобы предотвратить выбраковку. Текстурный атлас — ваши друг;
- Объединение / слияние сеток вместе;
- Объединение вершин по расстоянию / удаление двойников, чтобы избавиться от перекрывающихся вершин;
- Увеличьте масштаб ультрафиолетовых островков в центральном игровом пространстве, чтобы повысить качество текстуры;
- Преобразование текстур в KTX с помощью environment converter для ускорения загрузки;
Как-то так. Ну и далее — чего как делать.
Как сделать свое окружение для Quest 2
ВАЖНО: Вы делаете всё на свой страх и риск! В теории можно сделать нерабочую среду, которая завесит ваш шлем. На крайняк — всегда можно сделать общий сброс устройства.
Хотя, в Дискорде они пишут, что эти манипуляции сломать шлем не могут:
Окружающая среда не может уничтожить ваш Квест, это просто 3D-данные, а не исполняемый файл. Что бы ни пошло не так, вы всегда можете это исправить
Будем надеяться, что так оно и есть)
По факту я словил баг в самом конце, когда попытался сделать еще одно окружение без звука. При переключении на него шлем стал показывать серый экран и периодически выбрасывать ошибку приложения «Shell что-то там». Ну, очевидно, что не мог прочитать почему-то то, что я ему скормил. Я уже решил, что придется делать сброс, однако, всё оказалось проще:
если что-то пошло не так — просто удаляем через SideQuest установленное нами окружение (его можно будет найти по имени пакета) и перегружаем шлем! После этого он должен загрузиться в родном окружении с пляжем (или что там за окружение, которое всегда после перепрошивки бывает, ну вы поняли)
Итак, общий процесс:
- Качаем конвертор окружений, Blender и пустышку для него по ссылкам выше;
- Делаем на основе пустышки наш Дом, соблюдая ограничения из раздела выше;
- Экспортируем проект из Blender в папку Build конвертера и выбираем для экспорта «Separate GLB«;
- Запускаем конвертор, конвертим!
- После этого через SideQuest или другими способами (можно даже самим конвертором, но, я не пробовал) — заливаем наш APK на шлем;
- Наш дом должен появиться вместе со всеми окружениями в разделе настроек «Персонализация», если нет — перегружаем шлем!
- Удаляется он в «Неизвестных источниках», его там можно будет найти по имени пакета;
Я не стал делать скрины, но, сделал видос на эту тему, чтобы наглядно всё показать:
Заключение
В целом, тема прикольная и достаточно простая (сейчас, когда сделали конвертор, инструкции и не надо заменять внутренние среды самого шлема). Правда, для этого нужно уметь моделировать в Blender как минимум.
У меня есть и другие статьи для разработчиков, возможно они вам пригодятся
А у меня на этом всё, с вами был @Pavel419, до новых постов и до встречи на Ютюбе!