Math World Lab

ゲーム物理とジャンプの放物線(二次関数の運動学)

「なぜマリオは気持ちよく跳べるのか?」重力加速度と二次関数で創る2Dアクションの物理

y = v₀t - ½gt²
この単元の発見をシェア
3行要約(Key Takeaways / AIOサマリー)
1
ゲーム物理とジャンプの放物線(二次関数の運動学)の本質的な定義と直感的ビジュアルをシミュレーターで体験できる。
2
公式や証明の背景にある数学的意味と、厳密な導出ステップを解説。
3
実社会における工学応用(2Dアクションゲーム・プラットフォーマー物理更新エンジン)のTypeScript実装コードを収録。

なぜこれを学ぶのか? — 現実社会とテクノロジーでの価値

Purpose & Motivation

なぜ生まれたのか?

ガリレオ・ガリレイが発見した落体の法則とニュートン力学を、ゲームやアニメーションの「心地よいジャンプ」として画面上に具現化するために生まれた。

身につく武器・思考力

二次関数の頂点や平方完成が、ゲーム開発のステージ設計(穴の飛び越え判定や足場の高さ)に直結する快感を体感できる。

実社会・ITでの活躍現場

  • •スーパーマリオなど2D/3Dアクションゲームのキャラクター物理更新ループ
  • •Angry Birdsなど弾道投射物理パズルゲームの軌道予測線表示
  • •UIマイクロインタラクション(通知バナーのポップやカードの弾むアニメーション)
  • •スポーツ分析(バスケットボールのシュートや野球の打球角度・飛距離予測)

Layer 1 — 直感・シミュレーター

ジャンプ初速(v0v_0)、重力加速度(gg)、前進スピード(vxv_x)のスライダーを動かして「ジャンプ!」ボタンを押そう。キャラクターが崖の穴を飛び越えてゴール旗に届くかチャレンジできます。二次関数 y=−g2t2+v0ty = -\frac{g}{2}t^2 + v_0 t のグラフとジャンプの軌跡が完全に一致することを体感してみましょう。

⚠️ 落とし穴
ジャンプ初速 ($v_0$)65
30 (小ジャンプ)100 (大ジャンプ)
重力加速度 ($g$)9.8
4.0 (月面・フワリ)20.0 (重量級)
前進速度 ($v_x$)45
20 (歩き)80 (ダッシュ)

Layer 2 — 定義・受験・証明

定義

地表付近で鉛直上向きに初速 v0v_0 で投射された物体の時刻 tt における高さ y(t)y(t) は、下向きの重力加速度 gg を受けることで二次関数として表される:

y(t)=v0t−12gt2y(t) = v_0 t - \frac{1}{2}g t^2

水平方向の速度 vxv_x が一定(等速直線運動)である場合、x=vxtx = v_x t より t=xvxt = \frac{x}{v_x} を代入すると、軌跡は xx の二次関数(放物線)となる:

y(x)=v0vxx−g2vx2x2y(x) = \frac{v_0}{v_x} x - \frac{g}{2 v_x^2} x^2

最高点到達時刻は t=v0gt = \frac{v_0}{g}、最高点の高さは H=v022gH = \frac{v_0^2}{2g}、着地までの全滞空時間は T=2v0gT = \frac{2v_0}{g} である。

公式・数理モデル

y(t)=v0t−12gt2,Hmax⁡=v022g,Tjump=2v0gy(t) = v_0 t - \frac{1}{2}gt^2, \quad H_{\max} = \frac{v_0^2}{2g}, \quad T_{\text{jump}} = \frac{2v_0}{g}

証明・導出

ニュートンの運動方程式と微積分による導出: 鉛直方向の運動方程式は:

md2ydt2=−mg  ⟹  d2ydt2=−gm \frac{d^2 y}{dt^2} = -mg \implies \frac{d^2 y}{dt^2} = -g

時刻 tt について積分すると、速度 vy(t)v_y(t) が得られる:

vy(t)=∫(−g)dt=−gt+C1v_y(t) = \int (-g) dt = -gt + C_1

初期条件 vy(0)=v0v_y(0) = v_0 より C1=v0C_1 = v_0。したがって vy(t)=v0−gtv_y(t) = v_0 - gt。 さらに tt について積分すると変位 y(t)y(t) が得られる:

y(t)=∫(v0−gt)dt=v0t−12gt2+C2y(t) = \int (v_0 - gt) dt = v_0 t - \frac{1}{2}gt^2 + C_2

初期条件 y(0)=0y(0) = 0 より C2=0C_2 = 0。したがって:

y(t)=v0t−12gt2y(t) = v_0 t - \frac{1}{2}gt^2

