IllustratorsLeak
Algo_Ayugon
Algo_Ayugon

fanbox


Cloth奮闘記録(Gunseiおじさん進捗)

 お久しぶりです。1月中に終わらせるぞ!と意気込んでた制作ですが、色々あり2月中旬以降に完成の見込みです。単純に、凝りすぎなんだよな!

 そしてこの記事は、その制作でUnityのClothコンポーネントと殴り合った記録です。

前記事(10月執筆ってマジですか):https://www.fanbox.cc/manage/posts/1522800

---

【初期案】

 おじさんの(ポンチョ)コートですが、最初はシンプルにこんな感じでやろうとしました。

 しかし思った。これコライダー調整が鬼難しいのでは?あと、VeryPoorにしたくないので頂点数200以下にしたいけど面積が広くてケチるとガビガビになる…。どうしよう。


【改善案】

 デザインから考え直し、肩~腕はウェイトを普通に割り振る形(手首のボタンで固定されている)にしました。実際着ること考えても腕が固定されてたほうが使いやすそうだろうし。

ポンチョからシュッとした細い足がニュッて生えてるのがな、やりたかったんや。あと、この画だと見えてないけどサスペンダーのチラリズム。


【ウェイト+ClothはBlenderでも実装できる!】

 さて、ここまで読んで、ん?となった方ももしかしたらいるかもしれません。BlenderでアーマチュアモディファイアをつけたままFBX出力しClothコンポーネントをつけると、「爆発する」ことがあるので、アーマチュアモディファイアを消そう(つまりアーマチュアとの連動が切れる)、と書かれている記事が少なくないからです。

 スカートやエプロンのようにHip等特定の1つのボーンだけに追従させればいいのなら、それでも大丈夫なのですが、上の画のように複数のボーンにまたがって関連付けたい場合実装できません。

 私も最初はそう思って諦めかけていましたが、他のモデリングソフトでできてBlenderでできない道理は無いだろ…と少し調べてみました。結論から言うと、できます

【参考】「Clothのスカートの一部にアニメーションを付ける


 爆発するときは、FBX出力時等のスケール設定を見直すといいみたいですね。

【参考】「Unity(2018) Clothハマりどころトラブルシューティング

 最近はいつもこんな感じでFBX出力してますが、これで問題なくClothコンポーネントが使えています。そもそも出力前にもちゃんと「適用」して正規化しとくといいのかもしれない。


 ただし、ウェイトが全く振られていない頂点を「Edit cloth constraints」で赤く塗って(Max Distanceを0に設定)しまうと棘になります。推測ですが、そういった頂点はHipまたはモデル自体の原点的なところに固定されてしまうので、取り残されてしまうのではないでしょうか。最初は記事の通り、Clothで動く部分はウェイトを削除していたのですが、ウェイト塗ってても問題なかったのでなんかそれっぽいウェイトを塗っておいてもいいかもしれません。


【布との格闘:集まったり引っ張られたり!】

 そんなこんなで、Clothがちゃんと使えはすることは確認できました。しかしまたここで問題発生。

 脇を締めると集まった布がぐちゃぐちゃになる! シルエットが悪いことはキャラモデルにおいて超致命的!! どうしよう。

 こうなってしまうのは、完全に腕も布も伸び切った状態で始めると、布がどう折りたたまたり縮んだりするか制御ができないことが原因ではないかと推測しました(あと単純に布量が多すぎる)。だとすると、中間的ポーズ…つまりAスタンスで作れば解決しそうです。


 Aスタンスにしました。(そのためにコートを後回しにして先に手をほぼ完成まで作りこんだ)

 かなり脇を締めましたがシルエットは良好です。大成功!


 しかしまた今度は別の問題が浮上します。それは、逆に腕を思いっきり上げた時に生じます。

 静止画だとどういう状況なのかよくわからないかもしれませんが、後ろの布が引っ張りに耐え切れずピンと張り、前面にまでめり込んできてしまっています。VRCをしていると腕を広げたり上げたりという動作は意外とするもので(筆者が3点トラッキングで座ってテーブルとか膝とかに手を置きながらズボラVRプレイをしているのもあり)、かなり気になってしまいます。

 そもそも布が余り過ぎていたのでTスタンス→Aスタンスにしたのですが、今度はそのせいで布が足りなくなったのが原因です。少しTスタンス寄りのAスタンスにすることで改善を図りましたが、根本的な解決にはなりませんでした。


 そこで、コートのデザインを再び見直し、背面にも切れ込みを入れてみました。

 脇をしめても、腕を上げても破綻しないポンチョ完全体がやっと完成しました! 後ろにも切れ込みをいれることで、背中側のサスペンダーも良く見えるようになって視覚的にも怪我の功名かもしれません。

  

