[過去ログ] 物理演算エンジンってどうやって作るの? (99レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1
(2): 2007/05/24(木)19:10 ID:NTMqyc86(1) AAS
ハーフライフとか、オブリビオンのあれです。

詳しい人教えて
19: [age] 2007/07/22(日)01:35 ID:aw8yUdcr(1) AAS
>>5の金子氏のサンプルプログラムを見て感動したんですが、
このサンプルプログラムの解説とかって無いんですか?
ソース見てもいまいちわからないです・・・
20: 2007/07/22(日)16:09 ID:HN0dPhlB(1) AAS
見て盗め…職人の世界か;
21: 2007/07/23(月)15:14 ID:iE8cLQ4B(1) AAS
いまいち分からない時は答えを見るよりも試行錯誤して自分で
注釈いれていった方がよい。見るだけでは盗めない。
22: 2007/07/23(月)21:10 ID:FTmOWAEW(1) AAS
理論は普通に勉強するしかないだろ
23: 2007/08/16(木)13:10 ID:Up8TghiG(1) AAS
エンジンではないけど、日本語の本一通り読んだところ次が一番良かった

OpenGLで作る力学アニメーション入門
外部リンク:www.amazon.co.jp
24: [Age] 2008/01/03(木)09:49 ID:H7llSi9X(1) AAS
まだ、金子さんのSampleを色々と見て研究程度だけど、
この分野に興味をもったので保守代わりのあげ・・・・
25
(2): 2008/03/18(火)15:23 ID:u4I96gZ5(1) AAS
金子氏のサンプルはさすがに古い。
つか間違ってるな(タイムステップ固定だと問題ないが)
数値積分なんか好きなのを適当に使えばいいけどverlet法がいいと思う。
むしろ物理エンジンはコンストレイント・ソルバーの実装が肝なんだが、CryEngineとか最近のは恐ろしくレベルが高い。
ODEとかBox2Dのソースを読むのはバックグラウンドとなる知識が無いと全く意味が無いぞ。Havokもタダで使えるようになるんだし、それらの使い方を覚えるほうがよっぽど有意義。
それでもあえて自作したいんならbulletのフォーラムを覗いてみるといい。
ゲームメーカーも英語出来ないプログラマの言葉を鵜呑みにして、物理エンジン自社開発とか無謀なことはしないほうがいい。もう追いつけるレベルじゃないから。
26: 2008/03/20(木)18:26 ID:63tP/HUb(1) AAS
CryEngineの物理って蟹とか鳥投げると直線にすべて突き抜けてどこかに飛んでいくやつか
27: 2008/03/21(金)01:26 ID:wfD8504G(1) AAS
それは物理エンジンに接続するときのバグだろ。
さすがに定常時の人間だの鳥だのはシミュレートしてる訳じゃない。
が、奴等なら5年以内にやる。NaturalMotionのが早いかもしれん。
28: 2008/03/23(日)22:38 ID:zyDF2tIq(1) AAS
当たり抜けなのかも。
物理演算エンジンがしっかりしてても、衝突判定がしっかりできていない可能性。
衝突判定なくして物理挙動はできないだろうし。
29: 2008/12/14(日)18:25 ID:9afPI2bV(1) AAS
≫25
Bullet等のコンサルティングと言うか受託開発についてはどう思う?
30: 2009/02/06(金)20:22 ID:umAojnkV(1) AAS
撃力ベースで物理エンジン作ってるやついる?
31
(2): 2009/02/07(土)22:44 ID:VcBem1JV(1) AAS
Havokって一般人も使えるの?
32: 2009/02/08(日)00:39 ID:mu6Kt79P(1) AAS
>>31

つ 外部リンク:www.4gamer.net

> ゲームデベロッパ向けに無料で「Havok Physics」と「Havok Animation」の
> 提供を開始した。HavokのSDKやサンプルなども含まれており,配布対象は
> すべてのゲーム開発者。
> これは,趣味でゲームを開発している人や学生なども含まれている。
33: 2009/02/16(月)22:39 ID:/sdkE3j5(1) AAS
とりあえず高等範囲までの数学(もちろんIIIC含む)と物理くらい問題なくできるようになってこい

話はそれからだ。

本読んだだけで勉強した気になるなよ。
ちゃんとひとつずつ問題解けよ。
34: 2009/02/19(木)12:22 ID:DgbcU2D7(1) AAS
物理エンジンって

自由落下(x,y,T)とか渡したら
戻り値としてT時間次の座標が返ってくるとか
そういうプログラムのことですか?
35: 2009/02/20(金)00:46 ID:LWtSiFOl(1) AAS
中学や高校の教科書の公式をそのままプログラムにしてしまえばえーやんと思った。
36: 2009/02/21(土)09:26 ID:wpempfPo(1) AAS
複雑な形状の衝突や跳ね返りが面倒。
37: 2009/02/22(日)15:47 ID:e0EbiJuc(1) AAS
>>31
商用利用不可だけど無料版あるぜ
38: 2009/02/22(日)17:04 ID:yw09N868(1) AAS
> 37
今は条件付き(PhysysとAnimationのみ、PCのみ)なら商用でも無料で使える。
小売価格10米ドル以上ならサイトに要登録、未満なら必要なし。
ライセンスに対する合意が必要なので、熟読して利用を判断すること。
39: 2009/02/22(日)22:24 ID:HoUF8U1D(1) AAS
落としてみたが、マニュアルが分からん・・・。
日本語の書籍とか出してくれないかな・・。
はじめてのHAVOKとかw
40: 2009/03/14(土)02:45 ID:LeBePb3w(1) AAS
金子さんの質点バネモデルは大好きだ
簡単だしさ
やーらかい物シミュレートするにゃもってこいだら
41: 2009/04/16(木)21:57 ID:lw6cN453(1/2) AAS
static q[objs][3];//位置
static p[objs][3];//運動量
static f[objs][3];//力
main(){
 init();
 startThread();
 startEvent();
省20
42: 2009/04/16(木)22:11 ID:lw6cN453(2/2) AAS
そうだ、離散時間シミュの衝突で食い込んだときの処理をどうやってるか教えてほしい。
(1) 何もせず撃力与えてそのまま
(2) 移動前時間まで戻して撃力与えてそのまま
(3) 真の衝突時間(分数ステップ)を計算し、そこまで慣性移動
→正確な撃力を求めてから残り時間中だけまた慣性移動
(1) だと食い込んだままになることが多々。
(2) で妥協することが多々。
省2
43: 2009/04/23(木)01:19 ID:Q7e15GYD(1) AAS
中途半端だけど面の交点に戻して激力与えてるよ
ホントは(3)がやりたいけどめんどかった
44: 2009/10/24(土)16:32 ID:eHfCCzB1(1) AAS
>>25
すごいっすねー
自前でつくるなんて無理だわ・・・

CryEngine3
外部リンク[html]:game.watch.impress.co.jp
外部リンク[html]:www.famitsu.com
45: 2010/04/24(土)17:54 ID:ySaSfK6d(1) AAS
スレ機能してねーなw
46
(1): 2010/06/15(火)09:30 ID:XddCABWf(1) AAS
アマゾン探してもphysXの本ならあるけど
じまえで全部作ることについて書かれた本とか全然ないし・・
47: 2010/09/04(土)01:24 ID:31Uq+LnP(1) AAS
シーグラフとかの論文読んで勉強して作ればいいと思うよ。
48: 2010/09/04(土)08:37 ID:ORoXzrBI(1) AAS
>>46
リアルタイムの実装で、処理の順番とか精度とかCPU負荷とか色々とチューニングが必要ですね
最近のPCスペックでやっと実用的にはなって来たけど、用途で色々と実装方法も変わってくる。
汎用エンジンでゲーム作るにしても理解が及んでいないとパラメータ設定もできないしまともに動かせないよ。
今ネットにある情報で作れないなら物理演算に触るなって事でしょ。
49: 2010/10/28(木)00:00 ID:UJvH8QSA(1) AAS
振動を抑えるためいろいろやってたら非物理エンジンになってた件について
やっぱ難しいわ
50: 2011/02/15(火)13:43 ID:FJMNz0Ob(1) AAS
振動を抑えるのはタイムスライスを細かくして見えない幅にするくらいか
51: 2011/06/28(火)17:50 ID:omvPf4gy(1) AAS
物理演算興味持って1から趣味で作り始めたんだけど
これってやっぱ物理学関係ない所で詰まりがちやねw
52
(4): 2011/06/29(水)01:09 ID:navapLQb(1/2) AAS
剛体の力学の本を買ってきて理解する。
あとは、これを読めばおk。今の剛体の処理で主流の奴
外部リンク[pdf]:www.pixar.com

最終的に、線形相補性問題を解くことになる。これをいかに効率よく解くかが鍵。
昔やったときは、前フレームの情報を利用して効率化したけど、それでも全然遅い。
53
(1): 2011/06/29(水)01:18 ID:navapLQb(2/2) AAS
てゆうか >>25 に書いてるな。
コンストレイントソルバーっていうのが線形相補性問題を解くっていうこと。

ODEは基本>>52の論文の方法。
ODEには処理速度で互角か勝てるぐらいまでいける。でも、それ以上のフリーじゃないやつはムリポ。

剛体が300個とかになってくると、線形相補性問題の行列の情報がキャッシュに乗り切らないから、そこがボトルネックになる。
対称行列になるからとか工夫してもムリポ

実家にdelphiだけどソースコードあるはずだから、需要あるなら公開しよっかな。
54: 2011/06/29(水)07:03 ID:tEh/8tcG(1) AAS
自然な動きを求めると非物理エンジンになる不思議!
55
(1): 2011/07/05(火)00:56 ID:Mr5lFhmq(1/3) AAS
>>53
じゅようあり ノシ
56
(1): 2011/07/05(火)01:29 ID:V4itKPNJ(1/2) AAS
>>55
外部リンク[zip]:www.dotup.org
物理計算の主要な部分だけ。3、4年前だから何やってるかわからんwww
具体的には何が知りたいんだ?
57
(1): 2011/07/05(火)20:58 ID:Mr5lFhmq(2/3) AAS
>>56
ありがとう
つい最近OpenGLに手をだしてやっとモデルデータを表示できるとこまで来たんだけど
それを動かすとっかかりになればなーと 参考にさせてもらいます!
58
(1): 2011/07/05(火)21:30 ID:V4itKPNJ(2/2) AAS
>>57
待てよ。そのレベルだと参考にならないぞ
数学はどの程度知ってるの
59
(1): 2011/07/05(火)22:36 ID:Mr5lFhmq(3/3) AAS
>>58
工業系の大学数学レベルまでならしったかぶり出来る程度には・・・
とにかく右も左も分からなくて情報をかき集めてる段階です
60: 2011/07/14(木)15:23 ID:UBDMyCUV(1) AAS
>>59
数学が大丈夫なら、>>52に全部書いてると思う
61: 2011/07/22(金)12:09 ID:7j2Z83oX(1/3) AAS
物理エンジンの作り方って需要あるの?
ガチの本とか書いたら売れるのかな?
62
(1): 2011/07/22(金)20:03 ID:KJLHBA7J(1) AAS
しかし英語がよめんかった
63: 2011/07/22(金)20:33 ID:7j2Z83oX(2/3) AAS
>>62
本書いたら買ってくれる?
表紙に萌え萌えな絵付ければ売れるかな

でも、面倒だから。お金目的じゃなくて、純粋な自己顕示欲で書くかもwww
外部リンク:haihu.zouri.jp
64: 2011/07/22(金)20:49 ID:7j2Z83oX(3/3) AAS
いいの見つけた
外部リンク:kmkz.jp
65: 2011/07/23(土)15:33 ID:q6zHW1Rk(1) AAS
既存の物理エンジンだけで飽和状態なので需要はないに等しい。使い方の方が圧倒的に需要あると思う。
66: 2011/07/23(土)16:01 ID:QTkODIag(1) AAS
そうなのかよ。
原理から知りたいっていう熱心な若者はいないのか?
67: 2011/07/24(日)02:58 ID:8WLTW02y(1) AAS
○○というゲームの○○の動きをプログラムで再現してみよう
みたいなのはうけるんじゃない 本にはできなさそうだけど
68: 2011/07/24(日)06:58 ID:1B5hZOTx(1) AAS
昔、本買って自作したけど、独立した物体同士の相互作用までは
出来たけど関節(拘束)のやり方が載ってなくて挫折した。
なのでそこんとこ頼むわ>本書く人
69: 2011/07/24(日)12:39 ID:P4/beFJ3(1) AAS
関節のほうが計算量少ないから、簡単だぞ
なんで、できなかったんだ?
70: 2011/07/25(月)09:17 ID:zl9SHWwo(1) AAS
>関節のほうが計算量少ない
え?え?(^ω^;)
ググってもよー判らんわ。関節。
71: 2011/07/25(月)09:21 ID:MgUklQO7(1) AAS
それって、(本に記載されているロジック通りに組んだら)出来た
って事?
72: 2011/07/25(月)14:32 ID:tsuW/g3z(1) AAS
関節は、連立一次方程式になるから、計算量最悪は n * n * nで解ける。
普通の接触は、線形相補性問題になるから、計算量は最悪、2^n。

実際は反復法でやるから、ここからだいぶ減らしていくんだけど。
減らしていっても、関節のほうが圧倒的に計算量が少ない
73: 2011/07/26(火)01:20 ID:Nkp9uwXJ(1) AAS
俺が買った本、
「ゲーム開発のための物理シミュレーション入門」って奴なんだけど、
まず、
>普通の接触は、線形相補性問題になるから
ここがすっぽ抜けてる希ガス。
なので接触したらいい具合に押し戻すって感じ。ダメだこりゃ。
74
(1): 2011/07/26(火)07:24 ID:zKjxXwQ5(1) AAS
>>52のpdfを検索したけどLCPとかcomplementary等の単語がみつからなかったけど、
そのへんものってるでしょうか?>読んだ人
75: 52 2011/07/26(火)07:35 ID:VOyddbGv(1/2) AAS
>>74
俺は実は読んでないwww今読んだら、quadratic programって書いてある。同じことだと思う
ページG53に、そのことが書いてあって。関節も一緒に扱えるみたいなことが書いてある

需要あるのか?
76: 2011/07/26(火)07:47 ID:VOyddbGv(2/2) AAS
剛体シミュレーションの処理時間のほとんどは、線形相補性問題に裂かれるから
その速い解き方を考えれば有名になれるはず

剛体特有の性質を使わないと速くならないから、剛体の接触から得られる行列がどういう性質を持っているか考えるのが重要
77: 2011/07/27(水)17:02 ID:jpUYGiJj(1/3) AAS
みんな言語何使ってるの?
勉強用のやつ作ってみようと思ってるけど、C#とかDelphiとか読めるの?
C++は使いたくないお
78: 2011/07/27(水)17:58 ID:jpUYGiJj(2/3) AAS
外部リンク[pdf]:www.ynl.t.u-tokyo.ac.jp

これのピボット法じゃなくて、ガウスザイデルに近いやり方でやってた。
収束が保障されてないってかかれてるけど、剛体に関して言えば全体のエネルギーみたいなものに着目すれば
各ステップごとに確実に減少していくから収束はするんじゃないかなって思ってる。

lemke法は知らない。今調べてる
79: 2011/07/27(水)18:22 ID:DcAliuH1(1) AAS
JavaかC#ならいいんでない?
ちっと重いかもだが
80: 2011/07/27(水)21:27 ID:jpUYGiJj(3/3) AAS
わかったC#で作ってみる
81: 2011/07/29(金)22:36 ID:YKUBReqf(1) AAS
lemke法、本当に収束するのかとか、どのくらいで収束するのかとか理解してないけど。少し理解した
剛体が増えると不利だな。元々の疎行列が活かしづらい

マルチグリッドLCPが出来れば超速くなるはず
82
(2): 2012/01/08(日)13:49 ID:i1iv+V/j(1) AAS
BulletXのソース読んでみたけど、あれって拘束ベースなのかな?力積ベースなのかな?
constraint(拘束)Solverっていうディレクトリが在ったから読んでたら、Impulse(力積)を加えてたんで判んなくなった。
拘束ベースの判り易いソースって知ってたら教えて欲しいな。VC++よりはC#の方が読み易いからうれしい。
83: 2012/02/25(土)23:00 ID:HsM02eP/(1) AAS
拘束条件を解く方式のエンジンでも、拘束されてる(物体どうしが一定時間以上
連続して接触している)ときも常に力積を加え続ける方式のものもあるよ。
つまり、力積が吊り合ってたら物体が静止状態になるってことね。

ちなみに、ソース読むよりも代数学の行列とか勉強した方が早いかも。
連立方程式を反復法で適当に解いてくエンジンとか、
すごい高度な数学のテクニックで解いてくエンジンとかいろいろある。
まずそっちの知識が無いと、ソースだけ読んでもわけわからん。
84: 2012/02/25(土)23:04 ID:lzeArZyh(1/5) AAS
>>82
俺が教えてやるよ。もちろん数学はできるんだよな?

・ペナルティ法
・撃力
・拘束
85: 2012/02/25(土)23:05 ID:lzeArZyh(2/5) AAS
撃力について

衝突したら撃力を加えるっていうのを何度もやる。
静止状態も実は撃力を何度も加えて結果的に静止してる

これは静止状態が重いんだわ
86: 2012/02/25(土)23:08 ID:lzeArZyh(3/5) AAS
だから、それに加えて力積 or 力に関してのLCP(線形相補性問題)を解く
これはどういう式かっていうと

普通静止させたい場合は、衝突部分の相対速度の法線成分が0になるっていう式を連立させて解けばいいよな?
でも、離れようとしてるのに力を加えたり、マイナスの力を加えるのはおかしいよな?

だから
力 >= 0、相対速度 >= 0、力 = 0 or 相対速度 = 0
っていう式を立てるのよ
省2
87: 2012/02/25(土)23:13 ID:lzeArZyh(4/5) AAS
おおまかな流れとして

・撃力を加える(静止状態とかだとかなりの回数になるから、どこかで打ち止め(近似))
・重力とかの外力を加える
・LCPを解く

速度と加速度を別に保持しておくか、速度だけにするか
つまりLCPで解く対象を速度にするか、加速度にするか

撃力を打ちどめることが多いので、近似になるけど速度をLCPで押さえこんだほうがいい。撃力を打ち止めてほっておくとめり込む
省1
88: 2012/02/25(土)23:15 ID:lzeArZyh(5/5) AAS
ペナルティ法

めり込みに応じて反発力を。めり込んだ体積に比例させたり、距離に比例させたり
ステップ数が十分短ければどれも正しいんだけど、ステップ数が広いときにどれがいいのか
って分からない

ステップ数を広くできないから、他の方法と比べて衝突判定のコストが上がってしまう
89: 2012/02/26(日)22:13 ID:uCaFSiki(1) AAS
>>82-88
レスありがとうございます。>>82です。

物理エンジン関係の資料はいくつか読んで、物理・数学関係は断片的な知識としてはあります。
それをプログラムに実装するにはどうしたらいいか判らなくてソース読んでました。

>>82を書き込んだ後、拘束ベースに関しては以下の本読んで勉強してました。
外部リンク:www.amazon.co.jp

この辺りまでは、判りました。
省2
90: 2012/02/27(月)08:02 ID:+ONGrtda(1/3) AAS
ソルバも重要だけど、もちろん衝突検出の幾何学の部分も重要だよ。
そこがてきとーすぎると、やっぱり細かいとこで変な挙動になったり
誤差がふりつもってガクガクしたりするからね。
91: 2012/02/27(月)09:37 ID:nYOAmwnM(1/2) AAS
衝突検出に関しては、以下の本を1/3程度読みました。
「ゲームプログラミングのためのリアルタイム衝突判定」

時間さえ掛ければ自分のプログラムに応用できそうですし、挙動を見ながらの方が理解が早いと思っています。
初心者の自分には今時点では、目途の立っていない運動方程式の方に意識が行っています。
92: 2012/02/27(月)11:18 ID:svWsgWM6(1/3) AAS
衝突判定なんてLCPに比べればカスみたいなもの
適当やってればいい
Rapidだか、Opcodeとか参考にすれば?

普通にAABBTreeかOBBTreeでやるのが楽だな

運動方程式理解できないとか勉強足りないぞ。
オイラーのなんたらってやつやろ?

あとあの方程式は非線形だけどエネルギーを保存するやり方で差分化できる
省1
93
(1): 2012/02/27(月)11:20 ID:svWsgWM6(2/3) AAS
衝突判定で唯一やっかいな問題は
これ

画像リンク[png]:iup.2ch-library.com
94
(2): 2012/02/27(月)12:11 ID:nYOAmwnM(2/2) AAS
自分の作るプログラム上で予想どおりに動かなかった場合には、衝突判定も深く勉強しようと思います。
形状も最初は球や直方体やシリンダーといった単純な形状で考えて、シミュレーション出来たら種類を増やしていこうと思います。
自分のレベルではまだ複雑な事までチャレンジできるかんじでは無いので。

opecodeですか、ソースありそうですしダウンロードして見てみます。ありがとうございます。
95: 2012/02/27(月)12:17 ID:svWsgWM6(3/3) AAS
>>94
おいおい、最初はまず任意の多面体でやれよ
シリンダー専用衝突判定なんていうは高速化のためな

多面体でシリンダー作ればいいんだから。AABBTreeとかにすれば面の数に対して処理時間はそんなに増えない

opecodeソース読んでも分からないと思う。まあ、デモ動かしてみて計算速度の目安にするとか
解説読むとか
96: 2012/02/27(月)20:08 ID:+ONGrtda(2/3) AAS
>>93
やっかいだけど、現実的な解決方法はちゃんとある。
97: 2012/02/27(月)20:13 ID:+ONGrtda(3/3) AAS
>94
判定方法にもよるけど、球とかシリンダーとかの曲面を含むようなのは
面倒だから後回しで、最初は頂点と辺(直線)と面だけで作れる多面体だけでいいよ。

なんとかツリーとかの判定の高速化も後回しでOK。
98: 2013/01/22(火)15:53 ID:JCFnqPH7(1) AAS
新しい剛体シミュの方法思いついた
もう少し練ってデモ作る
撃力でも拘束ベースでもペナルティ法でも無い奴
99: 2017/12/31(日)20:12 ID:/rN76OKL(1) AAS
簡単にお金が稼げる方法興味ある人だけ見てください。

グーグル検索⇒『来島のモノノリウエ』

UO82Y8FR9Z
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.141s*