衣服や布をシミュレートするClothという機能があるので試してみました。
モブ子は元々PMDデータで、MMD2MecanimでMecanimなHumanoidに変換してますが、HumanoidにはスカートのBoneはないので、そのへんは生かされない。
なので走ったりで太ももが上部に移動するとスカートをつきやぶってしまう。
clothコンポーネントをスカートに適用すれば、破たんの無い歩行ができるのではないか?
ただし、変換結果のmeshはスカートと体が一体になっていて、スカートのmeshだけにclothを適用できない。
これはPMDからFBXに変換するときの問題かもしれない。
現在はメタセコイアV4で、Unityのhumanoidボーンを適用する仕組みができているが、まだ有料版買ってないので無理(´・ω・`)
というわけで、まずは元のPMDをメタセコV4で読み込みスカートだけのmsqファイルで出力
それをOBJファイルに変換してUnityで読み込ませてみた。
スカートだけのmeshオブジェクトが出来上がる。
これをモブ子のボーンのhipMasterの子供として置いて、meshに対してclothコンポーネントを設定。
edit Constraintsを押して、布が固定な部分と動きやすい部分を設定する。
赤色は固定、緑色は自由に移動できる。
設定はほぼデフォルト。
この布が影響を受けるコライダーを追加登録する。
ここでは右ふとももと左ふとももの二つ。
それぞれ、33:joint_LeftHipと59:joint_RightHipで、カプセルコライダーを追加している。
このボーンの番号は、もともとのPMDデータでの番号と一致する。元のボーン名は日本語なので、mmd2mecanimが英語に書き換えていると思われる。
もともとのスカートは消せないので、さらに上にスカートを追加して、そのスカートにclothを適用したことになる。
ちゃんとスカートだけmeshが分離されるような変換の仕組みが分かれば二重スカートは解消するのだけど(´・ω・`)
元のスカートと比べてきちんと太もものコライダーで布が持ち上がるようになった。
布らしい揺れも再現されている。
ちなみに、布と太もも、どちらもrigidbodyではないです。