バーチャル3Dクリエイター神部まゆみです(*^-^*)
この記事はVRChatでVRoidのしっぽを動かしてみたメモです。
↓Quest2のスティックでVRoidのキツネしっぽを動かせました。
ネコしっぽ、ウサしっぽも同様の手順で動かせると思いますが、ボーン名が違ったのでアニメーションは使い回せないっぽいです。
設定したファイルをBOOTHで無料で置いておいたので参考にしてください。

動作させたバージョンはunity2022.3.22、VRChat SDK 3.8.2です。
VRoid Studioでしっぽが追加できるようになったのでVRChatで動かしてみたかった
VRoid Studio v1.27.0からしっぽが追加できるようになったので、VRChatで動かしてみたかったのでやってみました。
参考にした先輩のページなど
動かすためにVRChatのExpression Menuっていうのを使うけど、VRChatの公式マニュアルに説明があります↓。

↓しっぽを動かす方法はこちらの先輩の動画が詳しいのだけど、以前の動画からやらないと飛ばしてある部分があるのでちょっときついかも?(;^_^A
やり方
今回はVRoidでやるので、VRoid Studioでしっぽ付のモデルをエクスポートしておく。
今回はキツネしっぽでやります。
VRoidモデルをVRChatにアップロードする方法は以前書いたのでこちらを参照。
アニメーターコントローラーを追加してしっぽのアニメーションを作る
モデルをインポートして、VRC Avatar Descriptor追加までやっておく。


アセットフォルダ内で右クリックしてアニメーターコントローラーを作成します。


VRC Avatar DescriptorのPlayable LayersのFXに、作ったアニメーターコントローラーを設定しておきます。


アニメーションを作る
アニメーションは
- デフォルト
- 上に曲げる
- 下に曲げる
- 右に曲げる
- 左に曲げる
の5つがあればOK。
これデフォルトは一応キーを打った方が良いんだったかな…一応トランスフォーム0で打っておきます。
あんまり根元から動かすとちょっと違和感があるかな? 三番目のボーンの J_Opt_C_FoxTail3_01 を動かすことにします。


今回はキツネしっぽなのでFoxTailだけど、ネコしっぽはCatTailでボーン名が違ったのでアニメーションは使い回せないみたいです(~_~;)
VRoid Studio v1.28.1でエクスポートしたモデルなので、以降のバージョンではボーン名が変わっていることもあるかも(;^_^A
デフォルトはこれ。
赤いボタンを押すとシーンで動かした部分のキーを打てる。
最初のキーだけあればいいので、自動で挿入される1秒後のキーは削除しておく。
Tailの階層構造は深めだからいちいち選択するのめんどくさいので、コピペしてリネームして回転だけいじったほうがラクかもしれない。


複製しただけだとアニメーターコントローラーに設定されてないので、D&Dして設定しておく。
これでアニメーションを編集していく。
上。90度あたりまで上げたほうが映えるかな?まぁ好みで。
下は下げ過ぎるとめり込んでしまったので-30度くらい?
左。
あれこれはアバター視点で左じゃなくて画面から見て左だったかな…間違ってたらごめん(;^_^A
Y軸を-75くらいかな?
右。
とりあえずアニメーションはこんなとこです。
Expression MenuとExpression Menu Parameterを追加する
アセットフォルダ内で右クリック、 作成 ⇒ VRChat ⇒ Avatars のところにあるので二つとも作成する。
名前はデフォルトでも良いけどまぁ分かりやすい感じに。


Expression Parametersはデフォルトにすると初期設定してくれるのでやっておく。


こんな感じに設定されます。


↓デフォルトのやつがここにあるからこれをコピペして作ってリネームしても良い。
Packages/com.vrchat.avatars/Samples/AV3 Demo Assets/Expressions Menu/DefaultExpressionParameters.asset




設定する
作成したVRCExpressionMenuとVRCExpressionParametersを、VRC Avatar DescriptorのExpressionsのところに設定しておく。


Expression MenuのActive Avatarに、設定したいアバターを設定する。


Addを押して
- SippoToggle(int)
- SippoBlendH(float)
- SippoBlendV(float)
の三つを追加する。


Expressions Menuの設定
Expressions Menuのインスペクターを開いて、Add Controlを押す。


↓こんな感じで設定していけばOK。
Playable Layersの設定
ここに設定したアニメーターを追加しないと動かないです。


Gestureを設定する場合はアバターマスクを作らないとエラーが出てアップできなかったけど、FXだけの場合は作らなくてもいけた。
まぁ今回はジェスチャーはやらなくても行けたのでアバターマスクは飛ばします。
アニメーターの設定
VRC Expression Parametersで設定したパラメーターをここでも設定します。


レイヤータブを開いて、Sippoレイヤーを追加してウェイト1にする。
今回はアバターマスクは設定しなくても動きました。


Sippoレイヤーで空の新規ステートとブレンドツリーを作成、双方向に遷移を作成する。
SippoToggle Equal 1になったらブレンドツリーに、SippoToggle Equal 0 になったらデフォルトに戻すようにする。
ブレンドツリーの設定
ブレンドツリーをダブルクリックしてアニメーションの設定をしていく。
最初に作ったアニメーションを、スティックの二次元座標の値に割り当てていく感じっぽい。
↓設定はこんな感じです。
ブレンドタイプは 2D Freedom Directional
Parametersは SippoBlendH SippoBlendV です。


VRChatにアップロードする
これで特にエラーが出てなければVRChatにアップロードすればOK。
アップロード方法などはこちらを参照。
できた!
正面からなので少し分かりにくいですが普通に動かせました。
Physboneとは競合してしまうっぽい?
これ設定次第なのかもしれないけど、しっぽにPhysboneを設定したら動かなかった。
或いはPhysboneありのしっぽとなしのしっぽを仕込んでおいて、表示非表示を切り替えて使い分ければ行けるかも?
設定ファイルをBOOTHに無料で置いておいた
クラウドストレージ代わりに私のBOOTHストアに無料で設定ファイルを置いておきました。




無料なのでアップデートするかは分かりませんw
一応手順を書いておきます。
↓VRoidStudioでキツネしっぽを付けてエクスポートする。
VRM0.0でエクスポートしましたが、その後VRM1.0でも普通に動きました。
↓zipを解凍してunitypackageをインポートする。
↓VRoidStudioでエクスポートしたモデルをインポートしてシーンに配置。
↓VRC Avatar Descriptorを追加して、ダウンロードしたアニメーターコントローラーとExpression Menuのファイルを設定。
↓エラーをFixしてVRChatにアップロードする。
↓動作確認。普通にファイル設定するだけで動きましたね。
おわりに
案外簡単にできて良かった。
まぁちょっと設定で躓く部分があるかもしれないけど、一度やってみるとだいたい分かりますね。
参考になれば幸いです(*^-^*)