リンリン 2024/02/04 16:44

水着作成と揺れ物の貫通対策とDynamic Boneの落とし穴

今回は水着の作成に挑戦してみます。
市販の水着モデルを着せるのもいいですが、Unityで乳とかを揺らせたらにいかんせん貫通しまくっていたので、もっと体にフィットしたものならば貫通も抑えられるのではと思って自作するに至りました。ちなみに後述ですが関係なかったです。

水着作成

作り方はこちらの動画を参考にしました。とても分かりやすいので神です。
【Blender】だいたい1分でわかるパンツの作り方【VOICEROID・琴葉茜】

見よう見まねで水着の型を切り抜きます。ソリッド化はまだかけません。

軽くリトポロジーして1回サブディビジョンサーフェスをかけます。
そして同じくメッシュフィルター/面セットをリラックスで縁の形を整えます。ちなみに上の動画を観るまではこの作業に一番悩まされていました...

ここでソリッド化を付けて適用します。ソリッド化のパラメーターでふち/ふちのみにチェックを入れると裏面を消してくれます。
いったん複製して、ハイポリにして細部を作り込みます。縁に厚みをつけるとよりそれっぽくなります。

次に縫い目を作ります。縫い目部分をフリル状にすると縫い目に見えます。見えるのか...?
やり方はこちらの動画を参考にしました。
フリルの作り方【Blender3.6】

あとはノーマルマップをローポリに焼き付けて、着色して質感を付けて完成です!
手持ちの水着(?)と照らし合わせて一番それっぽいのを見つけました。

残りは体のウェイトを水着に転送するだけですが、下乳と胴体のポリゴンが入り組んでいて正しく転送されませんでした。そこで体と水着をそれぞれおっぱいとその他の部分を頂点グループで分けて、それぞれウェイト転送したらキレイにできました。

あとは出力して動作確認!

完成


公衆トイレにスク水...なかなか癖を感じる組み合わせになったぜ。

乳揺れの貫通対策

本題の乳揺れの貫通対策ですがいくつかの方法を試してみました。
左から
①おっぱいのメッシュを極限まで平らにする(乳袋の下は空洞状態)
②水着に体と同じアーマチュアを共用させる
③水着に自分のアーマチュアを持たせて体のアーマチュアと入れ子構造にする(VRChatで服着せる時によくやる方法)
④ウェイト転送をモディファイアではなくメニューのコマンドで行う

結果は①が一番良くて、②③④は全く同じ挙動をしました。
つまりいくら服が体に似たような構造していても貫通は免れないということ。冒頭の仮説は間違っていたとさ。
ただし一つ気づいたことがあって、服を体と入れ子構造にするときはリーフボーン(名前に_endの付くボーン)まで入れ子にした方が良いかもしれません。
これまではリーフボーンはそのままにしていたのですが、今回の実験でリーフボーンを付け替えたら初めて体とアーマチュアを共用するときと同じ揺れ方をしました。

DynamicBoneの意外な落とし穴

実験に使ったのはPhysBoneだったので、DynamicBoneでも同じことをやろうとしたらまさかの問題発生。
なんとリーフボーンを付け替えると末端のボーンが揺れなくなるのです。
しかしリーフボーンを付け替えなければ末端ボーンの揺れがズレて貫通しまくってしまう...

問題の映像です。
左尻はリーフボーンが付け替えられていて右尻はそのまま。ご覧の通り右尻は揺れて貫通しまくるのに対して左尻は全く揺れません。
更に厄介なのは左尻のボーンをBoneRendererとかで可視化すると、確かにボーンは揺れていることが確認できるのにメッシュ自体は揺れていません。
揺れているのに揺れていません。なんだこれはたまげたなぁ...

揺れ物の結論

いろいろ検証したところDynamicBoneが唯一正しく動いたので現時点の最適解だと思います。
入れ子にした服のボーンをExclusionsに割り当てれば本体のボーンに完璧に追従するようになります。

これから揺れ物は主にDynamicBoneを使うことになると思います。

※追記
のちにリーフボーンを入れ子にした上でExclusionsを設定しないでやってみたらなぜか普通に揺れました。
仮説ですが実行前にボーンを入れ子にしておくと揺れなくなって実行中にボーンを入れ子にすると揺れると思います。どうして...

各種揺れ物の比較

着せ替えをする上で使ってみた感想。
DynamicBone:普通。コンポーネントを直接ボーンに追加してもRootに自身を追加しなければならないのが少し面倒。
MagicaCloth2:揺れが一番きれい。しかし入れ子にしたボーンを無視する方法が分からないので貫通しまくります。
SpringBone:未検証。
PhysBone:使い勝手が一番良かった。しかしVRChat専用...
Phys Boneをなんとか抜き取って一般のプロジェクトで使おうとしても失敗したので論外。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

記事のタグから探す

月別アーカイブ

限定特典から探す

記事を検索