Home » Oculus Quest向けアプリの個人開発は可能か? 実機で確かめてみた


開発 2019.05.10

Oculus Quest向けアプリの個人開発は可能か? 実機で確かめてみた

5月21日に発売予定の新VRヘッドセット、Oculus Quest。Amazonなどでの予約開始やローンチタイトルの情報など、話題の絶えない状態が続いています。

一方でアプリストアへの申請基準の厳格化や、開発に関する情報の少なさなどから、「個人開発者にとっては、Oculus Questでの開発そのものが難しい/できなくなるのではないか、ビルドは可能なのか」という懸念・疑問の声も散見されます。

こうした疑問に答えるべく、本記事ではUnityで自作したアプリをビルドし、Oculus Questの実機で動かす手順をまとめました。主に個人開発者の方の参考となれば幸いです。

目次

1.前提:審査が厳格化。SDKはいずこに?
2.Unityでビルドしてみる
3.Questコントローラーの入力は取れるのか
4.Go用のApkをインストールしてみた
5.まとめ

1.前提:審査が厳格化。SDKはいずこに?

Oculusの公式ブログによると、Oculus Storeで配信されるQuest向けのVRコンテンツには「これまでよりも厳格で、我々としても過去に類を見ないレベルの品質管理」が設定されるとのこと。これにより、Oculus Storeで個人開発者が作成したアプリが配信できなくなる可能性が浮上しています。(参考記事:Oculus Quest用のコンテンツ審査規定が発表、事前のコンセプト提出などが必要に

これまでにも審査は存在しましたが、個人開発者でも問題なく申請を通すことができました。しかし、今後は企画書の作成・提出、および「コンテンツのクオリティがOculusの望む基準に達しているか」「市場での成功の見込みがあるか」「コンテンツの内容が規定のガイドラインに沿っているか」などをOculus社が精査する形となりました。これにより、審査段階で申請が通らないのではないか、という懸念があります。

そして、より大きな問題として、Oculus社公式からQuest開発用のSDKのアナウンスなどがなく、「そもそも申請を通さなければ、開発に着手することすらできないのではないか?」という意見も。こうした疑問に対し、Mogura VR NewsではOculus Questを使い、Unityで製作した実行ファイルを、Questの実機で動かしてみました。

Unityでビルドしてみる

結論から言うと、Oculus Questの開発はデバイスがあれば個人でも可能です。インストールまでの初歩的な開発の流れは、Oculus Goとほとんど変わりません。

具体的には、まずスマートフォンにインストールされたOculus アプリからOculus Questの開発者モードを許可します。その後PCとOculus Questを接続すると、Oculus Quest側にUSB接続を許可するメニューが出ます。ここで許可を選択すれば、アプリのインストールやOculus Questのライブラリにアクセスができるようになります。

Oculus QuestにPCからアクセスができるようになったら、Unityで実行用のapkファイルを作成します(今回はUnity2018.3.14f1を使用してapkファイルを作成)。

Unityを起動したらAssetsStoreからOculus Integrationをダウンロードしインポートします。

インストールしたのち、Project内にあるAssets/Oculus/VR/Prefabsの中にあるOVRCameraRigをHierarchyに追加し、Main Cameraを削除しておきます。その後OVRCameraRigにアタッチされたOVR ManagerのTargetDevicesをQuestに変更します。

次にProjectSettingsのPlayerの設定を変えます。PackageNameを記載し、Minimum API LevelをAndroid4.4(API level 19)に設定します。また同様の場所にあるXR SettingsのVirtual Reality Supportedを許可し、Virtual Reality SDKsにOculusがあるのを確認しましょう。なければ追加を行います。

最低限「見るだけ」であれば、この設定で動作は可能です。

AndriodのビルドにはAndroidStudioをインストールする必要などはあります。Androidのビルドに関してはJackMasaki氏による以下のブログを参考にしています。

参考記事:Oculus Quest向けのビルドとコントローラの表示メモ

apkファイルをビルドしたのちは、adb installでOculus Questにインストールをします。インストール後はライブラリの提供元不明アプリに表示されるため、それを選択すれば制作したアプリが実行できます。

一度でもOculus Go向けのアプリを作成したことがある開発者であれば、Oculus Questでもスムーズに開発ができるようになっています。

Questコントローラーの入力は取れるのか

上記のやり方では、OculusのTouchコントローラーが表示されていないかと思います。コントローラーを表示するには、OVRCameraRigのプレハブ以下にあるそれぞれの手のControllerAnchor以下にOVRControllerPrefabを配置します。そしてOVRControllerPrefabにアタッチされているOVR Conttoller Helperの中にあるControllerのタブの中からL(R)Tracked Remoteをそれぞれ選択します。この設定をしておくと、ビルドした後にQuestのコントローラーが表示されるようになります。

また、入力に関してはOculus Riftに使用したOculus Touchのコードがそのまま使用できます。コードなどに関してはJackMasaki氏による以下のブログを参考にしました。各入力をテストできるデモアプリも付属しています。

参考記事:Oculus Questでのコントローラの入力取得

Oculusの公式ドキュメントも、画像などが新しいTouchコントローラー用に変更されています。ボタン配置などや詳細な記述はこちらのページにあります。今回はUnityで検証したため、UE4でのコントローラー操作は未検証ですが、当該ドキュメントにはUE4向けの記述もあります。アプリ制作の前に一読しておきましょう。

Go用のApkをインストールしてみた

余談ですが、Oculus Go向けにビルドしたコンテンツを試しにインストールしてみたところ、驚くべきことにQuestでもそのまま動きました。Oculus Goの3DoFで作ったコンテンツが6DoFで動作します。

ただし、検証したアプリではコントローラーはGearVR用のものが両手に表示されており、どちらか片方のみ入力ができる形になっていました。コントローラーはボタンなどの入力がされた方が有効になり、両手のコントローラーを同時に使用することはできません。ボタンなどの入力はトリガーが人差し指のトリガーに、タッチパッドがスティックに置き換わっており、中指のトリガーなどは反応しないようになっています。

また最新のSDKでビルドしたものは右手用のコントローラーが左手にも表示されているなど、環境によって表示や入力も様々になっていました。

そのまま何も変換せずにも動くことは確認できましたが、コントローラーの操作などは違和感が残る形となっており、あくまで「最低限動いている」といった状態です。Oculus GoのコンテンツをOculus Questで動かす場合、操作などをTouchコントローラー用に変更する必要があります。また、古いSDKなどを使っているなど、場合によっては動かないケースも考えられるため、そのまま動かすのではなく、きちんとOculus Quest向けに調整することをおすすめします。

まとめ

Oculusストアへの申請は厳しくなった点は変わりませんが、今まで通り個人でも開発できることがわかりました。Quest専用のSDKなどは特になく、従来のSDKがほぼそのまま使用できる形になっています。

UnityやUE4で作った既存のコンテンツでも、移行は他のプラットフォームより比較的スムーズに移行ができます。今までOculus Goなどで開発をしていた開発者はQuestへの対応も十分可能でしょう。詳細なSDKの内容や今後のアップデートにも期待できそうです。

※本記事は、メディア向けの貸出機を使用し検証を行ったものです。

(2019年5月9日執筆)


Mogura開発部では2018年4月にに立ち上がり、受託開発のご相談を承っております。
プロトタイプ開発、VRトレーニング、3Dモデル活用、VTuber関連など様々な案件に対応可能です。
国内外の事例収集やハードウェア動向に基づいた膨大な知見を活かし、企画から一緒に考えさせていただくコンサルティング込の開発を特長としています。

ご相談のある方は公式サイトよりお問い合わせください。


VR/AR/VTuber専門メディア「Mogura」が今注目するキーワード