はじめに

2021年の2月、OculusからAppLabというアプリ配布の新たなプラットフォームが発表されました。

AppLabとはOclusu公式ストアの承認やサイドロードを必要とせず、アプリを直接配布するための新しい方法です。

AppLabはOclusu公式ストアと比較し、審査基準が緩めに設定されています。
アーリーアクセスアプリの配布、実験的に検証したいアプリの配布、
特定のユーザーのみを対象にアプリを配布することなどが公式の掲げるAppLabの目的です。

【引用元】:Introducing App Lab

AppLabを使えば、PCを介さず専用スマホアプリからVRアプリをインストール できます。

加えて、 インストール 後は正体不明のアプリというサイドローディングアプリの一覧ではなく、
Oculus公式ストアからインストールした際と同様の一覧にアプリが並びます。


今回はそのAppLabの申請手順について話を進めていきます。
先ほど述べた通り、 AppLabはOclusu公式ストアと比較し、審査基準が緩めです。
しかしその一方で 、 AppLabに申請したアプリはOclusu公式ストアの一覧には表示されず、
ダイレクトリンクによる APKの配布にしか対応していません
(アプリ名を直接指定して Oclusu公式ストアにて検索すれば表示自体はされます。)

そこで、解決策となるのがSideQuestと組み合わせて使うことです。
※SideQuestについては過去にまとめた記事を参照

SideQuestには APKファイルをホスティングする機能が現時点ではありませんが、AppLabにはその機能があります。
逆に、AppLabにはストアのようにリリースされているアプリを一覧で眺めたり、
関連タグで検索結果に表示されたりするような機能はありません
が、SideQuestにはその機能があります。

以上から、AppLabはアプリのホスティングサービスとして利用し、
SideQuestでAppLab発行のダイレクトリンクを設定する

という手法で互いの良いとこ取りをする方法を紹介します。


AppLab申請手順

では早速AppLabの申請手順を見てきましょう。

今回申請するアプリは下記リンクでも紹介した既にSideQuestへ公開済みのアプリです。
配布用APKの準備などは省略します。
【参考リンク】:SideQuestにアプリをリリースする方法

まずは開発者ダッシュボードにアクセスします。
マイアプリから”新しいアプリを作成“を選択します。

次にアプリ名を入力し、プラットフォームを選択します。
今回はQuestを選択します。

続いて、下記画像赤枠の箇所から申請画面に遷移します。

申請画面で”新しいビルドをアップロード“を選択してAPKをアップロードします。

無事にアップロードが完了したらアプリの公開画面での説明文を入力します。
入力したら”保存して続行“を選択して次に進みます。

続いて”スペック“と呼ばれる情報を入力します。
入力項目の詳細については割愛します。

次に”アセット“と呼ばれる項目です。
ロゴやアイコン、プロモーションビデオを登録します。
サイズが細かく指定されており、準拠する必要があります。

すべてのアセットをアップロードしたらコンテンツ評価に進みます。
IARC証明書の申請を行います。
新しい証明書をリクエスト”に進み、外部サイトでレーティングに関する質問を回答します。

最後に”設定を見る”、”Oculus開発者販売契約に署名“をそれぞれ選択し、
それぞれ簡単な入力を終えれば”ストアに送信“を押して申請完了です。


リジェクト

申請から1.5か月ほど待ったところ、リジェクトの通知が来ていました。
内容としては下記の3つです。

①申請ページに提出したロゴとなる画像の背景を透過させる必要がある
②OculusTouchコントローラーへの対応が必要である
③ネットワークを利用する場合、接続が切断されたことをユーザーに通知する必要がある


それぞれの対策について説明していきます。


①申請ページに提出したロゴとなる画像の背景を透過させる必要がある

このリジェクト内容に関する対応は容易でした。
ロゴとして申請した画像の背景が透過しておらず、それを透過させるだけでした。
下記が透過前の画像です。この画像のオレンジの背景を切り抜く必要があったようです。
申請欄に”ロゴ(透過)“と丁寧に警告があったのを見落としていました。


