成果物
www.youtube.com
今回は、前回のSoftbodyの当たり判定を多角形にも対応させました。これで2D上ではあらゆる形に対応できるようになったかと思います。多少荒ぶることはありますが、なかなかリアルに動作しています。
nekodigi.hatenablog.com
仕組み
今回、衝突したときの動作は、この式のように、速度ベクトルdを反射させることで実装しています。つまり、法線が分かれば反射の処理を行うことができるわけです。
頂点が障害物の内側にあるかどうかのテストは、前回の記事で紹介しました。
nekodigi.hatenablog.com
もし、内側にあった場合は一番近い辺の法線を使って反射を計算するという仕組みです。一番近い辺の求め方は少し変わっているのでソースコードをチェックしてみてください。
コード
Softbody_1_1_Polygonという名前で、Softbodyリポジトリに追加しておきました。
github.com