スクラッチでマリオのような横スクロールアクションゲームを作ってみたい。でも、キャラクターを動かす方法やジャンプのコード、敵との当たり判定など、何から始めればよいのかわからない人も多いはずです。Scratchは、ブロックを組み合わせてプログラミングできる無料の学習環境です。基本的な操作を覚えれば、左右移動、ジャンプ、コイン集め、敵との衝突といったゲームの仕組みを段階的に作れます。
2026年に初めてゲーム制作に挑戦するなら、最初から本格的なマリオブラザーズの再現を目指す必要はありません。まずはキャラクターが動く小さなステージを完成させ、そこにジャンプ、地面との衝突判定、敵、効果音を追加する方法がおすすめです。この記事では、Scratch公式ヘルプの学習内容も参考にしながら、初心者向けのブロックの組み方、失敗しやすいポイント、作品の保存・共有まで順番に解説します。
【準備編】スクラッチでマリオ風ゲームを作る前に知っておきたいこと

Scratchでゲームを作るときは、まずゲームの仕組みを小さく分けて考えることが大切です。キャラクターを動かす処理、ジャンプする処理、地面に着地する処理は、それぞれ別の役割を持っています。最初にすべてを一つのスクリプトへ詰め込むと、動かない原因を見つけにくくなります。
Scratchで作れるマリオ風ゲームの基本要素- プレイヤー:左右に移動し、ジャンプできるキャラクター
- ステージ:地面、空、ブロックなどを配置した背景
- 敵キャラクター:左右に動いたり、触れるとダメージを与えたりする相手
- アイテム:触れると得点が増えるコインなど
- ゲーム進行:クリア条件、残りライフ、ゲームオーバーなど
- 演出:ジャンプ音、アイテム取得音、クリア時の効果音
初心者は、まず「キャラクターを動かして、ジャンプし、地面に着地する」までを完成させましょう。この段階で基本動作が安定すれば、敵やアイテムを追加する作業が簡単になります。
無料で始める方法Scratchは無料で利用できます。ブラウザー上のエディターでプロジェクトを作成でき、作品の保存や公開には利用状況に応じてアカウントへのログインが必要です。Scratchの公式ヘルプには、スプライトを動かす方法、簡単なゲームの作り方、コスチュームや効果音の扱い方を学べるチュートリアルも用意されています。
なお、任天堂のマリオのキャラクター画像、ゲーム画面、音楽などを使う場合は、著作権や利用条件に注意が必要です。個人でプログラミングを学ぶ場合と、作品をインターネット上で公開・配布する場合では、考慮すべき点が異なります。公開を前提にするなら、自分で描いたキャラクターやオリジナルの背景・音源を使い、「マリオ風」のアクションゲームとして制作する方法が安心です。
【作成手順】マリオのスプライト・背景・キー操作を設定する
Scratchのゲーム制作では、キャラクターを「スプライト」、ステージの背景を「背景」として扱います。まずはプレイヤー、地面、背景の3つを用意し、動作確認ができる状態を作ります。
1. プレイヤーのスプライトを作るスプライト一覧から既存のキャラクターを選ぶか、描画エディターでオリジナルのキャラクターを作成します。マリオに似た操作感を目指す場合も、最初はシンプルな人型のキャラクターで十分です。
コスチュームを複数用意すると、移動中に足を動かしたり、ジャンプ中の姿勢を変えたりできます。例えば「立ち姿」「走る姿」「ジャンプ姿」の3種類を作れば、ゲームらしい動きを表現できます。
左右移動時にキャラクターが上下逆さまにならないよう、スプライトの回転方法は「左右のみ」に設定するのがポイントです。コスチュームの中心位置がずれていると、切り替えた瞬間にキャラクターが跳ねたように見えるため、中心位置も確認してください。
2. 背景と地面を設定する背景には空や山などを描き、地面は別のスプライトとして作成すると、当たり判定を設定しやすくなります。背景は見た目を担当し、地面のスプライトはキャラクターが着地する場所を担当する、という役割分担です。
Scratchのステージは横480、縦360の座標空間で、中央がX座標0・Y座標0です。左右方向はX座標、上下方向はY座標で管理します。ステージの下側に地面を配置し、プレイヤーがその上に立てる位置へ調整しましょう。
3. キー操作を設定する基本操作は、右矢印キーで右へ、左矢印キーで左へ、スペースキーでジャンプする構成がおすすめです。キャラクターのスプライトを選び、「イベント」「制御」「動き」のブロックを組み合わせます。
キーを押している間ずっと移動させるには、「右向き矢印キーが押されたとき」というイベントを単独で使うよりも、「緑の旗が押されたとき」の下に「ずっと」を置き、その中で「キーが押された?」を調べる方法が便利です。これならキーを押し続けたときも連続して移動できます。
【動作の核心】左右移動・ジャンプ・重力のコードを組む
ここがスクラッチのマリオ風ゲーム制作で最も重要な工程です。左右移動だけなら簡単ですが、ジャンプして自然に落下し、地面に着地する仕組みには少し工夫が必要です。
左右移動のブロックプレイヤーのスプライトを選択し、次の順番でブロックを組みます。以下はブロックの内容を文章で表したものです。実際のエディターでは、対応するブロックをドラッグして接続してください。
[緑の旗が押されたとき]
[ずっと]
もし[右向き矢印キーが押された?]なら
[X座標を4ずつ変える]
もし[左向き矢印キーが押された?]なら
[X座標を-4ずつ変える]
移動速度を決める数値は、右方向を4、左方向を-4にしています。この数値を大きくすると移動が速くなり、小さくするとゆっくり動きます。最初は4前後から試し、遊びやすい速度へ調整するとよいでしょう。
ただし、移動速度はスプライトの大きさやステージ構成によって体感が変わります。速くしすぎると、細い足場を飛び越えたり、敵との接触を見落としたりする原因になります。
ジャンプに重力を加えるジャンプを作るには、変数「Y速度」を用意します。これはキャラクターが上下方向にどれだけ動くかを表す数値です。ジャンプを開始するとY速度を正の値にし、時間が進むたびに重力によってY速度を減らします。上昇が止まると、今度は下へ落ちていきます。
次の例では、変数「Y速度」と、地面用スプライト「地面」を使います。キャラクターが地面に触れているときだけジャンプできるようにするため、空中でスペースキーを押しても連続して飛び上がりません。
[緑の旗が押されたとき]
[Y速度を0にする]
[ずっと]
もし[スペースキーが押された?]かつ[地面に触れている?]なら
[Y速度を12にする][Y速度を-1ずつ変える]
[Y座標をY速度ずつ変える]もし[地面に触れている?]なら
[Y速度を0にする]
このコードはジャンプの基本原理を理解するための簡易例です。地面との接触を調べるタイミングによっては、キャラクターが地面に少し埋まったり、着地時に揺れたりする場合があります。実際に動かして問題が起きたら、次の点を確認してください。
- プレイヤーの初期位置が地面の内部になっていないか。
- 地面のスプライトが画面上に表示され、当たり判定の対象になっているか。
- Y速度が毎回0に戻され、ジャンプが途中で止まっていないか。
- 地面に接触していない状態でもジャンプできる条件になっていないか。
より安定した着地を実現するには、地面に触れたときに上方向へ少しずつ戻して重なりを解消する処理や、上下移動を分けて衝突を調べる処理を追加します。複数の足場や段差を作る場合は、地面との当たり判定を独立した処理として設計すると調整しやすくなります。
ジャンプの高さと落下速度を調整するジャンプ開始時のY速度を12から14に変えると、より高く跳べます。重力を-1から-0.8相当の値に調整すれば落下が緩やかになりますが、Scratchでは変数に小数を使うこともできます。
一方、ジャンプの高さだけを大きくすると、足場を簡単に飛び越えてしまう場合があります。ジャンプ力、重力、移動速度はセットで調整し、ステージの幅や足場の間隔と合わせてテストすることが大切です。
【ゲームらしさを追加】敵キャラクター・当たり判定・効果音を設定する
キャラクターが移動してジャンプできるようになったら、敵やコインを加えます。ゲームの完成度を左右するのは、単に敵を置くことではなく、プレイヤーが敵やアイテムに触れたときに何が起きるかを決めることです。
敵キャラクターを動かす敵用のスプライトを追加し、「緑の旗が押されたとき」から「ずっと」の中でX座標を変化させます。「端に着いたら、跳ね返る」ブロックを組み合わせれば、ステージの端で折り返す敵を作れます。
[緑の旗が押されたとき]
[回転方法を左右のみにする]
[ずっと]
[X座標を-2ずつ変える]
[もし端に着いたら、跳ね返る]
この例では敵が一定の速度で左右に移動します。足場の上だけを動かしたい場合や、決められた範囲を巡回させたい場合は、移動するX座標の範囲を変数で管理すると応用できます。
敵との当たり判定を作るプレイヤーが敵に触れたかどうかは、「調べる」カテゴリにある「○○に触れた?」ブロックで判定できます。最初は、接触したらライフを減らす仕組みがわかりやすいでしょう。
プレイヤー側に「ライフ」という変数を作り、ゲーム開始時に3を設定します。敵に触れたら1を減らし、敵から離れるまで待つ処理を加えると、接触している間にライフが何度も減る問題を抑えられます。
[緑の旗が押されたとき]
[ライフを3にする]
[ずっと]
もし[敵に触れている?]なら
[ライフを-1ずつ変える]
[敵に触れていない状態になるまで待つ]
もし[ライフが0以下]なら
[ゲームオーバーを送る]
「ゲームオーバーを送る」は、実際にはイベントカテゴリの「メッセージを送る」ブロックと、受信側のスクリプトを組み合わせます。ゲームオーバー用の背景やメッセージを用意しておけば、ライフがなくなったときに画面を切り替えられます。
注意したいのは、この例では敵に触れた瞬間にライフが減るため、ジャンプ中に敵へ接触した場合もダメージが発生することです。敵を踏んだら倒せる仕組みにしたい場合は、接触時のY座標や落下中かどうかなどを追加で判定する必要があります。
コインを取得する仕組みコイン用のスプライトを配置し、プレイヤーが触れたら得点を増やします。コインが一度だけ取得されるよう、取得後に非表示にするか、クローンを削除する処理を加えましょう。
[緑の旗が押されたとき]
[得点を0にする]
[表示する]
[ずっと]
もし[プレイヤーに触れている?]なら
[得点を1ずつ変える]
[隠す]
このコードではコインが一つだけのステージを想定しています。複数のコインを配置する場合は、コインごとに処理を用意するか、クローンを利用して複数のコインを管理する方法が適しています。
効果音を追加するジャンプ音やコイン取得音を加えると、操作に対する反応が伝わりやすくなります。スプライトの「音」タブから利用できる音を選ぶか、自作の音声を取り込み、「音を鳴らす」ブロックを処理に組み込みます。
- ジャンプ時:ジャンプ用の音を鳴らす。
- コイン取得時:得点が増えたタイミングで取得音を鳴らす。
- ダメージ時:敵に触れたタイミングで短い効果音を鳴らす。
- クリア時:ゴール条件を満たしたときにクリア音を鳴らす。
効果音を「ずっと」の中で無条件に鳴らすと、音が連続して再生されることがあります。音を鳴らすブロックは、ジャンプや衝突などのイベントが起きたときに実行するように配置しましょう。市販ゲームの音楽や効果音を使う場合は、公開時の権利関係にも注意が必要です。
【工程一覧】初心者が完成までに確認したいポイントを比較
ゲーム制作でつまずきやすいのは、複数の仕組みを一度に作ろうとすることです。下の表を使って工程を分け、各段階で動作を確認してから次へ進むと、問題の原因を特定しやすくなります。
| 工程 | 作るもの・使用するブロック | 完成のチェックポイント |
|---|---|---|
| 1. 素材の準備 | プレイヤー、地面、背景 | キャラクターと地面が正しい位置に表示される |
| 2. 左右移動 | キー判定、X座標の変更 | 左右のキーを押した方向へ動く |
| 3. ジャンプ | Y速度、重力、スペースキー | 上昇・落下・着地が繰り返し正常に動く |
| 4. 敵の動き | X座標の変更、端で跳ね返る | 敵が想定した範囲内を移動する |
| 5. 当たり判定 | 接触判定、ライフ、得点 | 敵に触れるとライフが減り、コインで得点が増える |
| 6. 演出と公開 | 効果音、クリア画面、共有設定 | ゲームの開始から終了まで一通りプレイできる |
キャラクターが動かない:プレイヤーのスプライトを選択しているか、「緑の旗が押されたとき」の下に処理が接続されているか確認します。キー判定で使うキーの種類もチェックしてください。
ジャンプできない:「地面に触れている?」の判定が成立しているか確認します。プレイヤーが地面から離れすぎている場合や、地面のスプライト名がブロック内の選択と一致していない場合は、ジャンプ条件が成立しません。
空中で何度もジャンプできる:スペースキーを押しただけでジャンプできる設定になっていないか確認します。地面との接触をジャンプ条件に含め、Y速度を適切に管理してください。
敵に触れるとライフが一気に減る:接触判定が毎フレーム実行されている可能性があります。敵から離れるまで待つ処理を追加するか、ダメージを受けた後の無敵時間を設ける方法が有効です。
着地すると地面に埋まる:Y速度の変更とY座標の変更、地面との接触判定の順番を見直します。高速で落下する場合は、一度の移動で地面を通り抜けることがあるため、移動量を抑えるか、細かく衝突を調べる処理が必要です。
【公開・学習編】無料で遊ぶ方法、動画の活用、作品共有の注意点
基本動作が完成したら、コインを複数配置したり、敵を増やしたり、ゴール地点を作ったりして、ゲームを発展させましょう。最初に完成した作品を残してから機能を追加すると、変更によって不具合が起きても元の状態に戻しやすくなります。
スクラッチのマリオ作り方動画を活用する動画で学びたい場合は、Scratch公式ヘルプのビデオチュートリアルが参考になります。スプライトの移動、ジャンプ、簡単なゲーム制作など、個々の機能を学ぶ教材があるため、マリオ風ゲームに必要な操作を一つずつ習得できます。
マリオ風のゲームを扱う一般の解説動画を見る場合は、動画の公開時期や使用しているScratchの画面を確認しましょう。古い動画では、ブロックの配置やエディターの表示が現在の画面と異なる場合があります。完成したコードをそのまま再現するだけでなく、各ブロックが何をしているのかを理解すると、応用しやすくなります。
作品を保存・共有する方法制作途中のプロジェクトはこまめに保存し、作品が完成したら最初から最後までテストします。共有する際は、Scratchのプロジェクト画面から共有操作を行い、説明欄に操作方法やゲームの目的を書いておくと、ほかの人が遊びやすくなります。
Scratch公式のコミュニティガイドラインでは、作品やアイデアのリミックスを歓迎する方針が示されています。他の人の作品を参考にしたり、改変したりする場合は、元の作者へのクレジットを記載し、自分が追加・変更した内容も説明しましょう。また、他人の画像や音楽を使う場合は、Scratch上での共有ルールだけでなく、素材自体の利用条件にも注意が必要です。
特にマリオのキャラクターや音楽を使った作品は、Scratch上で見つかることがあっても、それだけで権利上の問題がないと保証されるわけではありません。公開範囲を広げる場合や作品を配布する場合は、オリジナルのキャラクター、背景、効果音に置き換える方法も検討してください。
【プロの結論】完成度を高めるなら、機能を一つずつ検証するScratchでゲームを作るときに最も大切なのは、ブロックをたくさん組むことではなく、各処理の役割を理解することです。左右移動、ジャンプ、地面との衝突、敵の接触判定を別々に動作確認すれば、不具合の原因を切り分けやすくなります。
初心者に向いているのは、まず短いステージを作り、移動とジャンプを完成させてから敵やコインを追加する進め方です。一方、複数のステージ、画面スクロール、複雑な敵AIなどを最初から再現しようとすると、変数や当たり判定が増え、難易度が急に上がります。基本動作を安定させてから機能を増やすほうが、結果的に完成までの近道になります。
【スクラッチマリオ作り方】に関するよくある質問(FAQ)
Q1:スクラッチでマリオ風ゲームは無料で作れますか?
A1:はい。Scratchは無料で利用でき、ブラウザー上でキャラクターや背景を配置し、ブロックを組み合わせてゲームを作れます。作品をオンラインで共有する場合は、アカウントへのログインや共有操作が必要です。
Q2:プログラミング初心者でもジャンプや敵の当たり判定を作れますか?
A2:作れます。まず左右移動を完成させ、変数「Y速度」と重力を使ってジャンプを実装し、その後に地面との接触判定を加えましょう。敵との判定は「○○に触れた?」ブロックとライフ変数を使うと、基本的な仕組みを作れます。
Q3:マリオの画像や音楽を使ってScratchの作品を公開してもよいですか?
A3:Scratch上で公開されている作品があることと、著作権上の利用許可があることは別です。クレジットを記載しただけで、すべての利用が認められるわけではありません。公開・配布を考えている場合は、利用条件を確認し、オリジナルのキャラクターや音源を使用する方法も検討してください。
スクラッチでマリオ風ゲームを作るなら、最初にプレイヤー、地面、背景を準備し、左右移動、ジャンプ、着地の順に実装するのが基本です。次に敵キャラクターやコインを追加し、当たり判定、ライフ、効果音を組み合わせれば、ゲームとしての形が整います。
作業中は一つの機能を追加するたびに動作を確認し、問題が起きたらブロックの順番、変数の値、接触判定の条件を見直しましょう。完成した作品は説明文や操作方法を整えて共有すると、ほかの人から意見をもらい、さらに改良するきっかけになります。
まずは短いステージで「移動できる・ジャンプできる・地面に着地できる」の3つを完成させること。それが、Scratchのプログラミングを学びながら、自分だけのマリオ風アクションゲームを作り上げる第一歩です。