UnityによるHoloLens開発環境＆エミュレータ設定について

注意：文中のツール類、バージョンは2016年9月時点のものです。最新情報は下記をご覧ください。
https://developer.microsoft.com/en-us/windows/holographic/install_the_tools

---
Unityを使用したHoloLensの開発環境構築、エミュレータの設定を行ったので、その手順をアップします。
失敗もしながらだったので、エラーが出て進めなくなった際の参考になれば幸いです。

基本的には
[外部リンク：HoloLensのAR世界を疑似体験できる、エミュレーターの基礎知識とインストール、基本的な使い方 (2/3)]
(http://www.atmarkit.co.jp/ait/articles/1604/14/news025_2.html)
を参考にしてますが、上記記事の時点からバージョンが変わっていたり、
Unityのダウンロード方法が変わっていたりします。

また、上記の記事は既に何らかのアプリが存在する前提で
エミュレータ動作確認の手順が記載されていますが
まったくのゼロからスタートだとサンプルプロジェクトなんかも必要になりますので
そちらも合わせて手順に組み込んでいます。

サンプルプロジェクトのダウンロードについては下記を参考にしました。
[外部リンク：HoloLensのエミュレータを起動し、Unityでアプリを作るまでの手順メモ]
(http://magicbullet.hatenablog.jp/entry/HoloLensEmulator)

##最初に
環境構築するPCが、必要スペックを満たしているか確認してください。
後ほど出てきますが、私はメモリが不足していてエミュレータが起動できないという状況になりました。

- Win10。Homeはだめ。
- 64bit 4コアCPU
- メモリは8GB以上
- BIOSで仮想化周り有効化されてること
- GPUのバージョンも確認してね

詳細はこちら(https://developer.microsoft.com/en-us/windows/holographic/install_the_tools)

##構築作業
###１．事前作業１：Hyper-Vの有効化（想定時間5分）
　![1-2.png](https://qiita-image-store.s3.amazonaws.com/0/114630/10f63660-1ec5-e5ff-c773-637fed0942bb.png)
　事前作業として、Hyper-Vを有効化します。
　Win10環境で仮想マシンを使うための機能らしいです。
　コンパネ→プログラムと機能→左ペインにあるWindowsの機能の有効化または無効化→Hyper-V　と選択。
　（Win10HomeEditionだと、このHyper-Vが無いので以後の作業が実施できない模様です）

###２．事前作業２：必要プロダクトのダウンロード（想定時間5分）
　Microsoftのサイトに記載のある必要プロダクトをダウンロードします。
　![5-1.png](https://qiita-image-store.s3.amazonaws.com/0/114630/2e3f4bcf-7e8c-97d0-04fd-073f268f78e7.png)

　1.Visual Studio 2015のダウンロード
　　Get Visual Studio Community を押してインストーラをダウンロードします。

　　![6-1.png](https://qiita-image-store.s3.amazonaws.com/0/114630/ea35c9be-6c50-cd7f-6ba4-57faabed82af.png)

　　![7-1.png](https://qiita-image-store.s3.amazonaws.com/0/114630/03c3af9b-ce95-1ef5-aeca-1c8a3400024b.png)

　2.HoloLens Emulatorのダウンロード
　　HoloLens Emulator　を押してインストーラをダウンロードします。

　　![holo-1.png](https://qiita-image-store.s3.amazonaws.com/0/114630/0c745d8a-2ffc-68db-220b-803d0960ca74.png)

　　![8-1.png](https://qiita-image-store.s3.amazonaws.com/0/114630/db8c6ea2-bfac-215d-40be-e5ba3ba5e87f.png)

　※HoloLens用のUnityはダウンロードとインストールが同時だったので
　　後述の３．Unityのダウンロード＆インストールを参照

###３．Unityのダウンロード＆インストール（想定時間30分）
　1.Download Technical Preview から Unity Download Assistantをクリック
　　![9-1.png](https://qiita-image-store.s3.amazonaws.com/0/114630/df87a635-fee6-ae53-c7e2-8e9260b7f076.png)

　2.UnityDownloadAssistant.exeの保存＆実行
　　![10-1.png](https://qiita-image-store.s3.amazonaws.com/0/114630/041cc23a-5b7a-fd06-3813-e1d1f156a7a5.png)

　3.Nextをクリック
　　![11.png](https://qiita-image-store.s3.amazonaws.com/0/114630/6dd93cd7-bbda-f27c-fd0f-60472e5b276c.png)

　4.チェックを入れてNextをクリック
　　![12.png](https://qiita-image-store.s3.amazonaws.com/0/114630/f5e611b2-a342-a357-7d19-3d0936445883.png)

　5.64bitを選択してNextをクリック
　　![13.png](https://qiita-image-store.s3.amazonaws.com/0/114630/e8fe57bc-664e-f8fd-b9c3-ea1bb7dceec3.png)

　6.Nextをクリック
　　![14.png](https://qiita-image-store.s3.amazonaws.com/0/114630/fcf166c4-fd0a-74e0-6ac7-cb617f6106a2.png)

　7.インストールフォルダを指定してNextをクリック
　　![15.png](https://qiita-image-store.s3.amazonaws.com/0/114630/1406185a-6975-b745-6b76-3ec0cecacdff.png)

　8.インストール中
　　![16.png](https://qiita-image-store.s3.amazonaws.com/0/114630/ca960f58-e5e4-fa69-59cc-fc733c55ae99.png)

　9.インストール完了！
　　![18.png](https://qiita-image-store.s3.amazonaws.com/0/114630/c0f97f2f-3c7f-2cdb-de4f-3849e0b0fc2d.png)

###４．VisualStudioのインストール（想定時間1時間以上）
　1.インストーラ実行
　　![19.png](https://qiita-image-store.s3.amazonaws.com/0/114630/ca5f011c-da78-7408-006a-92e6b42e4ead.png)

　2.インストールの種類は「カスタム」を選択する。
　　![20.png](https://qiita-image-store.s3.amazonaws.com/0/114630/6aad7cd6-f31d-b705-cf68-902e8c992afe.png)

　3.前画面で「カスタム」を選択していると、「ユニバーサルWindowsアプリ開発ツール」が選択可能。
　　SDKを2種類入れる必要があるのか迷いましたが、害は無さそうなので両方選択。
　　**※失敗Point　すぐ下にある
　　　「Windows8.1およびWindows Phone 8.0/8.1ツール」を
　　　選択しなかったため（恐らく）、後述する作業１０で想定外のエラーが発生。
　　　後からでもインストールできたのですが、
　　　最初からチェック入れておいてもよいかもしれません。**
　　![21.png](https://qiita-image-store.s3.amazonaws.com/0/114630/a8d60e61-701b-37c3-8ea0-187c7879ffb8.png)

　4.内容を確認し、「インストール」を押下
　　![22.png](https://qiita-image-store.s3.amazonaws.com/0/114630/f36710c8-f714-9775-7ca0-119faac09391.png)

　5.待ちます（けっこう待つ）。
　　![23.png](https://qiita-image-store.s3.amazonaws.com/0/114630/a7a7ed1a-7f56-9682-19b1-f29dc465b5af.png)


###５．HoloLensEmulatorのインストール（想定時間1時間）
　1.インストーラ実行
　2.インストール先の選択
　　![25.png](https://qiita-image-store.s3.amazonaws.com/0/114630/ee7bfdba-2bdc-6ef3-87fa-c7348af45312.png)

　3.MicroSoftアカウントにサインイン
　　![26.png](https://qiita-image-store.s3.amazonaws.com/0/114630/5e7dc040-6509-dd70-568a-63ce046337e7.png)

　4.（私はVS初回ログインだったので）必要情報の入力
　　![27.png](https://qiita-image-store.s3.amazonaws.com/0/114630/0728ad65-421c-0260-a5c0-0219a342c70b.png)

###６．サンプルプロジェクトのダウンロード（Unity）（想定時間5分）
　1.Project filesの中の「files」を押下してダウンロード実行
　　![28-1.png](https://qiita-image-store.s3.amazonaws.com/0/114630/1e81ba2d-02e6-4200-bdd0-c418674374cb.png)

###７．サンプルプロジェクトのパッケージ化（Unity）（想定時間30分）
　1.7-SpatioalMapping-CompletedにあるOrigami.unityを先ほどインストールしたHoloLens用Unityで開く
　**※失敗Point　ここで選択したファイルの階層が深く、後述作業８で
　　”参照しているライブラリのパスが長すぎ”エラーが発生。
　　できればこの時点で上位階層のほうに解凍しておいたほうがよい。**

　　![29-1.png](https://qiita-image-store.s3.amazonaws.com/0/114630/0072aa46-846f-8c2a-2e65-cddbfd7981df.png)

　2.Build Settingsを設定
　　![30.png](https://qiita-image-store.s3.amazonaws.com/0/114630/12a95cdd-d6ec-c7ba-53dc-1fb7ab1615d0.png)

|項目名|入力・選択| 
|:-----------------|:------------------|
|Platform|Windows Store|
|SDK|Universal 10|
|UWP Build Type|D3D|
|Build and Run on|Local Machine|
|Unity C# Projects|チェック有|

　3.Player Settingsを設定
　　Virtual Reality Supportedにチェックします。
　　「Windows Holographic」が現れます。
　　![3-2.png](https://qiita-image-store.s3.amazonaws.com/0/114630/22988064-a315-e393-5d9a-22229a9c112c.png)


　　Publish SettingsのSpatialPerceptionにチェックを入れます。
　　サンプルでは音声認識使いませんが、一応Microphoneにもチェックしました。

　　![1-1.png](https://qiita-image-store.s3.amazonaws.com/0/114630/fc801df7-38da-fcbc-24c2-3ec29de880ea.png)
　　![2-1.png](https://qiita-image-store.s3.amazonaws.com/0/114630/af722111-0649-bb52-fa34-30f5bcf28886.png)


　4.ビルド実行
　Buildを実行し、生成されたslnを次の手順で使用します。

###８．サンプルプロジェクトのビルド（VisualStudio）（想定時間30分）
　1.UnityでビルドしたOrigami.slnをVisualStudioで開く
　　![31-1.png](https://qiita-image-store.s3.amazonaws.com/0/114630/bb3e8d19-1522-c121-dc80-7939570a227d.png)

　**※画面撮り漏れましたが、一回目はここで「パス長すぎ」エラー発生。
　　上位階層にサンプルプロジェクトのzipを置きなおし、
　　Unityプロジェクトのビルドからやり直しました。**

　2.ソリューションのクリーンを実行
　　![32-1.png](https://qiita-image-store.s3.amazonaws.com/0/114630/d142cc24-a7cb-b560-538e-8c11fe134576.png)

　3.ソリューションのビルドを実行
　　![4-1.png](https://qiita-image-store.s3.amazonaws.com/0/114630/ebab8977-a211-1756-c056-d607c43ae6e3.png)


###９．エミュレータ起動、そして失敗
　1.デバッグなしで開始
　　![37-1.png](https://qiita-image-store.s3.amazonaws.com/0/114630/f18a26a2-3a9a-4bf2-d661-8dc355c8de1b.png)

　2.「Retry」を選択
　　![38-1.png](https://qiita-image-store.s3.amazonaws.com/0/114630/bdb6a669-bdcc-8397-17fd-a04c20b1ffa8.png)

　3.起動したものの、エラーが発生。
　　![39-1.png](https://qiita-image-store.s3.amazonaws.com/0/114630/2c8171bf-a267-5e5d-d60c-40ac796562cd.png)

　　「メモリが足りません」とのこと。。。
　　8GBのメモリを購入し、後日リトライします！！

###１０．メモリ増設、エミュレータ起動、そして失敗、→リトライ＆成功！

　　↓増設しました。

　　![40-1.png](https://qiita-image-store.s3.amazonaws.com/0/114630/730279f6-3ca5-1b67-6e39-a05844557edd.png)

　1.起動している模様

　　![41-1.png](https://qiita-image-store.s3.amazonaws.com/0/114630/6da39cd6-1eaa-eccb-d1d2-799a77bc47de.png)

　2.画面は出たが、明らかにOrigamiではない。。
　　![42-1.png](https://qiita-image-store.s3.amazonaws.com/0/114630/18a9b6f0-ffd0-7828-731f-436d7c74c40b.png)


　　コンソールを見てみると、エラーが出てました。
　　*エラー DEP6701 : 予期しないエラーが発生したため、ブートストラップに失敗しました: 'DEP6960 : ソース ファイルが存在しません: C:\Program Files (x86)\Common Files\Microsoft Shared\Phone Tools\14.0\Debugger\target\x86\1041\DiagnosticsHubMsg.dll'*
　　![44-4.png](https://qiita-image-store.s3.amazonaws.com/0/114630/352d7c58-8768-aa18-057a-51dfd5177b38.png)


　　確かにこのようなファイルは存在しないものの、何が原因のエラーかわからず、
　　色々検索しながら調べていたところヤフー知恵袋に当たりました。

　　[外部リンク：visual studio community 2015のデバッグ時のエラー対処法を教えてください。](http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14163471894)

　　やろうとしていることは違うけど、発生しているのは恐らくこれと同事象。

　　カスタムインストールでフル選択したら解決したというので、
　　対象を増やして再度インストールしてみることにしました。


　3.VisualStudioを再度カスタムインストール。
　　今度は「Windows8.1およびWindows Phone 8.0/8.1ツール」のみを選択。
　　（前述のエラーメッセージから、なんとなくこのあたりのツールが必要と判断した）
　　![5.png](https://qiita-image-store.s3.amazonaws.com/0/114630/9df67c77-57b7-0697-18de-8fe7238d6fd6.png)
　　

　4.なにやらSDKを削除するといってますが、続行。
　　![46.png](https://qiita-image-store.s3.amazonaws.com/0/114630/b50d0f59-a597-cedc-dda1-286508a9310a.png)

　5.初回は「存在しません」と言われていたフォルダ/ファイルも無事に出来ています。
　　さて。リトライ。
　　![47-1.png](https://qiita-image-store.s3.amazonaws.com/0/114630/6bc716f2-8264-6867-06cc-bafb750bd753.png)

　6.「更新が必要」と言われてしまいました。。
　　![48-1.png](https://qiita-image-store.s3.amazonaws.com/0/114630/6a0a918e-4452-0051-b3bc-5c3f3bcd65c1.png)

　7.MicroSoftの開発者用サイトから新しいSDKをダウンロード
　　![6-1.png](https://qiita-image-store.s3.amazonaws.com/0/114630/0adf3612-7701-7847-7b9d-1711f360d26b.png)

　8.まず古いのをアンインストールせよ、と言われました。。
　　![50.png](https://qiita-image-store.s3.amazonaws.com/0/114630/0591b31d-0838-16d5-220c-4f771569346b.png)

　9.気を取り直して続行
　　![54.png](https://qiita-image-store.s3.amazonaws.com/0/114630/921bb2bd-807e-c956-ae2d-7f833460e779.png)

　10.ノールックでInstall実行
　　![55.png](https://qiita-image-store.s3.amazonaws.com/0/114630/9d99cd98-d3c9-7b8a-4a19-37473ff855da.png)


　11.何やら出てきました。Spaceキーを押したところ・・・
　　![56.png](https://qiita-image-store.s3.amazonaws.com/0/114630/1e7b9ed1-56d4-8a77-307f-a3c7534e0b92.png)

　12.Origami起動しました！！！キー操作も問題なし！
　　![57-1.png](https://qiita-image-store.s3.amazonaws.com/0/114630/35090321-3205-e596-3a5d-2c28e64686a6.png)



##環境構築を終えて
正直、エミュレータ入れるだけでこれだけ大変とは思いませんでしたが
調べながら解決していったので、良い勉強になりました。
これから開発進めていきます！