【パラメータ調整:Solver Frequencyの謎】

 形状についての根本的な問題をクリアしたのでやっとパラメータの調整に入ることができます。しかしここでもハマりポイントが。

 「Solver Frequency」は上げれば上げるほど良い(ただし処理が重くなる 【参考】「説明書に載ってない本当のClothコンポーネント ~VRChatで使うClothコンポーネント~」)と色々な記事で見たので、300くらいにしてたんですが、なんか布が静電気で引っ付いたような感じになっておかしい。上げて駄目なら下げてみようということで、思い切って1とか10とかにしてみたらすごい良くなりました。なんで??? 「Solver Frequency」のことはこれから「静電気ポイント」と読み替えることにします。薄い布とかのときは上げるといいかもしれない。


これからまだ微調整すると思いますが、そんなこんなで今のところはこんな感じです。

【その他調整ポイント】

・なかなか硬くならないなとStiffnessをがちゃがちゃ弄ってましたが、Dampingの値を高くすることのほうが効くようです。逆かと思い込んでた。

・コートなので少し重めにしようとCollision Mass Scaleに値を入れましたが、正直変わったのかよくわかりません。

・VRCで使うときに暴れすぎないようにWorld~Scale二つを抑えめに。少しは移動で揺れてもいいかなと0にはしなかった。

・胸の形状に合わせる為、Chestのコライダーは左右に配置。尻周りの貫通もカバーするためHipにも1つ。Spineにも必要かは様子見(挟まるかな?)。DynamicBoneと違って揺れる側の衝突判定が見た目通りだから調整がすご~~~くやりやす~い!

・四角面のまま出力する(恐らくUnityで自動で三角化される)より、三角面に手動で割っておいたほうが綺麗な気がする(真偽不明)。


 それ以外のパラメータについてはまだ正直よくわからん。いつかわかるときも来るでしょう…。


形状がちゃんと決まったら、ウェイト部分とCloth部分でメッシュを分割して(Cloth頂点をケチるため)、Edit cloth constraintsを簡単にするツールがあるらしいので使ってみようかなと思っています(【参考】https://mobile.twitter.com/rafale39/status/1349003885499789314)。


 VRCでもちゃんとなってるヨシ!(まだウェイト部分全然作りこんでなくて貫通するのを誤魔化そうとポージングを頑張っている)(鏡でバレてる)


---

やっと全パーツ揃ったので、UV展開とかテクスチャとかがんばるぞ~~~いつ終わるんだ。

Cloth奮闘記録(Gunseiおじさん進捗) Cloth奮闘記録(Gunseiおじさん進捗) Cloth奮闘記録(Gunseiおじさん進捗) Cloth奮闘記録(Gunseiおじさん進捗) Cloth奮闘記録(Gunseiおじさん進捗) Cloth奮闘記録(Gunseiおじさん進捗) Cloth奮闘記録(Gunseiおじさん進捗) Cloth奮闘記録(Gunseiおじさん進捗) Cloth奮闘記録(Gunseiおじさん進捗) Cloth奮闘記録(Gunseiおじさん進捗)

More Creators