夜風のMixedReality

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

Unityでリアルな揺れモノを実現する MagicaCloth2をxRで動かす その⑥ 指一本一本にコライダーを設定する

本日はUnity枠です

昨日に引き続きMagicaCloth2を触っていきます。

昨日は手にMagicaClothのコライダーをつけ、揺れ物を触れるようにしてきました。

redhologerbera.hatenablog.com

今回はより発展させていきます。

〇指一本一本にコライダーをつける

前回は手に一つのコライダーをアタッチしました。

今回は指一本一本にコライダーを適応してきます。

①前回作成したHandObjectを3つコピーします。

それぞれThumb(親指)Index(人差し指)Middle(中指)と名前を付けています。

薬指と小指を作っていないのは多くのHandTrackingデバイスでは人差し指、親指のトラッキングは正確ですが、比較的薬指、小指の認識精度が甘い点と、人体の構造上薬指、小指のみを使用する機会が少ないためオミットしています。

②それぞれのオブジェクトのSolver HandlerTracked Hand Jointをそれぞれのオブジェクトに対応する設定を行います。

例えばThumbObjectの場合Thumb Tipを指定します。

MRTKによるハンドトラッキングで取得できるポジション(HandJoint)は以下の図のようになります。

Microsoftの公式ドキュメントより引用 https://learn.microsoft.com/ja-jp/windows/mixed-reality/mrtk-unity/mrtk2/features/input/hand-tracking?view=mrtkunity-2022-05

Tipは各指の指先のJointに当たります。

③各オブジェクトのHandConstraintコンポーネントのSafe ZoneRadial Sideに設定します。

これによって各指の指先ピンポイントにコライダーが設定されるようになります。

④最後にMagica Sphere ColliderコンポーネントのRadiusを指の大きさに合わせて調整します。

以上で左手ができました。

⑤指先のオブジェクトを複製し、SolverHandlerTracked HandednessRightを指定します。

以上で両手の設定が完了しました。

⑥MagicaClothで設定済みのMagica ClothコンポーネントのCollider CollisionCollider Listの配列に新規で作成したMagica Sphere Colliderコンポーネントをアタッチします。

以上で設定が完了しました。

〇実機で確認

youtu.be

実機で動作もできました。筆者がMRTK3のHandMeshの制御をまだ詳しくないので少しわかりずらいですが、指の動きで揺れを起していることがわかります。

本日は以上です。