Windows Mixed Reality シミュレーター x Unity の開発環境を構築する

## はじめに
Windows Mixed Reality ヘッドセットが入手できることになったので、これを機に Windows Mixed Reality シミュレーター x Unity の環境を構築して勉強しようと考えています。
そこで [開発 - Mixed Reality | Microsoft Docs](https://docs.microsoft.com/ja-jp/windows/mixed-reality/development) を参考にしながら開発環境を構築します。
内容は実際に環境を構築していく時に作成する備忘録のような内容ですので、詳しい内容はありませんがご了承ください。

## 構築環境
[こちら](https://docs.microsoft.com/ja-jp/windows/mixed-reality/install-the-tools)に記載されている環境を構築していきます。

|ツール|説明|
|:--|:--|
|Windows 10 Pro Version 1903|[Windows Mixed Reality PC ハードウェア ガイドライン](https://support.microsoft.com/ja-jp/help/4039260/windows-10-mixed-reality-pc-hardware-guidelines) 参照|
|Visual Studio 2019 (16.1 以降)|完全な機能を備えた Windows などの統合開発環境 (IDE) です。 コードの記述、デバッグ、テスト、配置には、Visual Studio を使用します。|
|Windows 10 SDK (10.0.18362.0)|HoloLens 2 で Windows 10 アプリを作成するための最新のヘッダー、ライブラリ、メタデータ、ツールが用意されています。|
|Windows Mixed Reality シミュレーター|Windows Mixed Reality シミュレーターを使用すると、Windows Mixed Reality のイマーシブヘッドセットを使用せずに、お使いの PC で mixed reality アプリをテストすることができます。|
|Unity 2018.4|Unity ゲーム エンジンは、Windows Mixed Reality 機能の組み込みサポートによって Mixed Reality エクスペリエンスを作成する最も簡単な方法です。|
|Unity 用の Mixed Reality ツールキット (MRTK v2)|Unity 用の MRTK v2 は、Mixed Reality アプリケーション向けのオープン ソースのクロスプラットフォーム開発キットです。|

## Windows 10 の準備
1. [Windows Mixed Reality PC ハードウェア ガイドライン](https://support.microsoft.com/ja-jp/help/4039260/windows-10-mixed-reality-pc-hardware-guidelines) に記載の通り、[Windows Mixed Reality PC Check](https://www.microsoft.com/store/apps/9nzvl19n7cnc) アプリでハードウェア ガイドラインを満たすか確認します。

    1.1. [Windows Mixed Reality PC Check](https://www.microsoft.com/store/apps/9nzvl19n7cnc) をインストール
    1.2. Windows Mixed Reality PC Check を起動
    1.3. 「同意する」を選択

![check1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/6373e582-320e-c237-8db9-bb46be9d3fc1.png)

    1.4. 結果の確認
![check2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/51090b24-11ca-e266-650b-df014289f5b3.png)
（「まだテストされていません。」の言葉が心配です・・・）

2. 「設定」>「更新とセキュリティ」>「開発者向け」から、開発者モードを有効にします。 

![check3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/c294103d-ab98-2c47-7357-6967c750711f.png)

## Visual Studio 2019 のインストール
[こちら](https://visualstudio.microsoft.com/downloads/) より Visual Studio 2019 をインストールしてください。
Visual Studio 2019 をインストールする際に、以下の4つのワークロードをインストールしてください。

- C++ によるデスクトップ開発
- ユニバーサル Windows プラットフォーム (UWP) の開発
- C++ (v141) ユニバーサル Windows プラットフォーム ツール
- C++ (v142) ユニバーサル Windows プラットフォーム ツール

![VisualStudioInstaller6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/cd0f00bf-64fc-14f6-111e-caf5226c71be.png)

## Windows 10 SDK (10.0.18362.0) のインストール
1. Visual Studio Installerを起動
2. 「変更」を選択

    ![VisualStudioInstaller1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/693d0eac-d865-c3ef-367f-f4b5ae3118d8.png)

3. 「個別のコンポーネント」を選択

    ![VisualStudioInstaller5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/6764e165-3e86-aee5-a1ef-81cacffac115.png)

4. Windows 10 SDK (10.0.18362.0) を選択

    ![VisualStudioInstaller3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/f6100ef5-1984-25d2-1577-6687ab1e7d20.png)

5. 「変更」を選択してインストール

## Unity 2018.4 のインストール
1. Visual Studio Installerを起動
2. 「変更」を選択

    ![VisualStudioInstaller1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/693d0eac-d865-c3ef-367f-f4b5ae3118d8.png)

3. 「Unityによるゲーム開発」を選択
4. 「Unity 2018.3 64 ビット エディター」のチェックを外す
    - このチェックを入れると Unity 2018.3がインストールされるため、チェックを外して別途 Unity 2018.4 をインストールします。

    ![VisualStudioInstaller2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/6ac69f5b-dcf3-0594-d136-7802f4b2c5e5.png)

5. 「変更」を選択してインストール
6. [Unity Store - Download](https://store.unity.com/ja/download?ref=personal) から Unity Hub をダウンロード
    - Unity 2018.4 を直接インストールするのではなく、Unity Hubからインストールすることによって、Unity のバージョン管理をすることができます。
7. ダウンロードしたexeを起動
8. 「同意する」を選択

    ![Unity1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/2fffc143-c33c-8d53-5f8f-d3ac2612a71f.png)

9. 「インストール」を選択

    ![Unity2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/22c9a4bd-7e5e-4a4e-7eba-b76ae44fb568.png)

10. 「完了」を選択

    ![Unity3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/cbcef7fe-e10d-e961-0ed8-19b8267287e6.png)

11. 「←」を選択して戻る

    ![Unity4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/1da14116-b2ee-c5d7-e7ba-6f0d289eb5b4.png)

12. 「インストール」タブを開いて、「インストール」を選択

    ![Unity5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/4d783554-0e6e-74c4-2276-c3d0ceab6c90.png)

13. 「Unity 2018.4.x」を選択して、「次へ」を選択

    ![Unity6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/17b5b78e-9b67-2801-c97d-7483f6ca3315.png)

14. Dev tools の「Microsoft Visual Studio Community 2017」にチェックを外す

    ![Unity7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/dfdbb235-c43d-ca05-6aaf-1b4bb5bef6ed.png)

15. Platform の「UWP Build Support (IL2CPP)」にチェックを入れる

    ![Unity8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/a46a36ac-eca7-8e47-04ea-774fcc7edbb7.png)

16. Language Packs (Preview) の「日本語」に入れて、「実行」を選択

    ![Unity9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/d2820d5e-44d3-dec6-c05f-d12e608657d6.png)

17. 2018.4.x がインストールされていることを確認

    ![Unity10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/2e216aa6-7b03-3f0f-2025-2209b00892f4.png)

18. 「サインイン」を選択

    ![Unity11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/8fc6abda-5b53-08ba-70f9-92da340f89c2.png)

19. 任意の方法でサインイン（Unity IDがない場合は作成してください）

    ![Unity12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/ac3c0f43-e9ec-e319-1732-65e1ce34b5ae.png)

20. 設定のアイコンを選択

    ![Unity13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/206dea37-811a-dd3a-b8c4-9a1c018a6584.png)

21. 「ライセンス管理」を選択

    ![Unity14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/064b2f8c-aa53-6735-1ca5-772c5c0059d1.png)

22. 「新規ライセンスの認証」を選択

    ![Unity15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/301cc6d2-6b2f-753d-0ec0-6b8927caba9b.png)

23. 任意のライセンス契約を選択し、「実行」を選択

    ![Unity16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/51d57a6c-3336-ab50-3f02-787fc97aae19.png)

ライセンスが追加されました。

![Unity17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/e352b74f-a482-2d28-c949-34e29e0acf1d.png)

## Windows Mixed Reality シミュレーター のインストール
[こちら](https://docs.microsoft.com/ja-jp/windows/mixed-reality/using-the-windows-mixed-reality-simulator)に記載のある通り、Windows 10 の準備で開発者モードにしていれば、既にインストールされています。
このためここでは、Windows Mixed Reality シミュレーターの起動から行います。

1. 「Mixed Reality ポータル」を起動

    ![シミュレーター1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/c76bc8d9-d65c-ef1f-8ef4-fda5cece9cf8.png)

2. 「開始する」を選択

    ![シミュレーター2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/4574af47-3ef9-fb16-2adb-30c271d934f3.png)

3. 「同意する」を選択

    ![シミュレーター3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/88248e9b-7ce6-8a8a-b471-b82417761568.png)

4. 「シミュレーションのセットアップ (開発者向け)」を選択

    ![シミュレーター4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/3f89329c-fb9a-039c-f8b1-cdeb6ed9ef80.png)

5. 「セットアップ」を選択

    ![シミュレーター5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/c6677df5-3943-250c-21bc-c9a8b8708542.png)

6. 「開発者向け」アイコンを選択

    ![シミュレーター6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/4c82d458-fc3d-2ee9-cd1f-61b42e181761.png)

7. 「ヘッドセット」をオンにする

    ![シミュレーター7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/e2f866db-cd8b-b336-e173-5533b0d662f8.png)

起動しました。

![シミュレーター8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/4f12909b-20d0-571f-5e97-b8b9894dcd00.png)

## Unity 用の Mixed Reality ツールキット (MRTK v2)
Mixed Reality Toolkitに関しては [公式サイト](https://microsoft.github.io/MixedRealityToolkit-Unity/README.html) をご覧ください。

### MRTK のダウンロード
1. [Releases · microsoft/MixedRealityToolkit-Unity · GitHub](https://github.com/Microsoft/MixedRealityToolkit-Unity/releases) にアクセス
2. UnityのAssetsファイルとして配布されているので、以下の2パッケージをダウンロード
    - Microsoft.MixedReality.Toolkit.Unity.Examples-v2.0.0-RC2.1.unitypackage
    - Microsoft.MixedReality.Toolkit.Unity.Foundation-v2.0.0-RC2.1.unitypackage

    ![MRTK1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/05f89183-e516-af1a-adaa-ac82c4bd28fa.png)

### MRTK のインポート
[Getting Started with MRTK | Mixed Reality Toolkit Documentation](https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/GettingStartedWithTheMRTK.html) を参考にインポートをします。

1. 「新規作成」からUnity プロジェクトを作成

    ![MRTK2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/125762a7-8cce-9759-52a7-77f065dad26e.png)

2. 「プロジェクト名」、「保存先」を入力して、「作成」を選択

    ![MRTK3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/704e1fc2-b6cc-ff26-014e-3380241307a2.png)

3. [Assets] > [Import Package] > [Custom Package] からダウンロードした「Microsoft.MixedReality.Toolkit.Unity.Foundation-v2.0.0-RC2.1.unitypackage」を選択

    ![MRTK4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/51b21443-579b-764d-e5d1-f2c124024abe.png)

4. 「Import Unity Package」画面が表示されるため、「Import」を選択

    ![MRTK5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/10adfba8-554d-97ee-becf-834c3ced964b.png)

5. 「Apply」を選択

    ![MRTK6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/f33cfb44-1771-7491-96d6-e66ca28a8f7f.png)

6. [Assets] > [Import Package] > [Custom Package] からダウンロードした「Microsoft.MixedReality.Toolkit.Unity.Examples-v2.0.0-RC2.1.unitypackage」を選択
7. 「Import Unity Package」画面が表示されるため、「Import」を選択

    ![MRTK7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/26908696-94d0-6984-4829-0e5dae4a7dfd.png)

8. [Mixed Reality Toolkit] > [Add to Scene and Configure...] を選択し、表示されたダイアログで「OK」を選択

    ![MRTK8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/a1b6178e-926d-82f6-eb4a-dc433ad2dc59.png)

    ![MRTK9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/a849f394-c621-a2dc-1eba-685f1c8ac9e0.png)

9. 「DefaultMixedRealityToolkitConfigurationProfile」をダブルクリック

    ![MRTK10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/20ea8661-abb4-20a1-9682-6cbe8d0798aa.png)

10. 再生ボタンを選択

    ![MRTK11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/5e90ecf5-e9e9-d59a-1d7d-1015dfa7d3a7.png)

11. キーボードのスペースキーを押すと手のシミュレーションが表示される

    ![MRTK12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/de9f6410-b99d-48e0-186f-52c272fc34c8.png)

12. [File] > [Build Settings...] を選択

    ![MRTK13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/a33098b4-7aa7-d99a-000a-0da24f677179.png)

13. 「Universal Windows Platform] を選択し、下図のように設定したのち、「Switch Platform」を選択

    ![MRTK14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/bb5686bc-7263-5374-be3f-c0efa470b0d3.png)

### Interactables のデモを実行
1. [Project] > [Assets] > [MixedRealityToolkit.Examples] > [Demos] > [UX] を選択

    ![MRTK15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/3f21c0a4-9109-2c03-4f3c-3c1a140fe668.png)

2. [UX] > [Interactables] > [Scenes] を選択
3. 「BoundingBoxRuntimeExample.unity」を選択

    ![MRTK16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/49b38a81-2bc8-613c-cdef-bdeb32cf91d2.png)

4. 「Import TMP Essentials」を選択

    ![MRTK18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/df5b356e-7522-b818-f788-6b1d0f7264f4.png)

5. [File] > [Build Settings...] を選択
6. 「Add Open Scenes」を選択し、「Build」を選択

     ![MRTK19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/ba4a10d0-193f-2419-13c4-488e1eccc251.png)

7. ダイアログが表示されるため、任意の場所に出力
8. 出力した中にある *.sln を Visual Studio で起動
9. ターゲットを「Release」、「x64」に変更
10. 「ローカル コンピューター」を選択
    - Windows Mixed Reality シミュレーターは ローカル コンピューター を選択すると自動的に起動します。

     ![MRTK20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/7dd2d3f1-31ca-c4b0-ae6e-6db05f4eebe8.png)

11. [デバッグ] > [デバッグなしで開始] を選択

    ![MRTK21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/2e45c99f-baee-c288-112f-cbfb3dbaa56f.png)

起動できました。

![MRTK22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460904/55075c4e-1865-c0c9-1da2-7ad828f8e8ae.png)

## 参考サイト
- [HoloLens/Windows Mixed Reality開発環境構築](https://www.slideshare.net/TakahiroMiyaura/hololenswindows-mixed-reality-128235273)
- [【 Microsoft HoloLens 】Mixed Reality Toolkit-Unity ( MRTK ) の「BoundingBox」サンプルを動かしてみた。 - Qiita](https://qiita.com/Futo23/items/9938dc05afcf04477cae)