見出し画像

VRoid StudioでVRChatのアバターを作ったメモ(2)

VRoidからVRCのアバターを作成するにあたって、前回の記事では単に、

  1. VRoid StudioでVRMファイルをエクスポートする

  2. VRMファイルをUnityのAssetsに放り込む

  3. VRM Converter for VRChatでVRChat向けprefabに変換

  4. VRC Avatar Descriptorで必要な設定を行いアップロード

という流れでアバターを作るだけでしたが、やってみると(やっぱり)いくつか調整したい部分が出てきたので、そのへんを試してみた自分用覚え書きです。主にアバターの微調整にあたる内容。

表情の修正

なんか笑顔のときのアニメーションで口元にほうれい線みたいなシワが出るのが解釈違いだったので、笑顔状態の表情をUnityで修正しました。このあたり、VRoid Studioの表情編集でも調整できるので、VRMを書き出す前にそっちでやったほうがいいかも。

VRMファイルをAssetsフォルダにドラッグ&ドロップした時点で、【ファイル名】.BlendShapesというフォルダが自動生成されるので、それを開く。BlendShape.Aから始まる表情の指定ファイルがいろいろあるので、笑顔の修正であればBlendShape.Joyを選択して、インスペクターでFaceを開く。今回は口が横に広がりすぎないようにFcl_ALL_Joyの値を抑えめにして、目は笑っている感じを出すためにFcl_EYE_Joyの値を増やした。

たぶんこれはDuplicate and Convert for VRChatでprefab変換する前にやっておく必要があると思う。

爪先立ち、腕の曲がり具合の修正

VRChat上で動かしてみると、プレイヤー身長(cm)の設定が妥当なのに微妙に地面から浮いてつま先立ちになっているのとか、両手コントローラーを伸ばしても手が伸び切らないのが気になったので、そこを直します。下記の記事内の「【おまけ】アバターの微調整」の項がとても参考になった。

Rootを選択して、わたしの場合はPositionのY軸を-0.02、Z軸を0.03とかにするとちょうど良さそうでした。Y軸を動かすと視点も縦方向に調整が必要なので、動かしたあとは忘れずにVRC Avatar DescriptorでView Positionを合わせる。

Dynamic Boneで髪とかを揺らす

これは当初からできればやりたかったことのひとつで、髪とか袖口とかを控えめに揺らしたい。

VRoid Studioでは髪の揺れかたを編集できて、それをそのままダイナミックボーンとしてVRM出力時に引き継げて、なおかつVRM Converter for VRChatが変換時にこの辺も自動的に引き継いでくれる。なので、事前に必要なこととしてはUnityのアセットストアでDynamic Bone(22USD)を買っておくことくらい。

しかし最初ハマったのが、VRChatアバターのダイナミックボーンとコライダー数の制限! VRoidがデフォルトで吐き出すボーンが多すぎて必ずエラーになり、そのままだとアバターアップロードができないので、手順としては、

  1. あらかじめVRoid Studio上で揺らさなくてもいい髪のボーンは削除しておく(「ボーン設定済み」内の「ボーングループ」を右クリックして削除)

  2. それでも自動生成される服の上下のボーンはUnity側で手動で削除

  3. これもVRoidで生成されるコライダーはUnityで基本すべて削除

という作業が必要になりました。参考になったのは下記の記事。

ヒエラルキー上のキャラクターのprefabを選択すると、シーンウィンドウに重ねて表示されるたくさんの黄色い丸十字がコライダー、白い丸十字がダイナミックボーン。

まずコライダーの削除。ツリー内の部位を選択すると、右のインスペクターに表示されるDynamic Bone Colliderを右クリックして、Remove Componentする。これが22個?あるので、ツリーを辿ってひとつずつ消していく。全部リムーブすると先ほどの黄色い丸十字が消える。

続いて、不要なダイナミックボーンの削除。これはヒエラルキーのキャラクターprefab内のsecondaryを選択すると、インスペクターのTransform項目のあとにずらずらと表示される。各Dynamic Boneのチェックをオンオフするとシーンウィンドウの白十字が出たり消えたりするので、それを見ながら。

例えば、袖のない衣装なら両手袖口の4つのボーンは不要だし、スカートでなければ腰まわりの6つのボーンは不要なので、こういうのを右クリックでRemove Componentしていく。

髪のボーン中には、こんなふうにCollidersの項目に先ほど削除したコライダーが参照先不明のままたくさん残っており、これもアバター登録時のコライダー数制限のエラーのもとになってしまう。Sizeの値を0にするときれいにお掃除できました。

難しいのはダイナミックボーンの揺れ加減の設定。デフォルトだとDampingとElasticityの値が小さすぎて、揺れまくり暴れまくりになってしまう。この値はそれぞれざっくり0.2、0.1くらいにしてから、パーツごとに微調整していくのが良さそうでした。

パフォーマンスランクMediumで登録できたときはこんな感じ。

なんか上手くいかないやつ

デフォルトのしゃがみポーズを変えたいなと思い、下記の記事を参考にモーション関連ファイルを編集してみたり、あるいは「しゃがみ置き換え+α」というツールを使ってみたりして、それら自体は上手くいきました。

なんだけど、このPlayable Layersまわりを編集するとなぜかハンドジェスチャーで表現できる喜怒哀楽の表情が全部死んでしまうというか、一切効かない状態になってしまい、Unity操作をアンドゥして再度アバター登録しても直らないのです。こうなると、もう一度VRMを変換するところからやり直さないと直らなくなってしまう…。これもしかしてVRoidアバター特有の現象なのかな?

ほか、VRoidアバターの困りごとは全部この記事に書いてありました。情報が新しくめちゃ有用なので、これからVRoid StudioとUnityでアバター作る人はまずこちらがおすすめです。


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