• ベストアンサー

等速度運動の反対

ゲームプログラムミングでキャラクターがジャンプすアルゴリズムを考えています。あの「スーパーマリオ」を思い浮かべてください。 飛び上がるのが減速で着地するのが加速となり、その中の加速の部分を「等加速運動」と呼ぶそうで式にすると 新しい速度 = 加速前の速度 + 一定の加速度 * 加速させた回数 このような形になりました。 では減速はこの反対をすればいいと思いいろいろ試していますがうまくいきません。ですので、等加速度運動の反対の式はどうであるか調べていますが、なかなか見つかりません。どなたか 減速の部分の式を教えてください。

  • nVIDIA
  • お礼率46% (520/1121)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

 加速度をマイナスの数値にすればいいはずですよ。

nVIDIA
質問者

お礼

おっしゃる通りです。 ここからはそれをどうのようにするかという、 アルゴリズムの問題となってきます。 アルゴリズムさえうまく出来ていれば大丈夫です。 ご苦労かけてすみません。 どうもご協力ありがとうございます。

nVIDIA
質問者

補足

理屈としてはマイナスにすればよい事は分かっていますですのでいろいろ試してみました。 結構いろいろ試しましたが実現には及びませんでした。 この式など反対方向に等加速します 新しい速度 = 加速前の速度 - 一定の加速度 * 加速させた回数 減速の部分は 走っているキャラクターを止めるとき「車は急にはとまれない」といったアクションが再現でき非常に面白くなります。 このように、物理学を応用すると非常にバラエティ豊かなたのしいゲームになる事に気づきました。

その他の回答 (2)

  • cak24890
  • ベストアンサー率28% (19/67)
回答No.3

質問に対する回答は、#1、#2さんの回答で全てと思いますが、ご質問者様は納得されていないご様子です。 ゲームであれ、それ以外であれ、コンピュータ上でリアル(に見える)動きを表現するには、現実の物理現象を表現する運動方程式を再現するのが一番と思います。 そういう意味では質問者様も理解されている通り、 V=V0+at ただし、a:加速度 t:刻み時間 の式をプログラム上で計算するだけだと思います。 aの値のちがいにより、マリオよりルイージの方が加速がいいけど止まりにくいとか、そういうキャラの特徴付けなどができるはずです。 どこがどううまくいかないのか、説明いただけると、ご質問者様の納得のいく回答が得られるのではないでしょうか。

nVIDIA
質問者

お礼

おっしゃる通りです。 ここからはそれをどうのように実現するかという、 アルゴリズムの問題となってきます。 アルゴリズムさえうまく出来ていれば大丈夫です。 ご苦労かけてすみません。 どうもご協力ありがとうございます。

noname#17593
noname#17593
回答No.2

減速させる運動も「等加速度運動」と呼ぶはずですよ。#1の方が言われているように「マイナスの加速度」という考え方をするはずです。

nVIDIA
質問者

お礼

おっしゃる通りです。 ここからはそれをどうのように実現するかという、 アルゴリズムの問題となってきます。 アルゴリズムさえうまく出来ていれば大丈夫です。 ご苦労かけてすみません。 どうもご協力ありがとうございます。

nVIDIA
質問者

補足

