R&D事業部の近藤です。
今回はDaydreamのコントローラーのエミューレーターの導入方法を紹介します。
Daydreamにはレーターポインターのようなコントローラーが付属します。
WiiリモコンのようにポインターをオブジェクトやボタンなどのUIをクリックしてアプリを操作します。
しかしDaydreamは日本国内ではまだ販売されておらず入手するのはやや困難です。
そこで、Google VR SDKにはコントローラーをエミュレートして、Android端末をコントローラーとして使えるようにできるようになっています。
Daydream本体を持っていなくても開発ができるようになります。
導入前の準備
Daydream導入編の記事を参考にGoogle VR SDKをインポートして、Daydreamが使えるように準備しましょう。
【Unity + Daydream開発はじめの一歩(2017.6月最新版) - WonderPlanet DEVELOPER BLOG】
コントローラーエミュレーターのアプリのインストール
こちらのページからエミュレーターのアプリをダウンロードできますので、Android端末にインストールしましょう。
https://developers.google.com/vr/daydream/controller-emulator
インストールしたアプリを起動するとこのような画面が表示されます。
Touchpad
タッチパッドの触っている部分により方向を判別して操作します。
ダブルクリックするとクリックできます。(本物のコントローラではシングルクリック)
Appボタン
Appボタンのクリックイベントをアプリに送信します。
このイベントをトリガーにして任意の動作をつけることができる。
Homeボタン
顔が向いている方向とカメラの方向がずれているときに、このボタンを押すと向きをあわせます(リセンター)。
本物のコントローラーの場合は、クリックするとDaydreamのホーム画面に戻ります。
長押しするとリセンターします。
Unity側の設定
コントローラエミュレータのプレハブの配置
インポートしたGoogle VR SDKにコントローラーエミュレーターを利用するのに必要なプレハブが含まれています。
「GvrControllerMain」「GvrEditorEmulator」「GvrControllerPointer」の3つを下のスクリーンショットのように配置します。
「GvrControllerPointer」はplayerオブジェクトの子オブジェクトとして配置します。
コントローラーの設定
Hierarchyから「GvrControllerMain」を選択して、Inspectorを開きます。
「Emulator Connection Mode」の項目で「USB」または「Wi-Fi」の接続方法を選択します。
USB
PCとAndroid端末をUSBケーブルを利用して接続します。
この接続方法でコントローラーを使用するには、事前にadbのパスを通しておく必要があります。
Wi-Fi
Wi-Fiを利用してワイヤレスでコントローラーエミュレーターを使用することができます。
PCとAndroid端末を同じWi-Fiアクセスポイントに接続します。
この接続方法でコントローラーを使用するためには「EmulatorConfig.cs」をIPアドレスを設定する必要があります。
IPアドレスは、コントローラーエミュレーターのアプリの画面上に記載されているIPアドレスを設定します。
実行
エディターで実行ボタンを押します。
コントローラーエミュレーターの画面上部が緑色で「Connected」と表示されたら成功です!
コントローラーの傾きに応じてUnityの画面上に表示された白色のポインターが動きます。
これでDaydeamの実機がない状態でコントローラーの操作をエミュレートできるようになりました。
この記事ではとりあえずポインターが動かせる状態になっただけですが
もちろんクリックやスワイプの操作に応じてアプリ上のオブジェクトやUIを操作することもできます。
そのあたりの実装方法はまた次回の記事で紹介します。