Sims 4 の人物モデルを VRM アバターに改造した。髪や身体へのボーン(リグ)埋め込みは比較的容易だったが、顔周りのメッシュに対しての頭と目のボーン(リグ)埋め込みでは難航した。
メッシュの問題
- 頭 Head と歯 Face(名前がおかしい)のメッシュを結合して顔メッシュ Face を作ったが、見かけ上問題なくても、実際には見えない開口部が沢山あった
リグ(ボーン)埋め込み時の問題
- 自動ウェイトのさい、余計なリグ(ボーン)まで選択してしまった
頂点グループと頂点の割り当てがズレている問題
- ボーン(リグ)埋め込み時または、メッシュの開口部をなくすために重複した頂点を統合したさいの副作用と思われるが、ある部位の頂点グループに別の部位の頂点が混在していたり、
- なぜか頂点グループに対する一部の面(を構成する頂点)の割り当てが欠けていたり、
- 眼球の頂点グループが眼球だけでなく、顔全体の頂点全てを指していたり、
- 頂点グループに全ての頂点が含まれているように見えたが、実際には一部含まれていなかったり、
などが難航した原因だった。
Sims 4 人物モデルの顔メッシュに、VRoid VRM 人物モデルのボーン(リグ)を埋め込む(失敗)
オーバレイ表示モード Show Overays をオンにしてオブジェクト選択を分かりやすくしてから作業を行う。
頭 Head と歯 Face(名前おかしい)を合成して作った顔メッシュ Face の状態を確認しておく。
この記事に先立つ作業で、Sims 4 人物モデルの頭 Head と歯 Face(名前おかしい)を合成して、統合版の顔メッシュ Face を無理やり作っている。
合成顔メッシュにボーンを埋め込む
VRoid VRM 人物モデルのボーン (アーマチュア、リグ)Armature を選択した後、Sims 4 人物モデルの顔メッシュ Face を選択する。
そのあと、左右両目線のボーンと頭のボーンだけを範囲選択するなどして選択する。
ボーンを埋め込んだら、睫毛と下の歯が分離した。
ポーズモードにして自動ウェイト付与して動作確認したが、首ボーンを動かすと、睫毛と下の歯が分離した。顔メッシュにも開口部があったらしい。
顔メッシュを選択して、編集モード Edit Mode に入り、重複する頂点を統合する。
開口部を潰すために、近傍頂点の統合 Merge を行う。
これは身体 Body の開口部潰しの対策としては有効な措置であった。
余計グロいことになった。
また首のボーンを動かしたのだが、剥離していたメッシュは元の位置のままで、それ以外とのメッシュとの間が強引に結合されて引き延ばされたような感じになった。
- 自動ウェイトを付けた後にメッシュだけ修正しても、治らないらしい
- そもそも先ほどは両目線と頭のボーンしか選択しておらず、首のボーンを選択するのを忘れていた
これはもう小手先の修正では対応できそうにもないので、最初からやり直す。
Sims 4 人物モデルの顔メッシュに、VRoid VRM 人物モデルのボーン(リグ)を埋め込む(首だけ成功)
いったんボーン(リグ)埋め込み前の保存ファイルを読み込み直し、作業順序を以下のように変更して再試行した。
- Sims 4 人物モデルの顔メッシュを選択し、重複する頂点の結合を先に行う。
- Vroid VRM 人物モデルのリグ(ボーン、アーマチュア)を選択し、ポーズモードで目と顔のボーンに加えて、首のボーンも選択する
- 自動ウェイトを付ける
首のボーン操作については問題なし
頭のボーン操作は問題あり
- 首に穴が開く
- 下の歯が置き去り
- 首に穴が開いている
下の歯が頭の中で浮いており、重複頂点の結合が利かなかったのかもしれない。
目線のボーン操作も問題あり
ないわ...
目線については片目ずつ、眼球メッシュ(頂点グループ)をキッチリ特定して関連付けないとダメだろう。
Sims 4 人物モデルの顔メッシュに、VRoid VRM 人物モデルのボーン(リグ)を埋め込む(目線だけ成功)
首ボーンは問題なくなったが、頭と目線は重症のままだ。次に目線を片付ける。
頂点グループの割り当てがズレているのが原因のようだ
目線リグ(ボーン)を動かすと、なぜ顔面崩壊するのだろうか。
編集モードで頂点グループに割り当てられている頂点たちの範囲を確認すると、左右の眼球の頂点グループ J_Adj_R_FaceEye、J_Adj_L_FaceEye に眼球ではなく髪のメッシュ(頂点たち)が割り当てられていたようだ。
そのせいで目線ボーンを動かすと、髪が連動して動くようになっていたらしい。
右目を構成する頂点群に対して、頂点グループを割り当て直す。
左右の目の眼球に相当する頂点たちだけが、眼球の頂点グループ J_Adj_R_FaceEye、J_Adj_L_FaceEye に含まれるようにせねばならない。
- オブジェクトモードで Sims 4 人物モデルの顔メッシュを選択
- 頂点グループを選択できるよう、編集モード Edit Mode に切り替え
- オブジェクトデータプロパティ Object Data Properties タブの頂点グループ Vortex Groups の一覧の中に、Vroid VRM 由来の人物モデルの右の眼球 J_Adj_R_FaceEye の頂点グループがある。これが顔面全体の頂点全てに割当たっており異常。
- 頂点グループ J_Adj_R_FaceEye の頂点たちを [選択] Select してハイライトさせた後、頂点 [削除] Remove して初期化
見た目の変化はないが、頂点グループ J_Adj_R_FaceEye の全頂点が削除された。 - オブジェクトデータプロパティ Object Data Properties タブの頂点グループ Vortex Groups の一覧の中に、Sims 4 人物モデルの右の眼球の頂点グループ b__R_Eye__ があるので選択してから、さらに [選択] Select
Sims 4 由来の眼球頂点グループには、眼球を構成する頂点たちしか含まれない。 -
Vroid VRM 由来の人物モデルの右の眼球 J_Adj_R_FaceEye を一覧で選択し、先ほど選択されてハイライトされた頂点群を割り当て Assign
見た目の変化はないが、これで頂点グループ J_Adj_R_FaceEye の頂点群は、b__R_Eye__ と同じものに差し替わった - 左目についても同様に、b__L_Eye__ の頂点群を J_Adj_L_FaceEye の頂点グループに割り当て直す
- 両方の頂点グループを選択 select して、正しく移行されたかテスト
この操作をノーミスで行うのは至難の業である。
目線リグに眼球のみ連動するようにはなったが、不具合が残っている。
目線リグを動かすと、今度は顔面崩壊はせず、眼球だけが追従するようになった。
目線を下に向けると、謎の線が表示される不具合がある。
しかし目線を下に向けると、謎の線が表示される不具合がある。
編集モードで確認すると、どうやら眼球と上まぶたが一点で繋がっているらしい
開口部を潰すために、近傍頂点の統合 Merge を行ったさいに、たまたま同じ位置にあった頂点が巻き込まれたのではないかと推測した。
念のため VRoid VRM 由来のモデルの顔メッシュも編集モードでつぶさに確認したが、眼球と顔はどこも繋がっていないので、繋がっている必要性はなさそうだ。
ごくわずかの動きで大きく目玉が動き、眼窩から飛び出す傾向がある
ごくわずかの動きで大きく目玉が動き、眼窩から飛び出す
Vroid VRM 由来のモデルでは眼球と顔はどこも繋がっていないし、そもそも眼球ではなくて水晶体のみとなっているなど眼球自体のメッシュ形状にも相違があるようだ。
目線については、それほど大きな動きは想定されないので、この事象は無視してよいと思う。VRアバター完成後に動作確認をしてみて修正要否を判断したい。
まつげが伸びたり、上下の歯が分離する不具合がある
ないわ...
まつげの方は、最初の不具合と同じ原因かもしれないな。
このような不具合が生じた原因は何か?
Sims 4 人物モデルにVRoid VRM 人物モデルのボーン(リグ)を埋め込むさい、VRoid VRM 人物モデル由来の頂点グループの名前は移行されたが、その割り当ては全て狂ってしまった。
身体については、2つのモデルの設計思想に大きな差がなく、身体メッシュを一本化して適切にボーンの位置合わせを行っておきさえすれば、既存の頂点グループは特に触らなくても、自動ウェイトに頼りきりで処理しても目に見える不具合はなかった。
しかし顔については、2つのモデル設計思想に差があった。
- Sims 4 では頭・歯の2つのメッシュの組み合わせだった
- VRoid では顔は、もともと1つのメッシュだった
目についても、2つのモデル設計思想に差があった。
- Sims 4 では、目の頂点グループは眼球全体(正確には半球)を指す
- VRoid では、目の頂点グループは水晶体の部分だけを指す
白目の部分は、たんに顔(頭)という扱いである
編集モードで頂点グループを全部チェックすると、頂点の割り当てがズレている問題が沢山あった
- ボーン(リグ)埋め込み時または、メッシュの開口部をなくすために重複した頂点を統合したさいの副作用と思われるが、ある部位の頂点グループに別の部位の頂点が混在していたり、
- なぜか頂点グループに対する一部の面(を構成する頂点)の割り当てが欠けていたり、
- 眼球の頂点グループが眼球だけでなく、顔全体の頂点全てを指していたり、
- 頂点グループに全ての頂点が含まれているように見えたが、実際には一部含まれていなかったり、
実に色々なので、VRMでのボーン(リグ)制御上、必須と思われる頂点グループ3つについて、重点的に是正する必要がありそうだ。
顔よりも先に、髪のボーン埋め込みを行ったが、余計なボーン(リグ)まで選択してしまったため、本来ならば顔のみに帰属すべき頂点グループが髪に移行されてしまったかもしれない。
前回作業時には身体と髪ボーンの埋め込みを行なっており、顔周りのボーン(リグ)埋め込みは今回作業に後回しにした。前回作業のさい、ツインテールの髪ボーン以外に、首・頭のボーンも選択して自動ウエイトしたような気もする。
髪ボーンは頭ボーンの子になっているはずなので、本来はツインテールの髪ボーンの部分だけ選択して自動ウェイトすべきだったのかもしれない。
顔と歯のメッシュの統合を行った後に、重複頂点の統合を行ったが、順序は逆だったかもしれない。
顔と口のメッシュを結合して顔メッシュを作ったが、見かけ上問題なくても、実際には、見えない開口部が沢山あった。
今回は顔と歯のメッシュを統合した後に、まとめて統合を行ったが、顔のみの状態のとき、歯のみの状態のときに、一旦、重複頂点を処理すべきだったのかもしれない。
結局のところ同じ結果になるかもしれないので、これについては分からない。
不具合を是正する
髪メッシュと髪ボーンの是正は、後からでも出来、わりと簡単だ。
今回は髪メッシュを身体メッシュや顔メッシュ(元々は頭と歯)とは別に出力しているので、髪だけ自動ウェイトし直すのは難しくない。全部を1メッシュで出力した場合にはできないが...
髪の自動ウェイトは、ボーン(リグ)の選択をおさげ髪ボーンのみに変更して、単純に自動ウェイトをやり直す。
Vroid VRM 人物モデルから髪メッシュに移行された頂点グループ(J_Bip何とか)は、髪と頭に関するもの以外は多分関係ないので削除する。Root も削除する。
b_ から始まるやつは Sims 4 人物モデル由来の頂点グループなので、最終的には必要ないが表情モーフでの微調整に使えるかもしれないので残しておく。
最初に髪ボーンを大量削除したため、ツインテールを大きく動かすと髪メッシュ全体が崩れるが、少しの動きならば問題はなかった。
まつげが伸びたり、上下の歯が分離する不具合も、何とか修正した。
以下の3つは、頂点グループの割り当てが狂った異常であり、治し方は同じだった。
- 上まぶたと眼球が一点で癒着している
- 眼球の頂点グループに一部欠落がある
- まつげが伸びたり、上下の歯が分離する
これで、何とか解決できた。