Oculus Labでのアプリ配布

Oculus Quest開発者として承認されている場合に、Oculus Questストアを、制作したアプリの評価版の配布で利用できる。
最低限満たさなくてはならない基準や、使用するユーザーへの表示が義務付けられるが、 AppLabでは、性能要件や、UI、表示などで満たさなければならない必須基準が緩い。
αテスト、βテストの段階で配布する場合は、アプリ評価に登録している テストユーザーアカウントへアプリ審査なしで配布できる。
また、Oculus Developerの機能で架空のテストユーザーMetaアカウントを多数作成して用意できるので、 異なるアカウントで同時起動してマルチプレイの同時実行テストを行うこともできる。

リモートインストールするためのAPKファイルの作成

Android VRのアプリ作成の手順は基本的に変わらない。
プロジェクトの設定ツールなども含まれるのでOculus Integrationパッケージのインストールをするが OVRライブラリで開発する必要はなくOpenXR+XR Intaraction Toolkitでコーディングできる。
初回テストとしてはXRI Toolkitのstarterassetのデモシーンを使うのが良い。
Questデバイスの開発者設定を有効にしてUSB接続し、プラットフォームAndroidでターゲットデバイスにBuild and RunをしてVRアプリとして正常に動くことを確認する。
ここで動いた.apkファイルのままでは、OculusLabにアップロードできないので、ビルド時の条件設定の制約指定やアプリ署名やマニフェストを準備する。

Project Settings

Edit> Project Settings>Player
組織名、製品名、バージョンを設定する。
Other Settingsのプロパティを展開、Androidタブを選択する。
Identificationの、Package Nameがパッケージ名になる。
overrideDefaultApplicationIdentifierをチェックすると、 上段で入力済みの会社名、製品名などを組み合わせた名前が自動設定される。
デフォルト値のままや他アプリのコピー使いまわしなどは不可。
パッケージ名を直打ちで書き換えてよいが、会社名、アプリ名は必ず含めなけければいけない。
このアプリ名は他のMeta Questストアアプリと同じパッケージ名を使うことは不可。
同じ名前のまま、バージョンアップしていくので、途中でアプリ名変更不可。

Minimum API Level (最小APIレベル)をAndroid 10 (API level 29)にする。
→2023年9月のMQDH3.8.0.1アップデートでMinimumAPILevel32に変更された。
もし変更されていなければ、
Scripting Backgroundを、MonoからLL2CPPに変える。
Install Location (インストール場所)]を[Automatic (自動)]にする。

Oculus Integrationパッケージのインポート

プロジェクトの設定ツールなども含まれるのでOculus Integrationパッケージのインストールが必要。
OVRライブラリで開発する必要はなくOpenXR+XR Intaraction Toolkitでコーディングできる。
Oculus推奨設定にFix,ApplyするとOpenXRではなく、Oculus XR-Pluginを使うチェックする様に推奨されるが、 使わずOpenXRでもOK。
OVRライブラリには、音源やUIアイコンなどのファイルが豊富に入っているので助かる。
Oculus Integrationパッケージのインポートしたら、PlayerSettingsにOculusメニューでチェックリストが出るので、エラー及び警告をFix,Applyする。

Oculus App ID設定

Meta Quest Developer Hub で新規アプリ作成からのリンクで、 Oculus開発者センター のWebサイトを開き、開発団体やアプリ名の登録を行う。
法的文書を読んで署名にチェックが必要。

PC-VRはRift,Android- VRがOculusになる。
APIメニューからApp IDをコピーする。

AppIDをプロジェクトに登録

UnityEditorのOculusメニューで、
Oculus>Platform>Oculus Platform ToolEdit Settingsを開く。

コピーしたApp IDを記入する。


アプリのマニフェスト

マニフェストは、アプリをインストールするユーザーやデバイスに向けて動作要件を明記しておくもの。
  • Android SDKの最小/ターゲットOSバージョンなど要件
  • アプリのカテゴリ

  • Oculus Integrationパッケージを入れたときにeditorに出来るメニューからOculusLab互換Manifestを作成する。
    Oculus >Tools> Create store-compatible AndroidManifest.xml


    Assets>Plugin>AndroidにAndroidManifest.xmlが作成される。

    KeyStore Androidアプリの署名の作成

    Androidでは、アプリ作成者のIDをデジタル証明書(KeyStoreキーストア)を使用して暗号方式で署名を検証している。
    AndroidアプリをMetaQuestなどのAndroidデバイスにインストールするには、そのアプリがデジタル署名されている必要がある。
    アプリの開発者は独自の一意のデジタル署名を作成して、署名をしてからアプリを開発する。 アプリ署名で使用する証明書ファイルは、アプリがアップデートするときに同じ証明書ファイルで署名する必要があるので、保存しておく。
    Edit> Project Settings>Player
    Publisher SettingsのKeyStoreManagerで、CreateNewをするときにAnywhereでなく保管しやすい場所を指定する。



    KeyStoreが作成されたら、作成時に指定したパスワードを入力してプロジェクトに設定する。

    ビルドしてアップロード

    Bundle Version Code (バンドルバージョンコード)を、インクリメント(増加)する。
    1から始め、アプロード更新のたびにこれまでの最終ビルドよりも大きい数字にしないと上書きできない。
    Versionは、外から見えるバージョンを示す数字で、Bundle Version Codeはビルド世代の順番を表す。
    アルファからベータなどリリースチャネルを変えたときでも、他のリリースチャネルですでに 同じアプリとしてアップロードした最終ビルドより大きい数字にしないといけない。
    Meta Quest Developer Hubを起動し、アルファチャンネルでアップロードを実施。
    Manifest関連でエラーが出たら、Manifestファイルをメモ帳で追記して修正可能。
    無事アップロードできたら、2分くらいしてページを更新すれば反映される。

    ユーザーの招待

    チャネルごとに配布するユーザー(Metaアカウント)を登録する。
    Oculus開発者サイト にログインして、まずは自分自身のmetaアカウントをユーザーとして招待する。
    アプリのリリースチャンネルで、ユーザー数(初回は0)を押し、自分のmetaアカウントを招待する。
    metaアカウント登録されていないメールアドレスは撥ねられるので、タイプミスしないで済む。

    自分および自分で作ったテストユーザーは即座に登録が承諾される。
    その他のユーザは、招待メールに承諾すると、登録される。
    アプリが更新されたら、もしくはユーザー登録されたら、5分くらいでMetaQuestメニューに 配布アプリが表示されるので初回はインストールを押す。
    アプリ更新はQuestがインターネットにつながっているときに自動で行われる。