Javaゲーム制作記

いろいろ作ってます  

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ --/--/-- --:-- ] スポンサー広告 | Comment(-)

シミュレーション手法

今回は、JPR2のシミュレーション手法について解説していきます。
また、間違いがあるかもしれませんがご了承ください(・・;)
JPR2は、計算を繰り返すことによって、動きを再現しています。
たとえば、

1、物体の衝突を感知、データを格納するクラスを作る。つまり衝突検出
2、1を全ての物体で行う。
3、格納されたデータをコンタクトリストに追加。
4、コンタクトリストのデータを処理する。つまり衝突応答

4のときに計算を繰り返します。
物理演算空間は巨大な連立方程式ですので、反復法で計算するのです。

さらに、実は物理エンジンは、ソースコードのほとんど(8~9割)を衝突検出と衝突応答に当てています。
中でも面倒なのが衝突検出です。

何故かというと、衝突応答は格納されたデータ(衝突した物体、衝突点、反発係数、摩擦係数、衝突法線、衝突接線、相対速度、めり込み距離、etc...)
からそれぞれの衝突後の物体の速度を計算するだけです。
つまりデータが正確に分かればどんな複雑な形状の物体でも正確に判定できるという訳です。

そしてそのデータを調べるのがが衝突検出の役割です。
つまり、衝突検出といっても、衝突を感知するだけではNGな訳です。
普通のシューティングゲームなどでは、弾に当たったらゲームオーバー、といった特定の処理をする訳ですが、
物理エンジンの場合はそうは行きません。
衝突した場所だけならともかく、どの向きに当たったか、衝突した頂点と面の組み合わせはどれかなど、
膨大(そうでもないか)な量のデータを格納しなければならない訳です。


と、なぜ衝突検出だけこんなに書くのかというと、
正確にできてないからです。
多角形同士の衝突判定、誰か・・・

・・・。
よく考えたらぜんぜん手法じゃないな・・・。
[ 2009/09/22 10:51 ] 物理演算 | Comment(2)
なんか、すごいややこしいことやってるんですね><

僕は全然わかりません><

確かに、シューティングだったら、弾に当たったら、その玉は消えて、ダーメジ、またはゲームオーバーってなりますねw
物理エンジンは、その当たった後の跳ね返り方とかも計算しないといけないんですね><
うわ~~……

ま、がんばってください!!

――――――――――――――――
もう、知ってるかもしれませんが、僕のHPから、もうひとつのブログに行けます。(FC2w)
よかったら、見に来てくださいね!
[ 2009/09/23 11:27 ] [ 編集 ]
そうなんですよ。
いつも衝突判定で嫌になってますw
それと、FC2Blog、持ってたんですね!
全然気づきませんでしたw
今度見に行きます~!
[ 2009/09/23 14:25 ] [ 編集 ]
コメントの投稿




※URL記述の際はttp://としてください


プロフィール

saharan

Author:saharan

Twitter
検索フォーム


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。