Javaゲーム制作記
いろいろ作ってます
カテゴリー [ 物理演算 ]
現実逃避 [2010/11/09]
安定気味 [2010/05/05]
動画を投稿しました [2009/12/12]
機能追加 [2009/10/17]
物理エンジン改善中 [2009/10/11]
シミュレーション手法 [2009/09/22]
≪ 前ページ
次ページ ≫
現実逃避
ちょっとゲーム作りに疲れてきたのもあって、また物理エンジンを作り出しました。
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)
≪ 前ページ
|
HOME
|
次ページ ≫
プロフィール
Author:saharan
最新記事
金属追加 (09/20)
TNT追加 (08/26)
お知らせ (08/12)
近況 (07/15)
最新コメント
saharan:TNT追加 (08/29)
ナナシ:TNT追加 (08/29)
名無しさん:ミリ秒のsleepで正確にFPSを固定する方法 (07/31)
saharan:近況 (07/30)
momoken:近況 (07/29)
saharan:3D水面 with Processing (07/19)
名無しさん:近況 (07/18)
月別アーカイブ
2012/09 (1)
2012/08 (2)
2012/07 (2)
2012/06 (1)
2012/05 (3)
2012/04 (3)
2012/03 (2)
2012/02 (2)
2012/01 (1)
2011/11 (3)
2011/10 (2)
2011/09 (2)
2011/08 (3)
2011/07 (3)
2011/06 (8)
2011/05 (8)
2011/04 (8)
2011/03 (7)
2011/02 (9)
2011/01 (11)
2010/12 (6)
2010/11 (8)
2010/10 (10)
2010/09 (13)
2010/08 (8)
2010/07 (12)
2010/06 (8)
2010/05 (11)
2010/04 (8)
2010/03 (12)
2010/02 (14)
2010/01 (6)
2009/12 (10)
2009/11 (2)
2009/10 (3)
2009/09 (5)
2009/08 (5)
2009/07 (6)
2009/06 (8)
カテゴリ
未分類 (38)
ゲーム制作 (142)
Java (5)
物理演算 (17)
3D (23)
ソフト関連 (3)
Flash (8)
Twitter
検索フォーム
リンク
低音・まっ白な日々
JAVAでMMORPG作ろうと思うんだが
EL-EMENT
管理画面
このブログをリンクに追加する
RSSリンクの表示
最近記事のRSS
最新コメントのRSS
最新トラックバックのRSS