成果物
www.youtube.com
Soft bodyを作ってみたいと思って調べてみたら、自分が思いついたものと全く同じ手法でシュミレーションをしている人がいたので、それをもとに、改良などを行い、再構築してみました。ちなみに、Sushi Catというゲームを見たのがきっかけで作ってみたいと思いました。
SUSHI CAT game - Play Sushi Cat online!
仕組み
ゴム風船のような仕組みで計算していて、ばねで出来た膜の計算と、圧力の計算で成り立っています。
http://panoramx.ift.uni.wroc.pl/~maq/soft2d/howtosoftbody.pdf
まず、膜の計算をして、頂点の分布を揃えたのち、面積から圧力を求め、その分だけ法線の向きに動かすことで膨張、収縮するようになっています。また、マウスとの衝突は、近すぎた場合、マウスとの距離を一定に保つことで実装しています。
コード
大幅に効率化して100行程に収めました。
もとにしたコードはこちらです。
GitHub - smacke/pressure-softbody: Pressurized soft body simulation in 2 dimensions.