東屋書店

一つのブログは一冊の本である

広告

VRchatでMMDモデルをアバターとして使う方法-上級者編

私の書いた本が出ました!!!

画像生成AIで絵を作りたい人必見です~

 

どうもふしめろです。

今回は前回の記事に引き続きVRchatのアバターにEyeTrackingを実装していきます。

今回は作業が繁雑な上になれていないとかなり大変ですので、心してかかってください。

必ず利用規約に目を通しましょう!

MMDモデルに限らずVRchat上で自分以外の人が創ったモデルを利用する際は


モデルの利用規約にしっかりと目を通しましょう。


モデルの規約を守らない場合モデル作者さんに多大なるご迷惑がかかります!

 

 

gyazo.com

3d.nicovideo.jp

また、自作のアバターを作ってみたい!!
という方はこちらの記事が有意義かつおすすめです。

 

bibinbaleo.hatenablog.com

vr-san-o.hatenablog.com

参考動画

www.youtube.com

対象読者

前回の記事を読み、アバターにLipSyncを実装できてよくわからないソフトでもなんとなく操作できる人

 

www.hushimero.xyz

 

 

持ち物

MMDモデルが読み込めるblender

blender.jp

blender-cg.net

LipSyncに対応させたMMDモデル

 

www.hushimero.xyz

 

何があってもめげない心

 

それでは始めて行きましょう

blender-mesh編集

blenderでMMDモデルを読み込む

まずはblenderでMMDモデルを読み込みます。

これはファイルからインポート>MikuMikuDanceを開いて良い感じにインポートすればOKです。

インポート時に左下にある拡大縮小の値を0.08に設定すると良い感じになるみたいです。

gyazo.com

 

オブジェクトを整理・リネームする

その後、分かりやすい様にオブジェクトを整理します。

ジョイントなどは消してしまって大丈夫です。最低限必要なのは三角形アイコンのmeshとboneの情報です。

そして、boneとその親に

Armature

と言う名前をつけます。あと何回か名前をつける場面があるのですが、誤字がないように気をつけてください。

gyazo.com

meshを分割・再統合・必要に応じてデシメート

次にテクスチャーを表示させて色をつけた後、meshを分割します。分割方法は左端の各タブからMMDのタブを選択し、Separate by Materialsとか書いてある奴を押します。

gyazo.com

これにより、meshが分割されます。

このときに、ばらした各メッシュをblenderの機能を使ってデシメートすることが出来ます。ただ、分割したすべてのmeshにはシェイプキーつまりモーフが添加されているので、モーフの影響を受けるmesh以外これらを削除してください。

なぜならblenderではシェイプキーが設定されているmeshはデシメート出来ないためです。腕や小物にもシェイプキーがついているので、随時消していきましょう。

 

そして、見ればわかるとおりmeshはかなり細かく分かれているので、管理がめんどくさいです。なのでばらしたmeshを再度統合させます。

gyazo.com

再統合にはいくつかの条件があり、

  • まずmeshが見えている状態であること
  • 次にマウスカーソルを作業スペース(モデルが3Dで表示されているところ)に持っていっていること
  • 最後にCtrl+Jを押すこと

これらを守って統合していってください。

そして、上記の作業が終わった各メッシュは最終的に一つのmeshに統合しておいてください。

 

一つのmeshに統合した場合
VRchatのパフォーマンスがアップします。


簡単に言うと複数のメッシュの場合FPSが落ちやすくなり、一つのメッシュに統合しておくとFPSが落ちにくくなります。オススメです。

meshをリネーム

そして、統合が完了したら。モーフを設定したmeshの名前を

Body

と変更します。必ずこの名前にしてください。

mesh編集はこれで終わりです。すべて見えなくしてかまいません。

gyazo.com

blender-bone編集

さて、次によくハマるbone編集です。ゆっくりやっていきましょう。ここからは動画を見ながらやることを推奨します。

boneの削除とリネーム

まずはboneを表示し、いくつかのboneを削除していきましょう。

基本的には足の間にあるぶっといboneは必要ありません。これらを消してキレイに足のboneが見えるようにしてください。

 

次にboneのリネームです。

Hips

 Spine

  Chest

    Neck

      Head

このようにboneをリネームしていってください。どのboneがどれに値するかは正直モデルによるのでフィーリングに頼るしかありません。

そして次に右目左目のboneをリネームします

LeftEye

RightEye

これでOKですね。

ここまで来ると概ねこのような形になっているはずです。

gyazo.com

目boneの向きを調整する

次に目boneの向きを調整します。

