トップページgamedev
981コメント311KB

ゲームのための物理(力学)

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001名前は開発中のものです。02/04/08 17:38ID:dlksSYkA
ゲームに必要な物理(力学)を語るスレッド。

例えば、坂道を転がる球の加速度だったら。

その球の密度が一様ならば、慣性モーメントは(2/5)MR^2なので

dV/dt = 5*g*sinθ/7;

と表せるよとか。

他にも剛体運動、力積とか語ってください。
0843名前は開発中のものです。05/03/10 17:06:26ID:ljlPKXys
とりあえず タイムTに
捕らわれない式にしてみたりする。
ただ加算してるだけだがw

上のはTg Tb使ったままだが
0844名前は開発中のものです。05/03/10 23:50:31ID:s8xy7z0m
>>843
その方向で行ってみよう。
プログラムは実行できる環境にないんで何とも言えない。
0845名前は開発中のものです。05/03/12 08:49:32ID:4zYurhOf
>>842
空気抵抗でも入れてみたら?
具体的な式が出てこなくて申し訳ないが、たしか速度の2乗に比例するはず。
0846名前は開発中のものです。05/03/12 19:18:32ID:nlDiwADw
いきなり
Vy = v0 + (a * boost - g) * Tb
boost : ブースト時1
     (0〜1のアナログ値にするとスロットル調整出来る)
にすればVgとかVbの値が大きくなるとか気にしなくてもいいんじゃない?
0847名前は開発中のものです。05/03/12 20:34:15ID:6IdZPHV9
>>845
これすね
ma = mg - kv
途中からワケワカラン状態で
v = C1 e^なんてらかんてら + mg / k

もう微分とか忘れてもた。

>>846
なるほど、こちらも試してみまっす

