UnityでLeap Motionの手のモデルを変更する方法

Leap Motionで用意されている手のモデル

Leap Motionで用意されている手のモデルは、前回紹介したようなカプセル状のものとは別にロボットのような手のモデルも存在しますが、どちらもお世辞にもいいものとは言えません。実務では使うのはやめた方がいいでしょう。
そこで手のモデルを別のものに変えてみましょう。また仮想世界っぽく、半透明の手への変更も行ってみましょう。コーディングに馴染めない方もいると思いますので、ここではコーディングを必要としない方法を紹介します。
以下は、前回紹介した内容の続きとして説明を進めます。

手のモデルを入手

Unityには非常に便利なAssets Storeがありますので、こちらからLeap Motion用の手のモデルを入手します。
https://assetstore.unity.com/packages/3d/characters/humanoids/leap-motion-realistic-hands-109961

このUnity PackageをインポートするとProjectウィンドウの「 Assets > LMRealisticHands > Prefabs 」に手のモデルが見られます。今回はこの中から「 Hand_04_L (R) 」を利用したいと思います。

手のモデルを変更

前回追加した「 Capsule Hand L (R) 」を「 Hand_04_L (R) 」に変更します。また「 Hand Models 」オブジェクト「Hand Model Manager 」コンポネントの内容も修正します。
「 Model Pool > Element 0 > Left Model ( Right Model ) 」に先ほど追加した「 Hand_04_L (R) 」を設定します。するとゲーム画面にはリアルな手のモデルが見えるでしょう。実際に動かすと、あまりにもリアルなので少し引いてしまいます笑。

半透明の手のシェーダを入手

次は手のモデルを半透明にしてみましょう。通常であればシェーダを書きますが、初めての人にとっては難しいと思うので、こちらもAssets Storeから透明のシェーダを入手します。
https://assetstore.unity.com/packages/vfx/shaders/vrhands-shader-100338

このUnity Packageをインポートすると「 Assets > VRHandsShaders 」にシェーダが見られます。今回はこの中の「 VRHandsInternalRim 」を利用します。

この「 VRHandsInternalRim 」を、Hierarchy ウィンドウの

Hand Models > Hand_04_L > Male_Arm_Left
Hand Models > Hand_04_R > Male_Arm_Right

にそれぞれドラッグ&ドロップします。すると手のモデルが半透明になったことがわかります。

半透明の色の設定は、Projectウィンドウの「 Assets > VRHandsShaders > VRHandsInternalRim 」より変更できます。例えば、通常時の色は「 Main Color(RGBA) 」より変更可能です。またこのシェーダは、オブジェクトに触れている箇所は黄色っぽくなりますが、その色も変更できます。それは「 Inside Color(RGBA) 」になります。もしオブジェクトに触れたときに色を変更したくない場合は、「 Main Color(RGBA) 」と「 Inside Color(RGBA) 」を同じに、「 Seconds Main Color(RGBA) 」と「 Seconds Inside Color(RGBA) 」を同じにすればいいでしょう。

まとめ

今回は、Leap Motionで用意されている手のモデルからよりリアルな手のモデルに変更しました。また半透明にもしてみました。これで見た目も大分変わりましたね。

TKS2では、UnityやLeap Motionを用いたプロジェクトも可能ですので、もしお困りのときはぜひお声がけください。