使用 Unreal Engine for Android XR 进行开发

适用的 XR 设备
本指南可帮助您为以下类型的 XR 设备打造优质体验。
扩展现实头戴设备
有线扩展现实眼镜

Unreal Engine 对 XR 开发的支持基于 OpenXR 标准,可确保 Unreal 原生支持 Android XR 支持的 OpenXR 功能。

请按照本指南了解以下内容:

  • Android XR 的虚幻引擎支持
    • Unreal Engine XR 基础知识
    • 开发和发布 Android XR 应用
    • 适用于 Android XR 的虚幻引擎插件
    • 获取支持
  • 输入和互动
  • 支持的扩展程序

Unreal Engine 对 Android XR 的支持

为 Android XR 构建 Unreal 应用时,您可以利用最新版 Unreal Engine 5 的空间计算功能。Unreal Engine 5 支持核心 OpenXR 规范,而 Android XR Extensions for Unreal 则支持 Android XR 和其他特定扩展,可帮助您快速上手。

Unreal Engine XR 基础知识

如果您不熟悉 Unreal 或 XR 开发,可以参阅 Unreal 的 XR 开发者文档,了解基本概念和工作流。以下是几个值得探索的关键领域:

开发和发布 Android 应用

Unreal Engine 提供了有关针对 Android 进行开发、构建和发布的全面文档。本文档介绍了如何在引擎中管理 Android 权限、配置 Android build 设置(通过“Project Settings”[项目设置] >“Platforms”[平台] >“Android”),以及使用 Unreal Automation Tool (UAT)。

此外,请参阅打包和分发 Android XR 应用的相关文档,了解适用于在 Google Play 商店中分发的空间应用的具体要求。确保您的应用还遵循沉浸式体验质量指南,以便在 Android XR 上提供一致且舒适的用户体验。

适用于 Android XR 的虚幻引擎插件

有两个核心插件可为构建适用于 Android XR 的 Unreal 应用提供支持。这些插件通过“Plugins”(插件)菜单(Edit [修改] > Plugins [插件])进行管理。

Android XR OpenXR 插件

Android XR OpenXR 插件是主要的引擎接口,可为 Unreal 添加 Android XR 支持。它实现了空间跟踪、环境理解和感知所需的 OpenXR 扩展。如需了解如何添加和配置此插件,请参阅虚幻引擎 OpenXR 文档。

Android XR Extensions for Unreal

Android XR Extensions for Unreal(v1.1.0,支持 Unreal Engine 5.6.x 和 5.8.x)是对基础 OpenXR 支持的补充,包含可帮助您打造沉浸式体验的其他功能,例如空间实体、空间和深度光线投射、视口羽化、光线估测立方体贴图、高级手部网格数据以及特定硬件优化。如需了解如何导入和配置此软件包,请参阅 Android XR 扩展程序快速入门或探索适用于 Unreal 的 Android XR 扩展程序 API 参考文档。

获取支持

如果您遇到问题,请参阅支持页面上的 Unreal Engine 支持部分,获取帮助。

输入和互动

打造互动式空间体验需要将物理动作映射到数字操作。Unreal Engine 使用增强型输入系统和 OpenXR 来处理运动控制器和手部追踪。通过设置输入操作和输入映射上下文,您可以创建灵活的互动(例如抓取、指向和界面导航),这些互动可在不同的 Android XR 输入法之间无缝运行。

如需了解如何构建这些机制,请参阅 Unreal Engine 关于打造互动式 XR 体验的文档。

Android XR 支持在 Unreal Engine 中使用以下特定互动方法:

互动配置文件

您可以在“项目设置”的“OpenXR”部分中配置互动配置文件。这样,您的应用就可以在不同的控制器和跟踪方法之间保持一致的输入映射。

手部互动

手部互动通过 OpenXR 手部追踪扩展程序提供。您可以通过蓝图或 C++ 中的 XR 跟踪组件访问手部关节数据和姿势。

凝视互动

视线数据可以作为标准输入姿势进行检索,让您能够驱动界面焦点或社交状态功能。这需要 android.permission.EYE_TRACKING_FINE 权限。

面部跟踪

访问实时面部表情数据,为虚拟形象制作动画或推动社交互动。此方法使用 XR_ANDROID_face_tracking 扩展程序。

