今や大人気のVirtual Reality(VR), 少し前にGoogleがDaydreamを発表しました
また、Pixelの発表に伴って追加の発表もあり、VR好きの方はワクワクが止まらない毎日だと思います
この記事は、何か開発しようかな〜と思った時にTechnical Previewがあったので、それを試した時の書きだめになります
サンプルアプリまではすごく簡単に動かせるので、ぜひみなさん実機で動かしてみてください
インストール方法については、とても丁寧な記事がGoogleさんから提供されています!
本記事はその手順に沿っているだけなので、こちらも参考にしてみてください👇
https://developers.google.com/vr/daydream/overview
開発環境
この記事では以下の環境で開発しています
- Unity 5.4.1ベース
- Cardboard
- MacOS X
Daydream対応のアプリケーションの場合は
- Nexus6P
- 他Android1台
Daydream対応でなくて良ければ
- Android1台
開発環境として提供されているものがUnityになります
Unity使ったことない方でも、今回は一切コード触れないのでご安心ください
Daydreamが現在Nexus6Pにしか対応していないので、持っていない方は今まで通りCardboardなどのヘッドセットで動くアプリをビルドする形になります
ダウンロード
ここから必要なものをダウンロードしていきます
Unity
こちらのDaydreamの公式サイトの一番下のリンクから、Unity+Androidランタイムのセットをダウンロード、インストールします

Unity5.4をベースとしたカスタムビルドバージョンのようなので、もしすでにUnityがインストールされている方も別に必要なようです
(インストールしたら現行のバージョンに上書きされてました。このあたりの仕様については詳しくないので不明。。)

インストールしてUnityを開くと、上部にUnity5.4.1f1-GVR7.1
って表示されてました〜成功だ!やったね!
Google VR SDK
こちらからDKとサンプルをダウンロードします
また、以下のコマンドでcloneしていただいても構いません
git clone https://github.com/googlevr/gvr-unity-sdk.git
Android SDK
Android SDKのページからダウンロードします
Android Studioを入れるのが便利だと思います(入ってる人は問題ないです)
SDK Managerも使えて後々便利になります
Android SDKのパスをUnityに通す
Unity > PrefernecesからExternal Toolsを選びます
Android SDKを選択する部分があるので、そこでSDKのパスを選択します
Macユーザなら/Users/ユーザ名/Library/Android/sdk
になるでしょう
コントローラー
参照: コントローラーとは
つまり、VR画面を見るものとは別に、それを操作するコントローラーが使えるようです!
まだ正式にヘッドセットができていないので自前で準備しやがれ!とのことです
つまり、ビュー用のスマートフォンとは別にコントローラー用のスマートフォンも必要ということになります
しかしapkを配布してくださってて神のようです
こちらのページを参考にダウンロードします
(文中にGithubのリンクがあるので、そこをクリックしてダウンロードしてください)

こんな感じでぬるぬる動く良いアプリです
ついでにController Emulator Overlayもあります

スマートフォンの上に貼り付けるのか、健気だな。。
Unityプロジェクトの作成
プロジェクト新規作成
Unityを開いて、NEW
を押します
適当に名前をつけて、 3D にチェックを入れてプロジェクトを作成します
SDKとサンプルのインポート
まずはインポートします
Assets > Import package > Custom package...
を選択し、先ほどダウンロードしたSDKのGoogleVRForUnity.unitypackage
を開きます

少しするとチェックボックスのような画面が開かれます
どのファイルをインポートするかの確認なので、すべてチェックが入っていることを確認して進めます
インポートが成功すると、下のProjectの一覧にGoogle VRとPluginsが表示されます
やったね!
プロジェクトの実行
Google VR > DemoScenes > ControllerDemo
からControllerDemoをクリックして開きます
さきほどダウンロードしたコントローラーのアプリが入っているAndroidをUSBでPCに接続します
その状態で実行すると!
コントローラーがジャイロで動いて、ダブルクリックで掴んでオブジェクトを動かせるようです!!
動いて嬉しい!
アプリが繋がらない
開発者モードなどの設定かもしれませんので、確認してみましょう
Download the InputCompanion app and install it on your controller phone. Make sure that your controller phone has Developer Options enabled. (If it does not, see "Enabling On-device Developer Options").
ビルドとその設定
Androidに設定
File > Build Settings
を選択します
左下のテーブルビューでAndroidを選択してハイライト状態にしたまま左下のSwitch Platform
を選択します

しばらくファイルのインポートが行われます
プレイヤーの設定
Switch Platform
の隣のPlayer Settings
を選ぶと、プレイヤーの設定画面が開かれます

次のように設定します
Bundle Identifier
おなじみのIdentifier
世界で一つのIDをつけましょう
Minimum API Level
Android 4.4を選択します
Virtual Reality Supported
最初はチェックが入っていないのでチェックをつけます
そして + ボタンからDaydreamを選びます
ここを選んでる時が一番多幸感がすごかったですね。。
ビルド
準備ができたらBuild and Runを押してビルドしましょう!
エラーなく終わったら成功です
エラーでビルドできないあなたへ
度重なるエラーで疲弊したので書き残しておきます
ビルド中に止まって、failed to re-package resources
....
CommandInvokationFailure: Failed to re-package resources.
/Users/***/android-sdk-macosx/build-tools/24.0.3/aapt package --auto-add-overlay
...
このエラーはAndroid SDK Build-toolsのバージョンが最新版(2016年10月現在v24.0.3)が対応していないからです
Android StudioのSDK Managerを開いて、タブからSDK Toolsを選び、右下のShow Package Detailsを開きます
現在インストールしてあるもののチェックを外して、23.0.3を選んでOK
です
それでもまだエラーが発生しました
警告: /Users/***/Library/Android/sdk/platforms/android-24/android.jar(java/lang/Object.class): メジャー・バージョン52は、このコンパイラでサポートされている最新のメジャー・バージョン51より新しいです。
コンパイラのアップグレードをお薦めします
これはJDKのバージョンが低いからでした
java -version
を叩くと
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
1.8にあげろとのことです
というわけでJDKのアップデートをします
また、Unityの
Preferences > External Tools
のJDKのパスを1.8.0のものに変更します
これでなんとかビルドできました!
実機テスト
トラブルシューティングによるとNexus6Pじゃないと動かないようです
持ってる人は試してみましょう!(筆者は持っていません!)
※コントローラーのアプリはNexus6Pでなくても問題ないと思われます。ビュー用のスマートフォンはNexus6P縛りです
もしNexus6Pをもっていなかったら
Google VR > DemoScenes > HeadSetDemo
を開いて、DemoSceneをダブルクリックで開きます
これはCardBoardなどで使うシンプルなアプリケーションです(Nexus6Pを必要としません)
さきほどのPlayer Settings
の部分で、Cardboardを選んでビルドしてみてください
これで動くはずです!Nexus6Pじゃなくても、VRアプリを実機でプレイすることができました!
おめでとうございます
まとめ
サンプルアプリのビルドまではエラーはたまにあるものの、かなり簡単に進めることができました
ハードウェアの制約はあるものの、一足先にVRの最先端技術に追いつくことができるので、試してみる価値は大きくあると思います
何よりこんなに簡単に試すことができたので、VRってなんだろう、って思う方にも試していただきたいです
Daydream対応でなければNexus6Pなしでもできますから、ぜひ新しい世界を体験してみてください