MMDの目boneは基本的に横に向かって伸びています。しかし、VRchatではこれを垂直に立てる必要があるようなので立てます。

このとき、MMDの目boneには目先boneという小骨がくっついていることが多いのですが、どうも目のboneは一本でないとダメなようです。なのでどちらかの骨を消さなければいけないのですが、目のmeshがこの二つのboneのどちらにくっついているかの確認しなければなりません。なので、両方の骨を大きくし、ポーズモードでの挙動を確認してから削除すると良いでしょう。*1

 

目boneを回転させる

目boneを垂直に立てたあと、目boneの軸を調整します座標軸を表示した後目boneの軸を回転させて、Zの矢印が前に、Xの矢印が左腕の方を向くようにします。

Hipsのboneを垂直に直す

さて、最後にHipsの角度を調整します。

一部のMMDモデルではHipsに相当するboneが尻尾みたいな感じで飛び出ていることがありますので、上記の目boneと同じ要領で回転させ、垂直にしてやります。

 

 

これでblenderでの編集は終わりです。出力しましょう。

 

fbxで出力

出力したいオブジェクトをすべて選択した後、エクスポート>fbxでFBXファイルで出力するのですがこのとき、下のように出力設定を少しいじってください。

このとき拡大縮小欄の右側にある、帽子と矢印のマークのチェックを外すと良いみたいです。

gyazo.com

gyazo.com

gyazo.com

gyazo.com

これで出力すればOKです。unityに行きましょう。

Unity編

さて、Unityです。とりあえずいつものように先ほど出力したFBXをhierarchyにおいてください。このときによくテクスチャがバグるので、各meshのテクスチャ設定をいじって正常に戻しておいてください。

先に一度ローデン氏のサイトでFBXを作っておくと、バグりが少なくなる印象があるので、FBXを置く前にそちらでFBXを出力して置くのも良いかもしれません。

テクスチャが正常であるということを前提に話を進めていきます。

Rigにboneを設定していく

さて、VRchatでアバターをアバターとして使うためにはRigをhumanoidにしなければならないのは前回の記事の通りなのですが、今回出力したファイルではhumanoidに設定してもboneが上手く置かれません。

なので、手動でboneを設定してやる必要があります。

gyazo.com

ここのconfigurationをおして、bone設定に飛びます。このときセーブしろと言われるのでセーブします。

そして、異常が出ているところの骨を治します。基本的にはめちゃくちゃに骨が入っているので、すべてのboneが正しく設定されているかを見た方が良いでしょう。

スケールがすさまじいことになっているので0.5とかスケールを縮小して使ってくださいね。

追記

5.6Updateでこのbone周りがちょっと難しくなっているようです。

UpperChestにボーンを設定したらアバターをアップロードできないので、UpperChestにボーンを割り当てずに、ショルダーとネックの親のボーンをチェストに割り当てなければ行けません。

よく解らないと思いますので下の画像通りにしてみてください。

gyazo.com

 

この青く光っているボーンがネックとショルダーの親のボーンです。似たような場所に似たような骨があるはずなので、探して設定してみましょう。

UpperChestにboneを設定しないようにするといいらしいです。

また、口が半開きになる症状が出たらheadからjawボーンをNoneつまり、設定を外せば直ることが多いです。

EyeTrackingは実装できたが・・・ 

さて、ここまででEyeTracking自体の実装は完了しましたが、マイクを切っているのに時たま大口を開けるというモーションが入ります。

他のモデルでも試したのですが、同じような症状が出るので何かがおかしいのですが何がおかしいのかよくわかりません。

 

煮え切りませんが一端これで終わりにします。うーん残念。

 

www.hushimero.xyz

 

 大口開ける問題の解決

タチコマさんよりこのような情報をもらいました。

前にvrc.lowerlid入れてないモデル作ったけど、口開いて何でだろうと調べたら、メッシュをBodyにした場合、モーフの1から4はvrc.blink記述関係なく瞬きと目蓋だった。3、4番目に口パクモーフあったのが原因だった。

by tachikoma390

確かに今回のモデルは vrc.lowerlid関連のモーフを設定していないので急遽実施しました。その結果改善しました。

  1. 確かに上から4番目までのモーフが瞬き関連に割り当てられていた
  2. モーフ適用meshはBodyと明記しなければ瞬きおよびEyeTrackingは動作しなかった
  3. お宮さんのネオンちゃん可愛い

移動時にちょくちょく白目向く以外は直りました!

tachikomaさんサンキュー!

 

*1:ただboneの設定によっては小骨を消すと目が取り残されるというホラーな状態になるのでこれもモデルによります