2017年1月4日水曜日

Unity + Android で GearVR 用のサンプルアプリを動かせるようになるまで

概要

GearVR 用の VR アプリは Unity で作るのが個人的にはいいかなと思っています
今回は開発環境のセットアップ方法と簡単なサンプルアプリを動かすところまでやってみました
サンプルアプリは Unity のアセットストアから取得してきたものを動かします

環境

  • GearVR
  • Galaxy s6 (SC-05G)
  • Unity 5.4.0f3
  • Android SDK 24.4.1
  • Android Studio 2.1.1
  • Java SDK 1.8.0_25
  • Mac OS X 10.11.6

Unity インストール

https://unity3d.com/jp/get-unity/update から dmg ファイルのインストーラをダウンロードし起動します
ライセンスに同意します
個人で利用するのが目的なのでフリーのライセンスを選択します

途中で、ビルドをサポートするプラットフォームを選択するところがあるので「Android Build Support」にチェックを入れましょう
他のプラットフォーム用にもアプリをビルドしたい場合は追加でチェックしてください

最後にインストールするハードディスクを選択しましょう
ディスクの容量を 2.4 GB ほど消費します
インストールを開始するといろいろとダウンロードが始まるので時間がかかります
完了まで気長に待ちましょう

Android Studio インストール

https://developer.android.com/studio/index.html からダウンロードしてインストールしてください

Android SDK インストール

Unity で Android アプリをビルドするために SDK が必要になります
Android Studio から SDK マネージャを起動して最新の Android のバージョン用の SDK をインストールしましょう
また SDK Tools タブにある項目にアップデートがある場合はアップデートしてください

SDK のパスが必要になるので

Android Studio -> Preferences -> Appearance & Behaivor -> System Settings -> Android SDK

でパスを確認しておきましょう

SDK のインストールおよび更新ができれば Android Studio はもう使わないので閉じて OK です

Java SDK のインストール

この 記事 の手順通りにインストールすれば OK です

インストールできたら java_home コマンドで Java SDK のインストールパスを確認しておいてください

Unity の設定

まず Unity を開いてサンプルプロジェクトを作成しましょう
今回は以下のパスにサンプルプロジェクトを作成したことにします

/Users/howksnowlog/Unity/New Unity Project

以下の設定をしていきます
基本的には Android 用にプロジェクトをビルドできるようにします

  • Unity -> Preferences -> External Tools で Android SDK のパスと Java の SDK のパスを設定する
  • Unity -> File -> Build Settings -> Android -> Switch Platform をクリックする
  • Edit -> Project Settings -> Player -> Settings for Android -> Other Settings -> Minimum API Level -> 19 (Kitkat) にする
  • Edit -> Project Settings -> Player -> Settings for Android -> Other Settings -> Virtual Reality Supported -> チェックする
  • Edit -> Project Settings -> Player -> Settings for Android -> Other Settings -> Bundle Identifier -> com.hawksnowlog.game にする

Oculus Signature File (osig) の生成

https://dashboard.oculus.com/tools/osig-generator/ にアクセスします
Galaxy のデバイス ID がここで必要になります
デバイス ID を調べるには「SideloadVR」というアプリがあるので Google Play で検索してインストールしましょう
インストールしたらアプリを開くだけでデバイス ID を確認することができます

デバイス ID がわかったら上記ページにデバイス ID を入力して osig ファイルを生成しダウンロードしてください
ダウンロードした osig ファイルはプロジェクト配下に配置する必要があります

  • cd /path/to/Downloads
  • mkdir -p /Users/howksnowlog/Unity/New\ Unity\ Project/Assets/Plugins/Android/assets
  • cp oculussig_xxxxxxxxxxxxxxxxx /Users/howksnowlog/Unity/New\ Unity\ Project/Assets/Plugins/Android/assets

oculussig_xxxxxxxxxxxxxxxxx の部分はデバイス ID が振られています

サンプルのダウンロード

サンプル にブラウザでアクセスしましょう
「Unity で開く」というボタンがあるのでクリックします

Unity の Asset Store タブでサンプルのページが開くので「ダウンロード」をクリックします
ライセンスに同意しダウンロードが完了したらインポートをクリックします

完了すると左下の Assets にインポートしたサンプルのゲームや必要なファイル (Editor, Plugins, VRSampleScenes, VRStandardAssets) が表示されます

ビルド+実機動作確認

準備ができたら実機を接続してビルドしてみましょう

File -> Build & Run

でビルドしましょう
これで実機にアプリが転送されれば OK です
VR 用のアプリとしてちゃんとビルドできている場合は起動すると「このアプリケーションを起動するには、端末を GearVR に挿入します」表示されます
逆に VR 用のアプリになっていない場合は、そのまま起動してしまうので再度 Unity の設定を確認してください

Galaxy 側の準備

実機はデベロッパーモードにしておいてください
デベロッパーモードへは

設定 -> 端末情報 -> ビルド番号を連打

で ON になります
また開発者向けオプションで「USB デバッグ」も ON にしておいてください

Unity が実機へアプリを転送してくれない場合は adb が動いていない可能性があります adb devices -l 等のコマンドでちゃんと実機が認識されているか確認してください

最後に

Unity で VR 用の Android アプリを開発する環境を構築してみました

とりあえずサンプルをちょろっといじってビルドして開発する間隔を覚えるといいと思います
サンプルのコードを読み解いても問題ないですが、結構量が多いので逆引き的な感じで使うといいと思います

Tips

実は VR 用のアプリは GearVR などのヘッドセットマウントディスプレイがなくても開発できます
Unity で VR アプリのプレビューが一応できるので、それで動作を確認することがある程度できるからです
ただ、没入感や UX は流石にテストできないので、最終的には実機のヘッドセットマウントディスプレイを使ってテストしたほうが当然良いです

thread priority security exception make sure apk is signed が発生する場合は osig ファイルと接続している実機のデバイス ID が異なっているときに発生します
再度デバイス ID を調べて osig ファイルを作成して適切な場所に配置してからビルドしてみてください

参考サイト

0 件のコメント:

コメントを投稿