fc2ブログ

Javaゲーム制作記

いろいろ作ってます  

凸包同士の衝突判定

物理演算で必要な凸包同士の衝突判定の解説です。

凸包というのは画像のように凹んでいる部分がない多角形です。





凸包の衝突判定は、性質上非凸形状よりも判定が容易です。

凸包の場合、局所的な最接近点は、必ず大域的にも最接近点となりますが、
凸包でない場合、必ずしもそうなるとは限りません。





また、二つの凸包が衝突を起こしていない場合、必ず二凸包を分ける分離軸が存在しますが、
衝突を起こしている場合、分離軸は必ず存在しません。





従って、二つの凸包の衝突の有無を調べるということは、分離軸を探すことになります。

ここで重要なのは、分離軸は必ずどちらかの凸包の一辺に平行であるということです。

つまり二凸包のすべての辺に対し分離軸かどうかのチェックを行えば判定ができます。
分離軸が一つも見つからなかった場合、その凸包は衝突しています。

ある辺が分離軸であるかどうかを調べるには、その辺からなる平面と凸包の衝突判定で可能です。
もし衝突があれば分離していないので分離軸ではないことになります。

(平面と凸包の衝突判定は凸包の各頂点と平面とのめり込み判定となり単純ですので省略します。
この辺はググれば沢山出てきます)






これで衝突自体の判定はできるようになりましたが、
物理演算には詳しい情報(法線ベクトル、めり込み距離、衝突点etc...)が必要です。

長いので続きからです↓
スポンサーサイト



[ 2011/08/27 14:57 ] 物理演算 | Comment(5)

近況

新作作ってます。
10%くらい進んだかな…



とりあえずこんな感じです。
またアクションRPGになる予定。

弾薬システムは無くしました。
代わりに魔力で攻撃間隔が減少します。
あとは思いつき次第追加していきます。

公開はもうちょっと後になりそうです。
[ 2011/08/15 12:44 ] ゲーム制作 | Comment(16)

GUI変更



つぶつぶのGUIを変更しました。
ボタンがずらっと並んで見にくかったのでタブ式に。
画面も少し小さくなりました。

スライダーを作って出す粒子の太さを変えられるようにしました。
塗りつぶしたりするのが大分楽になったはずです。

あと、挙動が不安定(フリーズする)だったので、ホース機能はちょっとストップしています…
そのうち似たような機能で復活させると思います。
[ 2011/08/08 16:15 ] ゲーム制作 | Comment(3)
プロフィール

saharan

Author:saharan

Twitter
検索フォーム