fc2ブログ

Javaゲーム制作記

いろいろ作ってます  

現実逃避

ちょっとゲーム作りに疲れてきたのもあって、また物理エンジンを作り出しました。
3Dも検討していましたが、やっぱり2Dで続けることにしました。

で、とりあえず今は中央演算部ができた状態。
図形も円のみです。
ただ、一つのボディー内に複数の図形を押し込めるようになりました。
応用すれば動かない固定ヒンジができるかも。

続きから動作を見ることができます。
どぞ。
[ 2010/11/09 18:38 ] 物理演算 | Comment(3)

安定気味

コロコロ変わっていた仕様がだいぶ安定してきました。

名前もどうにかしようと思っていたので、PhysWorldに思い切って変更しました。
プロジェクトごと新しくしたので、バージョン1.0からです。
今は回転ジョイント(RevoluteJoint)を除くコアの部分が大体完成したところです。
多角形同士の衝突判定を最適化・・・したんですが速くなっているかどうかは分からず。
もうひと踏ん張りがんばろー!
[ 2010/05/05 16:41 ] 物理演算 | Comment(2)

動画を投稿しました

物理エンジンも完成・安定してきたし、そろそろ何か作るか、
ということで何か作ってみました。

Phunもどきです。



高画質で投稿するのに苦労しました。
一度失敗してます
[ 2009/12/12 12:09 ] 物理演算 | Comment(4)

機能追加

さて、物理エンジンですが、
だいぶ機能が増えてきました。

・蝶番(ちょうつがい)の追加
・蝶番の角度のリミットの設定
・蝶番にモーターをセット

の機能が追加されました。

蝶番に角度のリミットをつけたことでRagdoll(人形)が作れるようになりました。
蝶番にモーターをつけたことでCrank(ピストンみたいな物)が作れるようになりました。

ふたつまとめてどうぞw





あと滑車みたいのも作りたいなぁ・・・
[ 2009/10/17 12:57 ] 物理演算 | Comment(2)

物理エンジン改善中

こないだ完成したばっかですが、改善したのでまた公開。

改善点:矩形同士の当たり判定
改善点:さらにパフォーマンスを高めた
改善点:なんとジョイントまで使える
改善点:反発係数が変更可能に
改善点:マウスで物を引っ張れる
etc...


と、このへんです。
とりあえずデモを作ったので載せます。
もしかしたらもっとジョイントを追加するかもしれません。

どぞ↓





操作方法:左クリック 物を引っ張る



いかがでしょうか?
以前よりリアリティが増しました。

ちなみに・・・
反発係数:0.3
摩擦係数:0.3
です。
ほぼ木材(にしてはよくはねますが)です。
[ 2009/10/11 18:18 ] 物理演算 | Comment(2)

シミュレーション手法

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

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

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

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

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

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


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

・・・。
よく考えたらぜんぜん手法じゃないな・・・。
[ 2009/09/22 10:51 ] 物理演算 | Comment(2)
プロフィール

saharan

Author:saharan

Twitter
検索フォーム