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

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

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。02/04/08 17:38ID:dlksSYkA
ゲームに必要な物理(力学)を語るスレッド。

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

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

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

と表せるよとか。

他にも剛体運動、力積とか語ってください。
0007ラジャ・ライオン02/04/08 18:45ID:???
>>6
ごめんなさい、微妙に間違えてた。

static double G = 9.8;
static double dt = 30/1000;

double vec;
int y;

while(1)
{
    vec += G*dt;
    y += (int)vec;
}

でした。
0008名前は開発中のものです。02/04/08 19:17ID:???
いや、9.8じゃ速すぎるでしょう、大抵のゲームでは。
0009名前は開発中のものです。02/04/08 21:06ID:???
萌 = Loli * Sakuratan
0010名前は開発中のものです。02/04/08 21:12ID:???
>>8
馬鹿か?
0011名前は開発中のものです。02/04/08 21:16ID:ooxcCJOI
9.8なんて数字はSI単位系での数値だから
そのままゲームに使おうなんてしたらだめよ
0012名前は開発中のものです。02/04/08 21:19ID:???
>11
(゚Д゚)ハァ?
0013名前は開発中のものです。02/04/08 21:19ID:???
剛体力学ならbaraff氏の&それをわかり易く解説した人のとこ見れば
足りると思うし、流体とかもそれなりに資料は集まると思う(タダで)

ネタとしては、それをどうゲームに使うかって事のほうが良くない?
負荷を考えたら、やっぱインチキが必要になるでしょ
0014名前は開発中のものです。02/04/08 21:21ID:???
>>11
馬鹿再来?
0015名前は開発中のものです。02/04/08 21:33ID:???
物理定数の具体的な数値がいくつかなんて単位系によるってことをいってるだけなんだけど。
まぁ変換すればいいだけなんだけどさ。

インチキを入れたほうが面白いことも多々あるから
結局その辺は調整しないといけないでしょ
0016ラジャ・ライオン02/04/08 21:37ID:???
>>11
論理座標とスクリーン座標を一致させずに分けて考えればよいかと。
0017名前は開発中のものです。02/04/08 21:47ID:???
つまんねースレだな
0018名前は開発中のものです。02/04/08 22:00ID:???
これすごいよ。

ttp://homepage1.nifty.com/kaneko/nfight.htm

IKでリアルタイムにモーション生成してる。
すごいんだけど、動きが酔拳みたくなってワラタ。
00191302/04/08 22:27ID:???
>>18
すごいよね
作者も”力学的な処理をまじめにはしてない”って書いてたと思うけど、
まじめな処理した物より面白くなりそう

それ以前に、現状で人間の動きをまじめにシミュレートできるんだろーか
0020ラジャ・ライオン02/04/08 22:43ID:???
>>18 >>19

