使用 Unreal Engine 為 Android XR 開發應用程式

適用的 XR 裝置
這份指南可協助您為這類 XR 裝置打造體驗。
XR 頭戴式裝置
有線 XR 眼鏡

Unreal Engine 支援以 OpenXR 標準為基礎的延展實境開發,確保 Unreal 原生支援適用於 Android XR 的 OpenXR 功能

請參閱這份指南,瞭解:

  • Unreal Engine 支援 Android XR
    • Unreal Engine XR 基礎知識
    • 開發及發布 Android XR 應用程式
    • Android XR 適用的 Unreal Engine 外掛程式
    • 取得支援
  • 輸入和互動
  • 支援的擴充功能

Android XR 的 Unreal Engine 支援

為 Android XR 建構 Unreal 應用程式時,您可以運用最新版 Unreal Engine 5 的空間運算功能。Unreal Engine 5 支援核心 OpenXR 規格,而 Unreal 適用的 Android XR 擴充功能則支援 Android XR 和其他特定擴充功能,協助您快速上手。

Unreal Engine XR 基礎知識

如果您是 Unreal 或 XR 開發新手,可以參閱 Unreal 的 XR 開發說明文件,瞭解基本概念和工作流程。以下是幾個值得探討的重點領域:

開發及發布 Android 應用程式

Unreal Engine 提供開發、建構及發布 Android 應用程式的完整說明文件。本文件說明如何在引擎中管理 Android 權限、設定 Android 建構設定 (透過「Project Settings」>「Platforms」>「Android」),以及使用 Unreal Automation Tool (UAT)。

此外,請參閱為 Android XR 封裝及發布應用程式的文件,瞭解在 Google Play 商店發布空間應用程式的具體規定。請確保應用程式也遵守沉浸式體驗品質指南,在 Android XR 上提供一致且舒適的使用者體驗。

Android XR 適用的 Unreal Engine 外掛程式

有兩個核心外掛程式可支援建構 Android XR 適用的 Unreal 應用程式。這些外掛程式是透過「外掛程式」選單 (「編輯」>「外掛程式」) 管理。

Android XR OpenXR 外掛程式

Android XR OpenXR 外掛程式是主要引擎介面,可將 Android XR 支援新增至 Unreal。這項擴充功能會實作空間追蹤、環境理解和感知所需的 OpenXR 擴充功能。如要瞭解如何新增及設定此外掛程式,請參閱 Unreal Engine OpenXR 說明文件

Unreal 的 Android XR 擴充功能

Unreal 的 Android XR 擴充功能可補充基本 OpenXR 支援,包括額外功能,協助您建構沉浸式體驗,例如進階手部網狀資料和特定硬體最佳化。如要瞭解如何匯入及設定這個套件,請參閱 Android XR Extensions 快速入門指南

取得支援

如果遇到問題,請參閱支援頁面上的 Unreal Engine 支援部分

輸入和互動

如要建立互動式空間體驗,必須將肢體動作對應至數位動作。Unreal Engine 會使用「增強型輸入」系統搭配 OpenXR,同時處理動作控制器和手勢追蹤。設定輸入動作和輸入對應內容後,您就能建立彈性互動 (例如抓取、指向和 UI 導覽),在不同的 Android XR 輸入方法之間順暢運作。

如需建構這些機制的完整指南,請參閱 Unreal Engine 的「製作互動式 XR 體驗」文件。

Android XR 支援 Unreal Engine 中的下列特定互動方法:

互動設定檔

您可以在「OpenXR」部分下方的「專案設定」中設定互動設定檔。這樣一來,應用程式就能在不同控制器和追蹤方法之間,維持一致的輸入對應。

手部互動

OpenXR 手部追蹤擴充功能提供手部互動功能。您可以在藍圖或 C++ 中,透過 XR 追蹤元件存取手部關節資料和姿勢。

視線互動

眼球注視資料可做為標準輸入姿勢擷取,方便您驅動 UI 焦點或社群狀態功能。這需要 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 擴充功能

Debug Utils

XR_EXT_debug_utils

Unreal 原生 OpenXR

成效設定

XR_EXT_performance_settings

Unreal 原生 OpenXR

螢幕重新整理頻率

XR_FB_display_refresh_rate

Unreal 原生 OpenXR

手部追蹤網格

XR_FB_hand_tracking_mesh

Unreal 的 Android XR 擴充功能

Space Warp

XR_FB_space_warp

Unreal 原生 OpenXR

Equirect2 合成圖層

XR_KHR_composition_layer_equirect2

Unreal 原生 OpenXR

Android 執行緒設定

XR_KHR_android_thread_settings

Unreal 原生 OpenXR

擴充功能由下列其中一個來源提供:

  • 適用於 Unreal 的 Android XR 擴充功能:這是專為 Android XR 平台開發的 Google 專屬擴充功能 (ANDROID)。如要使用這些空間功能,請在 .uproject安裝並啟用 Android XR Extensions 外掛程式
  • Unreal Native OpenXR:這些功能會運用 Khronos (KHR)、擴充功能 (EXT) 和 Meta (FB) 標準擴充功能,這些擴充功能已直接整合至 Unreal Engine 的核心 OpenXR 外掛程式,並由該外掛程式維護。