質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.80%

ジャンプ処理に関して。

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 812

score 346

前提・実現したいこと

こちらの動画の(21:36辺り)で、ジャンプの処理に関して質問です。

ジャンプの処理を下記のようにしていますが、

velocity.y = Mathf.Sqrt(jumpHeight * -2f * gravity);

根拠としているv=√2gh とは何でしょうか?
ご教示お願いします。

試したこと

こちらのサイトで、

9】高さhから落下
・mgh=(1/2)mv^2
・v=√2gh


とあり、mgh=(1/2)mv^2の
式変形から、v=√2ghが求まることはわかったのですが、
mgh=(1/2)mv^2
は見覚えがあるんですが、忘れてしまい、この式はなんでしょうか?(質問1)
検索してみると、mghが位置エネルギーで、1/2mv^2が運動エネルギーみたいですが(合っていますか?)、
この=で結ばれているのは、運動量保存の法則ですか?
しかし、運動量保存の法則で検索すると、思っていたのものと違う式が多々ヒットするので、違うのかなとも思ってしまいました。

質問2。
また、v=√2ghは、hの高さを落下しきったときの速さでしょうか?
hの高さの落下途中のときはこの速さではないということですか?

質問3。
ジャンプ処理のコードは、ジャンプボタンを押した瞬間に、高さhから落下した(落下しきった(?))速度を、
上向きに瞬間的にかけていると思いますが、
ジャンプ上昇中も、

velocity.y += gravity * Time.deltaTime


が効くはずなので、実際は、jumpHeightの高さまではジャンプしないという認識で合っていますか?

質問を閉じた後の調査メモ。

力とエネルギーの関係

エネルギーは(力 × 距離)の次元を持っている。
ある物体に力Fがかかっている場の中で、
その物体を力に逆らう方向に、距離xだけ移動させると
その物体はエネルギーFxを得る。


参考サイト:位置エネルギー(ポテンシャルエネルギー)

高さhの重力の位置エネルギーは、

重力の位置エネルギー = 力 × 距離 = 重力 × h


力は、F=maの運動方程式で表せる。(Fが力で、mが質量、aが加速度)。
重力の加速度(重力加速度)は、記号gで表わされるので、
高さhの重力の位置エネルギーは、

位置エネルギー = 重力 × h = F × h = mgh

高さhから落下しきったときの位置エネルギーと運動エネルギーの関係。
位置エネルギーは運動エネルギーに移り変わる。

mgh=(1/2)mv^2


上記の式を式変形して、重力で高さhから落下しきったときの速度、
つまり、重力で、高さh進んだ時の速度は下記。

v=√2gh


Unityでは、高さhから0まで落ちる間に掛かる外力(重力)と、高さ0からhまで上昇する間に掛かる外力は、等しい。
これより、高さ0からhまで上昇する間に掛かる外力で、高さh進んだ時の速度も、
重力の高さh進んだ時の速度と等しいので、
高さ0からhまで上昇する間に掛かる外力で高さh進んだ時の速度は、

v=√2gh


となる。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

・質問1の回答
自由落下運動の速度を求める公式です

・質問2の回答

v=√2ghは、hの高さを落下しきったときの速さでしょうか?

はい

hの高さの落下途中のときはこの速さではないということですか?

自由落下運動は加速し続けるので落下途中は違います。

・質問3の回答

jumpHeightの高さまではジャンプしないという認識

現実世界は空気抵抗があるので到達しませんがUnity空間では丁度jumpHeightの高さまでジャンプします。

velocity.y += gravity * Time.deltaTimeは重力を適用させているのでこれが無ければ落下もせず無限に上昇します。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/01/24 00:20

    ご回答ありがとうございます。
    質問1。
    「=」で結ばれているので、何かしらの保存則の式も含まれませんか?
    保存でよく調べ直したら、力学的エネルギー保存則が出てきたので、
    v=√2ghが自由落下運動の速度を求める公式で、
    mgh=(1/2)mv^2が力学的エネルギー保存則ということですか?

    質問2。
    ご回答ありがとうございます。理解できました。

    質問3。
    質問を立てる前に動作をUnityで確認したら、到達していないように見えてましたが、ご回答を受けて、オブジェクトの位置など間違っていたことに気づき確認したら、確かにjumpHeightの高さピッタリまでジャンプしていることが確認できました。
    そうゆうものと覚えてしまえばいいだけかもしれませんが、なぜぴったりその高さまで飛ぶのだろうということに興味があるのですが、これは何か数式とかで示せたりすることってできますか?
    何かの公式に当てはめると、ちょうど高さがjumpHeightの位置にくると求まるのでしょうか?

    キャンセル

  • 2020/01/24 11:32 編集

    >v=√2ghが自由落下運動の速度を求める公式で、
    >mgh=(1/2)mv^2が力学的エネルギー保存則ということですか?
    「この式はなんでしょうか?(質問1)」の質問がv=√2ghを指していると思っていたので「自由落下運動の速度を求める公式」の方だけ答えました。

    その理解で問題ありません...が、
    力学的エネルギー保存則は「力学的エネルギー = 位置エネルギー + 運動エネルギー」で覚えておいた方が良いです。
    ちなみにmgh=(1/2)mv^2は基準面での式です。

    >なぜぴったりその高さまで飛ぶのだろうということに興味
    Unity的には高さhから0まで落ちる間に掛かる外力(重力)と高さ0からhまで上昇する間に掛かる外力が同等だからです。
    物理的な理解は位置エネルギーと運動エネルギーの変換の説明を読むと良いのではないでしょうか。

    >何かの公式に当てはめると、ちょうど高さがjumpHeightの位置にくると求まるのでしょうか?
    正にこの公式がそれに当たります。

    hを求めたければh=v^2/2gに左辺を入れ替えて使うと良いのではないでしょうか。
    速度vを任意の値で代入すればhが求まるのでそれがjumpHeightです。

    逆に速度を求めたい場合はhを任意の値で代入すれば「hの高さまで到達出来る速度v」を求める事が出来ます。
    動画はこちらの使い方です。

    この辺りの理解はネット上の資料や学校の授業で困難であれば私の文章でも難しいかなと思います。

    キャンセル

  • 2020/01/25 02:19

    ご回答ありがとうございます。

    一応、下記のように解釈してみました。
    高さhから0まで落ちる間に掛かる外力(重力)による位置エネルギーUは、
    U = mgh
    で、このh分の位置エネルギーを全て運動エネルギーに変換したのが、(1/2)mv^2
    mgh = (1/2)mv^2
    式変形すると、v=√2gh
    高さhから0まで落ちる間に掛かる外力(重力)にかかった物体の速度は、v=√2gh
    高さ0からhまで上昇する間に掛かる外力は、高さhから0まで落ちる間に掛かる外力(重力)と等しいので、その位置エネルギーは、mgh。
    これより、高さ0からhまで上昇する間に掛かる外力にかかった物体の速度もv=√2gh

    ご回答ありがとうございました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.80%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る