②OculusTouchコントローラーへの対応が必要である

申請時の”スペック”の”対応コントローラー“の欄を
ジェスチャーコントロール(ハンドトラッキング)のみにすると警告が表示されました。
どうやら、 OculusTouch コントローラーへの対応は必須のようです。

しかし、今回のアプリはハンドトラッキングが前提となるアプリの構成であったため、
OculusTouchコントローラーへの対応は行っていませんでした。
そこで、”対応コントローラー”に OculusTouchコントローラー を追加し、
ダメ元で申請してみましたが、やはりリジェクトされてしまいました。

新たに実装を加えてOculusTouchコントローラーへ対応を行うことも考えましたが、
今回申請するHand Brush “with your friend”はハンドトラッキングが前提のアプリなので
愚直にリジェクト内容に応じるのではなく、別の対策を考えました。

その対策はOculusIntegration内のサンプルを参考にしました。
下記が実際に参考にしたサンプルです。

ハンドトラッキングからコントローラーへ操作を切り替えようとした際に
「コントローラーを置いてハンドトラッキングに切り替えてください」という警告文が表示されます。
リジェクト覚悟で反映した修正内容ですが、無事審査を通りました。


③ネットワークを利用する場合、接続が切断されたことをユーザーに通知する必要がある

今回申請したアプリは同一LAN内での通信機能を搭載しており、多人数プレイが可能になっています。
加えて、ネットワークの接続が切れている場合は多人数ではなく一人で遊べる仕組みになっています。
どうやら、多人数プレイが前提である以上は一人で遊べるかどうかに関わらず
ネットワークの状態をユーザーに通知する必要があったようです。
下記のようにネットワークの接続状態に応じて警告文を出す実装を加えました。


【参考リンク】:【Unity(C#)】ネットワーク接続の状態に応じて処理を行う


SideQuestと連携

リジェクト内容に対応し、無事AppLabにアプリを公開することができました。
【AppLab公開ページ】:https://www.oculus.com/deeplink/?action=view&path=app/3641689015943781&ref=oculus_desktop

既に作成済みのSideQuest上の自身のアプリページを編集し、連携していきます。
SideQuestへの申請のプロセスなどは下記にまとめてあるので省略します。
【参考リンク】:SideQuestにアプリをリリースする方法

まずは、SideQuestに申請済み、あるいは申請予定の自身のアプリ編集ページを開きます。
下記画像の通り、”Integrations“の項目の赤枠の個所にAppLabのリンクを入力するフォームがあるので入力します。

これだけでAppLabとの連携が完了です。
ストアの右上にGET ON OCULUSと表示されるようになりました。
クリックするとAppLabのアプリダウンロードページに飛びます。

【SideQuest公開ページ】:Hand Brush “with your friend”

記事冒頭でも軽く触れましたが、 AppLabに申請したアプリはOclusu公式ストアの一覧には表示されません。
しかし、アプリ名を完全に一致させて検索することで表示させることができます。
上記の完全一致の制約に加えて、検索結果として表示されるページは下記画像のように
View Appを押下するまでプルダウンされた状態で表示されます。

ここまでの条件からわかる通り、AppLab単体の利用でストア経由の流入は絶望的と言えるでしょう。
よりたくさんの方に体験してもらうことが目的であれば、SideQuestとの連携をお勧めします。


おわりに

簡単なフローでアプリの公開申請を行うことができました。
審査には時間がかかりますが、SideQuestと連携することでより快適なアプリの利用が可能です。
開発者としてはもちろんユーザーとしてもありがたいことです。

これからも新しい便利機能がリリースされた際は早急に調査・検証していこうと思います。



ギャップロを運営しているアップフロンティア株式会社では、一緒に働いてくれる仲間を随時、募集しています。 興味がある!一緒に働いてみたい!という方は下記よりご応募お待ちしております。
採用情報をみる