UnityによるOculus Questアプリ開発

Oculus Quest

PC不要の一体型HMDかつトラッカーレス6DoF対応という未来を体感してみたくて、Oculus Questを買ってしまった。

あまりゲームをするタイプではなく、スマブラ目当てで買ったSwitchが1ヶ月で飽きて放置されているので、買うのを躊躇っていたけど好奇心に勝てなかった。 5/1から買うかどうか迷っていて、結局5/15くらいにOculus公式で発注したけど、5/24の夕方に届いた。海外から発送されるのに早い。

早速beat saberやvr chatをやってみたけど、久々に凄い感動した。 HTC ViveとかOculus Riftでもやったことあるけど、全然ユーザ体験が違った。 準備の手間がほとんどかからず、被るだけでVR世界に行けるなんて、完全にレディープレイヤーワンの世界。 もうHMDはこれで良いです。完成。って感じ。

せっかく買ったので、南極に行ってペンギンに囲まれるVRアプリを自分のためだけに作ろうと思います。

Quest アプリ開発とOculus Store

Oculus Questの開発は個人でできないという噂があったのですが、結果から言うと個人でも開発はできます。 Oculus QuestはOculus Goと同じくAndroidベースのOSが搭載されているので、Androidアプリとして書き出すことができる開発環境があればOKです。

個人では難しそうなのは、作ったアプリをOculus Storeで販売すること。 審査を通過しないと販売することができず、その審査基準がかなり高いらしい。 Quest向けアプリはクオリティの高いものから展開していく方針らしいので、2019年5月現在は個人で開発して販売するのは結構ハードルが高そう。

環境

  • Unity 2018.4.0f1 (2018.1.0だと動かなかったので注意)
  • Android Studio 3.1.3

Oculus Quest向けアプリをUnityで作る

Unityプロジェクトの作り方

  • 事前準備として、UnityからAndroidアプリをビルドできるようにAndroid SDKを入れておく必要がある。以前UnityからAndroidアプリを作ったことがある人は不要。

  • Unityを立ち上げて新規プロジェクトを作る。

  • Questに搭載されたセンサによる6DoF移動やOculus Touchに反応させるため、Unity StoreからOculus IntegrationをDownload & Import (Import結構時間かかることが多い) assetstore.unity.com

  • Quest向けにビルドするため、Build Settingsを以下の設定に変える。

    • プラットフォームをAndroidに変更
  • Player Settings から Minimum API Levelを Android 4.4 ‘KitKat’ (API level 19) に変更
    • API Level 19未満にしたらエラーが出たので、おそらく現在はこれで良さそう。
    • f:id:yuki_tkd:20190527100424p:plain
  • Package Namecom.Company.ProductName のCompanyとProductNameを登録した組織名とプロジェクト名に置き換える。
  • AndroidXR SettingsVirtual Reality Supported をチェックして、右下の+ボタンを押してOculusを追加

    • f:id:yuki_tkd:20190527100420p:plain
  • 以上でUnity側の設定は終わりなので、後は適当にUnityでアプリを作る。

アプリのインストール

  • Questの開発者モードをオンにする

    • Oculus Store以外からアプリをインストールするために、開発者モードを有効にする必要がある。
    • Questをセットアップするのに使ったスマートフォンアプリの設定画面で、自分のQuestを選び、詳細な設定から開発者モードをオンにする。
    • このとき、OculusアカウントのDeveloper登録をしておかないと開発者モードを有効にできないので、未登録の場合はこちらから登録する必要がある。
  • USBケーブルでPCと接続する

  • PCと接続すると、Questの画面内にこのPCにファイルアクセスを許可しますか? みたいな感じのアラート画面が出るので Yes を選択

  • UnityからBuild & RunAndroidアプリとしてビルド&書き込み

  • Questの画面内に このPCからアプリのインストールを許可しますか?みたいな感じのアラート画面が出るので Yesを選択

  • Questの Home -> Library ->Unknown sources の一覧からインストールしたアプリを選んで起動できる。

以上で、Oculus Quest上で動くアプリを作ることができます。

今回は簡単なアプリなので問題ないけど、FPSを稼ごうとすると結構テクニックが必要そう。 周辺視野部分を荒くレンダリングするFoveated Rendering(中心窩レンダリング)や、左右の視差映像を1枚のフレームとしてレンダリングする手法などを使って、 CPU/GPUのリソースをなるべく減らす必要がありそうでした。