頂点(最高点)では垂直速度がゼロ(vy(t)=0v_y(t) = 0)となるため、t=v0gt = \frac{v_0}{g}。これを代入すると頂点の座標(最大高度)が導出される。

押さえておきたいポイント

  • 2Dアクションゲームのすべてのジャンプ挙動は二次関数の放物線運動そのもの
  • 「フワフワしたジャンプ」か「キビキビしたジャンプ」かは、初速 v0v_0 と重力 gg の比率で完璧にコントロールできる
  • ゲーム開発ではフレームごとに `vy += gravity; y += vy;` と足し算(オイラー法)するだけで自動的に二次関数軌道を描く
  • 中学・高校で習う二次関数の平方完成や頂点の座標が、ゲームのステージ設計(穴の幅や足場の高さ)に直結している
参照基準・学習指導要領との対応

本トピックの内容・数理モデルは、文部科学省学習指導要領(算数・数学・情報)および国際標準カリキュラムに準拠し、エンジニアリング現場の実装事例と照らし合わせてMath World Lab編集部により検証・作成されています。

Layer 3 — 工学応用・現場実装

2Dアクションゲーム・プラットフォーマー物理更新エンジン

UnityやGodot、HTML5 Canvasゲームで用いられるフレームレート非依存のジャンプ・重力演算ループ。

1// 2Dアクションキャラクターの物理更新クラス
2export class JumpPhysicsController {
3 x: number = 0;
4 y: number = 0;
5 vx: number = 0;
6 vy: number = 0;
7 isGrounded: boolean = true;
8
9 // ゲームデザイナーが直感的に決めるパラメータ
10 jumpHeight: number = 120; // 最大ジャンプ高さ (px)
11 timeToJumpApex: number = 0.4; // 最高点に達するまでの時間 (秒)
12
13 // 数学的に導出される物理定数
14 gravity: number;
15 initialJumpVelocity: number;
16
17 constructor(jumpHeight: number = 120, timeToApex: number = 0.4) {
18 this.jumpHeight = jumpHeight;
19 this.timeToJumpApex = timeToApex;
20 // 重力: g = 2h / t^2
21 this.gravity = (2 * this.jumpHeight) / Math.pow(this.timeToJumpApex, 2);
22 // 初速: v0 = 2h / t
23 this.initialJumpVelocity = (2 * this.jumpHeight) / this.timeToJumpApex;
24 }
25
26 jump() {
27 if (this.isGrounded) {
28 this.vy = -this.initialJumpVelocity; // 上向き(Canvas座標系はY下向き)
29 this.isGrounded = false;
30 }
31 }
32
33 update(dt: number) {
34 if (!this.isGrounded) {
35 this.vy += this.gravity * dt; // 速度の更新
36 this.y += this.vy * dt; // 位置の更新 (二次関数軌道)
37
38 // 地面判定 (地面Y=0とする)
39 if (this.y >= 0) {
40 this.y = 0;
41 this.vy = 0;
42 this.isGrounded = true;
43 }
44 }
45 }
46}
この単元につながる学習ロードマップ

次に学ぶならコレ!おすすめトピック

この単元と深い繋がりを持つ、あわせて学ぶと理解が深まるおすすめ単元

数理モデル・概念が近い関連トピック

関連度高中学数学

二次関数と放物線

a, b, c を動かすと放物線の形と位置はどう変わる?

関連度高工学応用

当たり判定アルゴリズムの数学

2点間の距離公式と座標の不等式だけで、ゲームの「衝突」を判定する仕組み

✨1% 排出100連ガチャ当選 63.4%爆死 36.6%1/e の法則
関連度高中学数学

ガチャ確率と大数の法則(確率の心理バイアス)

「確率1%を100回引けば当たる?」余事象と二項分布が暴くスマホゲームの現実

同じレベルで次に挑戦したいトピック

同レベル推薦中学数学

三平方の定理

直角三角形の3辺に隠れた面積の等式

同レベル推薦中学数学

一次関数とグラフ

傾きと切片を動かすと、直線はどう変わる?

同レベル推薦中学数学

確率の基礎(場合の数)

サイコロを何度も振ると、確率はどこに落ち着く?

工学・実社会での応用先でつながるトピック

工学・実践連携小学校・算数

円の面積と円周率

半径を変えると、円周と面積はどう変わる?

工学・実践連携小学校・算数

三角形・多角形の面積

頂点を動かして、面積の公式が成り立つ理由を確かめよう

工学・実践連携小学校・算数

単位変換(長さ・面積・体積)

長さが2倍になると、面積・体積は何倍になる?

あなたの数学力をさらに伸ばす

数学の弱点診断や算数パズルに挑戦してみませんか?

簡単な質問に答えてあなたにぴったりの学習ロードマップを発見したり、直感を試すパズルで数の面白さを体験できます。