Hololensのアプリケーションの動作確認

# Hololensで動作確認をする方法
Hololensでアプリケーション開発する際のアプリケーションの動作確認をする方法を整理してみました。今理解してる中では以下の3種類です。

- Hololens Emulator
- Unityから実機にリモートで実行
- 実機で直接実行（Visual Studioからのデバック）

## 情報源
2/4(土)開催「[Osaka HoloLens Meetup vol.1](https://hololens.connpass.com/event/47003/)」
## 環境
今回記載している内容については以下の環境での話になります。

- Visual Studio 2015 Community Edition update 3
- Unity 5.5.0P2 Personal
- HoloToolkit-Unity-1.5.5.0
- Hololens Emulator 10.0.14393.0

## Hololens Emulator
Hololens Emulatorを使用すれば実機なしにアプリケーションの動作確認が可能です。実体はHololensのVMがHyper-Vで立ち上がることになります。このためOSはWindows 10 Proが必須になります。あと端末自体のメモリが8G必要です。hololensのVMは2GB固定で変更できません（Hyper-V管理画面から変更しても立ち上げるときには2GBに書き換えられてます）[^1]。
[^1]: Visual Studioから行った場合。エミュレータをコマンドラインから実行することで任意のメモリで実行可能。コマンドについては[HololensでSharingするアプリケーションをスタンドアロンで検証する（エミュレータのみ版）](http://qiita.com/miyaura/items/720c16fd93aa9a521073)で少し解説しています。


### 準備
必要な作業は以下の通りです。
1.Windowsの機能の有効化からHyper-V機能を有効にします。
2.Hololens Emulator をインストールします。

### 実行方法
動作確認するためのHololens用アプリをVisual Studioで開き、「Debug」「X86」「Hololens Emurator 10.0.14393.0」で設定の上実行するとアプリケーションがデプロイ済みでHololens Emulatorが起動します。
### 使い道
ハンズオンでは、曰く実機ある人は使わない（当たり前なのかは不明）ということらしいです。試したい人はどうぞなんですがエミュレータセットアップした状態見てるとちゃんとHyper-Vの管理VMに入ってるんですよね。もしかしてこのVMコピーして増やして同時に立ち上げれば複数のHololensでsharingした状態とか実現できるんじゃないかなと。少なくても実機+エミュレータの二台でsharingアプリできないのかなと書いてる時に思ったので今度やってみます。
VM複数台は流石にこっそり会社の端末使わないとできないかな。。。

## Unityから実機にリモートで実行
Unityのエディター経由でアプリを動作させる場合は実機に対してリモート接続で動作させることができます。ただし、Unityからの起動が前提になるためUWPなどで実装しているHololens用のアプリケーションについてはVisual Studioからしかできません。
　Hololensとの接続はネットワーク経由になるため同一の無線LANに接続して実行する必要があります。

### 準備
Hololensに以下のストアアプリをインストールしておきます。セットアップはHololensで実施してください。

- Holographic Remoting Player

### Hololens側の作業
ネットワークに接続している状態でHolographic Remoting Playerを起動し、任意の場所にタップします。
![8e598e57-4df0-b7c3-f7a0-0b88eee3eac9-314x265.png](https://qiita-image-store.s3.amazonaws.com/0/152548/206a8737-c3a6-2d59-7f8c-55099cf31234.png)

　　ネットワーク正常に接続していた場合は正面にHololensのIPアドレスが表示されますので、そのIPアドレスをUnity側で設定します。この状態で待機しておきます。

### Unity側での作業
「File」-「Build Settings」を開きます。Platformで「Windows Store」しSwitch PlatFormを押します。グレーアウトされている場合は、選択済みのためのそのままで問題ないです。
![5f1b773b-5a08-99be-0289-e0cd3da8f1ed-814x543.png](https://qiita-image-store.s3.amazonaws.com/0/152548/d1a2c932-ad0f-2933-da46-3952c40ccdf1.png)


Inspecterタブ内の「Other Settings」にある「Virtual Reality Supported」にチェックをいれ、SDKが「Windows Holographic」になっていることを確認します。

次に、「Window」-「Holographic Emulation」を開き「Emulation Mode」を「Remote Device」に設定します。
![d48ada8e-5731-084f-5713-b2272c5753bb-482x396.png](https://qiita-image-store.s3.amazonaws.com/0/152548/f64df73c-fffc-6d75-d797-3cb9fc7f1d83.png)


「Remote Machine」に先のHololensで表示されているIPアドレスを入力し「Connect」を押下します。「Connection Status」がConnected（グリーンのアイコン）になっていることを確認してUnityで再生を実行するとHololens側でUnityのアプリが動作するので確認が可能になります。
![2f4a65e2-d973-00ca-454f-5d99824127d9-402x330.png](https://qiita-image-store.s3.amazonaws.com/0/152548/4021c085-e779-db3e-728a-71212b8299d8.png)


なお、Connectingのままになることもあるので、その場合は何度か試行するとつながります（一発で繋がったことはないです）。
![c6938568-ccad-67af-0aec-0f212db99452-396x35.png](https://qiita-image-store.s3.amazonaws.com/0/152548/35e5cf6b-f2c5-4530-ccce-78e0a0070dc1.png)

## 実機で直接実行（Visual Studioからのデバック）
Visual Studioでデバッグ実行する場合、USBケーブルで直接Hololensをつなぐ必要があります。この間有線接続になるので、移動するようなアプリの場合注意が必要です。
実機での実行は展開先を「Device」にして実行すればhololensにアプリがデプロイされます。hololens側でメニューを開き配置されたアプリを実行することで動作確認可能です。