土鍋で雑多煮

UnityでXR・ゲーム開発をしています。学んだことや備忘録、趣味の記録などを書いていきます。

MENU

【AndroidXR】UnityでAndroidXRアプリを作る準備

はじめに

どうも、土鍋です。

この記事はIwakenLab. Advent Calendar 2024の22日目の記事です。

昨日はもふるねくんの HaritoraXを使用してUnityでフルトラをアバターに反映させる方法(一人称視点対応) でした!
明日はにっしさんレーザー加工機を使ったものづくりのすすめです!

今月発表されたAndroidXRのアプリケーションをUnityで作るためのプロジェクトの設定方法を解説します。

エミュレーターの起動方法も記事を書いているのでご覧ください。

donabenabe.hatenablog.com

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から

  1. Background TypeをSolidColor
  2. Backgroundは(0,0,0,0)

に設定することで現実世界を見えるようにします。

これで最低限のセットアップは完了です。

Android XR Extensions for Unity

Android XR Extensions for Unityは先ほど紹介したOpenXRベースのAndroidXRプラグインをさらに拡張できるパッケージです。

現状のOpenXRのみではカバーしきれないAndroidXR固有の機能を利用する場合は用いる必要がありそうです。

詳しい比較などは以下を参照してください。

developer.android.com

インポート

以下のGithubのReleaseからtgzファイルをダウンロードしてください。

github.com

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

XR Plug-in Management

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

サンプル

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

例: Face Tracking

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

エミュレーターで試そうとした

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

参考

docs.unity3d.com

developer.android.com