Разработка для Android XR с помощью Unreal Engine

Поддерживаемые XR-устройства
Это руководство поможет вам создавать продукты для таких XR-устройств.
XR-шлемы
Проводные XR-очки

Поддержка разработки XR в Unreal Engine основана на стандарте OpenXR, что обеспечивает встроенную поддержку функций OpenXR для Android XR в Unreal.

В этом руководстве вы узнаете:

  • Поддержка Unreal Engine для Android XR
    • Основы Unreal Engine XR
    • Разработка и публикация приложений для Android XR
    • Плагины Unreal Engine для Android XR
    • Поддержка
  • Ввод и взаимодействие
  • Поддерживаемые расширения

Поддержка Unreal Engine для Android XR

При создании приложений Unreal для Android XR вы можете использовать возможности пространственных вычислений последних версий Unreal Engine 5. Unreal Engine 5 поддерживает основную спецификацию OpenXR, а расширения Android XR для Unreal – Android XR и другие специальные расширения, которые помогут вам быстро начать работу.

Основы XR в Unreal Engine

Если вы только начинаете работать с Unreal или XR, ознакомьтесь с документацией для разработчиков XR, чтобы понять основные концепции и рабочие процессы. Вот несколько ключевых областей, которые стоит изучить:

Разработка и публикация приложений для Android

В документации Unreal Engine подробно описано, как разрабатывать, собирать и публиковать приложения для Android. В этой документации рассказывается, как управлять разрешениями Android в движке, настраивать параметры сборки Android (в разделе Project Settings > Platforms > Android) и использовать инструмент Unreal Automation Tool (UAT).

Кроме того, ознакомьтесь с документацией по упаковке и распространению приложений для Android XR, чтобы узнать о требованиях к пространственным приложениям, которые распространяются через Google Play. Убедитесь, что ваше приложение также соответствует рекомендациям по обеспечению качества иммерсивного контента, чтобы обеспечить стабильное и удобное взаимодействие с пользователем на Android XR.

Плагины Unreal Engine для Android XR

Для создания приложений Unreal для Android XR используются два основных плагина. Управлять ими можно в меню "Плагины" ("Изменить > Плагины").

Плагин Android XR OpenXR

Плагин Android XR OpenXR – это основной интерфейс движка, который добавляет поддержку Android XR в Unreal. Он реализует расширения OpenXR, необходимые для пространственного отслеживания, понимания окружающей среды и восприятия. Подробнее о том, как добавить и настроить этот плагин, рассказывается в документации по Unreal Engine OpenXR.

Расширения Android XR для Unreal

Расширения Android XR для Unreal (версия 1.1.0, поддерживающая Unreal Engine 5.6.x и 5.8.x) дополняют базовую поддержку OpenXR, включая дополнительные функции, которые помогут вам создавать иммерсивные возможности, такие как пространственные объекты, пространственное и глубинное трассирование лучей, растушевка области просмотра, кубическая карта оценки освещенности, расширенные данные сетки рук и оптимизация для конкретного оборудования. Чтобы узнать, как импортировать и настроить этот пакет, ознакомьтесь с кратким руководством по Android XR Extensions или изучите документацию по Android XR Extensions для Unreal API.

Поддержка

Если у вас возникнут проблемы, ознакомьтесь с разделом поддержки Unreal Engine на нашей странице поддержки.

Ввод и взаимодействие

Чтобы создать интерактивный пространственный интерфейс, нужно сопоставить физические движения с цифровыми действиями. Unreal Engine использует систему Enhanced Input в сочетании с OpenXR для обработки данных от контроллеров движения и отслеживания рук. Настроив действия ввода и контексты сопоставления ввода, вы можете создать гибкие взаимодействия, такие как захват, указание и навигация по интерфейсу, которые будут работать со всеми методами ввода Android XR.

Подробные инструкции по созданию таких механик можно найти в документации Unreal Engine по созданию интерактивных XR-продуктов.

Android XR поддерживает следующие методы взаимодействия в Unreal Engine:

Профили взаимодействия

Вы можете настроить профили взаимодействия в разделе OpenXR в настройках проекта. Это позволяет приложению поддерживать согласованное сопоставление входных данных для разных контроллеров и методов отслеживания.

Взаимодействие с помощью рук

Взаимодействие с помощью рук обеспечивается расширением OpenXR для отслеживания рук. Вы можете получить доступ к данным о суставах и позах рук через компоненты XR Tracking в Blueprints или C++.

Взаимодействие с помощью отслеживания взгляда

Данные о направлении взгляда можно получить в виде стандартного ввода, что позволяет управлять фокусом пользовательского интерфейса или функциями социального присутствия. Для этого требуется разрешение android.permission.EYE_TRACKING_FINE.

