HoloLens開発環境を構築してエミュレーターでOrigamiを実行するまで

# はじめに
※この記事で使用しているツール類、バージョンは2018年6月時点のものになります。
HoloLensの開発環境を立ち上げる時に最新の情報を探すのが大変だったので、作業の流れを記録するためにこの記事を書こうと思いました。
~~HoloLensが高くて買えないのでエミュレーターで動かしていきます。~~

基本的にはMicrosoftの以下の記事を参考に作業を進めていきます。
Install the tools
https://docs.microsoft.com/ja-jp/windows/mixed-reality/install-the-tools

MR Basics 101E: Complete project with emulator
https://docs.microsoft.com/ja-jp/windows/mixed-reality/holograms-101e

# 構築手順
## ０．開発環境の事前準備
HoloLensエミュレータで開発することを考えているので、エミュレータの動作するマシンが必要になります。

詳細な内容は以下を参考に
https://docs.microsoft.com/ja-jp/windows/mixed-reality/install-the-tools#system-requirements

**要求される環境**
- Windows 10 64bit Pro以上(HomeはHyper-Vのサポートなし)
- 64bit 4コアのCPU
- 8GB以上のメモリ
- GPU

BIOSについても書いてありますが、自分は特に変更することなく動作しました。

**Hyper-Vの有効化**
HoloLensエミュレータを動作させるためにHyper-Vを有効化します。
１．コントロールパネルを開く
２．プログラム＞プログラムと機能＞Windowsの機能の有効化または無効化 を選択
![windows機能.png](https://qiita-image-store.s3.amazonaws.com/0/263690/bee0fa47-a658-b44a-70f0-c7b5a0da2e74.png)

３．Hyper-Vにチェックを入れてOKを押す
![hyper-v.png](https://qiita-image-store.s3.amazonaws.com/0/263690/1b351d82-ed1e-a1a3-4064-db7126560413.png)

正しく有効化できればスタートメニューにHyper-Vマネージャが追加されると思います。
自分は1回やってうまく追加できなかったので、一度消して再度有効化したらできました。
![Hyper-vマネージャ.png](https://qiita-image-store.s3.amazonaws.com/0/263690/26676b20-b994-ff6e-b8a0-a02aad175c71.png)

これで事前準備は完了です。

## １．開発環境のインストール
**Visual Studio 2017 Communityのインストール**
開発に使うVisual Studioと必要なコンポーネントをインストールしていきます。
Visual Studioインストーラーのダウンロードは以下のページから

https://developer.microsoft.com/en-us/windows/downloads

１．上記サイトからVisual Studio 2017 Communityのインストーラーをダウンロードする
２．ユニバーサルWindowsプラットフォーム開発とUnityによるゲーム開発にチェックを入れインストール実行
![WS000000.png](https://qiita-image-store.s3.amazonaws.com/0/263690/573f7876-5d52-79f0-b9d8-d075fc5a2c1f.png)
![unity.png](https://qiita-image-store.s3.amazonaws.com/0/263690/437c79ef-bc3f-23e0-2595-2b05bfb6c193.png)

３．インストールが完了したらVisual Studioを起動し、Microsoftアカウントでサインインする

**Unityのインストール**
Unityのダウンロードとインストールをしていきます。
https://unity3d.com/jp/get-unity/update/

１．上記サイトからインストーラーをダウンロード
２．インストーラーに従ってインストールを進める
コンポーネントの選択画面で「Windows Store .NET Scripting Backend」を選択
![netコンポーネント.png](https://qiita-image-store.s3.amazonaws.com/0/263690/f095185f-119c-488e-aeaf-4b69b060490a.png)

３．インストール実行
４．インストールが完了したらUnityを起動し、個人の開発者としてサインインを行う
![Unity起動.png](https://qiita-image-store.s3.amazonaws.com/0/263690/775cdbe2-95f4-e105-2102-e2598234dfe7.png)

**HoloLens Emulatorのインストール**

１．Install the toolsのページからインストーラーをダウンロード
![installpoint.png](https://qiita-image-store.s3.amazonaws.com/0/263690/08c8ea91-b7d3-5f1f-b441-37b577304a84.png)

２．インストーラーに従ってインストールを進める
Install the HoloLens Emulatorを選択
![WS000035.png](https://qiita-image-store.s3.amazonaws.com/0/263690/907c8956-79c6-bd70-0f33-6a193169b005.png)

すべての機能にチェック
![WS000037.png](https://qiita-image-store.s3.amazonaws.com/0/263690/24406036-facc-b187-e5bb-f16b77716da8.png)

３．インストール実行

これで開発環境のセットアップは完了です。

## ２．Origamiの実行
MR Basics 101E: Complete project with emulatorのChapter 1 - "Holo" worldに従って作業を進めていきます。
https://docs.microsoft.com/ja-jp/windows/mixed-reality/holograms-101e

**メインカメラとシーンの設定**
１．Unityを起動してOpenを選択
２．先ほどダウンロードしておいたファイルの中からOrigamiフォルダを選択
![selectfolder.png](https://qiita-image-store.s3.amazonaws.com/0/263690/5e1d1d21-4e7f-aabe-95d2-6c6e0155c6a6.png)

３．作業画面が立ち上がるので左側HierarchyパネルからMain Cameraを選択
４．右側のInspectorパネルを以下のように設定
- Transform PositonをX:0, Y:0, Z:0に設定
- Clear FlagsをSkybox -> Solid Colorに変更
- BackGroundをBlack(R:0, G:0, B:0)に設定
![2-4.png](https://qiita-image-store.s3.amazonaws.com/0/263690/08938bf6-515a-515b-a0a5-18db9cae249f.png)

５．一度Hierarchyパネルの何もない個所をクリックし、何も選択していない状態にしてから右クリック＞Create Emptyを選択
![2-5.png](https://qiita-image-store.s3.amazonaws.com/0/263690/84e51f47-5fb4-1775-23a8-13f35effe130.png)

６．GameObjectが生成されるので名前を「OrigamiCollection」にリネーム
７．画面下部、ProjectパネルでHologramフォルダを選択、Stage, Sphere1, Sphere2をOrigamiCollectionにドラッグ＆ドロップ
![2-6.png](https://qiita-image-store.s3.amazonaws.com/0/263690/37dd7c48-0274-a6bf-86a6-f4daff7ab43a.png)

８．HierarchyパネルのDirectional Lightオブジェクトを削除
![2-7.png](https://qiita-image-store.s3.amazonaws.com/0/263690/c2a50612-abf7-1ced-7fbd-096272c1b704.png)

９．HologmramsフォルダのLightsをHierarchyパネルにドラッグ＆ドロップ
![2-8.png](https://qiita-image-store.s3.amazonaws.com/0/263690/36798675-0dd2-93b6-3b87-208b63506dc6.png)


１０．HierarchyパネルのOrigamiCollectionを選択
１１．Inspectorのtransform positionをX:0, Y:-0.5, Z:2.0に設定
![2-9.png](https://qiita-image-store.s3.amazonaws.com/0/263690/b0d28b68-31dd-363b-01e1-2f91022fc4b9.png)


これでオブジェクトの設定は完了です。画面中央のPlayボタンでシミュレーションすることができます。
![2-10.png](https://qiita-image-store.s3.amazonaws.com/0/263690/2fce9f20-4dcd-e63c-e66e-95dc47c95c64.png)

**Visual Studioプロジェクトのエクスポート**
１．UnityでFile＞Build Settingsを選択
![2-1-V.png](https://qiita-image-store.s3.amazonaws.com/0/263690/0b237428-083a-dd4a-6d3b-f8805ea2da78.png)

２．Platform一覧からUniversal Windows Platformを選択し、Switch Platformを押す
![2-2-V.png](https://qiita-image-store.s3.amazonaws.com/0/263690/30f2935c-44a3-7a42-5496-1b169b59ebf1.png)

３．Target DeviceをHoloLens, BuildTypeをD3D, Unity C# Projectsのチェックボックスにチェック
![2-3-V.png](https://qiita-image-store.s3.amazonaws.com/0/263690/0fdca98d-36f4-fe17-3d45-5b895e23bb8e.png)

４．Add Open Scenesを押し、作成中のプロジェクトに名前を付けて追加、Sceens In Buildに追加されることを確認する
![2-4-V.png](https://qiita-image-store.s3.amazonaws.com/0/263690/0d11db5b-faca-f211-58fb-c86a95d1b75d.png)

５．Buildを押す
６．ビルド先のフォルダを指定するように言われるので「App」というフォルダを新規作成しフォルダを選択、ビルドが開始される
![2-6-V.png](https://qiita-image-store.s3.amazonaws.com/0/263690/b8ada094-78c1-ad36-233a-cb6b2554e29b.png)


７．ビルドが完了するとエクスプローラが開くので、先ほど作成したAppフォルダを開き、その中のslnファイルを開く
(エクスプローラが開いた場所のslnファイルではないので注意)
![2-7-V.png](https://qiita-image-store.s3.amazonaws.com/0/263690/fb67c421-1135-0344-7d3a-d736fa0818c4.png)

８．開いたソリューションのビルド設定を以下のように設定

- DebugをReleaseに変更
- ARMをx86に変更
- DeviceをローカルコンピューターからHoloLens Emulatorに変更
![2-8-V.png](https://qiita-image-store.s3.amazonaws.com/0/263690/3342de42-cf57-d75d-33dd-dbf3a5170b4a.png)


９．Ctrl+F5を押して、ソリューションのビルド&デバッグなしで開始
ここで以下のようなエラーが出て、HoloLensエミュレータの起動に失敗する場合があります。
![2-9-V.png](https://qiita-image-store.s3.amazonaws.com/0/263690/0002dc9a-459c-b75f-ba95-693a4f11753d.png)

HoloLensのエミュレータを起動する場合、pinでのログインではなくユーザー名とパスワードでのログインが必要になるみたい？
自分はこのエラーが出てからVisual Studioをいったん終了して一度サインアウトしてからユーザー名とパスワードでログインしなおしたら起動できるようになりました。

１０．エミュレータの起動画面を確認する
アプリが起動されるまでは少し時間がかかります。アプリが起動されると以下のような画面が表示されると思います。
![2-10-V.png](https://qiita-image-store.s3.amazonaws.com/0/263690/364a0bf1-61f5-151b-37e7-e705fd1fbf4f.png)

オブジェクトがよく見えないので目線を移動しましょう。HoloLensエミュレータはキーボードで操作することができます。
自分が把握してる操作は以下の通り

| キー操作     |       動き |
|:-----------------:|:------------------:|
| 矢印キー    | 目線の移動 |
| W,S,A,Dキー| 前後左右の移動|
| Q, Eキー | 回転 |
| Windowsキー | メニューに戻る, スタートメニューの起動 |
| Enterキー| クリック |

# 感想など
Microsoft公式のドキュメントは英語だけど動画ありでわかりやすかったのでサクサク進めることができました。
これからとりあえずAcademyの記事をやって勉強していきたいと思います。
もしこの記事で間違ってることや補足などあれば教えていただきたいです。

あと、この記事を書いてるときにエミュレータが起動しなくなった上にスタートメニューが出なくなって焦りました。
いろいろ調べたら高速スタートアップのせいらしく、無効化したら無事に復活しました。
OFFにしておいたほうが無難なのかも...