見出し画像

【VRChat】Avatars3.0で他人にアバターを触られると表情が変わるようにしてみる

最近Avatar Dynamicsを少し入門したので備忘録としてまとめてみる。
まずは特定のコライダーを掴むと表情が変わるようにしてみました。表情を変えるだけなら慣れると数分で作れます。

必要なもの

  • PB対応のアバター
    今回はほむらちゃんを利用させていただきました。

  • Unity 2019.4.31f1

  • VRC Avatar3 SDK

作ったもの
耳を引っ張ったりおっぱいを掴むと表情が変わります。他人からのインタラクションを許可していれば、他人に触られても反応します。

おっぱい

アーマチュアのパラメータを設定する
まずはアーマチュアの設定を行います。アーマチュアの反応させたい部位を選択して右のパラメータの名前を設定します。

例えば下図のように設定すると、おっぱいを掴んだり引っ張ったりするとOppai_XXXというパラメータの値が変化するようになります。パラメータの種類は、「掴まれているかどうか(IsGrabbed)」「角度(Angle)」「強度(Stretch)」の3つです。いずれも掴まないと変化しないのでAllow Grabbingはオンにする必要があります。また引っ張りが分かりやすいようにMax Strechなどのパラメータを調整します。Max Strechを増やすと掴んで引っ張った時にびよーんと伸びるようになります。

今回はおっぱい(Oppai)とけも耳(Kemomimi)のパラメータを設定しました。パラメータは重複しても問題ないので、おっぱいのパラメータは左右ともにOppaiで大丈夫です。

ちなみにエディタ上でもマウスで掴むことで数値変化の確認が可能なので色々試しながらパラメータを調整すると良いかと思います。


パラメータ設定をする
次にParameter(変数定義)とFX(アニメーション)の設定をします。設定すべきFXとParameterはVRC Avatar Descriptionから見つけられます。今回は、パラメータはHomura_Parameter、FXはHomura_FXになります。

パラメータは下記のように先ほど設定したパラメータから、アニメーションで使いたいパラメータ(例えば、Oppai_IsGrabbed)の定義を追加します。

次にFXの設定をします。先ほどと同じパラメータをFXのパラメータにも定義します。

アニメーションの設定をする
これでFXから体の部位が掴まれている際の状態を参照出来るようになりました。次にアニメーションを設定していきます。

FXに新規のレイヤーを追加します。
今回はPhysBoneという名前のレイヤーを新規に作成しました。デフォルトではレイヤーのウェイトが0なので忘れないように設定しておきます。(0だと動かない)。


次に状態遷移を設定します。
今回はおっぱいを掴まれると(Oppai_IsGrabbedがtrueになると)表情をSadに変えるようにしました。おっぱいを離すと元の状態に戻ります。

おっぱいが掴まれた時のアニメーション
おっぱいの状態遷移

けも耳を引っ張ると反応するようにしたい場合は、Kemomimi_Stretchの数値をもとに状態遷移するようにします。今回はKemomimi_Stretchが0.2を超えたら表情を変化させ、0.1を下回ると表情が戻るようにしました。戻る時の数値は同じ数値にするより少し低めにしてあげたほうが状態遷移がころころ変化せずに安定する気がします。このあたりの数値は試しながらお好みで。


あとはVRChatにアップロードして動作確認して動けばOKです。

参考文献

  • 【VRChat】Avatars3.0の基礎、アニメーターについてのおさらい☆
    https://mekanyanko.staba.jp/2021/02/06/vrchat_avatar3_0/

  • 公式マニュアル
    https://docs.vrchat.com/docs/avatar-dynamics

この記事が気に入ったらサポートをしてみませんか?