MRが楽しい

MRやVRについて学習したことを書き残す

UnityでMetaQuestProアプリを作成する(プロジェクトの基本設定)

本日は MetaQuestPro の開発手順枠です。
UnityでMetaQuestProアプリを作成する手順の基本設定の部分を記事にします。

事前準備

Unity から Quest アプリをビルドするには[Android Build Support]内の[Android SDK & NDK Tools]と[OpenJDK]モジュールが必要です。
以下の手順でモジュールを追加できます。
bluebirdofoz.hatenablog.com

また自作アプリを Quest にデプロイするため、Quest を開発者モードに設定しておく必要があります。
以下の手順で Quest Pro でも開発者モードを有効化できます。
bluebirdofoz.hatenablog.com

アプリで Quest の各種トラッキング機能を利用する場合は Quest 側の設定で機能を有効化しておく必要があります。
以下の手順で Quest Pro のハンドトラッキングを有効化できます。
bluebirdofoz.hatenablog.com

本記事の各種確認バージョン

本記事は各ツール・ライブラリのバージョンについて以下の環境にて手順を実施しています。
・Unity 2021.3.12f1
・Oculus XR Plugin 3.2.1
・Oculus Integrator 46.0

Unityのプロジェクト作成

[3D]テンプレートで新規 Unity プロジェクトを作成します。

Unity プロジェクトが作成されたらメニューから[File -> Build Settings]を開きます。

以下の変更を行い、[Switch Platform]で切り替えます。
・ビルドプラットフォームを[Android]に変更する
・[TextureCompression]の設定を「ASTC]に変更する

Oculus XR Pluginのインポート

メニューから[Window -> PackageManager]を開きます。

PackageManager ダイアログの左上の[+]ボタンから[Add package from git URL...]を選択します。

「com.unity.xr.oculus@3.2」を指定してインポートを実行します。

これでバージョン 3.2 の Oculus XR Plugin がインポートできます。

Oculus Integrationのインポート

Oculus Integration をインポートします。
以下のページから[Add to My Assets]を実行してアカウントの My Assets に Oculus Integration を追加します。
assetstore.unity.com

PackageManager ダイアログの[My Assets]から追加した Oculus Integration を選択して[Import]します。

Oculus Integration のインポート完了時に最新の OVRPlugin に更新する旨のダイアログが表示されます。
[Yes]を選択して最新のプラグインに更新します。

次に OpenXR Backend を利用するか確認する旨のダイアログが表示されます。
[Use OpenXR]を選択して OpenXR Backend を利用します。

Unity の再起動を求められるので[Restart]をクリックします。

SDK のクリーンアップを勧めるダイアログが表示されます。
[Show Assets]で変更内容を確認します。

確認ダイアログで[Clean Up]を選択してクリーンアップを実行します。

最後に立体音響プラグインの最新版へのアップグレードを行うかどうかのダイアログが表示されます。
[Upgrade]を選択してアップグレードを実施します。

Unity の再起動を求められるので[Restart]をクリックします。

これで必要なライブラリのインポートが完了しました。

プロジェクトの設定

次に MetaQuestPro に合わせてプロジェクト設定を行います。
メニューから[Edit -> Project Settings]を開きます。

XR Plug-in Management設定

[XR Plug-in Management]タブを開き、[Android]欄から[Oculus]をチェックします。

[XR Plug-in Management -> Oculus]タブが追加されるのでこれを開き、以下の設定を行います。
・[Low Overhead Mode (GLES)]をチェックすること
・[Target Devices -> Quest Pro]をチェックすること

Player設定

[Player]タブの[Android]欄を開き、以下の設定を行います。
・[Other Settings -> Rendering -> Color Space]に[Linear]を設定する
・[Other Settings -> Rendering -> Auto Graphics API]のチェックを外して[Graphics API]に[OpenGL ES 3.0またはVulkan]を設定する
 (OpenGL ES 3.0 (OpenGLES3)側を上位の優先度に設定することが推奨されます)
・[Other Settings -> Rendering -> Multithreaded Rendering]をチェックする

・[Other Settings -> Identification -> Minimum API Level]に[Android 6.0 Marshmallow (API level 23)]を設定する
・[Other Settings -> Identification -> Target API Level]に[Automatic (highest installed)]を設定する
・[Other Settings -> Configuration -> Install Location]に[Automatic]を設定する

更にパススルーなど一部の最新機能を利用する場合は以下の設定を行う必要があります。
・[Other Settings -> Configuration -> Scripting Backend]に[IL2CPP]を設定する
・[Other Settings -> Configuration -> Target Architectures]で[ARM64]のみを選択する

Quality設定

[Quality]タブを開き、[Android]が利用する Quality Level に以下の設定を行います。
・[Rendering -> Pixel Light Count]に[1]を設定する
・[Rendering -> Anti Aliasing]に[4x]を設定する
・[Rendering -> Realtime Reflections Probes]をチェックする
・[Texture -> Texture Quality]に[Full Res]を設定する
・[Texture -> Anisotropic Textures]に[Per Texture]を設定する
・[Particles -> Soft Particles]のチェックを外す
・[Terrain -> Billboards Face Camera Position]をチェックする

これでプロジェクト設定は完了です。

シーンの構成

Hierarchy 直下の[Main Camera]を削除します。

Assets/Oculus/VR/Prefabs 配下にある OVRCameraRig.prefab を Hierarchy にドラッグして配置します。

ビルドと動作確認

[File -> BuildSettings...]からビルドと Quest へのインストールを実行します。

自作アプリのデプロイと実行に関する手順は以下の記事を参照ください。
bluebirdofoz.hatenablog.com

Quest Pro でアプリを起動すると Unity ロゴが表示された後、以下のようなスカイボックスのシーンが表示されます。