マリオ風のジャンプを実装したい。でも、等加速度運動や操作感の調整が分からない。
多くの学生が最初に感じるのが、この疑問です。
実は、マリオのジャンプは、等加速度運動と操作感の調整で実現できます。
この記事では、マリオのジャンプを再現する方法として、等加速度運動と操作感の秘密を解説します。
✨ この記事でわかること
- 等加速度運動の基本
- マリオ風ジャンプの計算式
- 操作感の調整方法
- Unityでの再現方法

マリオのジャンプは、等加速度運動と操作感の調整で実現できます。まずは、基本的な計算式から理解しましょう。
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる
あなたのオリジナルゲーム、今年こそ完成させませんか?
RPG・アクション・ホラー…Unityで本格ゲームを作りたい人のための学習サイトです。
実際に完成するゲームを題材に、
ソースコード・素材・プロジェクト一式をすべて公開。
仕事や学校の合間の1〜2時間でも、
「写経→改造」で自分のゲームまで作りきれる環境です。
等加速度運動の基本

等加速度運動は、一定の加速度で速度が変化する運動です。
主な要素は次の通りです。
- 初速度
- 加速度
- 時間
これらを組み合わせることで、ジャンプ中の動きを思い通りにコントロールできます。
上昇時は少しずつ勢いが落ち、頂点を過ぎると一気に落下が始まる――
この動きが、マリオ特有の「気持ちいいジャンプ」を生み出しています。
マリオ風ジャンプの計算式

マリオ風ジャンプの計算式は、次の要素で構成します。
- ジャンプの初速度
- 重力加速度
- ボタンを離したときの減速
これらを組み合わせることで、マリオ風ジャンプ特有の「高さを調整できる操作感」が生まれます。
入力の長さによってジャンプの結果が変わるのが、大きな特徴です。

マリオのジャンプが気持ちいい理由は、「ジャンプした瞬間」ではなく「ボタンを離すタイミング」にあります。この仕組みを押さえておくと、ただの上下運動ではなく、操作している実感のあるジャンプを作れるようになります。
操作感の調整方法

マリオ風ジャンプの操作感は、いくつかのパラメータ調整で作られています。
感覚的な動きに見えますが、実際には数値によって細かく制御されています。
- ジャンプの初速度
- 重力加速度
- ボタンを離したときの減速率
これらを調整することで、ジャンプの高さや滞空時間、落下の速さを変えられます。
たとえば、初速度を上げるとジャンプは高くなり、重力加速度を下げるとゆっくり落下します。
Unityでの再現方法

Unityでは、Rigidbody2D の速度と重力を制御することで、マリオ風ジャンプを再現できます。

まずは、実装の全体像をステップで確認しておきましょう。
- STEP1Rigidbody2Dを設定
Rigidbody2Dを追加し、重力を使った挙動を有効にします。
- STEP2ジャンプ処理を実装
ボタンを押した瞬間に、上方向の初速度を与えます。
- STEP3ボタンを離した処理を実装
ボタンを離したタイミングで、上方向の速度を減速させます。
- STEP4パラメータを調整
初速度・重力・減速率を調整して操作感を仕上げます。
この流れを押さえておけば、基本的なマリオ風ジャンプは完成です。
次に、実際のコード例を見てみましょう。
ジャンプ処理のシンプルな実装例(Unity)
ここでは、「ボタンを長く押すと高く飛び、早く離すと低く飛ぶ」マリオ風ジャンプを再現する最小構成のコード例を紹介します。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
public class PlayerJump : MonoBehaviour { [SerializeField] float jumpPower = 12f; [SerializeField] float gravityScale = 25f; [SerializeField] float releaseMultiplier = 0.5f; Rigidbody2D rb; void Awake() { rb = GetComponent<Rigidbody2D>(); } void Update() { // ジャンプ開始 if (Input.GetButtonDown("Jump")) { rb.velocity = new Vector2(rb.velocity.x, jumpPower); } // ボタンを離したときに減速 if (Input.GetButtonUp("Jump") && rb.velocity.y > 0) { rb.velocity = new Vector2(rb.velocity.x, rb.velocity.y * releaseMultiplier); } } void FixedUpdate() { // 重力の調整 rb.gravityScale = gravityScale; } } |
このコードでは、「ジャンプ開始」と「ボタンを離した瞬間」の2点だけを制御しています。
ジャンプの高さや操作感は、ほぼすべて数値調整で変えられます。
調整パラメータの目安

ジャンプ調整でよく使われるパラメータの目安は、次の通りです。
| パラメータ | 目安 | 効果 |
| 初速度 | 10〜15 | ジャンプの高さ |
| 重力加速度 | 20〜30 | 落下速度 |
| 減速率 | 0.5〜0.7 | ボタンを離したときの減速 |
これらの数値を少しずつ調整しながら、「高すぎないか」「落下が重くないか」を確認していくのがコツです。
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる
実践的なマリオ風ジャンプ制作を学ぶには

ここまで、マリオのジャンプを再現する方法について解説してきました。
マリオ風ジャンプは、アクションゲームに必須の機能です。
Unity入門の森では、Unityを使ったアクションゲームの作り方を、基礎から完成まで丁寧に解説しています。
コードの意味から、なぜその実装方法を選ぶのかまで、しっかり理解できる内容になっています。
アクションゲーム制作に特化した講座なら、効率的にスキルアップできます。
ゲーム制作でスキルを上げたい方は、ぜひチェックしてみてください。
あなたのオリジナルゲーム、今年こそ完成させませんか?
RPG・アクション・ホラー…Unityで本格ゲームを作りたい人のための学習サイトです。
実際に完成するゲームを題材に、
ソースコード・素材・プロジェクト一式をすべて公開。
仕事や学校の合間の1〜2時間でも、
「写経→改造」で自分のゲームまで作りきれる環境です。
まとめ

マリオのジャンプを再現する方法について解説しました。
要点のまとめ
- 等加速度運動は、一定の加速度で速度が変化する運動
- マリオ風ジャンプは、ボタンを長く押すと高く飛び、早く離すと低く飛ぶ
- 操作感の調整は、初速度や重力加速度で制御する
- Unityでの再現は、Rigidbody2Dと速度制御で実現する
基本を押さえれば、あとは応用していくだけです。
まずは、シンプルなジャンプから始めてみてください。
動かしながら理解を深めていくのが、上達への近道です。
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる



コメント