はじめに
どうも、土鍋です。
この記事はIwakenLab. Advent Calendar 2024の22日目の記事です。
昨日はもふるねくんの HaritoraXを使用してUnityでフルトラをアバターに反映させる方法(一人称視点対応) でした!
明日はにっしさんレーザー加工機を使ったものづくりのすすめです!
今月発表されたAndroidXRのアプリケーションをUnityで作るためのプロジェクトの設定方法を解説します。
エミュレーターの起動方法も記事を書いているのでご覧ください。
Unity OpenXR Android XR
AndroidXRはOpenXRをベースに構築されているので、OpenXR PluginやXR Interaction ToolkitやXR Handsのパッケージをそのまま活用して開発できます。
プラスでUnity OpenXR Android XRのパッケージを使用することで、AndroidXR固有の機能も利用できるようになります。
インポート
「Install package from git URL」で「com.unity.xr.androidxr-openxr」を追加


XR Plug-in Management
Edit > Project Settings > XR Plug-in Management を開き、
Plug-in ProvidersのOpenXRとAndroid XR Featureにチェックします。

OpenXRの設定
XR Plug-in Management > OpenXR を開き、
Enabled Interaction Profilesを開き、
コントローラーを使用する場合は Oculus Touch Controller Profile
アイトラッキングを使用する場合は Eye Gaze Interaction profile
を追加してください。
AndroidXRの設定は後述のExtensionsを使用しない場合はすべてにチェックして問題ありません。

Project Validation
Project Validationで残りのエラーなどを一括で解消できます。

Project Settings
Edit > Project Settings > Player > Other Settings を開き、
Graphics APIをValkanのみにします。

Minimum API Levelは32以上にします。

Application Entry Pointは[GameActivity] がオンになっていて、[Activity] がオフになっていることを確認します。

[Resizeable Activity] を有効であることを確認します。

URPの設定
プロジェクトで使用しているUniversal Render Pipeline Assetを開き、
Quality > HDR のチェックを外してください。

さらにUniversal Renderer Dataを開き、
Post-processing > Enabledのチェックを外す

シーンのセットアップ
HierarchyにXR Originを追加します。
MainCameraのEnvironmentから
- Background TypeをSolidColor
- Backgroundは(0,0,0,0)
に設定することで現実世界を見えるようにします。

これで最低限のセットアップは完了です。
Android XR Extensions for Unity
Android XR Extensions for Unityは先ほど紹介したOpenXRベースのAndroidXRプラグインをさらに拡張できるパッケージです。
現状のOpenXRのみではカバーしきれないAndroidXR固有の機能を利用する場合は用いる必要がありそうです。
詳しい比較などは以下を参照してください。
インポート
以下のGithubのReleaseからtgzファイルをダウンロードしてください。

「Install package from tarball...」でダウンロードしたtgzファイルをインポートします。


XR Plug-in Management
OpenXRのみにチェックをつけ、Project Validationでエラーを解消してください。

サンプル
公式のサンプルシーンがたくさんあるのでまずはこれを試していくと良いと思います。

例: Face Tracking
Face Trackingのサンプルが公式的には例にあげられていたのでこれをまずは使用すると良さそうです。


エミュレーターで試そうとした
Android Studioのエミュレーターで試したかったのですが、現状は対応して無いそう。
