Yoshidayo diary

I choose the form of Oculus Go with Unity

UnityでOculus Goの開発環境をセットアップしてみた

Oculus Goがやってきた

うううおおお!ついにきましたよ、Oculus Go、これは熱い。熱すぎる鉄だー!

f:id:zyoryzyory:20180508200008j:plain

Oculug Goでチャット系からアドベンチャー系まで3時間ほど遊んでみて、可能性しか感じなかったので(AltspaceVRでは海外勢を前にジェスチャーで笑かすことしかできなかったorz)、とりあえず何かビルドしてみたくなったので、軌跡を残しておきます。この記事の主な目的は、VR開発をしたことがない自分がこれからVR開発をしたい人に向けて、アプリのビルドまでをずらずらと書いていくことにあります。

Oculusの公式サイトへいってみる

さてさてさて、やっていきましょう。まずはOculusの公式サイトにいって、DeveloperタブにあるMobile SDKを開くと…このような記述がありました。

The Oculus Mobile SDK includes libraries, tools, and resources for native development for Oculus Go and Gear VR.

Mobile SDK Getting Started Guide

おーよかった、すぐに見つかりました。このMobile SDKを使えばすぐに開発に入ることができそうです。が、native developmentにおいては必須らしいですが、どうやらC++でやっていかなければならないらしく、Unityから開発する際はべつのSDKが用意されている模様なので、すっ飛ばします。

Unityで3Dのプロジェクト作成

それではさっそく、Unityでプロジェクトを作って…どーん(なぜか綺麗ですね、地平線がくっきりとみえるような気がします)。

f:id:zyoryzyory:20180508194307p:plain

今回は、Unityのバージョンは2018.1を選択しました。新しいバージョンってイカしますよね。積極的にアップグレードしていくスタイルです。2018.1から新しく追加された機能などはいろいろあるようですが、僕が把握しているのはPackage Managerでプロジェクトへのアセットの取り込みが楽になっていたり、Job Systemなるものがなんやらかんやら…、ということです。加えて、プロジェクトを作った瞬間からScenesというフォルダがすでに作成されていて、SampleSceneという名前でシーンも保存状態でした。これは1つ手間が省けていいですね。

UnityのドキュメントでXRを参照

さてさて、次はどうするかというと…、公式ドキュメントを参照します。UnityではAR/XR/MR、諸々含めてXRと呼んでいるようなので

This section provides overviews for the VR, AR and MR SDKs supported by Unity. Each overview contains a quick start guide, and advice on troubleshooting and best practice.

Unity - Manual: XR

こちらのOculusの項目を参照すればよさそうですが…、おやGear VRの項目しかないようです。

f:id:zyoryzyory:20180509085619p:plain

GearVR ≒ Oculus Go

たしかGear VRで作られたアプリケーションはOculus Goからでも遊ぶことができるという話を聞いたことがあったので、あらかたGear VRの手順でいいのかしら…と検索していると、フォーラムに回答がありました。

Is the process for developing for the Go the exact same as the Gear VR? 

Yes, whether you are using our native mobile sdk or our unity utilities integration the development process is the same.

Developing for Oculus Go? — Oculus

冒頭でMobile SDKについては不必要ということがわかっていたのですが、どうやらOculus Utilities for Unity を使うといろいろ捗るらしいです。

Unity | Developer Center | Oculus

今回の目的はシンプルにアプリをビルドしたいだけなので、これもすっ飛ばします。

ではではさっそく、Gear VRと同じような手順でUnityからやっていきます。

まずはガチャリとmicroUSBを接続してあげて…

f:id:zyoryzyory:20180509090453j:plain

UnityのBuild SettingsからAndroidに切り替えます。これはOculus GoがAndroidで作られているからということでした。

f:id:zyoryzyory:20180508202637p:plain

おっと、エラーがでましたね。

f:id:zyoryzyory:20180508202651p:plain

f:id:zyoryzyory:20180508210623p:plain

SDKやらJDKのパスが設定されてないよ、というエラーでそもそもAndroidの開発環境が整っていないためにでているようでした。こちらを参照してエラーハンドリング。

Unity - Manual: Android environment setup

Oculus Goを開発するためにAndroid開発環境を整備

UnityのPreferencesからExternal Toolsを開くとSDKの横にDownloadボタンがあるので、そのまま手順に従ってダウンロードします(同じ手順でJDKも)。Android Studioをインストールする以外にもCommand Line ToolからSDKのみを入れることもできるようですが、今回は横着してAndroid Studioを入れておきます(かなり時間かかった)。

インストールし終わったらUnityを再起動します。Preferences -> External Toolsをみてみると、それぞれのパスが自動で設定されていました。これでKit系の準備は完了です。

f:id:zyoryzyory:20180508211350p:plain

XR Settings

さてさてお次は…、Edit -> Project Settings -> Player のXRの項目を設定します。これはOculusを選んであげればいいでしょう。

f:id:zyoryzyory:20180508211553p:plain

Build SettingsからBuild and Runしてみましょう。すると、エラーが出ました。

Oculus Requires a Minimum API Level of 19.
You have selected 16

API LevelはAndroidのバージョンごとに提供されているAPIを識別するための整数値ということでした。

https://developer.android.com/guide/topics/manifest/uses-sdk-element?hl=ja

こちらは特に理由がない限り、上位のAPI Levelを設定しておいても良いかと思います。Androidのバージョンのシェアをみるには下記のサイトがいいでしょう。Codenameがおもしろいのがポイントです。

f:id:zyoryzyory:20180509102231p:plain

https://developer.android.com/about/dashboards/

ということで、今回は最新のOreoにしてみます。

f:id:zyoryzyory:20180509094811p:plainどーん、一気にレベルアップだぜー!ひゃっほー。と思っていたら…

UnityException: No compatible Android device found
No compatible Android device found. 

またエラーですね。これはもしかしてOculus Goの中に入っているAndroidのバージョンと合致していないということでしょうか。Oculus GoのAndroidのバージョンはわからなかったのですが、Android7.1にしたらBuildが成功したので、とりあえずAPI Levelは25に設定してありますw

これでUnity側の設定は終わりです。

Oculus Goの開発者ダッシュボードより組織を設立

あとはOculus Goを開発者モードにしてあげればOKなので、やっていきましょう。

まずは下記サイトにいってOrganizationを作成します。

Oculus開発者ダッシュボード

つぎにスマホからOculusアプリを立ち上げて、下のタブの設定 -> その他設定 -> 開発者モードをONにしてあげればいいですね。これですべての準備が完了しました。

Oculus GoとUnityの出会い

では最後にUnityでBuildして…

f:id:zyoryzyory:20180509102747p:plain

Oculus Goを装着すると…、でーん。やったー!

f:id:zyoryzyory:20180509102823j:plain

 

次に読みたい記事

www.yoshidayo.com

www.yoshidayo.com

www.yoshidayo.com