弾道等、タイムTとか理解できるけど
速度や方向が常に変化する場合とか、ややこしいのう
0848名前は開発中のものです。05/03/12 23:12:16ID:m2lL06bo
ソニーは間違いですよ(´・ω・`)
0849名前は開発中のものです。05/03/12 23:12:45ID:m2lL06bo
おもいっきり誤爆orz
085084705/03/13 20:24:21ID:ddVGYjw0
>>846式をやっちみました。
ちょち説明しがたいですが

時間経過に伴って
Boostをオン・オフ(0か1か)した場合
Vyの振幅が大きくなっていく

なんのこっちゃ。
しかしながら、( a * Analog - b )は参考になりますです。
有り難く頂戴致します。
0851名前は開発中のものです。05/03/13 21:04:49ID:vyXJQRhg
それはTbのせいかな?
ΔTbのつもりだったんで毎スキャン計算するならTbは定数でいいね。
V0も初期速度じゃなく前回値だし。
0852名前は開発中のものです。05/03/13 21:09:12ID:ddVGYjw0
ぐはっ

くそ〜 俺もまだまだ愚か者であった
簡単に考えてしもた

なるほど、もっかいやってみます
0853名前は開発中のものです。05/03/16 14:26:34ID:4ckbHCDU
OpenGLで物理シミュレーションしようとしてるんですが、
dt+=(float)30/1000;
dy-=0.5*G*dt*dt;
てな具合にするとおもうんですが、

この場合の、dtはフレームレート33.3fpsを想定してるんですが、
SwapBuffers()で描画処理するとfpsはどうなってるのかわからないんですが、、
fps設定したり知る方法ってないですかね?
glutは使っていません。

メインループ内では、
if ((!DrawGLScene_01()))
{
done=TRUE;
}
else
{
SwapBuffers(hDC);
}
となっています。
0854名前は開発中のものです。05/03/17 00:23:11ID:DIRppWgt
fps決め打ち(・A・)イクナイ
0855名前は開発中のものです。05/03/17 02:05:10ID:Jm4RD0Ul
>853
winmm.libをリンクしてtimeGetTime使え
timeGetTimeはアプリケーションが起動してからの時間がmsで取れる
てWin32APIの勉強もしろよ
ただし49日以上連続で動作させるときは注意しろ

あと今回はhDCと書いてあるからWinだと判断できたが、質問するときはOSや
開発環境(コンパイラなど)も書くべし
Windowsとは限らないからな
085685305/03/17 19:36:38ID:dnS2TOWr
ありがとうございます。
> fps決め打ち(・A・)イクナイ
ということはtimeGetTime()使って、
描画処理後時間(もしくはSwapBuffers()後かな・・・?)−描画処理前時間から
fpsが得られそれをもとにdtを算出したほうがいいのかな?
となると、前フレームでのfpsが次フレームのΔtになるってことかね・・

>855
もう遅いですが、WINDOWSXP+VISUAL C++です。
0857名前は開発中のものです。05/03/17 23:44:14ID:L1vhHo+F
>>856
ちょっとまて。
>描画処理後時間(もしくはSwapBuffers()後かな・・・?)−描画処理前時間から
得られるのはdtではないのか?

dt = 今回の描画時刻 - 前回の描画時刻
085885705/03/17 23:51:40ID:L1vhHo+F
ごめんちょっと読み違えた。

DrawGLScene_01()の前でtimeGetTimeするようにして、
前回との差分を求めればそれがdtになるんじゃないかなって言いたかったのです。

描画処理前後の時刻から実際に描画した時間を求めたいんだと思うけど、
描画後から次の描画処理までの間って一定であることは保障されないから
動きがぎこちなくなるんじゃないかねぇ。
0859名前は開発中のものです。2005/03/25(金) 01:59:37ID:DW5G1xUc
>ただし49日以上連続で動作させるときは注意しろ

廃人仕様のネトゲを作る時は数ヶ月電源切らないバカのためにも
注意しないとダメなのね。
0860名前は開発中のものです。2005/03/25(金) 13:01:51ID:++QPHiMu
いっそフリーズさせてやったほうが親切な気もするけどな……。
0861名前は開発中のものです。2005/03/25(金) 16:06:37ID:B4snpaS4
49日以上も間を置いて処理が前後するはずがない。
せいぜい数秒だろ?
timeGetTimeの時間が前に保存した時間より前になってたら
一周したんだと判断して上手く処理すればいい。

まあ、処理する箇所全てでそんなことやってたら面倒で死にたくなると思うが、
比較用関数でも作ればいいわな。
0862名前は開発中のものです。2005/03/27(日) 01:30:31ID:tFPQmcVA
おいおい、マジで言ってるのか。
分岐せずに普通に減算するだけだろ
0863名前は開発中のものです。2005/03/27(日) 05:25:09ID:pwcxO8c1
>おいおい、マジで言ってるのか。
分岐せずに普通に減算するだけだろ

0864名前は開発中のものです。2005/03/27(日) 13:25:27ID:aXG9FYyP
ごく小さな差を出すだけならキャストして減算するだけだね
2進数表現と2の補数をちゃんと理解して
0865名前は開発中のものです。2005/03/27(日) 13:41:00ID:JccKNaog
コンピュータの世界も成仏するのに49日かかるのか。。
0866名前は開発中のものです。2005/05/24(火) 14:58:58ID:XukDS2te
1
0867名前は開発中のものです。2005/06/04(土) 09:20:36ID:/L/porwE
2
0868名前は開発中のものです。2005/06/04(土) 12:33:02ID:BqIdhHBY
3
ダー!!
0869名前は開発中のものです。2005/06/07(火) 13:01:59ID:5/JzUkzN

元気デスカァー!!
0870名前は開発中のものです。2005/06/08(水) 07:25:38ID:e7NClaDx
元気があれば
0871名前は開発中のものです。2005/06/08(水) 12:51:30ID:75j9s0uM
なんでもできる
0872名前は開発中のものです。2005/06/09(木) 20:29:21ID:qFoUOEo7
アリガトーー!!!
0873名前は開発中のものです。2005/06/12(日) 02:11:20ID:f04CSUqU
「こってり屋」のアーカイブを持っている人いませんか?
web archive でも見ることができなくて残念。

あちらこちらで良い評価をもらっているサイトなので、
一度見てみたいと思っているのですが、何とかなりませんでしょうか?
0874名前は開発中のものです。2005/06/18(土) 10:17:11ID:ZwUh+IhB
つ ttp://kotteriyald.hp.infoseek.co.jp/
0875名前は開発中のものです。2005/06/18(土) 11:17:56ID:6iUM9GbJ
age
0876名前は開発中のものです。2005/07/22(金) 01:19:28ID:7UstcS2v
>>874
違い過ぎて逆にわらた
漏れも、ア、アーカイブきぼん。
0877名前は開発中のものです。2005/08/02(火) 21:53:30ID:MSQy7a7Z
http://www.modulobe.com/ModulobeJa.html
>Modulobeは,モジュールと呼ばれる部品を組み合わせて,
>仮想生物を簡単に作れる物理シミュレーション・システムです.
いろいろうねうねしてておもしろげ
0878名前は開発中のものです。2005/08/04(木) 21:01:39ID:17+tQ14i
うーん、これは面白い…
この方向性でいろいろなものが生まれてきそうな気はするね。
0879名前は開発中のものです。2005/08/28(日) 09:48:10ID:WgK8kcnt
ロープとか鎖みたいな物の動きを短い棒を沢山連結させる事で表現したいんですけど
(ヌンチャクを沢山連結させたみたいな)、
調べるにあたってそういう物理モデルとか計算手法なんかに名前はついてたりしますでしょうか。
キーワードがあれば教えてください。
0880名前は開発中のものです。2005/08/28(日) 10:26:55ID:WgK8kcnt
もちろん棒自体は体積は持たせんし、バネのように伸縮もさせません。
両端を連結させたただの「線分」というか。
0881名前は開発中のものです。2005/08/28(日) 12:54:50ID:d9tDZPps
>>879
ttp://homepage1.nifty.com/kaneko/indexp2.htm

47氏のページだけど、ここにあるロープってのがまんまそれ、ただしPseud Physicsだけどね。
0882名前は開発中のものです。2005/08/28(日) 14:42:59ID:nSL9Zc+U
>>877 つながり
http://www.sodaplay.com/

既出だったらスマンコ
0883名前は開発中のものです。2005/08/28(日) 15:19:07ID:HXePbcnv
>>881
アレ関係以外で47氏って呼ぶのやめようよ……。
0884名前は開発中のものです。2005/08/28(日) 15:39:58ID:4q3gD77V
Pseud Physicsというのはどこかのローカル用語?
http://www.google.com/search?num=50&hl=ja&c2coff=1&q=%22Pseud+Physics%22&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=

で、何をもってインチキと呼んでいるの?
究極的には古典力学な時点でインチキ手法とすら言えるわけだが
よく分かりませんな、頭の良い人の考えることは
0885名前は開発中のものです。2005/08/28(日) 16:24:50ID:d9tDZPps
>>884
物理モデルの持ち方が力学的じゃない方法をつかってるからそう書いただけ。
文字通り擬似の意味で。

>>883
金子氏って書いたら別板でぶつくさ言われたからそう書いたんだ。
セミナーも行った位あの人の講義好きだったのにorz
0886名前は開発中のものです。2005/08/28(日) 16:26:17ID:gLu/Yjfx
>>884
君は pseudo random number を「インチキ乱数」と訳して
「何をもってインチキと〜」などと喚きたてるのかね?
よく分かりませんな、頭の
0887名前は開発中のものです。2005/08/28(日) 18:00:21ID:4q3gD77V
>>885
だからその
>物理モデルの持ち方が力学的じゃない
ってのが具体的にどこを指しているのか知りたいんだけど。
周知とは思うけど、Verlet法は分子動力学の世界じゃ古くから使われてる手法だよね?
ロープのデモって数年前に一度見ただけだけど、他に特殊なことやってたっけ?

>>886
何その頭の弱そうな突っ込み
0888名前は開発中のものです。2005/08/28(日) 22:42:42ID:d9tDZPps
>>887
通常の物理演算モデルだと慣性モーメント使うけど、金子さんのABメソッド(銘々が違ったらごめん)の場合それとは全く異なる方式だよね?
そういう場合、元のリクエストのように通常の物理演算を期待している人に提示すると混乱の元になるのは明らかじゃないですか。

だから元リクエストに対しては擬似物理演算だよと言うべきと判断したわけなんだけど、そこら辺を考慮した上で擬似と言う単語にくってかかるのなら
なぜくってかかるのか提示してもらいたいものですが、いかがですか?
0889名前は開発中のものです。2005/08/29(月) 02:55:45ID:YVlU/3kN
何も分かってないな。

慣性モーメントは、質点系の質量中心を基準点としたときの
角運動量の総和を角速度を用いて表した式に出てくる係数ってだけで、
ニュートンの法則を一定の制限を設けて弄くり回しただけのものに過ぎない。
何ら新しい、使わなければ擬似であるようなパラメータではないんだよ。

これは古典力学の本読めば第一章辺りに必ず書いてあること。
(ニュートンの法則自体が厳密に成立するのが古典力学までの世界なので
 >>884を書いたわけだが、そんな意図は全く通じなかったようだ)

大体、君の言う"通常の物理演算"ってなんだ?
>>879-880の彼は別に剛体の物理そのものを求めているようには見えないが。
大量の拘束を連ねた剛体を想定しているなら、
Featherstone's Articulated Body Methodぐらい実装してからクチを開けよと言いたい。

知識が圧倒的に足りてないのに適当に語るから、こんな風にボロが出るんだよ。
Pseud Physicsなんて不思議な単語使ってくるくらいだから十二分に予想は出来ていたけどね
0890名前は開発中のものです。2005/08/29(月) 08:56:46ID:LBu1Umy9
なんかよくわからんけど>>889かっこいい
0891名前は開発中のものです。2005/08/29(月) 22:05:21ID:I7B8lPT8
まぁいいじゃない、ボロが出たって。
>>881は親切心で書いてるんだし。
0892879-8802005/08/30(火) 02:30:10ID:YeacyYvE
で、私は何をキーワードに検索すればいいのでしょうか。
金子さんのはやや独自らしいのでできれば教科書的な方法をまずやってみたいと考えてます。
想定しているモデルを物理用語っぽくいうと何ていうのでしょう。
0893名前は開発中のものです。2005/08/31(水) 00:33:59ID:yzelCzYW
Verlet method
AB法 (Anime-Body method)
Advanced character physics
0894名前は開発中のものです。2005/09/02(金) 21:09:30ID:pblmt9Sp
すみません、古典力学についての質問です。

初期位置:y=150
加速度: acc = 10
初速度: spd = 50
速度: spd = spd + acc
床の位置:y=200に水平

上記の条件で画面下に向かって落下する物体があるとして、
更新後の座標はy = 150+50+10 = 210です。
当然めり込みが発生するんですけど、座標と速度の補正はどうすればいいんでしょうか?

床と物体との衝突は完全弾性衝突だとすると、単純に速度を反転させるだけでよいのでしょうか。
レベルの低い質問ですが、めりこみの補正がうまくいかず悩んでいます。
宜しくお願いします。
0895名前は開発中のものです。2005/09/02(金) 21:38:06ID:rHzP24T5
床にぶつかる場合は、座標を更新せず、速度の方向だけ変えるのが一番簡単じゃないの?
速度がめちゃめちゃ速い場合、床にぶつかってないように見えて、みっともないかも知れないけど。

この例だと、210で床にめり込んでしまうから、座標は更新せず、150のまま速度だけ-60にする。
08968942005/09/02(金) 22:15:30ID:pblmt9Sp
レスありがとうございます。
したの図のような状況になってしまうので、できれば正しい位置に補正したいのですが、
その場合に速度を−60にしてしまうと跳ね返り後に不自然に加速してしまいます。

何か良い方法は無いのでしょうか?

 ○ ←本来はこっち
   \     /
 ●  \   / ←座標補正しないと軌道がずれる
__\_\/___
    \/    
0897名前は開発中のものです。2005/09/02(金) 22:28:59ID:rHzP24T5
>>896
それだと、挟み撃ち法かなんかで、正確な衝突位置と時刻を計算して、
その時刻での速度を計算して、床の面で反転させて移動先を求めるしかない気がする。
そんなメンドウなことやったことないから、上手くいくかわからないけど。
0898名前は開発中のものです。2005/09/02(金) 22:29:12ID:KJAkIwh5
アスキーアートに頑張りの後が見えたのでヒントだけ
http://jun.artcompsci.org/~makino/papers/ode/node6.html
0899名前は開発中のものです。2005/09/02(金) 22:34:23ID:qpN8vavm
>>896
Y速度が50なんだから、バウンドした量も含めて縦に50移動してればOK
一度方眼紙に書いてみれば感覚がつかめると思う。

この場合、めり込んだ10だけ跳ね返ったy=190が正解だと思うよ。
速度は-50+(40-10)*10/50を減衰させればいいかな?(自信ない)
0900名前は開発中のものです。2005/09/02(金) 22:44:25ID:rHzP24T5
>>899 なるほど
0901名前は開発中のものです。2005/09/03(土) 09:32:02ID:FfR/KiiS
厳密ではないけど誤差を10分の1に小さくする方法はあるよ。
移動速度を10分の1にして、毎回10回計算する。
09028942005/09/03(土) 12:03:33ID:zLnViSEh
みなさんありがとうございます。
>速度は-50+(40-10)*10/50を減衰させればいいかな?(自信ない)
これの(40-10)というのはどういう意味の計算なのでしょうか?
質問ばかりですみません
0903名前は開発中のものです。2005/09/03(土) 15:03:50ID:UNtMk5CE
>>902
(壁に衝突するまでの距離−そこからの余剰分のベクトル)じゃ無いの?
いや、詳しくはわからんけど。
0904名前は開発中のものです。2005/09/04(日) 03:37:01ID:SDZeDuL1
こういう風にめり込みを考慮した衝突を表現する場合、どういう力学の公式を適用すればよいのでしょうか?

こんな、ごく単純にボールが自然落下して床に当たって跳ね返るだけの処理で悩んでいるようでは
ゲームプログラマとしては才能がないのでしょうか・・・(´;ω;`)
0905名前は開発中のものです。2005/09/04(日) 04:14:12ID:x5Na2HfT
問題点を判っててしかも放棄して無いんだから資質はあるんじゃね?

