アーキテクチャの全体像
MRTK の中身の全体紹介として、このドキュメントに含まれるアーキテクチャの情報は以下のことを理解する助けとなります。
- MRTK の大きな構成要素と、それらがどう繋がっているか
- もともとの Untiy には無いかもしれない、MRTK が取り入れている設計思想
- 入力システムのような大掛かりな仕組みがどのように動作するのか
このセクションでは、MRTK の使用方法を説明することは意図しておらず、MRTK がどのような構造で作られているのか、またそのような構造となった理由を説明することを目的としています。
多くのユーザーに1つのツールキットを
MRTK は特定のユーザーに向けられたものではありません。初めてのハッカソンから、企業向けの複雑なユースケースまでもサポートするように作成されています。 「ワン クリックで設定できる」といった、特定のケースに対して最適化されたコードや API がいくつか記述されていますが、それはこれまでの履歴やリソース上の理由があることを把握しておくことが重要です。 MRTK が進化するにつれて、さまざまなユースケースをサポートするように拡張できるように機能を設計する必要があります。
また、MRTK は VR と AR の間を適切にスケーリングすることができるといった要件があります。 例えば、HoloLens2 または HoloLens1 にデプロイされたときに、デバイスに応じて動作が適切にフォールバックするアプリケーションを簡単に構築でき、また、OpenVR や WMR といった他のプラットフォーム向けのアプリケーションを簡単にビルドできるべきだということです。 時には、MRTK チームが特定のシステムまたはプラットフォームに対する開発に集中することもありますが、長期的な目標は MR 体験を実現しようとするすべての人々に対する幅広いサポートを構築することです。
MRTK のコンポーネントの大まかな分類
MRTK は、Mixed Reality(MR)体験を迅速に実現するためのツール コレクションであり、独自のランタイムや拡張方法、設定方法を持つといった設計思想に基づくアプリケーション フレームワークでもあります。
MRTK は以下の図のとおりにおおまかに分類することができます。
MRTK には、他の MRTK のコンポーネントにはほとんど依存しないユーティリティも含まれています(例えばビルド ツール、ソルバー、オーディオ インフルエンサー、スムージング ユーティリティ、ライン レンダラーなど)。
残りのアーキテクチャのドキュメントでは、フレームワークとランタイムの説明からはじめて、入力システムのようなより複雑な仕組みへと進みます。アーキテクチャの概要を続けて読むには、目次を参照してください。