HoloLens 2 開発入門 ～BoundingBoxとAppBar～（Unity2018.4.2f1、MRTKv2.2）

Cubeの表示は簡単なので、BoundingBoxとAppBarまでやります

# 開発環境
- HoloLens 2
- MRTK v2.2.0
- Unity 2018.4.2f1
- Visual Studio 2019
- Unity Hub 2.2.2

# Unity プロジェクト作成
1．[Unity Hub](https://unity3d.com/jp/get-unity/download)をインストールします
2. Unityの[archive](https://unity3d.com/get-unity/download/archive)からUnity 2018.4.2f1をUnity Hubにインストールしてください
3．新規作成の右側の矢印から「Unity 2018.4.2f1」を選択、プロジェクト名を入力し、作成をクリックします
![02.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/2cc72782-5fe8-25ff-3272-b2d4e1d16bee.png)

4．Unityの画面が表示されたら完了です
![01.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/d4e1a03f-e50d-bd01-f7eb-c0709c752fdc.png)

# パッケージのインポート
1．[MRTKv2.2.0](https://github.com/Microsoft/MixedRealityToolkit-Unity/releases)から、下記5つのunitypackageをダウンロードし、Asset -> Import Package -> Custom Packageからインポートします

- Microsoft.MixedReality.Toolkit.Unity.Foundation.2.2.0.unitypackage
- Microsoft.MixedReality.Toolkit.Unity.Tools.2.2.0.unitypackage
- Microsoft.MixedReality.Toolkit.Unity.Extensions.2.2.0.unitypackage
- Microsoft.MixedReality.Toolkit.Unity.Examples.2.2.0.unitypackage
- Microsoft.MixedReality.Toolkit.Unity.Providers.UnityAR.2.2.0.unitypackage

# 設定
1．Build Settings から Universal Windows Platform を選択し、「Switch Platform」をクリックします

![05.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/48f7afdd-876a-ca2f-0a75-df1412d326b0.png)

2．Consoleを見ると下記のエラーが出ているので、AR Foundationの設定を行います。Window -> Package Manager で、「AR Foundation」を検索する。見つからない場合は、Advanced -> Show preview packagesにチェックを入れておきます。
![03.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/09a1851b-9fdd-0da9-9262-2ce306446375.png)
![09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/19b9897e-a35c-2fcd-9adf-b824ae8a3ea4.png)
![10.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/8b51493e-ba46-01f8-b6f9-4fd003be09f1.png)

3．MRTK Project Configuratorが表示されたらApplyをクリックします
![11.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/c2d2d3fb-cb4d-993e-c9ec-ef866b2defc3.png)

# Cubeの配置

1．Mixed Reality ToolkitのAdd to Scene and Configure をクリックし、MRTKの設定を読み込みます（Mixed Reality Toolkitが見えない場合は、プロジェクトをReimport Allしてください）
![12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/0cc8c312-8efb-24a3-2540-847dacf1e375.png)

2．HierarchyビューのMixed Reality Toolkitを選択し、InspectorビューのMixed Reality Toolkit（Script）からDefaultHoloLens2CongifurationProfileを選びます
![13.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/eb9171b0-d946-911a-4273-43f3a51d90b1.png)

3．Hierarchyビューの Create -> 3D Object -> Cube からCubeを作成、Transformを良い感じに設定します。
![14.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/03e1d216-3cbe-d187-2357-35fcf6f68e62.png)

# BoundingBoxおよびAppBarの表示
1．AppBarをCubeの子オブジェクトにします
![15.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/c83efb71-31f7-9758-d8d7-83a318eedbfc.png)

2．TMP Importer 画面が出るのでインポートします
![16.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/d8112e06-2713-04ad-1886-93d3eeb28d5e.png)
![17.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/4e75d9b3-b35f-f96a-5042-5d12782b89ad.png)

3．文字がバグっているので、Projectビューで右クリックし、Reimport Allします
![18.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/648a5377-200d-3f84-1254-2782c2be9840.png)
![19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/fe186c49-c236-6ad8-ef69-0c6504e8f211.png)
![20.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/3c3ea67e-18b2-bf10-905f-da144bfda44b.png)

4．その際、Sceneは保存しておきます
![21.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/4775d4f3-cc30-788c-f1c1-7e3e4ac3d47f.png)

5．CubeのInspectorビューからBoundingBox.csをAddComponentし、Target ObjectとBounds OverrideにCubeをアタッチします
![24.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/692769f9-9172-a4a5-25e4-b75fd3572ad4.png)

6．Audio SourceをAddComponentし、BoundingBoxのEventsの設定で、回転・スケールの開始終了時に音がなるようにします
![25.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/8501712b-e24b-ec7c-c0b6-20d69d26d63d.png)

7．AppBarのBoundingBoxにCubeをアタッチします
![26.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/f12c3037-d160-0d9d-c459-0e70e4f88523.png)

# ビルドとデプロイ
1．Build SettingsからBuildをクリックし、Holo2フォルダを作成し、ビルドします
![22.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/55d2ddfe-85b8-2ce3-6d01-960ffba16c21.png)

2．Holo2フォルダ内にある.slnファイルをVisualStudioで開き、Release・ARM・リモートコンピュータにし、IPアドレスを指定します。HoloLens2のIPアドレスの確認方法はHolographicRemotingアプリか設定のネットワークとインターネットから接続しているWiFiの詳細オプションに載っています

![23.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/d4d23d94-1ce4-a711-8882-695c58e11f72.png)

3．ペアリングしたことがないPCは、ピンコードを求められるので、HoloLens2の設定->更新とセキュリティ->デバイスの検出のペアリングで表示されるピンコードを入力してください

4．HoloLens2の電源をオンにしておき、Ctrl+F5でデプロイを開始、うまく配置されればUnity アプリが起動します。

# デモ
Mixed Reality Captureで撮影した動画はズレているように見えますが、実際は触ってます。
<blockquote class="twitter-tweet"><p lang="is" dir="ltr">BoundingBoxとAppBar <a href="https://twitter.com/hashtag/HoloLens2?src=hash&amp;ref_src=twsrc%5Etfw">#HoloLens2</a> <a href="https://t.co/mijBVDvknk">pic.twitter.com/mijBVDvknk</a></p>&mdash; 藤本賢志(ガチ本)@HoloLens2 Ready (@sotongshi) <a href="https://twitter.com/sotongshi/status/1214546636078108672?ref_src=twsrc%5Etfw">January 7, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

# 参考文献
- [AppBar](https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/README_AppBar.html)
- [Bounding box](https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/README_BoundingBox.html)