っていうかやけに単位が大雑把な気がするけど何のゲーム作ってるんだろ?
厳密な計算はいくらやってもキリが無いからある程度の妥協は必要だぞ。
0906名前は開発中のものです。2005/09/04(日) 04:24:58ID:F6+rTEV1
>>904
> こんな、ごく単純にボールが自然落下して床に当たって跳ね返るだけの処理で悩んでいるようでは
>ゲームプログラマとしては才能がないのでしょうか・・・(´;ω;`)
ここはマジレスしてあげよう。
こういう問題で精度と計算結果が重要視されるのはシミュレーションや大学の論文。
で、ゲームプログラマーというかアミューズメント系はこういう場合ゲームシステムやプレイ感覚に与える心理的影響や
ゲームシステム上の不具合が発生しない方向を最初に検討してから対処する事になる。
つまり考え方とか方法論がはじめから違うのだ。

だから君が悩むべきは自分の作っているゲーム世界での影響を排除(あるいは許容する範囲の決定)であって
必ずしも数式的、物理的に現実に添うことではないのだよ。

#いまだプロでなくアマチュアであってなおかつ学生であるのなら悩んで当たり前だから、悩む事自体を楽しめるようになりたまえ。
0907名前は開発中のものです。2005/09/04(日) 06:22:05ID:GAjPy7wj
>>906
言ってることは至極真っ当だが言い方がエラいムカつく
0908名前は開発中のものです。2005/09/04(日) 11:45:01ID:F6+rTEV1
>>907
大変申し訳ない。
0909名前は開発中のものです。2005/09/04(日) 19:13:35ID:Rzhrd04h
活気があってよろC




しかしこの後、いつも通り2ヶ月のスレスト
0910名前は開発中のものです。2005/09/04(日) 20:52:52ID:tQWgh7Qk
それをあえて俺が910ゲット
0911名前は開発中のものです。2005/09/05(月) 00:02:49ID:ZOBWGLDz
9.11get
0912894=9042005/09/05(月) 09:54:08ID:JI8n54ag
みなさんありがとうございます。
結局、めり込みを考慮した衝突と反射に関しては簡単には計算できない、という事でよろしいのでしょうか。
自分的にもここで悩んでても仕方がない気がしてきたのでネットでペナルティ法やAB法というのを調べて実装してみたいと思います。

ありがとうございました。
0913名前は開発中のものです。2005/09/05(月) 14:42:39ID:2it76JrP
シミュレーション的観点からは接触時間がいつとかきちんと考えないといけないけど、
ゲームではほとんどの場合何も考えていないのが実情だと思う。
見た目があまりおかしくなければ良しってね。

壁にめりこむ前に反射させたりとか、めりこんだまま動かしたりとか、
エブリデーのティーアンドライスですよ。

結論:やりたいことによる
0914名前は開発中のものです。2005/09/05(月) 22:02:08ID:XpHLokpb
なにこの良スレ
0915名前は開発中のものです。2005/09/06(火) 01:08:20ID:kXw3I5Fi
数学よりだけれども、
BOXの移動元・移動先を考慮した
OBB衝突判定のソースコードどこかに転がってないですかね。
ググってもなかなかでてこなくて。
0916名前は開発中のものです。2005/09/06(火) 08:30:33ID:0KGPXMG4
>>912
「めり込みを考慮した」という点が良く分からん。
解析法とペナルティ法ってのがあると思うんだけど。
めり込みを考慮するってことはペナルティ法で解くってことでしょ?
SpringHeadを参考にしたら?
09179152005/09/06(火) 12:22:00ID:kXw3I5Fi
移動を考慮しない衝突判定のソースは色々あるんだけれども、
静止状態での判定だと、高速なオブジェクトは
衝突処理の間に飛び越えて、
判定できなかったりするんじゃないだろうか。
0918名前は開発中のものです。2005/09/06(火) 14:55:54ID:e4EPwdWQ
>>916 ペナルティ法って正しい結果が求まるのか?
912のような状況で次の1フレーム後の速度と位置を正確に求めるには>>897の言うように
衝突の起こった時間を調べてその時点から計算をしなおす方がいいと思うが。。。
0919名前は開発中のものです。2005/09/06(火) 23:29:56ID:0KGPXMG4
>>918
ペナルティ法だと、めり込んだあとしばらくはめり込んだ状態を保つよ。
で、やがてめり込みが解消されて離れていく。
物体同士が絶対に食い込みあってはいけないという過程自体を覆す考え方。

0920名前は開発中のものです。2005/09/07(水) 02:56:10ID:VYcQafqJ
フックの法則を使うのでダンパーを使わなければ衝突応答前後での運動量は
保たれる(=完全弾性衝突)
つっても、>>912のいう「めりこみを考慮した」という発言は
ペナルティ法を指しているとは思えないけど

しかし回答する側の勉強不足が目立つなぁ、まぁ無料相談所なんてそんなもんか
0921名前は開発中のものです。2005/09/07(水) 03:44:10ID:fxVxjrGQ
>めり込みうんぬん
物体がある時間(1フレームとか)で移動する間に跳ね返りがおきた場合、その衝突時点まで戻して
そこから速度や位置の計算をするのが良いと思われるが、「それをせずに」サクッと解く方法はないものか?
・・・って事がそもそもの912の疑問なんじゃないかと。

これって、多数の物体同士の当たり判定をやりだすと、ごく短い時間の間に衝突が発生してめり込んだり突き抜けたりしてしまうわけで、
そもそもそういう複雑な状況を簡単に求める手法は無いよね。(たぶん)

で、こういう場合にペナルティ法でもってめり込みをゆるしつつ処理するのが最近の流れで、
これなら計算も楽だし勝手に跳ね返って収束するのでゲームにはこれで十分だよと。

とまぁ、こんな感じの理解でOK?>物理に詳しい人
0922名前は開発中のものです。2005/09/21(水) 02:45:36ID:CdHDIkST
あの、ごくごく基本的な質問ですみません。

角速度ベクトルって、どのくらいの長さで1回転とされているんでしょうか?
姿勢をあらわすクォータニオンに対して、角速度ベクトルの半分を掛け足すことで、回転を確認したんですが、
1回転の基準となる長さがわからないため、たとえば、摩擦抵抗を計算するときに、どれだけ角速度の長さを設定していいかさっぱり。
壁にぶつかるたびに回転が加速したりします。

クォータニオンに対する計算がおかしいのかなあ。誰かよろしくお願いします。

0923名前は開発中のものです。2005/11/04(金) 21:08:53ID:5tTLDfvO
age
0924名前は開発中のものです。2005/11/21(月) 22:07:49ID:C/7NqGLR
ふ〜やっと斜め読み終わった。
読んでみたところで専門学校出には99%理解できないんだが。。
>>561
ポリゴンAを形成する三角形と
ポリゴンBを形成する線分(辺)の交点を求めれば良いと思う。
その交点が線分に乗ってれば当たっている。

ただしAが完全にBに入り込んでいる場合、あるいは逆だと、
交点は生じないので注意が必要。
ポリゴンA上から(例えば適当に選んだ頂点)
適当な半直線(例えばZ軸に平行な線)を設定して、
ポリゴンBの三角形との交点が奇数なら、
AがBに入り込んでいると判断していいんじゃないかな。

閉じてない形状だったり、自己干渉していたりしている場合はワカンネ。
0925名前は開発中のものです。2005/11/21(月) 23:22:26ID:C/7NqGLR
自分で言うのもなんだけど、物理じゃねぇな_no
0926名前は開発中のものです。2005/11/22(火) 23:59:19ID:pgRAeUPk
2年前にレス乙
0927名前は開発中のものです。2005/11/23(水) 00:25:09ID:Rb/ScnRc
おじいさんになって、50年前の書き込みにレスをするのが僕の夢です。
0928名前は開発中のものです。2005/12/04(日) 20:10:46ID:vq2dcsz6
>>922
角速度ベクトルに時間をかけないと回転量にならないんじゃ?

>>924
一般的に、当たってない判定を2ポリゴンを分離する軸を見つけることでおこなう。
この軸がなければあたり。
簡単には説明できないのでSeparation axisでぐぐる。
0929名前は開発中のものです。2005/12/16(金) 08:26:00ID:DTxix2tD
数年前にペナルティ法に取り組もうとして挫折した者なのですが、
よく使われていると思われるペナルティ法では、めり込んだ頂点と面との距離に線形のフックの法則を適応すればいいのでしょうか?
ペナルティー法のとっかかり自体が分かりません。。。
0930名前は開発中のものです。2005/12/16(金) 23:53:14ID:sTAl/nFE
とっかかり?
めり込んだから押し出しちまえ。それだけ。
 
Springheadのソース見ればいいんじゃねーの。
あるいはNeko氏のサイトに似たような解説アリ。
AB法とか読んでた希ガスる。
0931名前は開発中のものです。2006/02/03(金) 11:17:41ID:S1xjNIBu
さらしあげ
0932名前は開発中のものです。2006/03/25(土) 17:12:41ID:YjP5dkK2
物理エンジンを組み込んだ動画を見たがやばいな!!すごすぎる!!早くあんなゲームが俺の手元にこないかなぁ。
0933名前は開発中のものです。2006/04/04(火) 15:53:40ID:YuM8+uhP
ペナルティ法についての質問なのですが、剛体リンクをある点で拘束したい場合
重心に力がかかると考えてよろしいのでしょうか?
F=-kx-cvで拘束すれば剛体同士の位置は拘束されますが、トルクが考慮されてないので
姿勢がそのままになってしまいます。
それで、重心に拘束点からの距離rをかけてトルク(r x F)を与えると回転が発散してしまいます。私のコードが間違っている可能性も否めませんがだれかご教授よろしくお願いします。
0934名前は開発中のものです。2006/04/04(火) 19:12:23ID:l3ZeOJHQ
君の説明はすごく下手で曖昧で不足だ。
だからエスパー回答する。
 
>ペナルティ法についての質問なのですが
 
ペナルティ法以前の問題だ。
 
>剛体リンクをある点で拘束したい場合
>重心に力がかかると考えてよろしいのでしょうか?
 
つまり拘束条件とか外力の作用点をシカトし、必要な分解もせず
丸ごと全部が重心に作用したと考えていいかということか。ダメ。ゼッタイ。
 
>F=-kx-cvで拘束すれば剛体同士の位置は拘束されますが
 
バネとダンパの係数を滅茶苦茶大きくして拘束したのか。
イジメ、カッコワルイ。
0935続き2006/04/04(火) 19:13:29ID:l3ZeOJHQ
>トルクが考慮されてないので姿勢がそのままになってしまいます。
 
作用点をシカトして重心間で引っ張り合いしてるからだ。自業自得。
 
>それで、重心に拘束点からの距離rをかけてトルク(r x F)を与えると
 
外力全部を並進運動に使っておいて、更にトルクとして与えるなんて
ドーピング、ダメ。ゼッタイ。
 
>回転が発散してしまいます。
 
使ってる数値積分のアルゴリズムは何か。
数値解の安定性について考慮しているか。
 
>私のコードが間違っている可能性も否めませんが
 
コードが間違ってる可能性100パーセント。
09369332006/04/04(火) 23:06:57ID:7TU7iQ7/
>>935
>使ってる数値積分のアルゴリズムは何か。
>数値解の安定性について考慮しているか。

お。狙い通り詳しそうな人が釣れたので本性を現してみるか。

ゲームで使う程度の単純な剛体物理で、1次シンプレクティック法以上の選択肢ってあるか?
発散の要因の殆どは微分方程式が極端に非連続であることに起因すると思うのだがなぁ。
ルンゲクッタとか使ってる奴は、式の評価の度に剛体の衝突検出から始めてるのか?
固定された式だとしたら、そもそも何も考えずにデザイナにモーション作ってもらえって話だし

式に速度が入っていて1次シンプレクティックとして成立しねぇんだよ、という突っ込みはまぁ無視だ無視
0937名前は開発中のものです。2006/04/05(水) 00:09:55ID:j+LCS1M2
釣り宣言はまぁいいとして
で、角速度が爆発する件はもう解決してるんか。
まぁそれならそれでいいんだけどさ。
0938名前は開発中のものです。2006/04/05(水) 01:42:27ID:38f56APA
>>936
態度の急変はみっともない
0939名前は開発中のものです。2006/04/05(水) 01:47:18ID:j+LCS1M2
>>938
んなこたどうでもいいよ
09409332006/04/05(水) 07:18:10ID:E+b2CdTD
なんだよ。相手の方が知識持ってることが分かったらすぐに遁走か
こんな奴ばかりだ
0941名前は開発中のものです。2006/04/05(水) 11:19:37ID:SgDD+rlz
まぁ、実際困ってる人はいなかったのなら、それが何よりじゃないか。
0942名前は開発中のものです。2006/04/05(水) 11:48:32ID:Q23jU2JZ
>>941
「よかった、病気の子供はいないんだ」?
レス数が900を超えています。1000を超えると表示できなくなるよ。