【HoloLens】MRTKを使った開発環境

# MRTK を用いたHoloLensでのビルド方法

そろそろHoloLens2が出ると思うので、
その準備として開発環境を整えようと思い、今回、最新のUnity2019を使って実機ビルドができるかのテストを行おうと思います。
いろいろとHTKのころと違うので戸惑いましたがなんとかビルドまで形にすることができたのでその備忘録として共有できればと思います。
## 確認version
 
|tool|version|
|:--|:--|
|Unity| 2019.2.8f1|
|Visual Studio| 2019 Community|
|MRTK|Microsoft.MixedReality.Toolkit.Unity.Examples.2.1.0|
||Microsoft.MixedReality.Toolkit.Unity.Extensions.2.1.0|
||Microsoft.MixedReality.Toolkit.Unity.Foundation.2.1.0|
||Microsoft.MixedReality.Toolkit.Unity.Tools.2.1.0|

- 各リンク  
[Unity 公式サイト](https://unity3d.com/jp/get-unity/download)  
[visual studio](https://visualstudio.microsoft.com/ja/)  
[MRTK version2.1各種](https://github.com/Microsoft/MixedRealityToolkit-Unity/releases)  


### 1. Visual Studio 2019 Community

Visual Studio Installerを起動します。
![1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363822/1f3f43f2-46e7-26ce-3d32-d06c57ecdce6.jpeg)
![2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363822/17131d25-5d8e-fe19-326a-df6819d56782.jpeg)

- [ ]  C++によるデスクトップ開発
- [ ]  ユニバーサルwindowsプラットフォーム開発
- [ ]  unityによるゲーム開発

上記にチェックをつける

### 2. Unity 2019.2.8f1

下準備はここまででここからが本番です。
実際にunityでHoloLensにビルドするまで行っていきたいと思います。

####  MRTK2.1をインポート

unityにダウンロードしたMRTk2.1をインポートしていきます。
ここまではほとんどこれまでのHoloLens開発と同じです。
![3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363822/7b92854d-187b-49ec-888b-57e6b3c8cb74.jpeg)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363822/10687923-dfb9-b423-28ab-c6013d106d1e.png)
上記４つのunipackageをインポートする。

#### 環境設定

以前までの開発スタイルですとここでConfigの設定をインポートしていましたが、
どうやら新しいMRTKではprofileというものを用いて環境設定を行っていく仕様になったようです。
詳しいことまでは把握できていませんが、別の機会に調査できればと思っています。
![4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363822/c7e2435b-ef59-fbbc-3998-ed7e6be021bb.jpeg)

`DefaultMixedRealityToolKitConfigurationProfile`を選択する

![5.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363822/5f6615ad-f1f8-8dcb-25aa-cf9b2332af8e.jpeg)

シーン上に`MixedRealityToolkit`というgameObjectが追加されinspectorに同じ名前のコンポーネントが追加されます。
ここでこれまでMixedRealityCameraとなっていたものやInputManagerとなっていたものをまとめて管理するようです。
Microsoftの公式の手順道理行うとここで選択したprofileを使用する場合は、`Copy & Customize`を選択してCloneを行うとよいようです。

![6.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363822/53f6e2d3-8bca-f837-dc0f-c7bc78b96d5b.jpeg)
![7.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363822/e184b152-4b4a-8d24-ed68-4bc4f1b239bd.jpeg)

### XRsetting

<font color="green">※ Hololens2で起動した際に、ブラウザのような表示でアプリが起動する方はこちらの設定がおかしい可能性があります。
以下のように変更して下さい</font>

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363822/d0b7723d-ee11-6fb9-4ccf-cd58badfb106.png)

※depthとRenderingModeを変更しないと警告が出ます。

描画した際にShaderによっては片目だけしか反映されないものもあるようです。
その際は`Stereo Rendering mode`を `Multi Pass`に変更するときちんと描画されます。
**（処理は重くなるようですし、LWRP「UniversalRP」が使用できなくなります）**

### buildsetting

platformをUWPに変更

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363822/162a86b2-822b-37c3-7ad2-2f5565dcf13b.png)


#### ビルド設定

MRTKになってから専用のビルド画面が追加されたようなので使っていきます。
`Build Window`を選択するとunityでbuild Windowというwindowが追加されます。
<span style="color:skyblue;">※　以前のようにbuild Settingで行うこともできます</span>


---

※追記
Visual Studio 2019 になってリモートでデプロイする際にリモートのIPを設定する画面が表示されなくなりました。。
IPを登録する方法を調べたので載せておきます！

### 1. 作成したUWPのプロパティを開く

![3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363822/a976a10e-5722-74d0-beb4-59f5eb20a2c7.jpeg)

### 2. デバッグのコンピューター名にIPを入力する

![qiita4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363822/7569faff-d084-2906-e788-d61c15b3640d.jpeg)

以上でリモートのデプロイができました！