Daydream開発入門 その１(環境構築)

DaydreamとはGoogle製のAndroid専用VRプラットフォームです
今回はAndroid端末でDaydreamアプリを実行することを目標にします

```
※この記事は2017/10/21日時点の内容となります
今後環境構築などの方法が変わる可能性があります
```

## まずはDaydreamの特徴
- Android 7(Nougat)のOS自体に組み込まれたプラットフォーム
- 遅延の少ない高品質なVR
- 立体音響サポート
- 専用のコントローラーを使って様々な操作が可能

## 必要なもの 
- Daydream対応の[Android端末](https://vr.google.com/intl/ja_jp/daydream/smartphonevr/phones/)
- Daydream用のコントローラー(Android 4.4以降の端末があればそれをコントローラー代わりに使えます)
- VR用ヘッドセット(動作を試すだけなら無くても大丈夫です)

※ ヘッドセットとコントローラーはGoogle製の[Daydream View](https://vr.google.com/intl/ja_jp/daydream/smartphonevr/)があります
が、まだ日本で発売されていません...。発売予定はあるらしいです...

## 環境準備
- [Unity5.6](https://unity3d.com/jp/get-unity/download)以降のインストール
	- `Android Build Support`コンポーネントインストール
	![component_selection.png](https://qiita-image-store.s3.amazonaws.com/0/112492/8bd22677-8546-e6f1-93ca-9e7bd3941574.png)

	- Android SDK セットアップ([詳細は公式](https://docs.unity3d.com/Manual/android-sdksetup.html))
- [Google VR SDK](https://github.com/googlevr/gvr-unity-sdk/releases)ダウンロード

<br>
これで前準備完了です。ここから実際にUnityを使った開発していきます！
## Unityプロジェクトを作成しSDKをインポート
1. Unityで新規 **3D**プロジェクトを作成
2. **Assets** > **Import Package** > **Custom Package**を選択
3. ダウンロードした **Google VR SDK**(GoogleVRForUnity_*.unitypackage)ファイルを選択
4. Importing Packageダイアログで **Import** をクリック。もし「API upgrades」が表示されたら **Accept** を押します

## ビルドセッティング
1. **File** > **Build Settings** を選択
2. **Android** を選択し、 **Switch Platform** をクリック
3. **Player Settings** をクリック
4. InspectorのPlayer Settingsの設定をする
	5. **XR Settings** を↓の通り設定
	
	![スクリーンショット 2017-10-19 23.22.24.png](https://qiita-image-store.s3.amazonaws.com/0/112492/f5d3cb98-e85c-b408-d128-1c3fe1fe87bf.png)

	2. **Other Settings** を↓の通り設定
	
	![スクリーンショット 2017-10-19 23.30.07.png](https://qiita-image-store.s3.amazonaws.com/0/112492/0c2bb734-7b87-5ea3-eee6-7df6afdb9468.png)


## アプリ実行
ここまでの設定でDaydreamアプリとして動作します
設定するだけでDaydream対応アプリになるなんてすごいですよね！
このまま実行してもあまり動作がわからないので、適当な3Dオブジェクトを配置してみます

1. Main CameraのPositionを`x: 0` `y: 0` `z: 0` に設定
2. Cubeオブジェクトを追加
3. CubeオブジェクトのPositionを`x: 0` `y: 0` `z: 5` に設定
4. Android端末をUSB接続
5. **File** > **Buidl & Run** を選択

![daydream.gif](https://qiita-image-store.s3.amazonaws.com/0/112492/9cc7fba4-d04d-976e-3a1e-2b9348df5efb.gif)


こんな感じに動けば成功です！

<br>
Daydream用のコントローラーにAndroid端末を使う場合は以下の設定を行ってください
### Android端末を使いDaydream用コントローラーをエミュレート
#### 前提
コントローラー端末はAndroid4.4(KitKat)以降を利用
(この記事ははNexus 5Xを使っています)


#### 方法
1. まず以下公式サイトの **[GET THE APK]** ボタンからエミュレータ用apkをダウンロードします
https://developers.google.com/vr/daydream/controller-emulator#game_engines

2. apkをコントローラーとなる端末にインストール
`$ adb install controller_emulator.apk`

3. Daydream対応端末とコントローラー端末をBluetoothで接続する
	4. 両端末で **設定** > **Bluetooth** へ行き Bluetoothを **ON** にする
	5. Daydream対応端末でコントローラー側の端末とペアリングする

4. Daydream対応端末でアプリを実行する
	5. 設定歯車をタップし設定画面へ遷移します
	![device-2017-10-21-145512.png](https://qiita-image-store.s3.amazonaws.com/0/112492/f82df69b-98a9-0f8c-16fe-bbf15f6c9185.png)

	
	6. 設定画面最下部にある`Build Version`を7回タップし`Developer options`を表示する
	![device-2017-10-21-153028.png](https://qiita-image-store.s3.amazonaws.com/0/112492/6f955fc4-0434-966b-f67a-bb333df8a06c.png)

	
	7. **Developer options** > **Controller emulator device** をタップしコントローラーとなる端末を選択
	![device-2017-10-21-153125.png](https://qiita-image-store.s3.amazonaws.com/0/112492/440d65d0-d0a0-ac45-be73-096a84faa4fd.png)

	
	8. コントローラー側の端末でインストールした `Controller Emulator`を起動
	9. Daydreamアプリを1. の画面まで戻る
	10. コントローラーアプリが↓のよう`Connected(Bluetooth)`となれば完了です！
	![device-2017-10-21-155921.png](https://qiita-image-store.s3.amazonaws.com/0/112492/3074e412-5d90-a7dc-fcbf-93538856361b.png)




## 最後に
簡単にDaydreamアプリの起動までが行えて、Googleすごいなーと感動しました！

間違っている箇所などありましたら指摘していただけると嬉しいです！

追記：
デバッグの効率化を図るための、[Instant Previewの記事](https://qiita.com/beaa/items/05b78a60929e2105dbe3)を書きました