当たり判定用コースの判別

| | コメント(1)

GAME PROGRAMMING GEMSにレースゲームでのコース移動距離を調べる面白いアルゴリズムが載っていたので、それを使ってモデリングで作る当たり判定領域ができないか考えています。

んで、そのためには3角ポリゴンの塊であるコースを調べて、4角ポリゴンに分けなくてはいけません。これが思ってたより難しく、手間取りました。

やり方としては
1. 最初の4角形を決める
 1.1. 1番目の3角形を最初の4角形の1部とする。
 1.2. それに隣接する(2頂点を共有する)3角形を探す(必ず2つある)
 1.3. 2つの3角形をそれぞれ元の三角形と合わせて4角形を作り、その全長が短い方を正しい4角形とする。
 1.4. 最初の4角形に隣接する(2頂点を共有する)3角形を探す(必ず2つある)。そして、(どちらでもいいので)最初の3角形を次の4角形の一部とする。

2.2つ目以降の4角形を決める
 2.1. 今回の4角形の一部である3角形は決まっているので、これに隣接する3角形を探す
 2.2. そのうち、前回の4角形の一部ではないもの(1点しか共有しないもの)を選び、合わせて4角形を作る。
 2.3. この4角形に隣接する(2頂点を共有する)3角形を探す(必ず2つある)
 2.4. そのうち、前回の4角形の一部ではないもの(共有点を持たないもの)を次の4角形の1部とする。
 以下 2.1.〜2.4.を繰り返し

人間が物を見て何気なく判別してることって、コンピュータにやらせると難しいのだと改めて感じました。もっとシンプルなアルゴリズムがあるはずなので、なんか思いついたら教えてください、よろしく。

とりあえずMilkShape 3D でデータを作って、プログラムにかけました。それが次の画像。
collision01.gif

3角ポリゴンの並んだ面が、4角ポリゴンの面になっています、成功〜。

コメント(1)

一番最初の4角ポリゴンを見つける方法(全長が短い方を正しいとする)が、なんか微妙なんだよなぁ。もっと確実は方法はないものか・・・。

コメントする

このブログ記事について

このページは、PipeRが2005年11月12日 22:39に書いたブログ記事です。

ひとつ前のブログ記事は「4次元立方体表示」です。

次のブログ記事は「2次元レースゲームのコース当たり判定できた」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.01a