Отслеживание лиц

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

Поддерживаемые расширения

При разработке для Android XR в Unreal поддерживаются следующие расширения OpenXR:

Функция или возможность Строка расширения OpenXR Поставщик:

Сохранение якорей на устройстве

XR_ANDROID_device_anchor_persistence

Расширения Android XR для Unreal (версия 1.0.0)

Raycast

XR_ANDROID_raycast

Расширения Android XR для Unreal (версия 1.0.0)

Отслеживаемые объекты (плоскости и глубина)

XR_ANDROID_trackables

Расширения Android XR для Unreal (версия 1.0.0)

Отслеживание объектов

XR_ANDROID_trackables_object

Расширения Android XR для Unreal (версия 1.0.0)

Создание сетки сцены

XR_ANDROID_scene_meshing

Расширения Android XR для Unreal (версия 1.0.0)

Отслеживание лица

XR_ANDROID_face_tracking

Расширения Android XR для Unreal (версия 1.0.0)

Отслеживание взгляда

XR_ANDROID_eye_tracking

Расширения Android XR для Unreal (версия 1.0.0)

Состояние сквозной камеры

XR_ANDROID_passthrough_camera_state

Расширения Android XR для Unreal (версия 1.0.0)

Сквозной слой сетки

XR_ANDROID_composition_layer_passthrough_mesh

Расширения Android XR для Unreal (версия 1.0.0)

Текстура глубины

XR_ANDROID_depth_texture

Расширения Android XR для Unreal (версия 1.0.0)

Оценка освещенности

XR_ANDROID_light_estimation

Расширения Android XR для Unreal (версия 1.0.0)

Кубическая карта оценки освещения

XR_ANDROID_light_estimation_cubemap

Расширения Android XR для Unreal (версия 1.1.0)

Показатели эффективности

XR_ANDROID_performance_metrics

Расширения Android XR для Unreal (версия 1.0.0)

Рекомендуемое разрешение

XR_ANDROID_recommended_resolution

Расширения Android XR для Unreal (версия 1.0.0)

Взаимодействие с помощью рук

XR_EXT_hand_interaction

Расширения Android XR для Unreal (версия 1.0.0)

Инструменты отладки

XR_EXT_debug_utils

Unreal Native OpenXR

Настройки производительности

XR_EXT_performance_settings

Unreal Native OpenXR

Частота обновления экрана

XR_FB_display_refresh_rate

Unreal Native OpenXR

Сетка отслеживания рук

XR_FB_hand_tracking_mesh

Расширения Android XR для Unreal (версия 1.0.0)

Space Warp

XR_FB_space_warp

Unreal Native OpenXR

Композиционный слой Equirect2

XR_KHR_composition_layer_equirect2

Unreal Native OpenXR

Настройки Thread на Android

XR_KHR_android_thread_settings

Unreal Native OpenXR

Глобальное затемнение сквозной камеры

XR_ANDROID_global_passthrough_dimming

Расширения Android XR для Unreal (версия 1.0.0)

Свойства системных расширений

XR_ANDROID_enumerate_system_extension_properties

Расширения Android XR для Unreal (версия 1.0.0)

Пространственные объекты

XR_EXT_spatial_entity

Расширения Android XR для Unreal (версия 1.0.0)

Отслеживание пространственной плоскости

XR_EXT_spatial_plane_tracking

Расширения Android XR для Unreal (версия 1.0.0)

Отслеживание пространственных маркеров

XR_EXT_spatial_marker_tracking

Расширения Android XR для Unreal (версия 1.0.0)

Пространственные якоря и сохранение

XR_EXT_spatial_anchor, XR_EXT_spatial_persistence

Расширения Android XR для Unreal (версия 1.0.0)

Растушевка области просмотра

XR_ANDROID_viewport_feathering

Расширения Android XR для Unreal (версия 1.1.0)

Пространственное обнаружение и глубинная трассировка лучей

XR_ANDROID_spatial_discovery_raycast

Расширения Android XR для Unreal (версия 1.1.0)

Расширения предоставляются одним из следующих источников:

  • Расширения Android XR для Unreal. Это расширения Google (ANDROID) и расширения пространственных объектов (EXT), разработанные для платформы Android XR. Чтобы использовать эти пространственные возможности, установите и включите плагин Android XR Extensions в .uproject и ознакомьтесь с документацией по Android XR Extensions для Unreal API, чтобы узнать, как использовать Blueprint и C++.
  • Unreal Native OpenXR. Эти функции используют стандартные расширения Khronos (KHR), Extension (EXT) и Meta (FB), которые уже интегрированы и поддерживаются непосредственно в основном плагине OpenXR для Unreal Engine.