VRChatで使用するVRoidに表情をつける方法
先人様の記事を参考にVRoidをVRChatにアップロードできたはいいけどこのままだとキーに表情が割り当てられてない。
この記事(今回の参考記事)を参考にやっていったところ、なんとか表情を付けることができた。しかしUnityに読み込んだVRoidはこの記事で説明されているモデルの構成との違いが多くあり、そこで躓いた点をまとめていく。
(アドバイスしてくださったi175sさん、ありがとうございます・・・!)
Unityで読み込んだVRoid(FBXの方)の表情を変えるには
Hierarchyから表情作成用にコピーしたモデルのUMARendererを選択し、右側Inspector -> Skind Mesh Renderer内のBlendShapesを展開
すると表情設定用の項目がずらーーーっとでてくる。ここの値を変更することでで表情が変わる。値はおそらく0〜100の範囲で調整。
アニメーション(BlendShape)の登録
参考記事の通り手順を進めていく。
- Assets内にAnimationフォルダを作る
- Animationフォルダ内で右クリック -> Create -> Animation で空のアニメーションを作る
- 空のアニメーションをHierarchy内の表情作成用モデルにD & D
- メニューのWindow -> Animationをクリック。Animation編集用のウィンドウが開く。
この状態で、
- Hierarchyからアニメーション作成用モデルのUMARendererを選択
- Animationウィンドウの赤い●ボタンを押す
- 先程のBlendShapesの値を変える
すると、 Animationウインドウに値を変更した項目が登録される。
このようにして、必要な項目を追加していく。 (AnimationウインドウのAdd Propertyからも登録できる)
試しに、Animationウインドウの赤●ボタンを解除し再生▶ボタンを押すと、値を変えたBlendShapeがモデルに反映されていることがわかる。
ハンドサインの登録
上記手順で作ったAnimationはこの後すでにあるハンドサインのキーに上書きする形ことになるので、既存のハンドサインができなくなってしまう。表情と一緒にハンドサインもやりたい場合の作業手順が以下。
- Assets/VRCSDK/Examples/Sample Assets/Animation を開く
- Male_Standing_Pose Import Settingsを展開
- どれか一つAnimationを選択
- Animationウインドウの一番上の♢(ダイヤ)マークをクリックしてCtrl + C
- 先程自分で作ったAnimationに戻り、Animationウインドウをアクティブにした状態でCtrl + V
これで指の形の編集ができるようになる。
あとはAnimationウインドウ上で Left(Right) Hand. ....という名前の値を-1 ~ 1の範囲で設定して指を好きな形にすればOK。Left(Right) Arm Down-Upの値を変えると腕が上がって手の形が見やすくなる。
複数の表情(Animation)を作る場合、今作ったAnimationファイルを選択 -> Ctrl + Dで複製して、ファイル名と値を変える。 (もしかしたら、この複製したAnimationファイルもアニメーション作成用モデルにD&Dして紐付ける必要があるかもしれない・・・)
あと、アニメーションを2フレーム目に複製するのも忘れずに!
結果
あとは参考記事の通り、
- VRCSDKからCustomOverrideEmptyを複製
- 作ったAnimationをCustomOverrideEmptyに登録
- CustomOverrideEmptyを元の(Animation作成用ではない)モデルのVRC_Avatar Descriptor -> Custom Standing Animsに登録
- アップロード!
結果・・・
VRoidに表情が宿った!!!
お疲れ様でした!
(次は前回の記事で紹介したちくわを持たせたい)