開発者がGoogleの新しいVRプラットフォームDaydreamを試してみて分かったこと

先日、Googleの開発者会議「Google I/O 2016」で発表された“Daydream”は、高品質なスマートフォンVRを提供する新しいプラットフォームとして注目を集めています。今回は、Daydreamをセットアップし、Unityで対応アプリを開発するための流れと、私が実際にDaydreamを試してみて感じたことをご紹介したいと思います。

ハードウエアの準備

製品版のDaydreamハードウェアは、Daydream Ready スマートフォン、VRビューワー、コントローラで構成されます。

daydream 開発

Daydream Ready スマートフォンとは、GoogleがVR向けに必要と考える性能を満たしたスマートフォンのことであり、現行のスマートフォンでは、これに該当するものはありません。Daydream VR ビューワー、コントローラも未発売のため、かわりのハードウエアを準備することになります。

まず、ヘッドセット用スマートフォンとしてNexus 6Pを用意し、Androidの新しいOSであるAndroid Nのプレビュー版をインストールします。次に、コントローラとしてもう一台Android端末を用意し(Nexus 6P以外でもOK。Android Nは不要)、Google CardboardなどをVRビューワーとします。これにより、コントローラを用いたDaydreamアプリのテストが可能になります。

daydream 開発

ここで、ヘッドセット用スマートフォンには必ずAndroid Nを載せたNexus 6Pを用意する必要があるのでご注意ください。ただし、わざわざNexus 6P買いたくないよ!Android Nをインストールしたくないよ!という場合は、Unity Editorでテストすることも可能です。方法は後述します。

サンプルアプリを遊んでみる

Daydream開発者サイトには、Controller Paintというデモアプリがあります。スマートフォン用簡易Tilt Brushという感じですね。こちらをヘッドセット用スマートフォンにインストールし、コントローラ用スマートフォンに「Controller Emulator」というアプリをインストールします。これは写真のように上からタッチパッド、Appボタン、Homeボタンの3つの仮想ボタンがあり、タッチパッドをダブルタップすることでタッチパッドを「押した」状態を再現します。

daydream 開発

最後に、コントローラ用スマートフォンをWi-Fi hotspotとしてヘッドセット用スマートフォンと接続すれば、準備完了です。Controller Paintをヘッドセット用スマートフォンで起動し、コントローラ用スマートフォンの上下左右の動きでポインターを動かして絵を描きます。

daydream 開発

プレイ感覚ですが、意外にスムーズにお絵かきができます。ただし、ViveのコントローラやOculus Touchなどとは異なり位置トラッキングはないので、、マーカーを手前や奥に移動させるような、三次元的なお絵かきはできません。

また、しばらく使用してるとNexus 6Pの発熱が強くなり、ヘッドトラッキングが遅くなる現象も見られます。これについては、Nexus 6Pが製品版Daydream Ready スマートフォンではないため起こる、とGoogleは説明しています。製品版では改善されることを期待したいですね。

Unityでの開発環境

今回、Daydreamが発表されたことに合わせて、Google Cardboard SDK for UnityはGoogle VR SDK for Unityと名称変更され、バージョンも0.7.2から0.8.0になりました。開発者向けのサイト (https://developers.google.com/vr/) の名前もGoogle VRと変更されています。

daydream 開発

GoogleVR SDKは、描画などについては従来のCardboard SDKとほとんど変わっていませんが、新たにDaydream コントローラがサポートされ、テスト用のデモシーンも追加されました。コントローラでポインターを動かしてキューブを選択したり移動させたりできます。

daydream 開発

自分のシーンでコントローラを使いたいときは、GvrControllerMainというプレハブをシーンに置くだけで、Controller APIを利用できます。Daydream コントローラ用スマートフォンとPCをUSBかWi-Fi経由でつなげれば、Unity Editor上でもコントローラの操作が可能です。いちいちアプリをビルドしなくてもコントローラの動作をテスト出来るので、便利ですね!

ヘッドセット用スマートフォンでテストしたいときは、従来のCardboardアプリと同じようにUnity上でDaydreamアプリをビルドします。特にAndroid Nをターゲットにビルドしなくても動作します。

Tips: Nexus 6Pを使わずに、コントローラとヘッドセットを用いたテストを行う

ヘッドセットとコントローラを用いてテストをしたいけれどNexus 6Pを使いたくない場合は、Unity Remoteを使う方法があります。まず、コントローラ用スマートフォンとは別に、Unity Remote 4が動くスマートフォン(iPhone, Androidどちらでもよい)を用意し、USBケーブルでPCにつなげ、Unity Remoteが使えるようにUnity Editorの設定を行います。

次に、Google VR SDK for Unityの中にEditorDevice.csというスクリプトがあるので、それの71行目にある
if (GvrViewer.Instance.UseUnityRemoteInput && RemoteCommunicating) を if (RemoteCommunicating) に変更します。

daydream 開発

すると、Unity Editorでプロジェクトを実行すれば、Unity Remoteが動いているスマートフォンでヘッドトラッキングが有効になり、ヘッドセット用スマートフォンとして動作するようになります。コントローラ用スマートフォンをつないでいれば、そちらを使ったコントローラのテストも可能です。

daydream 開発

最後に

Daydreamを用いた、モバイルVRでのコントローラ入力は思った以上に快適でした。今後はモバイルVRでもコントローラ入力を用いたアプリが主流になりそうな予感をさせるものでした。

Google VR 公式サイト
https://developers.google.com/vr/

(参考)
VR at Google – Google I/O 2016
https://www.youtube.com/watch?v=UGlcsJOt-ng

Designing & Developing for the Daydream Controller – Google I/O 2016
https://www.youtube.com/watch?v=l9OfmWnqR0M

Googleが推進する、高品質なモバイルVRのプラットフォーム『Daydream』についての最新情報はコチラ

この記事を書いた人

  • ngvfR_WL_400x400

    VR大好きおじさんです。千葉大学医学部卒。以前はイギリスで医学系の研究をしてましたが、今は関西で大学教員をしつつ、教育用のモバイルVRアプリの開発、子ども向けのVRアプリ体験会の運営などをしてます。

    Twitter:@yanosen_jp

    Mogura VRのライター一覧はこちら
    http://www.moguravr.com/writers/