エモートスイッチでマテリアルを変更する

この記事の執筆時点での環境:
Unity 2018.4.20f1
VRCSDK2 2020.04.17.11.34

目次

  • マテリアル変更のメリット
  • 作り方

マテリアル変更のメリット

ぱっと思いつくメリットというと、
1. 小物の出し入れと同時に服の柄を変えたい時に、服のメッシュを二つ入れなくて済む
2. 他種族への変身などで肌の色が変わるとき、顔肌で悩む心配が減る
といったところでしょうか。

作り方

今回の目標はこれをエモートスイッチ一つで実装します。

用意するもの:

  • EmoteSwitchV3.3
  • VRCSDK2
  • 変更先のマテリアル

 今回は日焼けした感じのテクスチャを用意してみました。
元のマテリアルが M_Body1 で、新しいマテリアルが M_Body2 です。

 マテリアルが用意出来たら、さっそく作っていきましょう。

 非表示にしたい Mishe_ear と、マテリアルを変更したい Body のメッシュを通常通りにEmoteSwitchに設定します。

 EmoteSwitch V3_Body / Joint / Toggle1 を選択すると、アニメーターが付与されていると思います。これからこのアニメーションを編集しますが、これを弄ってしますとすべてのエモートスイッチに影響がでてしまうので、アニメーションファイルを複製して、複製したものを使用します。
Object_ON&OFF という感じの名前のアニメーションだと思うので、それを複製し、Toggle1 に元々ついていた Animator を削除します。
複製したアニメーションを Toggle1 に適用したら、新たに Animator コンポーネントが付与されると思うので、チェックを外して無効化しておきましょう。

 Toggle1を選択した状態で、Animationウィンドウを開きます。表示を Curves に変更するとこんな感じのグラフが表示されると思います。

 この黄色い線が上にあるところがスイッチON、下にあるところがスイッチOFF(初期状態)です。これにあわせて、マテリアルを変更する処理を追加します。
Add Property から、Object / Body / SkinnedMeshRenderer / Material Reference[0] を追加します。

 先ほどの黄色い線に従って、スイッチ前後のマテリアルを配置します。すると、このようになります。

 このままだと、スイッチ後(スイッチON)の状態のときに Body のメッシュが消えてしまうので、Object:Game Objrct.Is Active を削除します。

 これで完成です。こんな感じになります。

以上で完成です!よきVRCライフを!

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA