夜風のMixedReality

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

MRTK3でHandTrackingのモデルのマテリアルをスクリプトから変える

本日はMRTK3枠です。

〇MRTKでのHandTrackingの設定

先日はMRTK3のHandTrackingの見た目からマテリアルを変更することを行いました。

redhologerbera.hatenablog.com

今回はこのマテリアルを任意に変更していきます。

今回は以下のような任意のオブジェクトに触れたときに色を変えるような実装を行いました。

HandTrackingのオブジェクトはデフォルトでRiggedHand-Mainマテリアルが用いられていました。

スクリプトからマテリアルのパラメータを変えるためにはShaderの提供するパラメータ名を使用します。

パラメータ名を見るためにはマテリアルのハンバーガーメニューからSelect Shaderを選択します。

これによってRiggedHand-Mainマテリアルを使用しているShaderであるTransparentOutlinedHand-Mainシェーダーが発見できます。

パスで書くと以下のような場所にあります。

Packages/org.mixedrealitytoolkit.input/Visualizers/RiggedHandVisualizer/TransparentOutlinedHand-Main.shader

このシェーダーを選択することでインスペクターウィンドウにパラメータ名が表示されます。

今回は_HandColorを使用することでマテリアルの色を変えることができることがわかりました。

コード例は以下のようになります。

        [SerializeField] private Material _handRMaterial;
・・・
 _handRMaterial.SetColor("_HandColor", Color.red);

このコードでは手のマテリアルを赤く変更します。

ここに任意のカラーを設定することで手の色を任意のタイミングに任意に変更可能になりました。

本日は以上です。