Unity 向け Android XR Interaction Framework を使ってみる

対応する XR デバイス
このガイダンスは、次のようなタイプの XR デバイス向けのエクスペリエンスを構築する際に役立ちます。
[
XR Headsets
]
有線 XR グラス

Android XR Interaction Framework(AXRIF)は、Android XR 上の OpenXR アプリケーションに、使い慣れたハイレベルな インタラクションを提供します。AXRIF は、システムレベルのインタラクションとアプリ内インタラクションのギャップを埋め、ユーザー入力を直感的かつ一貫して処理する方法を提供します。

このガイドに沿って、Unity で AXRIF を設定して使用を開始してください。

前提条件

始める前に、開発環境が次の要件を満たしていることを確認してください。

Unity を設定して構成する

サンプル シーンを試す前に、AXRIF 用に Unity を設定して構成する必要があります。このプロセスを完了するには、以降のセクションの手順に沿って操作してください。

AXRIF パッケージをインポートする

まず、AXRIF パッケージとその依存関係をインストールします。

  1. [Window] > [Package Manager] に移動します。
  2. [Package Manager] ツールバーで追加メニューを開きます。
  3. パッケージを追加するオプションで、[+](プラス)をクリックします。
  4. プルダウン メニューから [Install package from git URL] を選択します。

    git URL を使用して AXRIF パッケージをインポートします。

  5. 次の URL を入力します。

    https://github.com/android-xr/android-xr-interaction-framework-unity-package.git

  6. [インストール] をクリックします。

    Unity の Package Manager に表示された AXRIF パッケージの詳細。

XR Interaction Toolkit のバージョンを確認する

AXRIF パッケージは Unity XR Interaction Toolkit(XRIT)と連携して動作し、XRIT を置き換えるものではありません。AXRIF パッケージは XRIT への依存関係を定義しているため、前の手順で AXRIF パッケージをインストールしたときに Unity が XRIT をインストールしているはずです。ただし、Unity エディタで [Window] > [Package Manager] > [Unity Registry] > [XR Interaction Toolkit] に移動して、バージョン 3.3.1 以降がインストールされていることを確認する必要があります。

図 1.Unity エディタでインストールされている XR Interaction Toolkit のバージョンを確認します。

Android XR ビルド プロファイルを選択する

Android XR ビルド プロファイルを選択して、Android XR に適切な OpenXR 拡張機能とビルド設定を有効にします。

  1. [File] > [Build Profiles] に移動します。
  2. [Android XR] をクリックし、[Switch Platform] をクリックします。

    Unity の設定で Android XR ビルド プロファイルを選択します。

OpenXR の設定を構成する

Unity が必要な OpenXR データにアクセスできるように、Unity の OpenXR 設定を構成します。

  1. [Edit] > [Project Settings] > [XR Plug-in Management] > [OpenXR] に移動します。
  2. [Android] タブで、[+](プラス)を[Enabled Interaction Profiles] セクションでクリックします。
  3. アプリのニーズに応じて、次のいずれかのプロファイルを追加します。

    • Eye Gaze Interaction Profile
    • Hand Interaction Profile
    • Oculus Touch Controller Profile
    • Android XR Mouse Interaction Profile
  4. [XR Plug-in Management] > [OpenXR] の機能リストで、次の機能を有効にします。

    • Android XR(Extensions): Passthrough Composition Layer
    • Android XR(Extensions): Session Management
    • Android XR Support
    • Android XR: AR Camera
    • Android XR: AR Session
    • Android XR: AR Hand Mesh Data
    • Composition Layers Support
    • Hand Tracking Subsystem

プロジェクトの検証を行う

プロジェクトの検証を行って、プロジェクトの構成で OpenXR エラーを修正します。

  1. [Edit] > [Project Settings] > [XR Plug-in Management] > [Project Validation] に移動します。
  2. 未解決のアラートや警告を修正して、ランタイム エラーがコンパイルに影響しないようにします。

    プロジェクトの検証を実行して、未解決の OpenXR の問題を解決します。

サンプル シーンを使用する

事前設定と構成が完了したので、AXRIF サンプル シーンを使用できます。サンプル シーンを入手して試すには、以降のセクションの手順に沿って操作してください。

XRIT サンプル パッケージと AXRIF サンプルをインポートする

AXRIF サンプル シーンは、Unity の XR Interaction Toolkit(XRIT)Starter Assets と Hands Interaction Demo サンプル パッケージに依存しています。

