見出し画像

Unity OpenXR: Android XR を触ってみた

はじめに

今回は Android XR のUnity向けSDK Unity OpenXR: Android XR を触っていこうと思います。

先に結論ですが、現段階では実機がなく、またUnityでの開発環境もあまり整っていないので Unity OpenXR: Android XR に触れるのは時期尚早だと思います。
それでも現状がどうなっているのか知りたい方はお付き合いください。

Android XR 自体については以前にも取り上げているので、以下記事と合わせてご覧ください。

Android XR 速報まとめ

開発環境

  • Unity 6000.0.23f1

  • Android Studio Merrkat | 2024.3.1 Canary 7

  • Unity OpenXR Android XR 0.4.4-exp.1

  • AR Foundation 6.1.0-pre.4

  • Android XR Extensions for Unity 0.9.0

Unity OpenXR: Android XR の導入方法

早速 Unity OpenXR: Android XR を使えるようにUnityプロジェクトのセットアップを行っていきます。

1. Unity OpenXR Android XR パッケージのインポート

Package Manager の Install package from git URL... に com.unity.xr.androidxr-openxr と入力して、 Install ボタンを押下します。

2. OpenXR を有効化

パッケージのインポートが完了したら、 Project Settings/XR Plug-in Management の Android タブにある OpenXR を有効化します。

OpenXR を有効化すると、その下に Android XR feature group という項目が追加されるため、こちらも有効化します。

これで XR Plug-in Management/OpenXR の各種機能が有効になりました。
以下の画像の項目が AR Foundation の各種機能に対応しています。

一番上の Android XR Performance Metrics はCPUの処理時間など、デバイスのパフォーマンス情報を取得するための機能のため、デバッグ時のみ使用するのが良さそうです。

また、 Android XR: AR Camera の横に警告マークが付いていますが、これはシーン上に AR Camera Manager がないという警告なのでプロジェクト設定の段階では無視します。

3. Project Validation

ここで Project Validation を見てみるといくつか警告が表示されていると思います。
下2つは Fix を押下すると、それぞれに対応する Scripting Define Symbols が追加されるようです。

一番上は、 「XR Plug-in Management/OpenXR の Enabled Interaction Profile が設定されていない」という警告です。

これはアプリごとに使用する操作方法を設定してください。
今回はとりあえず Eye Gaze Interaction Profile を設定します。

4. Graphics API の設定

Unity OpenXR: Android XR は Vulkan を推奨しているため、それ以外の Graphics API を削除します。

5. URP の設定

パフォーマンス向上のためにURPの以下の2項目を無効化します。
これらは無効化が必須ではないため、使用したい機能がある場合はパフォーマンスと引き換えに有効化しても良さそうです。

  • Universal Render Pipeline Asset の HDR

  • Universal Renderer Data の Post-processing

6. その他の設定

Player Settings の以下の設定を確認します。
デフォルトから変更していなければ、どちらもそのままで問題ありません。

  • Resolution and Presentation の Resizeable Activity を有効化

  • Other Settings/Application Entry Point の Activity を無効化、 GameActivity を有効化

Android XR Extensions for Unity

Unity OpenXR: Android XR のセットアップは完了しました。
このまま動作確認に進みたいですが、 Unity OpenXR: Android XR 単体のサンプルが存在していないため、拡張機能の Android XR Extensions for Unity パッケージを入れて、そちらのサンプルを触ってみようと思います。

Android XR Extensions for Unity をインポート

Android XR Extensions for Unity をインポートします。

Android XR 拡張機能のクイックスタート

以下のGitHubのリポジトリからインポートできます。

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

Android XR Extensions for Unity の機能

Unity OpenXR: Android XR 単体でも AR Foundation の機能を一部で使用できますが、 Android XR Extensions for Unity をインポートすることで各種機能の拡張や Android XR 固有の機能が使用できるようになります。

以下の画像の項目が追加される機能です。

Android XR Extensions for Unity サンプル

Android XR Extensions for Unity のサンプルを見ていきます。
前述の各種機能に対応したサンプルが9つ用意されています。

これらのサンプルは、Unityエディタ上で試しに動かすことはできないようです。

また、 Unity OpenXR: Android XR は URP 推奨ですが、これらのサンプルは Built-in シェーダーで作られているなど、まだ荒削り感が残っています。

エミュレータ

Unityエディタ上で動かせないため、次は Android Studio のエミュレータで試してみようと思います。

エミュレータの作成

正式版の Android Studio はまだ Android XR に対応していないため、こちらの手順でCanary ビルド版の Android Studio をインストールします。

Android Studio のインストールが完了したら、こちらの手順で XR デバイスのエミュレータを作成します。

エミュレータを起動

作成したエミュレータを起動すると以下のような画面が表示されます。
ここで表示されている風景はパススルーではなく、VR空間の背景を表しているようです。

右のメニューバーからパススルーに切り替えることができます。
切り替えると以下のような部屋が表示されます。

Android XR Extensions for Unity サンプルの実行

エミュレータの準備ができたら、 Android XR Extensions for Unity のサンプルを実行していきます。

UnityエディタのAndroidビルドでAPKを作成し、エミュレータ上にD&Dでインストールできます。

サンプルアプリをインストールできたら、実行してみます。

★クリックして動画を再生★

残念ながら、現段階ではエミュレータがUnity製のアプリに対応していないようです。
XR 向け Android Studio ツール/Android XR Emulator

おわりに

いかがでしたでしょうか?
Unityエンジニアとしてはエミュレータが非対応だったのが非常に残念です。
今後のロードマップとして、Unity 6.1 で Build Profiles の Platforms に Android XR が追加されるため、次に触るのはそのタイミングになると思います。

まだまだ発表されたばかりで環境が整っていませんが、スマホの iOS vs Android のように今後 visionOS vs Android XR の構図になることを期待したいですね!

#AndroidXR #AndroidStudioMerrkat #OpenXR #ARFoundation



いいなと思ったら応援しよう!