支持的扩展程序

在 Unreal 中针对 Android XR 进行开发时,支持以下 OpenXR 扩展:

功能或特性 OpenXR 扩展字符串 提供者

设备锚点持久性

XR_ANDROID_device_anchor_persistence

Android XR Extensions for Unreal (v1.0.0)

Raycast

XR_ANDROID_raycast

Android XR Extensions for Unreal (v1.0.0)

可跟踪对象(平面/深度)

XR_ANDROID_trackables

Android XR Extensions for Unreal (v1.0.0)

对象轨道

XR_ANDROID_trackables_object

Android XR Extensions for Unreal (v1.0.0)

场景网格化

XR_ANDROID_scene_meshing

Android XR Extensions for Unreal (v1.0.0)

面部追踪

XR_ANDROID_face_tracking

Android XR Extensions for Unreal (v1.0.0)

眼动追踪

XR_ANDROID_eye_tracking

Android XR Extensions for Unreal (v1.0.0)

透视摄像头状态

XR_ANDROID_passthrough_camera_state

Android XR Extensions for Unreal (v1.0.0)

透视网格层

XR_ANDROID_composition_layer_passthrough_mesh

Android XR Extensions for Unreal (v1.0.0)

深度纹理

XR_ANDROID_depth_texture

Android XR Extensions for Unreal (v1.0.0)

光线估测

XR_ANDROID_light_estimation

Android XR Extensions for Unreal (v1.0.0)

光线估测立方体贴图

XR_ANDROID_light_estimation_cubemap

Android XR Extensions for Unreal (v1.1.0)

效果指标

XR_ANDROID_performance_metrics

Android XR Extensions for Unreal (v1.0.0)

推荐的解决方法

XR_ANDROID_recommended_resolution

Android XR Extensions for Unreal (v1.0.0)

手部互动

XR_EXT_hand_interaction

Android XR Extensions for Unreal (v1.0.0)

调试实用程序

XR_EXT_debug_utils

Unreal 原生 OpenXR

性能设置

XR_EXT_performance_settings

Unreal 原生 OpenXR

显示屏刷新率

XR_FB_display_refresh_rate

Unreal 原生 OpenXR

手部追踪网格

XR_FB_hand_tracking_mesh

Android XR Extensions for Unreal (v1.0.0)

Space Warp

XR_FB_space_warp

Unreal 原生 OpenXR

Equirect2 合成层

XR_KHR_composition_layer_equirect2

Unreal 原生 OpenXR

Android Thread 设置

XR_KHR_android_thread_settings

Unreal 原生 OpenXR

全局透视调暗

XR_ANDROID_global_passthrough_dimming

Android XR Extensions for Unreal (v1.0.0)

系统扩展属性

XR_ANDROID_enumerate_system_extension_properties

Android XR Extensions for Unreal (v1.0.0)

空间实体

XR_EXT_spatial_entity

Android XR Extensions for Unreal (v1.0.0)

空间平面跟踪

XR_EXT_spatial_plane_tracking

Android XR Extensions for Unreal (v1.0.0)

空间标记跟踪

XR_EXT_spatial_marker_tracking

Android XR Extensions for Unreal (v1.0.0)

空间锚点和持久性

XR_EXT_spatial_anchor、XR_EXT_spatial_persistence

Android XR Extensions for Unreal (v1.0.0)

视口羽化

XR_ANDROID_viewport_feathering

Android XR Extensions for Unreal (v1.1.0)

空间发现和深度光线投射

XR_ANDROID_spatial_discovery_raycast

Android XR Extensions for Unreal (v1.1.0)

扩展程序由以下来源之一提供:

  • Android XR Extensions for Unreal:这些是专为 Android XR 平台开发的 Google 专用扩展程序 (ANDROID) 和空间实体扩展程序 (EXT)。如需利用这些空间功能,请在 .uproject 中安装并启用 Android XR 扩展程序插件,并参阅 Android XR 扩展程序 Unreal API 参考文档,了解 Blueprint 和 C++ 用法。
  • Unreal 原生 OpenXR:这些功能利用了 Khronos (KHR)、Extension (EXT) 和 Meta (FB) 标准扩展,这些扩展已直接集成到 Unreal Engine 的核心 OpenXR 插件中并由其维护。