これちのPost-it

技術ネタをペラペラと

MixedRealityToolkit-Unity の Github リポジトリを少し眺めてみた

はじめに

MixedRealityToolkit-Unity は Unity 上で HoloLens や Windows MR HMD 向けアプリを作成する際に使用される SDK です。

MixedRealityToolkit-Unity の Github リポジトリ

MixedRealityToolkit-Unity の機能についての記事はたくさんありますが、Github プロジェクトそのものを調べた記事は少なかったので今回記事にしようと思いました。

MixedRealityToolkit プロジェクトを理解することがきっと HoloLens そのものについての理解に繋がるはず (?) です。

とは言え自分も勉強しながら記事を書いているので正しくない部分があるかもしれませんし、Github は常に更新されているため、記事はあくまで現時点(2018/02/28)での情報という点に留意してください。

トップページ

f:id:korechi:20180228010236p:plain

そもそも MixedRealityToolkit プロジェクトは Github 上で開発が進められている OSS プロジェクトです。そのため誰でも SDKソースコードを読む事ができたり、コードの改善を行うことができます。

ソースコードはとても参考になるので時間がある時に読んでみても良いと思います。

まずタブを見ていきましょう。

f:id:korechi:20180228010559p:plain

  • Code
  • Issues
  • Pull requests
  • Projects
  • Wiki
  • Insights

の6つのタブがあります。中身を見ていきましょう。

Code

ソースコードが表示されており、ディレクトリやファイルが確認できます。最新の変更は1ヶ月前に更新された Roadmap.md のようです。

ソースコードの下には README.md の内容が表示されています。

README.md には

  • MixedRealityToolkit-Unity とは
  • 特徴的な API
  • 必要なソフトウェア
  • スタートガイド
  • サンプルシーン
  • Microsoft Windows Dev Center へのリンク

が書かれています。README.md は第3者に読んでもらうことを意識しているので読みやすく作られているはずです。

そしてソースコードの上にもいくつかタブがあります。

f:id:korechi:20180228010523p:plain

このタブには

  • commits
  • branchs
  • release
  • contributors

がありますね。例えば commits を見ると、StephenHodgson さん、NeerajW さん、keveleigh さんの3人が頻繁にコミットしているのが分かります。

branchs にはいくつかのブランチが表示されています。MRTK-Version-Next は名前からしておそらく次の MixedRealityToolkit のバージョンアップだと予想できます。

releases では unitypackageソースコードの zip がダウンロードできます。第3者がこの SDK を使いたい時は、この releases タブの中にあるインストーラなどをダウンロードして使用するパターンが多いです。他の Github で開発されている多くの OSS もこの release タブからインストーラがダウンロードできたりします。

contributors は MixedRealityToolkit を育てていく、いわゆる「中の人」たちです。(106人いるけど活動的なのは10人にも満たなそう)

Issues

f:id:korechi:20180228011213p:plain

現行の SDK で発見されたバグや、質問などが掲示板形式となって表示されます。現在304件の Issues があるそうです。

ラベルを見れば Issues の内容がどんなものか大体判断することができます。(Issues をたてる時はラベルを活用しましょう)

Issues の面白いところは誰でも Issues を作成できる点です。そのためバグを発見しても Issues を立てる前に、他に似た Issues が立っていないか確認しましょう。

Issues を眺めてみるのもプロジェクトの理解につながり面白いです。ここでは例として以下の Issues を取り上げてみます。

github.com

UICollection の中のキーボードが一部デバイス上で見えないバグのようですね。解決策もちゃんと提示しているので近いうちに解決されそうですね。

この Issues は発生条件や望ましい状態、解決策など分かりやすく記述されているので Issues が分かりやすいです。開発者さんにちゃんと状況が伝わるよう心掛けることはとても良いことですね。

Pull request

f:id:korechi:20180228011621p:plain

自分でブランチを切って、master や他のメインとなるブランチに自分のブランチをマージしてもらいたい時にプルリクエストを contributer に投げます。

ほんの1ファイル内の数行のみを変更したものとかもマージされていたりするので、自分で少しでも改善できるとおもったらプルリクエストを出してみるのも良いかもしれません。

例えば以下のプルリクは、Issues で報告されていたバグへの対応のようです。

github.com

一度くらい私もプルリクを投げてみたいものです。笑

Projects

ここではプロジェクト管理のため、Issues を掲示板形式で管理したりします。 MRTK vNextOpenXR based multi-VR refactor という2つのプロジェクトが立っています。

MRTK vNext はまず間違いなく MixedRealityToolkit の次期バージョンに関するものでしょう。少し中を見てみます。

f:id:korechi:20180228011836p:plain

Todo が1つ、In progress が1つあるので今まさに進行中のプロジェクト感がありますね。

OpenXR based multi-VR refactor はおそらく、OpenXR に向けた MixedRealityToolkit のリファクタリングでしょう。

Todo が3つたっているのみなので、まだまだこれからみたいです。

Wiki

f:id:korechi:20180228011958p:plain

MixedRealityToolkit に関する wiki です。お役立ち情報が掲載されています。(ただしどのくらいここの情報が新しいかは不明。少なくともコードよりは古そう)

いろいろなドキュメントやリンクが掲載されています。

おわりに

ざっと一通り見てみました。

本当にさらっと見ただけですが、Issues の内容などは常に更新され続けるので一つ一つ見ていく必要もあまり無いと思います。

それよりもし気になったことがあれば積極的にプルリクを投げたり、Issues を立てたりして OSS に貢献してみる方が面白いかもしれません!

また、非公式のツールキットですが MRDesignLabs_Unityという SDK もあるので興味のある方は使ってみてください。非公式ですが、Mixed Reality Design Labs から Mixed Reality Toolkit へ機能が移植されることもあるみたいなので見ておく価値はあると思います!