Javaゲーム制作記

いろいろ作ってます  

機能追加

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

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

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

蝶番に角度のリミットをつけたことで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)

新ベクトル演算クラス公開

かつて公開した、ベクトル演算クラスを改良しました。
今回は2Dベクトルです。

〜実装されている機能〜
・ベクトルの加減乗除
・ベクトルの内積、外積
・ベクトルの回転(行列は必要としません)
・ベクトルの正規化(ノーマライズ)
・長さを取得
・etc...

ソースは長いので続きからどうぞ。
[ 2009/09/18 10:45 ] ゲーム制作 | Comment(0)

自作物理エンジン「JPR2」、ついに完成!!

物理エンジン(JPR2)が、ついに完成しました!

新しくなったところ

・5倍近く軽くなった!
・摩擦係数&反発係数を変えてもちゃんと動く!
・FPS計測機能つき!
・円と矩形との当たり判定ができるようになった!

とりあえずDemo

クリックするとボールが出現します。


Cキーを押す:接触点を表示します。
Aキーを押す:AABBを表示します。
AABBとは、矩形(または円)を一番小さい回転なしの矩形で表したものです。
バウンディングボックスとも言います。
見ていただくと分かるように、このAABBが重なっていない場合は、精密な判定は不要です。
かなりのコスト削減になります。

とりあえずは完成です。
やったー
[ 2009/09/14 18:16 ] ゲーム制作 | Comment(2)

3000突破!

3000アクセスを突破しました!
といっても二重カウントありではありますが・・・

追記:
やっぱり二重カウントがオンだったようです。ついこの間気づきました(・・;)
勘違いしていました・・・
[ 2009/09/10 16:10 ] 未分類 | Comment(4)
プロフィール

saharan

Author:saharan
ゲームとか作ってる

最近の様子:ARPG
Activities:EL-EMENT Twitter wonderfl
Mail:saharan.contact[at]gmail.com

Twitter
検索フォーム