| hinekure.net が http://hspdev-wiki.net/ から自動クローリングした結果を表示しています。画像やリソースなどのリンクが切れています。予めご了承ください。 |
やっぱり3Dゲーム作るなら(2Dゲームでも場合によっては)ある程度の物理の知識ぐらいはないとそれらしく出来ないだろうと思います。
ゲームを作る程度なら高校物理程度の知識があれば十分ですが、高校で物理を先攻しなかった人や、まだ高校生ですらない人、
物理習ったけど忘れた人、などなどいると思います。
そんな人のために、ゲーム用におおまかな話でも書いておこうかと。
基本的に説明はサッカーゲームを中心に話す予定です。要するに単純なボールの運動についてです。
3D系のゲームでは1秒間に数十回画面を書きかえることで、画面をアニメーションさせていることは
ご存知でしょう。その書き換え回数がFPSという単位です。
映画やTVアニメでは通常 24FPSだそうです。最近のゲームでは 60FPSが一般的なようです。
24FPSというのは経験値から得られた映像がアニメーションしているように見える最低ラインだそうです。
最低でも 24FPSをきらないよう注意しましょう。
ゲームで60FPSということは、画面を書き換える間隔が、1/60秒ということになります。
1コマ描画して次のコマを書くまでに 1/60秒経過するわけです。この蓄積がアニメーション映像になるわけです。
基本的な要素は、おおよそ以下のようなのがよく出てきます。
気が向いたら調べてみてくらはい。気が向いたらで結構です。ざっと読み飛ばしても問題ないと思います。
本当の物理では
が結構重要な要素なのですが、ゲーム用なのでまぁいいかなと。(^ ^;;
(後の細かいのは微積とかで、ね。)
@@すんましぇん@@ -- GENKI? 2005-10-01 22:17:34 (土)
言われてみればsqrt (vy*vy) - (2*ay*(py-400))が正解な気がしてきました…。
でもあの式だと重力加速度大きくしてもちゃんと集束するんですよ。うーん、どうやって導き出したんだったか忘れてしまった…計算メモが見つかったのでもう少しにらめっこしてみます。ちゃんとまとめてないので当時何を考えてたのかさっぱり分からない…。なにかわかったら詳細報告します。
-- GENKI? 2007-02-15 (木) 00:25:37
0になる原因まではわかりませんでした。
sqrt 2*ay*(400-py) + (vy*vy) + (ay*ay) vy = stat * -4/5なぜか0に集束する不思議な計算式。 -- GENKI? 2007-02-16 (金) 00:30:15
ellerさんご指摘ありがとうございます。さて、整数計算のHSP2の場合は下手に衝突時の速度を算出しないほうが値は集束しやすいようなので後日修正しておきます。(土日作業予定)うーん、他の記述も見直したほうがよさそう…。 -- GENKI? 2007-02-16 (金) 00:42:25
-- eller 2007-02-16 (金) 06:11:20
-- GENKI? 2007-02-21 (水) 00:14:32vy = vy * -4/5 ;跳ね返り係数 -4/5 if (-g<vy)&(vy<0) : vy = 0集束する値も大体これぐらいの値なんで、そう大きくは外れてはいないと思います。 -- GENKI? 2007-02-21 (水) 00:16:41