すごいなぁ。
やっぱり物理計算したゲームは創造主の想像を超える動きをしてくれる
ところが醍醐味だね。
0021名前は開発中のものです。 02/04/08 23:17ID:???
>>18
すげぇな。
なんか股ひろげておねだりしてたよ。(藁
0022名前は開発中のものです。02/04/09 01:25ID:???
>>1
スッとそれが出てくる貴方が正直羨ましい。
とりあえず積ん読状態のファインマン物理学読むべ……。
0023名前は開発中のものです。02/04/09 08:56ID:???
重力加速度が9.8だと、あっというまに画面外にでちゃうよ。
0024名前は開発中のものです。02/04/09 09:16ID:???
23の脳内では
 1dot=1m
になっちゃってると思う人手を上げて。
0025名前は開発中のものです。02/04/09 09:19ID:???
>>18
せめてG=9.8ならもう少しおもしろいかも
中身はしらんが発散あぼーんかな
0026名前は開発中のものです。02/04/09 09:20ID:???
>1dot=1m
これじゃなかなか外にでんな
0027名前は開発中のものです。02/04/09 09:35ID:???
人間を演算だけで表現するのはかなりきつい
二足歩行のロボットを作るのが難しいのが良い例

「物理シミュレーション」じゃなく「ゲームの為の物理」なんだから
力学とかの概念だけ取り入れて、定数や変位値は、ゲームに合わせるということで
0028名前は開発中のものです。02/04/09 09:52ID:???
処理が重くなるっていうのが欠点だね
ゲームはそれっぽく見せればいいんじゃない?
0029名前は開発中のものです。02/04/09 10:08ID:???
>>7
無限ループじゃない?
0030名前は開発中のものです。02/04/09 10:55ID:6SoStWaA
ところで連立方程式の解法には何を使いますか?
消去法,ヤコビ,SOR,ADI,CGなどなど

でICCG(不完全コレスキ―分解付き共役勾配法)の参考図書,HPきぼん
0031名前は開発中のものです。02/04/09 11:13ID:???
ひさびさ、良スレのよかんぬ
0032ラジャ・ライオン02/04/09 12:21ID:???
>>23
重力加速度9.8だからといってって1フレームに9.8足してない?
あれは1秒間に9.8すすむんであって、秒間30フレームなら微分しなきゃだめだよ。

>>7
簡単な説明ということで無限ループにしました。

>>30
連立方程式は行列で解けたと記憶していてます。
それが高速かどうかは知りませんが・・・
0033名前は開発中のものです。02/04/09 13:43ID:???
相変わらずレベルの低いスレだな
0034名前は開発中のものです。02/04/09 14:40ID:LKMiCXFg
最初に出た斜面の質問です。
質量M、半径R、斜面θを距離Lを転がり落ち、のちに水平の面を転がりました。
その球は水平面をどのくらいの距離を転がるかって処理なんですけど、どのように実装
すればよいかわかりません。

ちなみに球の密度は一様と考えて慣性モーメントはI=(2/5)MR^2で、球は滑ることはなく必ず転がります。
0035名前は開発中のものです。02/04/09 16:00ID:???
空気抵抗とか摩擦熱とか
0036名前は開発中のものです。02/04/09 16:08ID:???
>>34
空気抵抗がないとずっと止まらないよ。
0037名前は開発中のものです。02/04/09 16:12ID:???
転がり摩擦もあるよ
0038ラジャ・ライオン02/04/09 16:36ID:qN7gQbnA
>>35 >>36
空気抵抗がないと止まらないんですか?
空気抵抗はなしと考えていたんですが・・・

>>37
ころがり摩擦はあるものとします。
0039ラジャ・ライオン02/04/09 16:47ID:???
書き忘れました、ラジャライオン=34です、会社からだったんでクッキーの設定が・・・
0040名前は開発中のものです。02/04/09 16:54ID:???
エネルギー保存則を守れば、位置エネルギーから変換された運動エネルギーをまた何らかの形で他のエネルギーに変換しなくてはならないんでは
0041名前は開発中のものです。02/04/09 17:04ID:???
だから、空気抵抗と摩擦によって熱エネルギーに変換されるんだってば
004240=3502/04/09 17:08ID:???
38に言ってるんだYO...
0043ラジャ・ライオン02/04/09 17:41ID:???
会社で調べた事を書きます。

I=(2/5)MR^2 ・・・球の慣性モーメント
dV/dt = 5*g*sinθ/7・・・球の加速度(1さん参考)
V = Rω ・・・角運動量(滑りがないので)

で、斜面での転がり摩擦が

F = I/(MR^2+I) Mg sinθ

慣性モーメントがI=(2/5)MR^2なんで、整理して

F = (2/7) Mg sinθ

となる。
で、平面の転がり摩擦が

F2 = μR*G*M*V

とあるんですが、慣性モーメントが関係してないような・・・
0044名前は開発中のものです。02/04/09 18:03ID:???
>>38
球と接着してる面との摩擦抵抗、それに空気抵抗がないと永遠に転がり続けるよ

>>43
最初に変数の説明を入れると内容が整理されて式の意味を理解できると思うよ
0045名前は開発中のものです。02/04/09 19:37ID:???
8 != 11 です。

格闘ゲームやジャンプアクションなどではちゃんと微分して
単位系を合わせた状態でも9.8では大きすぎることが多い、って
ことが言いたかっただけです。

車ゲーでも小さくしてるのが多いし、スト2に至ってはキャラ毎に
重力定数が変わる始末。
0046名前は開発中のものです。02/04/09 20:03ID:???
>>45
アホだねー
0047名前は開発中のものです。02/04/09 21:21ID:3EOUhYdw
8!=40320
0048名前は開発中のものです。02/04/09 21:25ID:???
45は書けば書くほど更なるDQNをさらけ出している
0049名前は開発中のものです。02/04/09 21:31ID:???
正直、どちらがよりDQNかは判断が難しい
0050名前は開発中のものです。02/04/09 21:51ID:???
>>49 禿同。
キャラクタの身長を実寸大(1.8m程度)にして実時間で計算すると、
重力定数が9.8では確かに大きすぎて、ゲームにならない。
よって、DQNは46と48に決定。
0051名前は開発中のものです。02/04/09 22:00ID:???
50は49の真意を勘違いしているに400ワット
0052名前は開発中のものです。02/04/09 22:02ID:t.HmzG4A
ヴァカ45が自作自演してるのか?
なぜDQNとかアホとか書かれるかわかってるか?
0053名前は開発中のものです。 02/04/09 22:02ID:???
>>47
8! = 8*7*6*5*4*3*2*1 = 11じゃなくて
8 ≠ 11じゃないの?
00545102/04/09 22:05ID:???
>>52
そーゆー脊髄反応的な態度自体はDQNだと思うに400ジーメンス
0055名前は開発中のものです。02/04/09 22:20ID:???
どうでもいいけど、論理座標の単位って普通 [m] で取るもんなの?
0056名前は開発中のものです。02/04/09 22:20ID:???
格ゲーとかが重力定数が9.8だと速すぎとかいう意見は、物理スレではスレ違い
なのでどちらでもいいと思う。
格ゲーとかのジャンプとかは物理じゃなくて移動手段。
だから物理の話をしようよ。
0057名前は開発中のものです。02/04/09 22:29ID:???
純粋に物理学的に考えても、フィクションなゲーム世界全てで重力定数がある一つの値である必要も無いだろうけどねぇ.....
個人的な趣味で言えば、十分に実世界に近い、身近さ、リアリティを感じられる仮想世界を基本として、その上で非現実を擬似体験した気分になれるゲームで遊んでみたいななな。
0058名前は開発中のものです。02/04/09 22:36ID:???
たしかにゲームバランスや処理速度などを取るには
多少は犠牲にしないとねェ。
マリオ3の敵踏んで大ジャンプする時
上昇中に加速したもんなぁ。(w
でもたいした違和感は感じなかった。

でも逆にこんなゲームもあった。
なかなか面白い発想。作った人は結構すごいと思ふ。
http://www.albinoblacksheep.com/flash/spacedpenguin.html
0059名前は開発中のものです。02/04/09 22:42ID:???
重力加速度が9.8じゃ大きすぎるとこのスレで書いているのは本当の馬鹿だと思われ。
さらになんの脈絡も無しに格ゲーに完全限定したことを論点にしているところもその馬鹿さの所以。
0060名前は開発中のものです。02/04/09 23:19ID:???
       / ̄ ̄ ̄ ̄ ̄\
       |  おまえらも |
  ∩_∩  |          |
 (´ー`) <  暇な奴ら   |
 (   )  |          |
  | | |   |  だなぁ    |
 (___)__)  \_____/
00611302/04/09 23:32ID:???
>>58
226410点(ボーナスあきらめてクリア)
星が動いてると運まかせな感じ
動かないとメリハリが無くなるか…

定番だけど、
ttp://cgi3.tky.3web.ne.jp/~tkano/
の、RigidBodyは良い
0062名前は開発中のものです。02/04/09 23:34ID:???
>>59
単位も含めて考えるといいと思うよ
数字だけでやると勘違いする場合が多い
0063名前は開発中のものです。02/04/09 23:40ID:???
>62
(゚Д゚)ハァ?
0064名前は開発中のものです。02/04/10 00:00ID:???
約一名中学生@62が混ざりこんでるようで
0065名前は開発中のものです。02/04/10 00:02ID:???
どっちがどっちなんだか
00665802/04/10 00:08ID:???
>>61
まぁ、おもしろさどうのこうのよりも発想ね。
あれは重力加速度なんてバラバラなんだし。(w

[RigidBody]
なかなか。リアルなぶん重くなる罠。
リアルなビリヤードゲームでないかぎり
あういう細かいのは切り捨てないと。
0067名前は開発中のものです。02/04/10 00:13ID:???
このスレは各個人の味付けで決定できる単位をこれでは大きすぎると言うスレですか?
というか、高校物理レベルの話をさもスゴイことのように話すスレですか?
0068名前は開発中のものです。 02/04/10 00:19ID:???
>>67
さぁ?一部の厨房がお互いに煽ってるだけなんじゃない?
まぁ、無視しとこうや。
0069名前は開発中のものです。02/04/10 00:21ID:???
高校レベルということもないのだがそれはさておき
0070名前は開発中のものです。02/04/10 00:32ID:???
今読みなおしてみたけど8と11が主張していることは相当ドキュソだな・・・。
つーか68は8か11のどちらかのような文の書き方だな・・・。
00716802/04/10 00:42ID:???
いや、正直どっちでもないよ。
0072名前は開発中のものです。02/04/10 00:43ID:???
もう9.8系の煽りは止めろ。正直、分からない、しかも気づかない奴は放置。

加速とかさせたい時とか、数学チックな処理をしたいときは大体○○の何乗とかだけ合わせて、定数は適当に調整するようにしてる。
それっぽく動いて、ゲームとして良い感じなら別に何でもいいかな、と。
シミュレーションしてるわけじゃあるまいし。

手から波動を出す事が許されて、重力が半分の大きさになるのが許容されないなんて言わないよな?
00731102/04/10 00:43ID:???
11は自分だけど、いいたかったのは

・9.8という数字はあくまでSI単位系での数値9.8m/s^2のことである
・さらにいえば地球の地上付近での値なので、例えば月面での値は9.8m/s^2ではない
・そもそもゲームではちゃんと現実をシミュレートする必要がない場合が多い。というかほとんど。

ってことを言いたいだけなんだけど。
>>11は違うこといってるじゃんっていうのだったらそれは表現がまずかったと謝る。

こんなこと正直どうでもいいと自分でも思うけど、まぁ一応。
0074名前は開発中のものです。02/04/10 00:54ID:???
厨房と言われたことは?>>73
0075名前は開発中のものです。02/04/10 01:06ID:???
>>72-73はいつまでズレた話を続けるんだろうか…。
00761302/04/10 01:31ID:???
速いマシン持ってる人に試してもらいたい
http://www.geocities.co.jp/SiliconValley-Oakland/3068/
動かなかったらゴメソ

"宣伝ウザ"とか"荒らし依頼?"とかレスつきそうで、ちょっとドキドキ
0077名前は開発中のものです。02/04/10 01:39ID:???
>76
何を試すんだ?
うごきゃオッケってこと?
00787702/04/10 01:48ID:???
動かし方サパーリ理解できんかったが動くには動いたよ。
AthlonXP1800+,GeForce3Ti500,Win2K,DirectX8.1で動作。
00791302/04/10 01:54ID:???
>>77
ありがと
自分が、AthlonXP1700,GeForce3Ti200なんで 完全上位互換な環境ですね
できたら、GF2とかATIとかの人にも…

操作のしやすさまで、気がまわりませんでした(汗
00807702/04/10 02:13ID:???
>79
ココラヘンの方がいいんじゃ無い?
>ttp://game.2ch.net/test/read.cgi/gamedev/1005143186/

あと,終了がESCだと思ったら違ったのでナエたのと,Windowモードなのに
マウス占有はヤメレ(;´Д`)
00811302/04/10 02:21ID:???
>>77
そこは、完成度何%って書くのが義務みたいなので躊躇してたり…
ESCで終了が一般的ですね、立ち上げてすぐ終了ってケースが多く
遠いキー使うのが嫌いなのでENTERにしてました

ESCでも終わるようにしとこ(w
00827702/04/10 02:25ID:???
>81
>ESCでも終わるようにしとこ(w
是非w
0083名前は開発中のものです。02/04/10 07:14ID:???
ゲームのための物理・・・かぁ。
でも、人間が心地よいと思う動きは神様が創ったルールに即したものでは
ないと思うのだ

RigidBodyを見てなお心が揺れない想像力貧弱な自分は、転職でも考えようかな。

地球とは違う秩序ある法則に基づいた仮想ブツリ空間を作ったとして、
一体、そこで何をしよっかな。

こんな箱があったらいいなぁ、ではなく、これを入れたいからこんな箱を
作りたいなーくらいの気持ちがないと駄目かなぁ

次世代ハードとおんなじだね

実際、手にしても持て余しそう。
ま、持て余すおいらみたいな人間は、3Dオヤジで終わるか。

50歩100歩。2D爺3D爺。

負け組みは終了と
0084名前は開発中のものです。02/04/10 09:18ID:lDfZ/TIk
>>83
2行目以降読んでいないので何が言いたいのかわかりません。
1行で書いてください。
0085名前は開発中のものです。02/04/10 10:29ID:???
>>84
要するに何を見てももう何も感動しなくなってしまった。
もうゲーム作るのはやめるか。ってことじゃない?
0086名無しさん02/04/10 13:10ID:???
オヤジの愚痴でしょう。とりあえず放っておくと。
0087名前は開発中のものです。02/04/10 13:10ID:???
個人的意見として、重力加速度は9.8じゃなくてGという変数でいいと思う。
そして「格ゲーとか重力加速度を調整する」という意見も正しい。
しかし、ここは物理スレであって、そういう意見は意味がない。

どうでもいいけど、慣性モーメントは高校物理じゃなくて大学でやるものだよ。
0088ななし02/04/10 16:45ID:FEP6Ot26
立方体(さいころ)を斜面に置くと、3つの状態がありますよね。
1.摩擦により動かない。
2.斜面を転がらずにすべる。
3.斜面を転がりおちる。
この3つの境界線ってどうやって求めますか?
また、加速度はどうやってもとめますか?
0089名前は開発中のものです。 02/04/10 17:16ID:???
まず摩擦係数と垂直抗力から最大摩擦力をだす。
サイコロの重さから斜面に水平な力をだして最大摩擦力と比べる。
角度が45゚以下の時は最大摩擦力の方が小さければすべる。
そうでなければ動かない。
角度が45゚以上の時は最大摩擦力の方が小さければ転がる。
そうでなければすべる。
こんなところかな。あまり自信ないけど。
でもスゴロクのサイコロなら適当なサイコロの転がる
アニメーションを作って最後にどれだすか乱数で決めれば良いと思われ。
0090名前は開発中のものです。02/04/10 17:17ID:???
間違えた。
角度が45゚以上の時は最大摩擦力の方が小さければすべる。
そうでなければ転がる。
に訂正。
0091名前は開発中のものです。02/04/10 17:59ID:???
>>89
でも、加速度と摩擦の関係で速度が速ければサイコロは45度以下でも
転がるような・・・
0092名前は開発中のものです。02/04/10 19:51ID:???
-273.15度
0093名前は開発中のものです。02/04/10 22:44ID:???
>>91
同感だが速度は関係ないナリ
0094名前は開発中のものです。02/04/11 00:50ID:???
Gは9.5m/s^2では大きすぎます
G=9.5m/s^2を使う人はまったくわかっていない厨房、死んだほうがましです。
0095名前は開発中のものです。02/04/11 01:16ID:???
9.78…
0096名前は開発中のものです。02/04/11 01:43ID:???
やや、こんなとこにもゆとり教育の影響が!!
0097名前は開発中のものです。02/04/11 02:10ID:???
重力加速度は10です。
0098名前は開発中のものです。02/04/11 05:48ID:???
Gは9.2m/s^2では大きすぎます
G=9.2m/s^2を使う人はまったくわかっていない厨房、死んだほうがましです。
0099名前は開発中のものです。02/04/11 06:13ID:???
あのさー、簡単な物体だったら慣性モーメントが一意に求まるのは
分かるんだけどさ、そうでない物体はどうやって求めるのさ?
例えばさ、車だとか。

全て質点が一様に詰まっていて、しかもプリミティブな形状だけが
慣性モーメントの式が与えらてるだけじゃさ、なにかと不自由だと
思うわけね。だってそんな物体、日常生活じゃ稀じゃん?
車にしてもね、中、スカスカだしーぜんぜん質点が詰まってないから
重心がどうとかって次元が別の話なのか?ってね

思うんだけどさ、良くHPや教科書なんかで紹介されている剛体力学じゃ
車を転がすことはできねーんじゃねーの?と邪推してみたけど、どうよ?
0100名前は開発中のものです。02/04/11 06:48ID:???
>>99
ネタですか?
0101名前は開発中のものです。02/04/11 07:56ID:???
>>99
その教科書は小学生用なのでちゃんとしたものを手に入れたほうが良いですよ。
0102名前は開発中のものです。02/04/11 12:54ID:???
>>99
点を詰める?んじゃなくて物体を点に置き換えるのでは?
現在ゲームで超リアル!といわれているものが納得いかないなら
有限要素法を使うことをお勧めします。ゲームになりませんが。
0103名前は開発中のものです。02/04/11 13:01ID:???
I= I_0 + m * d^2
0104名前は開発中のものです。02/04/11 14:42ID:???
>>99
慣性モーメントの合成(ボソッ
0105名前は開発中のものです。02/04/11 14:54ID:Ao5ZUcTM
慣性モーメントはI=Σmrだよ。
だから、どんな形のものも慣性モーメントを求めることは可能。
010610302/04/11 15:13ID:???
>>105
いや、実は104が正しいっす。つか上のはその式です。
■ このスレッドは過去ログ倉庫に格納されています