2016.09.15

Nougat + Daydream


こんにちは。次世代システム研究室のT.Kです。
あっと言う間に2016年も後半に突入し、先日は”iphone7″や”PS4 pro”が発表されましたが、今回は8月23日に正式リリースされた”Android Nougat”版Daydreamの触れてみようと思います。

自分の会社携帯が”Xperia Z5″でしたので”Nougat”にアップデートして利用出来ないかと期待したのですが、現在は対応予定のみでまだ対応していなかった為、部内でアップデート対象機を探したところサクッとNexus6が見つかったのでNexusを用いる事にしました。
しかし、DaydreamのコントローラとしてAndroid端末が1台必要との事でしたので、”Xperia Z5″はコントローラとして利用する事にしました。

用意した機器は下記になります。

  • 1. Nexus6(部内検証機)
  • 2. Xperia Z5 premium(会社携帯)
  • 3. ハコスコ(約1,500円)

機器s

アプリのビルドには”Unity 5.4″(※検証時最新版)を利用しました。
基本的にGoogle VRの公式手順に沿って設定を行って行きました。
※公式サイトの情報は”Android N Developer Preview”ベースである為、正式版”Nougat”と一部差異があるようですので注意して下さい。

headset phone 準備


まずは”Nexus6″を”Nougat”にアップデートです。
当初、部内検証機の”Nexus6″は”Marshmallow”でしたが、設定の”システムアップデート”に選択が無く(9月7日時点)、素直にはアップデート出来ませんでした。
少し調べたところ”Beta Program”に登録する事でアップデート可能と言う記事を参考に“Beta Program”に登録し無事アップデートを行う事が出来ました。

Photo_16-09-08-18-55-50.049

公式サイトの手順に沿って、Androidの開発用設定を行います。
一箇所”Google VR サービス”設定がアプリのリストに見当たらなかったのですが、正式版”Nougat”では”特別なアクセス”配下に移動しているようです。(結構探しました。。。)
個人的な感想として、公式手順には諸々設定するように記述されていますが必ずしも必要でない設定も混じっている様ですので、見当たらない設定であれば一旦スキップしても良いかと思います。

controller phone 準備


次に”Xperia Z5″をコントローラ端末として”Controller Emulator”アプリをインストールします。
“Google play”に見当たらない場合はGitHubから直接apkをダウンロードしてインストールして下さい。
“Controller Emulator”は”Nougat”で無くても問題なく動作します。

Photo_16-09-08-19-02-26.477

Unity 準備


Unityの設定はこちらの記事を参考にさせてもらいました。
環境として主に行った事は下記2点です。
  • 1. Unityインストール
  • 2. Unitypackageインポート
その他には以前にUnityでVRを設定した時の記憶を辿りながら”Virtual Reality Supported”の設定などを行いました。
Androidビルドに関しては特別な設定はありませんので割愛させて頂きます。

Nougat + Daydream


やっと準備が整ったところで、動作確認を行ったのですが、ここからが課題の本番でした。
“headset phone(Nexus6)”にUnityでビルドしたapkをインストールし起動したところ、、、何故かアプリが直ぐに落ちる!!
原因調査に少しハマりましたが原因は以前の記憶で設定した”Virtual Reality Supported”が悪さをしており、設定を変更する事で解決する事が出来ました。
先人の方の投稿に大変助けられました。ありがとうございます!
※『Split Stereo Display』に変更しました。

1つ問題を解決し、”headset phone(Nexus6)”端末で”GoogleVR”のデモが起動しました。
次に”headset phone(Nexus6)”と”controller phone(Xperia Z5)”の連携ですが、これが全然認識せず小一時間ツマリました。
公式サイトでは『両端末のBluetoothをオンにしてペアリング』と記述されていますが、ペアリングしても”Controller Emulator”アプリはさっぱりです。

連携方法はBluetooth以外にも、wifiで連携する方法があるようなのでこちらのブログを参考に設定を行ってみました。
まずは”テザリング”を試したのですが挙動が不安定な為、断念しブログ著者の方と同様の手順で進めました。
スクリプトを修正を行い動作確認を行ってもやはり”Controller Emulator”は”Connected”になりません。
そこで、選択できるControllerをエミュレータのみになる様に修正したところ、やっと”headset phone(Nexus6)”と”controller phone(Xperia Z5)”の連携を行う事が出来ました。

--------------------------------------
#if UNITY_EDITOR || UNITY_STANDALONE
      // Use the Controller Emulator.
      return new EmulatorControllerProvider(owner.emulatorConnectionMode, owner.enableGyro,
          owner.enableAccel);
#elif UNITY_ANDROID
      // Use the GVR C API.
      return new AndroidNativeControllerProvider(owner.enableGyro, owner.enableAccel);
#else
      // Platform not supported.
      Debug.LogWarning("No controller support on this platform.");
      return new DummyControllerProvider();
#endif
--------------------------------------
↓に変更
--------------------------------------
//#if UNITY_EDITOR || UNITY_STANDALONE
      // Use the Controller Emulator.
      return new EmulatorControllerProvider(owner.emulatorConnectionMode, owner.enableGyro,
          owner.enableAccel);
//#elif UNITY_ANDROID
//      // Use the GVR C API.
//      return new AndroidNativeControllerProvider(owner.enableGyro, owner.enableAccel);
//#else
//      // Platform not supported.
//      Debug.LogWarning("No controller support on this platform.");
//      return new DummyControllerProvider();
//#endif
--------------------------------------

Photo_16-09-08-18-55-47.866Photo_16-09-08-18-55-18.225

まとめ


多少躓いた箇所はありましたが、今回”Nougat”正規版を用いてDaydreamのサンプルを動かす事が出来ました。
コントローラもエミュレータを利用して、想定通りの挙動を確認する事が出来ました。
実際に操作を行ってみての印象としては、左手でハコスコを持ち、右手でエミュレータ端末を持っての操作はあまり快適とは言えず、ゲーム等の様に操作を必要とするケースの場合は、”Gear VR”等の様に頭に固定する必要があるように感じました。
“Google Daydream”の最大の強みは”Oculus”や”PS VR”とは違い、手軽にVRを楽しめると言う事にありますので、”必要機器を増やさない方向に進んでいく”かもと感じました。
開発環境も、携帯端末とハコスコさえあれば数時間程度で簡単に環境が整えられる事は大きな魅力です。
後は、実際に起動していると10分程度で”headset phone(Nexus6)”の方が、かなり発熱してくるので長時間の操作には不安がありますが、ハード面での改善は今後も加速度的に進んでいくと思うので、直ぐに改善する事と思います。

今後も時間を見てVR関連に触れていきたいと考えています。

連携


次世代システム研究室では、アプリケーション開発や設計を行うアーキテクトを募集しています。アプリケーション開発者の方、次世代システム研究室にご興味を持って頂ける方がいらっしゃいましたら、ぜひ 募集職種一覧 からご応募をお願いします。

皆様からのたくさんのご応募、お待ちしてます!