XRIT サンプル パッケージをインポートする

AXRIF サンプルが依存する XRIT サンプル パッケージをインポートします。

  1. [Window] > [Package Manager] に移動します。
  2. パッケージ リストから [XR Interaction Toolkit] を選択します。
  3. [Samples] タブで、[Starter Assets] と [Hands Interaction Demo] の両方の横にある [Import] をクリックします。

    AXRIF サンプル パッケージをインポートする前に、必要な XRIT サンプル パッケージをインポートします。

AXRIF サンプルをインポートする

AXRIF サンプルをインポートしてサンプル シーンを取得します。

  1. [Window] > [Package Manager] に移動します。
  2. パッケージ リストから [Android XR Interaction Framework] を選択します。
  3. [Samples] タブで、[Axrif Sample] の横にある [Import] をクリックします。

    Unity のパッケージ マネージャーで AXRIF サンプルをインポートします。

シーンを開く

必要なサンプル パッケージをインポートしたら、シーンを開くことができます。

  1. [Assets] > [Samples] > [Android XR Interaction Framework] > [AXRIF Version Number] > [Axrif Sample] に移動します。
  2. [AxrifDemoScene] を開きます。

    Unity のパッケージ マネージャーで AXRIF サンプル パッケージをインポートします。

プレハブを確認する

このシーンは、[Packages] > [Android XR Interaction Framework] > [Prefabs] にあるモジュール型プレハブを使用して事前に構成されています。

インタラクター プレハブ

Axrif Interactor プレハブは、次のリストの対応する入力モダリティを使用して Unity XRIT インタラクターのメカニズムを駆動します。

  • Hand/Controller Ray:
    • Axrif Left Interactor - 左手のレイキャストまたはコントローラを使用します。
    • Axrif Right Interactor - 右手のレイキャストまたはコントローラを使用します。
  • Gaze Pinch:
    • Axrif Left GazePinch Interactor - ピンチ時に視線と左手の動きを使用します。
    • Axrif Right GazePinch Interactor - ピンチ時に視線と右手の動きを使用します。
    • Axrif Gaze Interactor - 視線のみを使用してポイントします。
  • Hand Poke:
    • Axrif Left Poke Interactor - 操作可能なオブジェクトに触れるときに左の人差し指を使用します。
    • Axrif Right Poke Interactor - 操作可能なオブジェクトに触れるときに右の人差し指を使用します。
  • Mouse:
    • Axrif Mouse Interactor - Android XR 空間マウスを使用します。

Axrif Interaction Manager と Origin のプレハブ

  • Axrif Interaction Manager: このプレハブは、 シーン内の AXRIF の中心となるハブです。このプレハブには、XRIT XR Interaction Manager と連携して動作するように設計された Axrif Interaction Manager コンポーネントが含まれています。 このプレハブは次の役割を担います。

    • 実行時にコア AXRIF サブシステムを初期化して管理します。
    • Interaction Framework Input Adapter を使用して、OpenXR からの入力データを処理してルーティングします。
    • Interaction Framework Scene Integrator を使用して、UI とコライダーの状態を監視します。
  • Axrif XR Origin: メインキャラクターとカメラ ドライバとして機能し、 ハンドメッシュ ビジュアライザーを管理します。

入力アクションを構成する

OpenXR ランタイム データと Unity の入力アクションを橋渡しするには、プロジェクト全体のマップ バインディングを登録します。

  1. [Packages] > [Android XR Interaction Framework] > [InputActions] に移動します。
  2. [AndroidXRInteractionFramework Input Actions] を見つけます。
  3. [Assign as the Project-wide Input Actions] をクリックします。

    Unity の入力アクションの入力アクションを構成して、ランタイム データを Unity の入力アクションとブリッジします。

インタラクションを変更する

Axrif Interaction Manager プレハブを使用すると、さまざまな入力モダリティを有効または無効にできます。AXRIF は次の入力モダリティをサポートしています。

  • コントローラのレイキャスト
  • ピンチと視線
  • ハンド レイキャスト
  • 直接ハンド
  • マウス操作。

入力モダリティは、[Interaction Framework Manager] コンポーネントの [Configurations] セクションのインスペクタ内で直接構成できます。

図 2.インスペクタ内で入力モダリティを構成します。

サンプルをビルドする

サンプルをビルドする場合は、Unity エディタで [Build] または [Build and Run] をクリックします。