見出し画像

物理 きらい 覚書(vrm→pmxスカートに物理入れる話)

はじめに

VRoid Studioから出力したvrmにどうにかしてスカート物理を入れたかったので頑張った記録。
未来に同じことをするかもしれないので作業を忘れないように記録する。
モデルのスカート部分は「ロングコート」で作られている場合を想定。

vrm→pmx

定番のやり方
①VRoid Studioからエクスポート
 髪のメッシュは結合、透明メッシュは削除。
②Vroid2Pmxでpmx化
③PmxEditorで最適化プラグインを使って最適化。
 いらないボーン(装飾系)を削除。対応する材質がないのでいらない。
④これで一応MMDで最低限動く状態になる。

物理との闘い

髪の物理

とりあえず髪の物理は適当に入れる。
PmxTailorで髪のjsonファイルをインポートして適用して終わり。
髪の物理セットは髪の量にもよるが時間がかかるので、髪の物理だけ設定したpmxを用意してそのpmxからスカートの物理に着手するといいんじゃないかな。

スカートの物理

動画1番右が髪の物理だけ入れてスカートに触っていない状態。
物理の調整は貫通知らずくんを使用。

①PmxEditor 1回目

PmxEditorで物理を入れたい部分の頂点をCSVに出力。

頂点を選択できるようにする
絞込み表示でスカートだけ表示できる

②PmxTailor

PmxTailorに移動。
貫通知らずくんのエクセルに書いてある通りにやる。
(CSV出力対応版)

同梱されている「PmxTailor用jsonファイル」に入っている「ロングコート用.json」を使う。
※PmxTailorは文字コード「UTF-8」しか読み込めない。jsonファイルの読み込みにエラーが出たら「UTF-8」に変換して再トライ。

ロングコート用を適用

「パラ調整」タブの「物理対象頂点CSV」に事前に出力しておいたスカート頂点のCSVを入れる。
これで一旦pmxを出力。

③PmxEditor 2回目

作られたスカート部分の剛体とジョイント縦(↓)横(→)を選択してCSVに出力する。

剛体 スカートの中心剛体は選択しない
ジョイントは縦と横をそれぞれ別ファイルにする
こちらは「中心」と繋がるジョイントも含める

④貫通知らずくん

PmxEditorから出力されるCSVは「UTF-8」。エクセルでそのまま開くと文字化けするのでメモ帳などで文字コードを「ANSI」にする。

csv出力対応版に書いてある通りにやる。
並べ替えフィルターの話は「*-001」で検索すれば末尾-001のみを一発で出せる。

上の動画右から3番目は剛体根本の質量「10」、末端が「20」
右から4番目が根本「0.1」、末端「0.01」

PmxEditorから出力した剛体、縦ジョイント、横ジョイントの3つのCSVを、貫通知らずくんが提示する情報に適宜編集する。
編集が終わったらPmxEditorで読み込むために「UTF-8」に戻しておく。

⑤PmxEditor 3回目

貫通知らずくんを使って書き換えたCSVを3つ全てPmxEditorで読み込む。
エラーが出てないか、文字化けしたものができていないかをチェック。

ここから剛体の調整をしていく。

下半身、足関連の剛体の摩擦力を50くらいにする。
貫通知らずくんにはスカート剛体の奥行は0.1と書いてあるが、貫通するので0.25とかに変えている。

スカート剛体の移動減衰、回転減衰は1に近いほどふあふあになるっぽいけどよくわかりませんでした。いかがでしたか?
動画右から3番目は「0.9」、
動画右から4番目は「0.99999」にしてある。

しゃがんだりかがんだりするモーションだと、上半身や腕がスカート剛体にぶつかって足が貫通する。
なので上半身や腕はスカートの非接触グループにする。
(下半身剛体はスカートに当たってほしいので別のグループにした)

貫通防止のために足の剛体の半径をデカくして前にズラした。
足を上げたときに貫通しにくくなるはず……。

バカデカ剛体。やりすぎるとスカートの形状が変わってしまう。

貫通により強くなってほしいおまじないとして、裏ジョイント追加プラグインでスカートのジョイント全てに裏ジョイントを追加している。
(貫通知らずくんは裏ジョイントや斜めジョイントは非推奨と言ってる)

調整したらTransformViewで貫通しないか確認
だいたい貫通しない ヨシ!
前が開いてる「ロングコート」も同じ方法で物理を入れられる

二重スカート

スカートが二枚重なっている
苦しみも二倍

PmxEditor

上のほうのスカート一枚の時同様、外側のスカートと内側のスカートそれぞれにPmxTailorと貫通知らずくんを使って剛体とジョイントをセット。

剛体の設定をしていく。
足関連、下半身の剛体もスカート一枚の時と同じように調整。

スカートは外側と内側のスカートがそれぞれ接触するようにしているとこうなる。

腰回りがぶわってなる。しかも常にブルブルしている。
これではいけませんね。

しかし、お互い干渉しない設定にすると内側のスカートが外側のスカートを貫通してしまう。

ダメだね。

というわけで、強引なやり方で解決していく。
スカートの調整において、最も避けたいことは足がスカートを貫通すること。
その解決を重視する。

これが私が出した回答。

①外側のスカートと内側のスカートはお互いに干渉しない。
②内側のスカートの剛体は薄めに、外側のスカートの剛体は厚くして、外側のスカートの剛体が内側のスカートの剛体を内包するくらいにする。
③スカートは両方足の剛体と干渉する。

こうしておくと、まず足が外側のスカートの剛体に当たり、外側のスカートが動く。
その後内側のスカートに足が当たって内側のスカートが動く。
なので結果的に足が貫通せず、内側のスカートが外側のスカートの外にチラチラすることもない。はず。そうだといいね。

大丈夫かな…?

おわりに

物理という存在に憎しみを覚える。

お疲れさまでした。

いいなと思ったら応援しよう!