使用 Unreal Engine for Android XR 进行开发

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

Unreal Engine 对 XR 开发的支持基于 OpenXR 标准构建,确保 Android XR 支持的 OpenXR 功能在 Unreal 中得到原生支持。

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

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

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 设置(通过“项目设置”>“平台”>“Android”)以及使用 Unreal Automation Tool (UAT)。

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

适用于 Android XR 的 Unreal Engine 插件

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

Android XR OpenXR 插件

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

适用于 Unreal 的 Android XR 扩展

Unreal 的 Android XR 扩展程序是对基本 OpenXR 支持的补充,包含其他功能,可帮助您打造沉浸式体验,例如高级手部网格数据和特定硬件优化。如需了解如何导入和配置此软件包,请按照 Android XR 扩展程序快速入门操作。

获取支持

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

输入和互动

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

如需有关构建这些机制的全面指南,请参阅 Unreal Engine 关于打造互动式 XR 体验的文档。

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

互动配置文件

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

手部互动

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

凝视互动

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

面部跟踪

访问实时面部表情数据,为虚拟形象添加动画效果或推动社交互动。此功能使用 XR_ANDROID_face_tracking 扩展服务。

支持的扩展程序

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

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

设备锚点持久性

XR_ANDROID_device_anchor_persistence

适用于 Unreal 的 Android XR 扩展

Raycast

XR_ANDROID_raycast

适用于 Unreal 的 Android XR 扩展

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

XR_ANDROID_trackables

适用于 Unreal 的 Android XR 扩展

对象跟踪

XR_ANDROID_trackables_object

适用于 Unreal 的 Android XR 扩展

场景网格化

XR_ANDROID_scene_meshing

适用于 Unreal 的 Android XR 扩展

面部跟踪

XR_ANDROID_face_tracking

适用于 Unreal 的 Android XR 扩展

眼动追踪

XR_ANDROID_eye_tracking

适用于 Unreal 的 Android XR 扩展

透视摄像头状态

XR_ANDROID_passthrough_camera_state

适用于 Unreal 的 Android XR 扩展

透视网格层

XR_ANDROID_composition_layer_passthrough_mesh

适用于 Unreal 的 Android XR 扩展

深度纹理

XR_ANDROID_depth_texture

适用于 Unreal 的 Android XR 扩展

光照估计

XR_ANDROID_light_estimation

适用于 Unreal 的 Android XR 扩展

性能指标

XR_ANDROID_performance_metrics

适用于 Unreal 的 Android XR 扩展

推荐的解决方法

XR_ANDROID_recommended_resolution

适用于 Unreal 的 Android XR 扩展

手部互动

XR_EXT_hand_interaction

适用于 Unreal 的 Android XR 扩展

调试实用程序

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

适用于 Unreal 的 Android XR 扩展

太空扭曲

XR_FB_space_warp

Unreal Native OpenXR

Equirect2 合成层

XR_KHR_composition_layer_equirect2

Unreal Native OpenXR

Android Thread 设置

XR_KHR_android_thread_settings

Unreal Native OpenXR

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

  • 适用于 Unreal 的 Android XR 扩展程序:这些是 Google 针对 Android XR 平台开发的特定扩展程序 (ANDROID)。如需利用这些空间功能,您必须在 .uproject安装并启用 Android XR 扩展插件
  • Unreal Native OpenXR:这些功能利用了 Khronos (KHR)、扩展程序 (EXT) 和 Meta (FB) 标准扩展程序,这些扩展程序已直接集成到 Unreal Engine 的核心 OpenXR 插件中并由其维护。