夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

MRTK3でHoloLens 2のHandMeshを表示する その1 MRTK3のHandTrackingに関するドキュメント

本日はMRTK3枠です。

HoloLens2ではHandTrackingで取得した手にメッシュを貼って可視化することができます。

MRTKv2ではシーン上のMRTKProfileからHandTrackingのメッシュを可視化することができました。

しかしMRTK3ではどのようにするか不明であったところ先日開催されたTokyoHoloLens Meetup Vol.33で関西で活躍されているHoloRangerの先輩である宮浦さんからヒントを教えていただきました。

〇MRTK3でのHandMeshのドキュメント

MicrosoftによるHandTrackingのドキュメントは以下になります。

learn.microsoft.com

HoloLensでは片手25点のHandTrackingJointを検出できます。

Unityでは入力系のデータはUnity Input Systemを介することが一般的です。

unity.com

しかしHandJointデータはUnity Input Systemでネイティブに処理されておらずMRTKのSubSystemで処理されています。

SubSystemはMRTK3で導入された概念で、デバイス依存の入力情報を処理する概念です。

このデバイス依存の入力情報とは音声入力やHandTrackingを指します。

これらのモジュールはXRMeshSubsystemXRInputSubsystemと並んでUnity実行時に初期化されロードされています。

MRTK3のSubsystemはUnityのPojectSettingsからMRTK3のタブ内で確認できます。

〇MRTKv2との違い

MRTKv2では冒頭で記述した通りシーン内に配置したMixedRealityToolkitコンポーネントに集約されていました。

しかし前の章で述べた通りMRTK3の場合はProjectSettingsに存在し、シーンに依存しない形に変更されています。

SubSystemはあくまでデバイスから提供される情報を処理しているのみで、今回行おうとしているHandMeshなどの表示などシーン内で何かしらの処理を加えるためにはシーンにそれらを行うコンポーネントを使用する必要があります。

〇SubSystemの作成及びカスタマイズ

MRTK3を導入している場合プロジェクトウィンドウで右クリックすることでCreate→MRTK→SubsystemからどくじのSubsystemを作成できます。

23年記事公開本日現在ではMRTK Synthesis Hands ConfigMRTK Hands Aggregator Configが作成可能です。

MRTK Synthesis Hands Configはいくつかの設定項目があります。

・Synthesize when device present

デバイスが存在する場合でもSubsystemを使用するかというパラメータです。

有効な場合実機でもSynthetic Hands Configが有効になります。

・Pose Offset

手のローカル座標のオフセットです。

Hans Position/Rotation/Select

右手、左手、それぞれの位置、回転、選択についてそれぞれのアクションをInput Action Referenceとして設定できます。

このあたりがHandMeshに関係ありそうです。

本日はドキュメントを見ていきました。

MRTK3のドキュメントは以前少ないのでしっかり理解していきたいです。