最近のMixed Reality Toolkit の状況を整理する

# 最近のMixed Reality Toolkit(以下MRTK)は色々変わりつつある
そろそろMRTK-vNEXTの話もGit上では本格化し、徐々に素敵世界へ向かっています。将来的にはOpenXRのコンセプトような多くのXRデバイスでの開発ライブラリを目指して整備がすすんでいるので楽しみです。
過去調査した時のQiita記事は以下になります。当時の情報なので多少現在は違うかもしれないですが雰囲気はわかるかと思います。

* [Mixed Reality Toolkit - Unityの次期バージョンvNextのコンセプト](https://qiita.com/miyaura/items/887348ddc3933b72ff05)
* [Mixed Reality Toolkit - vNEXTの構造を理解する ～ Unity Etidorとプロジェクト構成編 ～](https://qiita.com/miyaura/items/b702cfe19163e9dac067)

今回は12月初めに結構Gitが変更されていていたので、年末の掃除よろしく整理をしておきました。
内容的には「[Mixed Reality Toolkit Branch guide](https://github.com/Microsoft/MixedRealityToolkit-Unity/blob/master/BranchGuide.md)」をベースに整理しています。

* [Gitの状況と構成](https://qiita.com/miyaura/private/9e24e82f015f5def438d#git%E3%81%AE%E7%8A%B6%E6%B3%81%E3%81%A8%E6%A7%8B%E6%88%90)
* [MRTKロードマップ](https://qiita.com/miyaura/private/9e24e82f015f5def438d#mrtk%E3%83%AD%E3%83%BC%E3%83%89%E3%83%9E%E3%83%83%E3%83%97)
* [現行バージョン(MTRK)のUnityへの対応](https://qiita.com/miyaura/private/9e24e82f015f5def438d#%E7%8F%BE%E8%A1%8C%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3mtrk%E3%81%AEunity%E3%81%B8%E3%81%AE%E5%AF%BE%E5%BF%9C)


## Gitの状況と構成

12/5にメインブランチがvNEXTに入れ替わったのですがこのタイミングでブランチやタグがかなり大きく変更されています。どこに何があるかわかりにくなったので整理してみました。

* [現在のリリースブランチ](https://qiita.com/miyaura/private/9e24e82f015f5def438d#%E7%8F%BE%E5%9C%A8%E3%81%AE%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%96%E3%83%A9%E3%83%B3%E3%83%81)
* [開発用ブランチ](https://qiita.com/miyaura/private/9e24e82f015f5def438d#%E9%96%8B%E7%99%BA%E7%94%A8%E3%83%96%E3%83%A9%E3%83%B3%E3%83%81)
* [次期バージョンで取込む予定の素敵機能整備用ブラン](https://qiita.com/miyaura/private/9e24e82f015f5def438d#%E6%AC%A1%E6%9C%9F%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%A7%E5%8F%96%E8%BE%BC%E3%82%80%E4%BA%88%E5%AE%9A%E3%81%AE%E7%B4%A0%E6%95%B5%E6%A9%9F%E8%83%BD%E6%95%B4%E5%82%99%E7%94%A8%E3%83%96%E3%83%A9%E3%83%B3%E3%83%81)
* [その他のブランチ](https://qiita.com/miyaura/private/9e24e82f015f5def438d#%E3%81%9D%E3%81%AE%E4%BB%96%E3%81%AE%E3%83%96%E3%83%A9%E3%83%B3%E3%83%81)

### 現在のリリースブランチ

大きくは「XXXX_release」で管理されています。現行バージョンのV1と次期バージョンvNEXTの2つで管理されています。
12月に入ってからはデフォルトブランチがmrtk_releaseに変更になりました。

#### [master](https://github.com/Microsoft/MixedRealityToolkit-Unity)

現行MRTK - V1のブランチです。
最新版のリリースは[Mixed Reality Toolkit 2017.4.3.0](https://github.com/Microsoft/MixedRealityToolkit-Unity/releases/tag/2017.4.3.0)です。

#### [mrtk_release](https://github.com/Microsoft/MixedRealityToolkit-Unity/tree/mrtk_release)

次期MRTK-vNEXTのブランチです。
最新盤のリリースは[Mixed Reality Toolkit 2018.9.0 (vNext Beta)](https://github.com/Microsoft/MixedRealityToolkit-Unity/releases/tag/2018.9.0-Beta)です。

### 開発用ブランチ

現在進行中で次期リリースに向けて開発されているブランチで「XXXX_development」で管理されています。

* [htk_development](https://github.com/Microsoft/MixedRealityToolkit-Unity/tree/htk_development)
* [mrtk_development](https://github.com/Microsoft/MixedRealityToolkit-Unity/tree/mrtk_development)

なお、以前使われていたMRTK-v1用の以下のブランチはobsoleteになりました。

* [Dev_Working_Branch](https://github.com/Microsoft/MixedRealityToolkit-Unity/tree/obsolete/Dev_Working_Branch)

### 次期バージョンで取込む予定の素敵機能整備用ブランチ

次期バージョンに取込む可能性のある新機能についてのブランチです。入れるかどうかも不明だけどいれたーいなものを開発するブランチです。かなり乱立している状態で、マージなどは現状度外視して開発を進めているとのこと。MRTK-vNEXTは基礎部分のアーキテクチャ丸ごと見直しているので基礎的な部分と追加したい機能を分けて進めているということのようです。

興味がある機能については自己責任でやってねという注意書きがありました。リスト見る限りできたらうれしい系の機能が満載な感じですね。追加機能に関するブランチは全てfeature配下にまとめられています。

* Magic Leap!
    * [feature/LuminPlatform](https://github.com/Microsoft/MixedRealityToolkit-Unity/tree/feature/LuminPlatform) - Experimental Magic Leap device integration.

* MRTKの基本部品系
    * [feature/mrtk_audioManager](https://github.com/Microsoft/MixedRealityToolkit-Unity/tree/feature/mrtk_audioManager)
    * [feature/mrtk_audioManager2](https://github.com/Microsoft/MixedRealityToolkit-Unity/tree/feature/mrtk_audioManager2)
    * [feature/mrtk_audioSystem](https://github.com/Microsoft/MixedRealityToolkit-Unity/tree/feature/mrtk_audioSystem)
    * [feature/mrtk_development_BoundingBox](https://github.com/Microsoft/MixedRealityToolkit-Unity/tree/feature/mrtk_development_BoundingBox)
    * [feature/mrtk_documentation](https://github.com/Microsoft/MixedRealityToolkit-Unity/tree/feature/mrtk_documentation)
    * [feature/mrtk_interactable](https://github.com/Microsoft/MixedRealityToolkit-Unity/tree/feature/mrtk_interactable) - New SDK components / features and ported features from the HTK

* 提供方法（Nuget）
    * [feature/mrtk_packageManager](https://github.com/Microsoft/MixedRealityToolkit-Unity/tree/mrtk_packageManager) - New MRTK delivery development (NuGet)

* シェアリング機能
    * [feature/mrtk_sharing](https://github.com/Microsoft/MixedRealityToolkit-Unity/tree/feature/mrtk_sharing)
    * [feature/sharing_photon_preview](https://github.com/Microsoft/MixedRealityToolkit-Unity/tree/feature/sharing_photon_preview)
    * [feature/sharing_webrtc_preview](https://github.com/Microsoft/MixedRealityToolkit-Unity/tree/feature/sharing_webrtc_preview)
    * [feature/state_sharing](https://github.com/Microsoft/MixedRealityToolkit-Unity/tree/feature/state_sharing) - Advanced networking / Sharing solution

* 空間認識系
    * [feature/spatialAwarenessPlanes](https://github.com/Microsoft/MixedRealityToolkit-Unity/tree/feature/spatialAwarenessPlanes) - Extensions to the Spatial Awareness framework for plane detection.

* これから？
    * feature/SteamVR - (future) Adding native SteamVR support

### その他のブランチ
その他のブランチとしてMRTK-vNEXTのサンプル用と思われるブランチもあります。

* [mrtk_development_example_Scene_1](https://github.com/Microsoft/MixedRealityToolkit-Unity/tree/mrtk_development_example_Scene_1)
* [mrtk_development_example_Scene_2](https://github.com/Microsoft/MixedRealityToolkit-Unity/tree/mrtk_development_example_Scene_2)
* [mrtk_development_example_Scene_3](https://github.com/Microsoft/MixedRealityToolkit-Unity/tree/mrtk_development_example_Scene_3)

## MRTKロードマップ

ロードマップは以下のような形で進める予定でとのこと。12月中にでるのかな。。。

### 今後の予定

| Release | Development branch | Timeline | Project board |
|:-:|:-:|:-:|:-:|
| [MRTK vNext](https://github.com/Microsoft/MixedRealityToolkit-Unity/blob/htk_development/Roadmap.md#mrtk-version-next)  |mrtk_development   | 2018/12 | [MRTK vNext](https://github.com/Microsoft/MixedRealityToolkit-Unity/projects/5)|
| 2017.4.4.0  |htk_development   | 2019 1Q | [2017.4.4.0](https://github.com/Microsoft/MixedRealityToolkit-Unity/projects/17)|

### 最新版

| Release | Development branch | Timeline | Project board | Tested Unity Versions|
|:-:|:-:|:-:|:-:|:-:|
|2017.4.3.0|master|2017.4.3.0|2017.4.3.0|2017.1 - 2017.4|
|2018.8.0.0_Alpha2.1|mrtk_release|2018.8.0.0_Alpha2.1|N/A|2018.1|

## 現行バージョン(MTRK)のUnityへの対応

現行バージョンはmasterブランチにてUnity 2017.4 LTSをベースにHololensとWinMRのデバイスに対応。
旧バージョンのUnityには2017.1～で互換性を維持する方針で進められます。
一応2018.1以降のへの対応も視野には入ってるようです。
特に理由がなければUnity 2017.4系とMRTK-2017.4.3.0といった感じでしょうか。

## まとめ

これからもMTRKの進化が楽しみです！