2005年12月05日

手強いJava3D-衝突判定

ようやくJava3Dとの格闘も一段落ついた.
ひっかかっていたのは,衝突判定である.なかなかうまく検出してくれず,大いに悩んだが,何とか解決した.

衝突判定がとれるようになったことで,ある程度詳しくなったので,ここに書き記してみる.

方法その1:「WakeupOnCollisionEntry」

これは衝突したよというのを,イベントとほぼ似たような感じで教えてくれるものである.実際に重なったときに教えてくれるので,プログラミングする側はとってもわかりやすい.これをつかって「コインに触ったら取る」なんて処理をさせることができる.しかし,実際に衝突せねばならず,重なったからといってすぐにイベントを発生させるわけでもない,といった問題点がある.場合によっては,すり抜けてしまうなんてことも発生する.そして,イベントとほぼ同じ性質なため,受動的な処理になる.

方法その2:「PickTool」

これは判定領域を指定してやると,その中に何がめりこんでいるかを返してくれるものである.実にストレート.もちろん何もめりこんでない場合はnullを返す.これはその1の方法と違って,実際に衝突させる必要が無いため,ある3Dオブジェクトを移動させる前に衝突するかを判定することができる.正確で能動的な判定が可能だ.ただし,慣れないと難しいかもしれない.

その2の方がいいように見えるが.その1にもいいところはあるので使い分けるべきだろう.


Java3Dはかなり手強かったので,研究のスケジュールがだいぶガタガタになってしまった.失われた時間を取り戻すためにも,がんばろう.


posted by Kiyui at 02:02| Comment(22) | TrackBack(0) | プログラミング | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は180日以上新しい記事の投稿がないブログに表示されております。