Android XR 向け Unreal Engine で開発する

対象となる XR デバイス
このガイダンスは、次のようなタイプの XR デバイス向けのエクスペリエンスを構築する際に役立ちます。
XR ヘッドセット
有線 XR グラス

XR 開発向けの Unreal Engine のサポートは OpenXR 標準に基づいており、Android XR でサポートされている OpenXR 機能が Unreal でネイティブにサポートされています。

このガイドでは、次の内容について説明します。

  • 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 向けの開発、ビルド、公開に関する包括的なドキュメントが用意されています。このドキュメントでは、Engine 内での Android 権限の管理、Android ビルド設定の構成([プロジェクト設定] > [Platforms] > [Android])、Unreal Automation Tool(UAT)の使用について説明します。

また、Google Play ストアで配信される空間アプリに適用される特定の要件については、Android XR 向けアプリのパッケージ化と配信のドキュメントをご覧ください。Android XR で一貫性のある快適なユーザー エクスペリエンスを提供するため、アプリが没入型エクスペリエンスの品質に関するガイドラインにも準拠していることを確認してください。

Android XR 向け Unreal Engine プラグイン

Android XR 向け Unreal アプリのビルドをサポートするコア プラグインは 2 つあります。これらのプラグインは、[Plugins] メニュー([Edit] > [Plugins])で管理されます。

Android XR OpenXR プラグイン

Android XR OpenXR プラグインは、Android XR のサポートを Unreal に追加する主要なエンジン インターフェースです。空間トラッキング、環境認識、知覚に必要な OpenXR 拡張機能を実装します。このプラグインを追加して構成する方法については、Unreal Engine OpenXR のドキュメントをご覧ください。

Unreal 向け Android XR 拡張機能

Unreal 向け Android XR 拡張機能(v1.1.0、Unreal Engine 5.6.x と 5.8.x をサポート)は、ベースの OpenXR サポートを補完するもので、空間エンティティ、空間と深度のレイキャスト、ビューポート フェザリング、ライト推定キューブマップ、高度なハンドメッシュ データ、特定のハードウェア最適化など、没入型エクスペリエンスの構築に役立つ追加機能が含まれています。このパッケージをインポートして構成する方法については、Android XR 拡張機能のクイックスタート、または Android XR 拡張機能の Unreal API リファレンスをご覧ください。

サポートを受ける

問題が発生した場合は、サポートページの Unreal Engine のサポート セクションをご覧ください。

入力と操作

インタラクティブな空間エクスペリエンスを作成するには、物理的な動きをデジタル アクションにマッピングする必要があります。Unreal Engine は、OpenXR と組み合わせた Enhanced Input システムを使用して、モーション コントローラとハンド トラッキングの両方を処理します。入力アクションと入力マッピング コンテキストを設定することで、さまざまな Android XR 入力方法でシームレスに動作する柔軟なインタラクション(つかむ、指す、UI ナビゲーションなど)を作成できます。

これらのメカニズムを構築するための包括的なガイドについては、Unreal Engine のドキュメントのインタラクティブな XR エクスペリエンスの作成をご覧ください。

Android XR は、Unreal Engine 内で次の特定のインタラクション方法をサポートしています。

インタラクション プロファイル

インタラクション プロファイルは、[プロジェクト設定] の [OpenXR] セクションで構成できます。これにより、アプリはさまざまなコントローラとトラッキング方法で一貫した入力マッピングを維持できます。

手の操作

手の操作は、OpenXR ハンド トラッキング拡張機能によって提供されます。手の関節データとポーズには、Blueprints または C++ の XR トラッキング コンポーネントを介してアクセスできます。

アイゲイズ インタラクション

視線データは標準入力ポーズとして取得できるため、UI フォーカスやソーシャル プレゼンス機能を操作できます。これには 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)

Light Estimation Cubemap

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)

拡張機能は、次のいずれかのソースから提供されます。

  • Unreal 向け Android XR 拡張機能: Android XR プラットフォーム向けに開発された Google 固有の拡張機能(ANDROID)と空間エンティティ拡張機能(EXT)です。これらの空間機能を利用するには、.uproject に Android XR Extensions プラグインをインストールして有効にします。Blueprint と C++ の使用方法については、Android XR Extensions for Unreal API リファレンスをご覧ください。
  • Unreal ネイティブ OpenXR: これらの機能は、Unreal Engine のコア OpenXR プラグインに直接統合され、メンテナンスされている Khronos(KHR)、Extension(EXT)、Meta(FB)の標準拡張機能を利用します。