ソースに絡まるエスカルゴ

貧弱プログラマの外部記憶装置です。

【Oculus Go / unity】unityでOculus Go向けアプリのビルド方法

 購入したOculus Go向けアプリをunityで開発できるらしいということを知り、やってみたのでその備忘録です。
 アプリ自体の開発ではなく「unityでのOculus Go向けのビルド方法」の説明なので、今回の内容にゲーム要素はないので注意してください。


1:開発環境
 環境は以下の通りです。

  • OS:MacOS Sierra 10.12.6
  • unity:2018.1.0f2 Personal

 unityがすでにインストールされている前提で進めていきます。(Windowsの場合は以下の記事の手順を参照するようにしてください)
syuuki-k.hatenablog.com


2:Oculus Goを開発者モードにする
 最初にアプリを公開する際に必要になる団体名を作成します。
 以下のページで団体名を作成します。

 団体名を作成したらスマホの「OculusGoアプリ」を起動させてOculus Goと接続させます。

 右下にある「設定」をタップして設定画面を表示させ、接続したOculus Goを選択したのち、「その他の設定」をタップします。
f:id:rikoubou:20180602230649p:plain

 その他の設定画面で「開発者モード」をタップします。
f:id:rikoubou:20180602230731p:plain

 開発者モードを一度タップしてONにします。
f:id:rikoubou:20180602230815p:plain

 以上の手順でOculus GoをAndroid端末と同じようにビルドしたアプリを書き込めるようになります。


3:Java Development Kitをインストールする
 以下のサイトからOSにあったJava Development Kitをダウンロードしてインストールします。

 サンプルやデモなどは必要ないので、一番上にあるものの中から選べばよいです。
 自分の場合は「Java SE Development Kit 8u172」を選択しました。


4:Android StudioSDKをインストールする
 以下のページからAndroid Studioをダウンロードしてインストールします。

 インストールが完了したらAndroid Studioを起動させます。

 Android Studioを起動させたら、右下にある「Configure」をクリックします。
f:id:rikoubou:20180602232423p:plain

 出てきた中の「SDK Manager」を選択します。
f:id:rikoubou:20180602232503p:plain

 すると以下のようにインストールするAndroid SDKの一覧が表示されるので、APIレベルが21以降のものにチェックを入れて「Apply」ボタンを押してSDKをインストールします。
f:id:rikoubou:20180602232902p:plain

(※Oculus GoのAndroidバージョン以上のSDKをインストールすれば良いのですが、バージョンがよくわからないのでとりあえずAPIレベルが21以上のものをインストールしています)

・追記:Oculus GoはAndroid 7.1.1らしいので、そのSDKのみのインストールで良いです。
f:id:rikoubou:20180603005714p:plain

 インストールが完了したらAndroid Studioはもう必要ないので終了させます。


5:unityのAndroidビルド環境設定を行う
 unityを起動させ、適当なプロジェクトを開きます。
 適当なプロジェクトを開いたらメニューの「Unity」→「Preferences」を選択します。
f:id:rikoubou:20180602233829p:plain

「External Tools」を選択し、Androidの項目の「SDK」と「JDK」のところのパスを設定します。
f:id:rikoubou:20180602234212p:plain

 MacOSの自分の場合は以下のように設定しました。MacOSの場合は大体これで大丈夫だと思います。

  • SDK:/Users/{ユーザ名}/Library/Android/sdk
  • JDK:/Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home

 これでunityでのAndroidビルドができるようになります。エラーが出た場合は以下の記事を参考にしてください。
syuuki-k.hatenablog.com


6:unityでプロジェクトを作成しビルドする
 なんでもよいですが、今回は以下のようにCubeとSphereを置いただけのプロジェクトを作成しました。これをビルドしていきます。
f:id:rikoubou:20180602235039p:plain

 プロジェクトができたらメニューの「File」→「Build Settings」を選択します。
f:id:rikoubou:20180602235219p:plain

「Build Settings」のウインドウが出てきたら「Android」を選択し、「Switch Platform」ボタンを押します。
f:id:rikoubou:20180602235400p:plain

 プラットフォームをAndroidに切り替えたらBuild Systemを「Gradle」に変更し、「Development Build」にチェックを入れます。そして「Player Settings」ボタンを押します。
f:id:rikoubou:20180603010457p:plain

・追記:Build Systemは標準の「Gradle」にしてください。「Internal」は今後サポートが期待できないので「Gradle」でビルドに失敗した時のみの応急処置として「Internal」を使うようにしてください。


 すると「Inspector」が表示されるので「Company Name」と「Product Name」を変更します。
f:id:rikoubou:20180602235948p:plain

 なんでも良いですが今回は以下のように入力しました。(配布するアプリは1で登録した団体名をCompany Nameにした方が良いかも)

  • Company Name:hoge
  • Product Name:TestApp

「Inspector」の中にある「Other Settings」を開いて「Package Name」を入力します。
「Package Name」は「com.{Company Name}.{Product Name}」の形式で入力します。
 また「Minimum API Level」を「Android 5.0 "Lollipop"(API Level 21)」に変更します。
f:id:rikoubou:20180603000303p:plain

・追記:Oculus GoはAndroid 7.1.1らしいので「Minimum API Level」もAndroid 7.1.1にすればよいです。

 次に「Inspector」の中にある「XR Settings」を開いて「Virtual Reality Supported」にチェックを入れます。
 チェックを入れたら「+」ボタンをクリックし、「Oculus」を選択して追加します。
f:id:rikoubou:20180603000831p:plain

 これでビルド設定は終了です。


7:ビルドしてOculus Goにアプリを送る
 6まで準備できたらOculus Goの電源が入った状態で、付属のUSBケーブルでPCとOculus Goを接続します。
 その状態で「Build And Run」ボタンを押すとビルドが始まり、Oculus Goにビルドされたアプリが送られます。
f:id:rikoubou:20180603001451p:plain

 Oculus Goにビルドしたアプリが転送されると、自動的にアプリが立ち上がります。
 立ち上がらない場合はOculus Goの「ライブラリ」を開き「提供元不明」となっている中から該当のアプリ名(Product Nameで設定した名前)を選択すると起動できます。何度か選択しないと起動できない場合もあります。
f:id:rikoubou:20180611151042p:plain

 ちなみに上記のプロジェクトをOculus Goで実行するとこのようになります。


 以上がunityでOculus Go向けのビルド方法です。結構手順が多くて大変ですが、一度設定してしまえば6以降の手順だけで済みます。

 割と簡単にVRアプリが作成できることがわかったので、何か面白いものを作ってみたいです。


・参考資料