アーキテクチャの概要 — MRTK3
MRTK3 の目標の 1 つは、2018 年初めの MRTK2 の開始以降に学んだことをすべて取り入れ、当初から OpenXR と Unity 全体に対して業界パートナーによって行われた作業と組み合わせ、MRTK で差別化機能と全体的に改善されたユーザー (および開発者) エクスペリエンスの提供に集中できる、強力で拡張可能な基盤を備えた別の一面を生み出すことでした。
入力と操作
MRTK3 の入力スタックの全体的なアーキテクチャは、次の 4 つの基本コンポーネントに基づいて構築されています。
MRTK で定義された Interactor とサブシステムのレイヤーと共に、指さしや音声などの機能が提供されます。
OpenXR
OpenXR は、アプリケーションと XR ランタイム システムの間のインターフェイスであり、これを使用すると、一般的な機能セットをまとめて呼び出し、XR ランタイムによってハードウェア固有の実装を処理できるようになります。 これを Unity の Input System と共に MRTK3 に導入することで、Unity ではクロスプラットフォームの拡張可能な入力ストーリーをより多く処理でき、一方 MRTK3 では高度なエクスペリエンスの構築に集中できるようになります。
サブシステム
サブシステムと Unity の SubsystemManager は、新しい "データ プロバイダー" であるため、MRTK2 ユーザーにとっては概念的に馴染みがあるはずです。 この考え方は、さまざまなプラットフォームまたはサービスによって、特定の種類の MRTK サブシステムを実装し、必要に応じて実行して、MRTK3 とアプリ全体にデータを提供する、というものです。これは MRTK2 で、データ プロバイダーによってさまざまなシステムに対して行ったことと同様です。 重点を置いているのは OpenXR なので、目標は多くの機能が OpenXR のクロスベンダー EXT 拡張機能によってカバーされ、複数のサブシステムは必要なくなることですが、ベンダー固有の拡張機能が、サポート対象とする技術の早期進展に相当する場合があります。
Unity Input System
概念的には Unity の Input System も、MRTK2 コントローラー マッピング プロファイルのユーザーにとっては馴染みがあることでしょう。 そこが、コントローラーまたは手のボタンやその他の入力軸を一連のアクションにマッピングするための中央の場所になります。 その後、これらのアクションは Unity の XR Interaction Toolkit (XRI) と MRTK3 で使用するため、操作対象のオブジェクトでは、操作の "内容" はあまり考慮されず、単に操作 "そのもの" が扱われます。
XR Interaction Toolkit
XRI では、Interactor と Interactable の基盤が提供されます。 MRTK では、これに独自の Interactor と Interactable のセットを使用して構築し、多関節ハンド トラッキング、視線入力、ピンチなどの追加機能を使用できるようにします。