
[VR開発#3]Unityを使ったMeta Quest向けVRアプリの開発方法
はじめに
こんにちは、エンジニアのコヒロトです。
今回からは、技術ブログらしくより実用的にVRコンテンツ(ここではMeta Quest2/3(以下、まとめてMeta Questという)にインストールするソフトという意味でVRアプリという)を開発するための手順を説明していこう。
今回の目標
今回の目標は、Unityで作った世界にMeta Questを使って入り込めるように、Unityでプロジェクトを作成し最低限の設定をすることである。

前提
Unityの開発をするにあたり、Unityのインストールやセットアップが必要となる。ただし、本マガジンではVR開発に関わる内容を中心に記載したいため、Unityの基礎的な使用方法は範疇外とする。そのため、インストールや使用方法については他の文献を参照していただきたい。
今回の記事では、Unity Hub、UnityとMeta XR Core SDKのバージョンは下記を前提としているが、条件を満たせばそれ以外でも良い。
・Unity Hub:3.7.0
・Unity:2022.3.22f1(※1)
・Meta XR Core SDK:64.0.0
なお、SDKについては後述する。
※1:Meta XR Core SDKを使用するにあたり2021.3.26f1以降のバージョンとする必要がある。
手順
1.プロジェクトの作成
まずはUnity Hubを起動し、新たなプロジェクトを作成する。
その際、「3D(Built-In Render Pipeline)」で作成する(※2)。「Project Name」や「Location」等は各自自由に設定してほしい。

※2:メニューの中に「VR」もあり、テンプレートが既に含まれたシーンが作成されるが、ここではMeta Questに特化する開発としたいため、テンプレートを用いず一から開発する手順を記載する。
2.設定
Unity起動後、Meta Questでアプリを動作させるための設定をする。
まずは、「Build Settings」画面を表示する。「Platform」リストから「Android」を選択し、「Switch Platform」ボタンを押下する。

Meta QuestのOSはAndroidであるため、これでAndroid用のアプリが作成可能となる。
Unityはクロスプラットフォーム開発に対応しており、対象とするプラットフォームを切り替えながら開発が可能である。切り替えはいつでも可能ではあるが、プロジェクトに含まれるリソースが多くなると切り替えに時間がかかるため、Android向けに作成するVRコンテンツのプロジェクトでは初めに切り替えておいた方が効率的である。
次に、「Player Settings」画面を表示し、「Player」を選択する。「Player」では、下記項目の設定を行う。なお、下記に記載のものは最低限の項目であるため、プロジェクトに合わせてその他の設定も変更する。
Company Name:DefaultCompany以外(日本語は使用しないほうが良い)
Project Name:任意のプロジェクトの名称
Other Settings > Color Space:Linear(アプリがより正しい色表現で表示される)
Other Settings > Auto Graphics API:チェックを外す
Other Settings > Graphics API:Vulkan削除(アプリをより安定に動作させるため)
Other Settings > Identification > Minimum API Level:Android 8.0 'Oreo' (API level 28)
Other Settings > Configuration > Scripting Backend:状況に応じて設定
Mono:ビルド時間が短いため開発時はこちらが良い
IL2CPP:Monoよりアプリのパフォーマンスが2倍となるが、ビルド時間が増加するため、本番のビルド時に使用。これを選択時はTarget Architecturesの「ARMv7」のチェックを外し「ARM64」をチェックする。
Other Settings > Configuration > Api Compatibility Level:.NET Framework(C#で使える機能が増える)



3.Meta XR SDKのインストール
「Project Settings」画面で、「XR Plugin Management」を選択し、「Install XR Plugin Management」ボタンを押下する。

その後、Andoroidのタブが選択された状態で、「Plug-in Providers」から「Oculus」をチェックする。

ここまで設定をしたら、「Build Settings」画面と「Player Settings」画面を閉じる。
4.Meta XR Core SDKのインストール
ここからは、Meta Questを通してVR世界の中を見たり、行動をするために必要となるオブジェクトを配置する。
まず、Asset StoreからMeta XR Core SDKを入手する。

Meta XR Core SDKはMeta Quest向けVRアプリを開発する際の機能を含む開発用パッケージである。Asset Storeで「Meta XR」と検索すると様々な種類が出てくるが、最低限の機能は「Meta XR Core SDK」に含まれる。その他のSDKについては、必要時に説明しよう。なお、どれを使用するか迷う場合は、Meta XR All-in-One SDKを入手しても良いだろう(この場合、以降の説明は「Meta XR Core SDK」を「Meta XR All-in-One SDK」と置き換えて読んで欲しい)。
「Meta XR Core SDK」入手後、「Package Manager」画面を開く。この画面から、「Packages: My Assets」を選択し、リストから「Meta XR Core SDK」を選択し、インストールする。

「Restart Unity」の画面が表示された際は、「Restart Editor」ボタンを押下する。自動で再起動するため、完了するまで待とう。

5.OVR Camera Rigオブジェクトの設置
再起動完了後、Projectビューで「OVRCameraRig」を検索する。その際、検索対象を「In Packages」とする。検索結果、OVRCameraRig Prefabがヒットするので、それをHierarchyビューにドラッグ&ドロップする。
OVRCameraRigがMeta Questにおけるカメラとなる。SampleSceneにはMain Cameraがデフォルトで含まれており、カメラが2つとなってしまうため、Main Cameraオブジェクトは削除する。

おわりに
以上がUnityを使ってMeta Questで動作するVRアプリを開発する際の最低限の設定である。VRアプリを開発する際は上記手順を済ませておこう。
次回は、今回作成したプロジェクトをMeta Questで実行するまでの手順を紹介する予定である。
TEXT_コヒロト