どうも、Reveです。
前回のQuest2記事から早3か月、時が過ぎるのは早いものです。
今回は、UnityでQuest2用アプリの開発環境構築について書いていこうと思います。
Quest2の設定
Oculusアプリのインストール
Quest2用アプリを実機でテストするには「開発者モード」を有効にしなくてはいけませんが、これにはスマホ用アプリが必要です(Quest2本体のみでは不可)。
つまり、Quest2とペアリングしたスマホでないと開発者モードを有効にできません。
Quest2用アプリは公式サイト、またはストア(Google Play or AppStore)からインストールできます。
ペアリング
アプリのインストールが完了したら、スマホとQuest2の紐づけを行います。
インストール、およびペアリングの詳しい手順はこちらをご参照ください(画面キャプチャもあります)。
なお、(2021年時点で)Oculus2のセットアップには実質facebookアカウントが必須です。また、Oculusアカウントを持っていた場合、統合も求められるようです(が、トラブルも少なからず報告されているようです)。
ちなみに、2022年内にfacebookアカウントログインが不要になるとの話もありますが、正式な時期は未定のようです。
開発者モードの有効化
ペアリングが済んだら、以下の通りアプリでQuest2の開発者モードを有効にします。
- 左上のデバイス一覧から「Quest/Quest 2」を選択
- ヘッドセットの設定から「開発者モード」を選択
- 開発者モードを有効化
これでハードウェア(Quest2)の準備が整いました。
Unityでのアプリ作成
Unityのインストール
とにもかくにも、Unityをインストールしないと始まりません。
Unity HubからUnity本体、および各種パッケージ(Android SDKなど)のインストールするのがおすすめです。
Unity Hubのインストールが完了したら、実行してUnity本体のインストールを進めてください。
画面が出たら、左のメニューから「インストール」を選んで、右の青いインストールボタンを押しましょう。あとは、画面の指示に従って必要なものを選びます。
(Unityインストールの記事URL?)
Androidビルド用モジュールの追加
Quest2はいわゆるAndroidスマホの様なものなので、アプリ開発にはAndroid SDKが必須です。
Unity本体のインストールでバージョンを選んだあと、追加のモジュールを選択する画面が出てきます。そこで、「Android Build Support」にチェックを入れてから実行ボタンを押してインストールしましょう。
なお、インストールしたUnityがAndroid SDKの最新版に対応していないと注意される事もありますが、その場合はUnity Hub経由でインストールできるSDKを使えばOKです。
プロジェクト作成
Unity本体をインストールしたら、さっそく起動しましょう。
そこで、新規プロジェクトを「3D」か「Universal Render Pipeline(URP)」テンプレートで作成します。
なお、3D(デフォルト)とURPの大まかな違いはこちらにまとめられています。
結論としては、URPの方が上位互換なのでURPを選んでおけばOKです(Quest2にも対応してます)が、以下の様に時間や手間が惜しい方は3Dの方が適しているかと思います。
- セットアップの手間も惜しい時
- 古いアセットを利用したい場合
- Unityに初めて触れる初心者
Oculus Integrationのインポート
続いて、Quest2アプリ開発用SDK(Oculus Integration)をUnityにインポートします。URLにアクセスして、以下の手順で進めていきます。
- 「Add to My Asset」ボタンを押してアセットをダウンロード
- ブラウザからの通知、または1.と同じボタンを押してUnityに移動
- 自動的に開くPackage Managerで、「Download」ボタンを押してプロジェクトに追加
- もう一度ボタン(表示は「Import」)を押して、開いたポップアップからアセットをインポート
このインポートですが、本当に長い時間がかかります。あまり使わないと思われるファイル(Oculus/Avatarなど)を外しておくと多少短くなります。
また、以下のようにプロジェクトを設定しておくと、プロジェクト全体の再インポートが走らず効率が良くなるようです。
- (Build Settings) プラットフォーム:Android、Texture Compression:ASTC
- (Project Settings) Color Space:Linear、Auto Graphics APIを無効化、Graphics APIsのVulkanまたはOpenGLES3を削除、Script Backend:IL2CPP、Target Architecture:ARM64にチェック
アプリのビルド
ビルド設定
インポートお疲れさまでした。ここからはビルドの準備に入ります。
- File > Build Settings を開いてPlatformにAndroidを選択し、Switch Platformをクリック
- Build Settingsの左下にあるPlayer Settingsをクリック
- InspectorウィンドウのOther Settingsを選択して,Minimum API Levelを19以上に変更します(デフォルトでは16)
なお、ターゲットレベルが「Automatic (highest installed)」で、APIレベル26のSDKをインストールしておけば、最小レベルは気にしなくてもほぼ問題ありません。
今のQuest2のAPIレベルなどはここから確認できます。
デバイスへの書き込み (Build and Run)
設定が完了したら、実機への書き込み準備に移ります。
まずはPCとOculus Quest2をUSB Type-Cケーブルで接続します.PCとQuest2をつないだら、Quest2側で接続の確認を求められるので許可してください。
USB-Cコネクタを有するPCならOculus Quest付属のケーブルが使えますが、違う場合は別途ケーブルや変換アダプタを用意する必要があります.
試しに現在のSceneに適当にキューブを配置してみて File → Build And Run をクリックします.
UnityエディタのPlayモードで実行 (要Oculus Link)
Oculus Linkを設定していれば、Playモードでエディタから実行可能です。いちいちビルドする必要がないため、すぐに実行できてデバッグ作業もはかどります。ただし、時々フリーズすることがある点はご注意ください(詳細は前回の記事で)。
余談
ちなみに、最近はOculus Integrationをインストールせず、既存のOpen XRからでもアプリ開発ができるみたいです。
少し前まではハンドトラッキングなどの一部機能に制限がありましたが、最近は使えるようです。
参考
Unityで作ったアプリをOculus Questで動かす
細かい点も含めて一通りの情報が網羅されています
Unity + Oculus Quest(Meta Quest)開発メモ
【Oculus Quest開発メモ】開発初期設定まとめ Oculus Integration【Unity】