購入したOculus Go向けアプリをunityで開発できるらしいということを知り、やってみたのでその備忘録です。
アプリ自体の開発ではなく「unityでのOculus Go向けのビルド方法」の説明なので、今回の内容にゲーム要素はないので注意してください。
1:開発環境
環境は以下の通りです。
unityがすでにインストールされている前提で進めていきます。(Windowsの場合は以下の記事の手順を参照するようにしてください)
syuuki-k.hatenablog.com
2:Oculus Goを開発者モードにする
最初にアプリを公開する際に必要になる団体名を作成します。
以下のページで団体名を作成します。
団体名を作成したらスマホの「OculusGoアプリ」を起動させてOculus Goと接続させます。
右下にある「設定」をタップして設定画面を表示させ、接続したOculus Goを選択したのち、「その他の設定」をタップします。
その他の設定画面で「開発者モード」をタップします。
開発者モードを一度タップしてONにします。
以上の手順でOculus GoをAndroid端末と同じようにビルドしたアプリを書き込めるようになります。
3:Java Development Kitをインストールする
以下のサイトからOSにあったJava Development Kitをダウンロードしてインストールします。
サンプルやデモなどは必要ないので、一番上にあるものの中から選べばよいです。
自分の場合は「Java SE Development Kit 8u172」を選択しました。
4:Android StudioとSDKをインストールする
以下のページからAndroid Studioをダウンロードしてインストールします。
インストールが完了したらAndroid Studioを起動させます。
Android Studioを起動させたら、右下にある「Configure」をクリックします。
出てきた中の「SDK Manager」を選択します。
すると以下のようにインストールするAndroid SDKの一覧が表示されるので、APIレベルが21以降のものにチェックを入れて「Apply」ボタンを押してSDKをインストールします。
(※Oculus GoのAndroidバージョン以上のSDKをインストールすれば良いのですが、バージョンがよくわからないのでとりあえずAPIレベルが21以上のものをインストールしています)
・追記:Oculus GoはAndroid 7.1.1らしいので、そのSDKのみのインストールで良いです。
インストールが完了したらAndroid Studioはもう必要ないので終了させます。
5:unityのAndroidビルド環境設定を行う
unityを起動させ、適当なプロジェクトを開きます。
適当なプロジェクトを開いたらメニューの「Unity」→「Preferences」を選択します。
「External Tools」を選択し、Androidの項目の「SDK」と「JDK」のところのパスを設定します。
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を置いただけのプロジェクトを作成しました。これをビルドしていきます。
プロジェクトができたらメニューの「File」→「Build Settings」を選択します。
「Build Settings」のウインドウが出てきたら「Android」を選択し、「Switch Platform」ボタンを押します。
プラットフォームをAndroidに切り替えたらBuild Systemを「Gradle」に変更し、「Development Build」にチェックを入れます。そして「Player Settings」ボタンを押します。
・追記:Build Systemは標準の「Gradle」にしてください。「Internal」は今後サポートが期待できないので「Gradle」でビルドに失敗した時のみの応急処置として「Internal」を使うようにしてください。
○「Unityの標準ビルドシステムはgradleになったようだがうまくいかなかったのでinternalに直したらビルドが通った」
— ようてん (@youten_redo) 2018年5月31日
×「ビルドシステムがgradleになっているのをinternalにするとビルドが通る」
この差がでかい。手順の根拠と妥当度を合わせて書いてほしい。正しい手順だけがあっても悪循環する。
すると「Inspector」が表示されるので「Company Name」と「Product Name」を変更します。
なんでも良いですが今回は以下のように入力しました。(配布するアプリは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)」に変更します。
・追記:Oculus GoはAndroid 7.1.1らしいので「Minimum API Level」もAndroid 7.1.1にすればよいです。
次に「Inspector」の中にある「XR Settings」を開いて「Virtual Reality Supported」にチェックを入れます。
チェックを入れたら「+」ボタンをクリックし、「Oculus」を選択して追加します。
これでビルド設定は終了です。
7:ビルドしてOculus Goにアプリを送る
6まで準備できたらOculus Goの電源が入った状態で、付属のUSBケーブルでPCとOculus Goを接続します。
その状態で「Build And Run」ボタンを押すとビルドが始まり、Oculus Goにビルドされたアプリが送られます。
Oculus Goにビルドしたアプリが転送されると、自動的にアプリが立ち上がります。
立ち上がらない場合はOculus Goの「ライブラリ」を開き「提供元不明」となっている中から該当のアプリ名(Product Nameで設定した名前)を選択すると起動できます。何度か選択しないと起動できない場合もあります。
ちなみに上記のプロジェクトをOculus Goで実行するとこのようになります。
unityでビルドしたアプリをOculusGoに入れて実行することに成功したぞぃ! pic.twitter.com/fZy0okbqUK
— シン・ほいっぷ (@sin_deviding) 2018年6月1日
以上がunityでOculus Go向けのビルド方法です。結構手順が多くて大変ですが、一度設定してしまえば6以降の手順だけで済みます。
割と簡単にVRアプリが作成できることがわかったので、何か面白いものを作ってみたいです。
・参考資料