等加速度運動と何回も口ずさんでいるうちに等速度運動になっちゃいました。失礼しました。(・・; #1さんのように理屈はそれでよいことは分かっているのですが、この等加速度運動のような現象をプログラミング言語で再現仕様となりますと簡単な式も内容によっては難しくなることもありえます。 本当は言語のカテゴリで聞くべきと思うかもしれませんが、原則的にはプログラミングより物理学になると思いここに質問しました。 単純だとは思うかも知れませんが、そこはどうか頭に入ておいてくさい。ご苦労かけてすみません。

関連するQ&A

  • 等加速度運動 の 反対 減速を再現するには?

    キャラクターのジャンプを再現しようと思い考えてた結果、 物理学の「等加速度運動」が関係することがわかり、公式を元に下のようなのを考えました。 これは止まった状態から段々加速します。 void Speed( float MoveSpeed; //加速を掛ける前の速度 float SpeedPower; //加速を加える速度(定数) float NewSeed; //加速を掛けた後の速度 int accel; //加速を掛けた回数 ){ ++accel; //加速回数を更新する //ジャンプの等加速度運動を発生させる(加速度 += 移動速度 + 加速値 * 加速回数) NewSeed += MoveSpeed + SpeedPower * accel; } では反対に徐々に止まる「等加速度運動」の反対を表現しよとプラスをマイナスにしてみました。 NewSeed += MoveSpeed - SpeedPower * accel; そうすると前に進むのではなく、逆方向に加速するようになってしまいました。 結構考えましたがいいアルゴリズムが見つかりません。 減速させるにはどうすればよいでしょうか?

  • 等速度運動と等速直線運動の違いについて

    等速度運動と等速直線運動は同じ意味だと習いましたが、厳密にいえば異なると思います。 まず、等速度運動について考察していきます。 等速度運動とは、速度が一定の運動のことだと思います。 速度はベクトル量なので、速度が一定とは、速さと運動の向きが一定ということでしょう。 つまり、等速度運動とは、速さが一定かつ運動の向きが一定の運動ということになるでしょう。 次に、等速直線運動について考察していきます。 等速直線運動とは、速さが一定である直線上の運動のことだと思います。 直線上の運動は、方向が一定の運動と言い換えられることができるでしょう。 つまり、等速直線運動とは、速さが一定かつ運動の方向が一定の運動ということになるでしょう。 さて、改めて等速度運動と等速直線運動とを比較してみることとします。 等速度運動は向きが一定の運動ですが、 等速直線運動は方向が一定の運動です。 「向き」という概念と、「方向」という概念は、数学や物理学においては異なる概念であるはずです。 例をあげるのならば、東西は方向ですが、東や西は向きです。東西方向、東向き、西向きは正しい言い回しで、東西向き、東方向、西方向という言い回しは間違っています。 ということは、方向が一定であっても向きは2つ考えられるので一定でないはずです。 つまり、等速直線運動は厳密にいえば速さが一定の往復運動などの場合も考えられるのではないでしょうか? このように考えていくと、等速度運動と等速直線運動を同じ意味で用いるのは間違っているように思えてなりません。皆さんはどのように思われますか? (通じればいいという方ももちろんいらっしゃるでしょうが、個人的にはあまり共感できません) ※「速さを一定に保って向きを反対側に変えるためには、無限小の時間に無限大のエネルギーを要するので、現実的にはありえない。だから等速直線運動であっているんだ!」といわれる方もいるかもしれませんが、そう言ってしまうと、現実の世界には完全な直線運動は存在しないので直線運動は考えられない!と言っているのと同じであると思うので、やはり等速度運動と等速直線運動は異なる運動を示している考えるのが妥当であると思います。 ※等速円運動も、右に一回転、左に一回転を交互に繰り返し、速さが一定の運動などの運動も考えられるはずなので、私たちが普段、等速円運動と呼んでいる運動は、上記のように考えると、厳密にいえば等角速度運動と呼ぶべきなのではと思います。

  • 等速直線運動と加速度

    物理の時間、先生が台車を用いて、 「静止した台車を一回押してやると加速度が生じ、等速直線運動をして、摩擦などの抵抗を受けて減速の加速度が生じて止まる」とおっしゃったのですが、 この場合、押されてから等速直背運動をはじめるまでの一連の加速度の変化の様子を教えてください。つまり、押された時の加速度から等速直線運動をしている時の加速度0までどのように移り変わるのか、、 また どれぐらいまで加速したら等速直線運動に移るのでしょうか? さっぱりわからなくなってしまい、質問もきっと間違いだらけでうまくまとまらなくなってしまったのですが、どうかご回答をお願い致します。

  • 回転は加速度運動でも等速なのですか

    回転というのは加速度が常に働いているにもかかわらず一定の速度で回転しているのはどのように理解するのが物理学的なのでしょうか。角速度という概念は初心者には理解するのが相当難しいものなのでしょうか。また一定の回転をしているときに常に加わる加速度はどこから出てくるのでしょうか。偶力と関係があるのでしょうか。

  • 等速円運動 加速度

    速さは一定で向きが絶えず変化している とあります。イメージできるのですが 加速度 が生じている ということがわかりません。なら速度は上昇してしまいますよね? 仮に加速度が生じていたとして、ベクトルの向きで加速度を表していることにしっくりきません。 宜しくお願いします。

  • 列車の運動(高校の物理)

    高校生の物理で分かる話で、 物体が加速(減速)するとき、その物体に ・一定の力が加わっているならば(a=F/mより)等加速度運動 ・一定の仕事率(電力)が加わっているならばだんだん加速度が小さくなる加速 になりますよね。(速度が上がるほど、単位時間あたりに力を加える距離が長くなるので、その分力は小さくなる) このことを踏まえて、電車の加速・減速について考えます。 ・電車が、動摩擦力によって減速するならば、動摩擦力は速度にほとんど依存しないので、等加速度運動になるはずです。 ・しかし、電車が加速する時に電気エネルギーを変換して加速に使っているならば、加速時には電力一定と考えるべきで、それなら加速度はだんだん遅くなる気がします。 そこで、僕の質問は、 「加速時と減速時で、時間反転すると速度変化の様子が違って見えるのでしょうか。」ということです。 上では、動摩擦力によって減速していると仮定しましたが、もし減速時に運動エネルギーをほかのエネルギー(電気エネルギーなど)に変換して、加速のためのエネルギーとして蓄えるならば、加速時と同じような運動になる可能性もあります。 電車の動力の仕組みに関する予備知識は全く持っていませんが、力学の範囲でそのような違いが明らかになることが面白いと思い、質問しました。 また、運転席の距離メーターを覗いていると、加速時も減速時も、速度が速いときは加速度の大きさが小さいように感じますが、あまり自信はありません。 ご存知の方いらっしゃったら、ぜひお教えください。

  • 等速円運動について

    大学の基礎物理で指名されてしまい、前で説明しないといけないので 是非、次の問題に対する解答をわかる方は教えてください |r|=r=一定の等速円運動ではv-一定で速度は円の接線方向にあること、 速度の方向・向きが円運動をすることを微分を用いて示せ。このとき 加速度ベクトルはどうなるか。 わかる方は是非返信してください、お願いします PS 何故生物学科で物理をするのでしょう?

  • 「等加速度運動」と「等加速度直線運動」の違いは?

    「等加速度運動」と「等加速度直線運動」の違いは?   「速度」はベクトル量、「速さ」はスカラー量だから、 「等速直線運動」=「等速度運動」であり、 「等速度直線運動」という表現は不適切(トートロジーだから)と高校物理で習いました。 ですが、「速度」同様にベクトル量である「加速度」について、 「一定の加速度で直線運動すること」=「等加速度直線運動」と書かれているサイトを多数目にしました。 私が思うに、これもやはり不適切で、「等加速度運動」という表現の方が適切だと思うのですが、どうでしょう? 「等加速度直線運動」と「等加速度運動」のどちらが適切なのでしょうか? また、速度での「速さ」みたいな、加速度の大きさを示すスカラー量の名称ってないんでしょうか?

  • 等加速度運動

    V-Tグラフで、加速度a<0のときの等加速度運動はUターン型になる、らしいですが、これがイメージできません。折り返し地点でとまるか、減速してしまうような気がします。 亦、同じ場所での速さ(速度ではなく)は同じらしいですが、これもイメージできません。 上の二つのイメージの方法を教えてください。

  • 倍の時間で同じ等加速度運動をするには?

    速度を求める公式は「V = V0 + at」ですが、 で同じ運動をする場合、速度を求める場合はどのようになりますでしょうか? 具体的な話をしますと、 30FPSで動作しているゲームを60FPSに変更したいのですが、 その中で加速度運動が行われており、2フレームで同じ動作になるようにしなければならないのです。 毎フレーム以下のような処理が入ります。 速度' *= 減速補正値 速度' += 加速度 X座標' += 速度’