UE4 クロスシミュレーションで衝突判定が起きなくて詰まってた話

やあ

Blender上で作ったキャラクターをUE4にインポートして、クロスシミュレーションで服を動かそうとしたときの話。

↓こんなかんじでキャラクターの足にコリジョンを入れていざシミュレーション!
f:id:pto8913:20200412235024p:plain

すると。

f:id:pto8913:20200412235121p:plain

貫通してる!?
初めてクロスシミュレーションを使った僕が最初に疑ったのは、
スカートにもコリジョンを入れなきゃいけないのでは?
で見事に撃沈
いくら頑張ってもうまくいかないのでAnswerhubで、UE4 Cloth simulation collision not workingなどと書いて調べてたら。

https://answers.unrealengine.com/questions/688363/view.html

ここに行き着いた。
要約すると、メッシュとボーンの大きさを1x1x1にして単位をセンチメートル(0.01)にしろ。
まさかーと思って、Blenderでメッシュとボーンのスケールを確認したら・・・

ボーン
f:id:pto8913:20200412235924p:plain
メッシュ
f:id:pto8913:20200413000003p:plain
いつのまにかメッシュの大きさが1x1x1じゃなくなってた!

うわああああとボーンをいったん削除してメッシュの大きさを1x1x1にしてそこに新しくボーンを作り直した。
そして再びUE4にインポートし、シミュレーションしたところ。

f:id:pto8913:20200413000345p:plain

完璧だ・・・

という話。

モデルを作るときからいろいろ考えとかないと思わぬ落とし穴があるんだなーという学び。

ちなみにクロスシミュレーション以外にも、
github.com
こんなものがある。
プラグインを入れてアニメーションBPにkawaiiと打ってボーンを設定してやるだけで動くので試してみてはいかがでしょうか。

f:id:pto8913:20200413000905p:plain