
Техническое сотрудничество Epic Games и Pico сделало движок с последним крупным обновлением Unreal Engine — версию 5.8 — заметно удобнее для разработчиков, которые создают приложения для очков Pico, главных конкурентов практически монопольной линейки Quest и популярного гаджета в российском государственном и корпоративном секторе.
Теперь приложения для Pico можно собирать, компилировать, запускать и тестировать без установки дополнительных внешних плагинов.
Базовый процесс выглядит так:
- Установите Unreal Engine 5.8 и убедитесь, что вместе с ним установлены шаблоны проектов, наборы функций и Android
- Запустите Unreal Engine 5.8 и создайте новый проект на основе ВР-шаблона
- Настройте Android SDK. Это можно сделать автоматически одним нажатием или вручную. Подробная инструкция есть в документации Epic Games
- Соберите проект, упакуйте его и установите на очки или в эмулятор
Почему это возможно только в UE 5.8
Прежде всего, Unreal Engine 5.8 получил более полную поддержку стандарта OpenXR. Движок содержит необходимые настройки Android-проектов для создания универсальных OpenXR-приложений.
Кроме того, в него вошёл новый интегрированный плагин Pico Controller. Он автоматически включается в ВР-шаблонах и содержит готовые привязки кнопок и действий для контроллеров Pico. Разработчикам больше не нужно всегда настраивать их вручную или подключать дополнительные пакеты, если устраивают базовые настройки.


Почему Pico всё равно рекомендует установить свой плагин
Несмотря на появление встроенной поддержки, компания по-прежнему рекомендует загрузить и подключить Pico Unreal OpenXR Plugin через магазин Fab. На это есть несколько причин.
Доступ к фирменным функциям Pico
Многие возможности очков Pico работают только через фирменный Pico Unreal OpenXR Plugin. Например, отслеживание всего тела и ряд специфических функций вендора.
Встроенная реализация OpenXR в Unreal Engine предоставляет лишь базовые возможности и общие функции, поддерживаемых несколькими производителями, например, отслеживание рук и стереослои.
Более высокая производительность рендеринга
Если Pico Unreal OpenXR Plugin не установлен, движок может использовать для вывода изображения формат пикселей B8G8R8A8. После установки формат меняется на R8G8B8A8 (обратите внимание на первый символ).
Для разработчика это небольшая техническая деталь, однако процессоры Pico обрабатывают второй формат быстрее и тратят меньше времени на рендеринг каждого кадра.
По данным Pico, при работе приложения на частоте 90 Гц разница в производительности может достигать примерно 14 кадров в секунду. Условия измерения компания не приводит.
При включении фирменного плагина движок выбирает более подходящий для устройств Pico формат R8G8B8A8. До UE 5.8 Pico Unreal OpenXR Plugin использовал параметр r.DefaultBackBufferPixelFormat=4 для принудительного выбора R8G8B8A8 в качестве резервного формата.

Исправление проблем совместимости
Если использовать встроенную поддержку UE 5.8 без плагина Pico, могут возникнуть проблемы совместимости с расширением OpenXR (XR_KHR_vulkan_swapchain_format_list). В этой конфигурации существует известная проблема совместимости, которая может приводить к сбоям на Pico 4 и Pico Neo3. Проблема не затрагивает Pico 4 Ultra и грядущие Project Swan.
Подключение Pico Unreal OpenXR Plugin устраняет проблему и обеспечивает корректную работу приложений на всех перечисленных устройствах. Для разработчиков, которые не хотят использовать фирменный плагин, у Pico есть обходное решение: блок XR_KHR_vulkan_swapchain_format_list.

Оптимизации
Pico Unreal OpenXR Plugin также содержит ряд небольших, но полезных оптимизаций.
UE 5.8 и фирменная интеграция Pico позволяют точнее управлять дополнительными функциями OpenXR. В частности, параметр xr.OpenXRAllowDepthLayer отключает передачу слоя глубины, если она не нужна приложению. В текущем базовом сценарии Pico этот слой не требуется, а его включение создаёт дополнительную нагрузку.
Исключением стало устройство Project Swan, где функция проверки глубины композиционных слоёв может быть необходима. В этом случае параметр следует включить вручную.
В итоге получается следующая картина. Unreal Engine 5.8 позволяет собирать и запускать базовые OpenXR-приложения на устройствах Pico без установки внешнего фирменного плагина. Движок использует встроенные компоненты OpenXR и штатный плагин контроллеров. Но Pico Unreal OpenXR Plugin по-прежнему нужен для доступа к части функций, более подходящих настроек рендеринга и устранения проблем совместимости на отдельных устройствах.
И у разработчиков есть понятный выбор.
Не пропускайте важнейшие новости о дополненной и виртуальной реальности — подписывайтесь на Голографику в Telegram, MAX, ВК и X! Поддержите проект на Boosty.
Далее: Apple выпустила внушительное руководство по разработке пространственных аксессуаров для Vision Pro





