Unityで作る2Dアクションの基本|移動・ジャンプ・攻撃まで完全実装ステップ

アクションゲームの作り方

Unityで2Dアクションゲームを作りたい。でも、何から手をつけていいか分からない。

多くの学生が最初につまずくのが、キャラクターの移動とジャンプの実装です。

実は、Rigidbody2DとCollider2Dの基本を押さえれば、意外とシンプルに作れます。

この記事では、Unityで2Dアクションを作る際の基本要素を、実際に動くコード例と共に解説します。

この記事でわかること

  • Rigidbody2Dを使った移動の実装方法
  • ジャンプ処理の作り方と調整のコツ
  • 攻撃判定の基本構造
  • 当たり判定の設定とデバッグ方法
ゲーム開発講師
ゲーム開発講師

まずは基本の移動から実装していきましょう。コードをコピペして動かしてみるのが、理解への近道です。

ゲーム制作をゼロから学びたいあなたへ
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる
ゲームを「遊ぶ側」から「作る側」へ

あなたのオリジナルゲーム、今年こそ完成させませんか?

RPG・アクション・ホラー…Unityで本格ゲームを作りたい人のための学習サイトです。

Unity入門の森|永久会員チケット

永久会員チケット|Unity入門の森

全講座ラインナップを見てみる

実際に完成するゲームを題材に、
ソースコード・素材・プロジェクト一式をすべて公開。
仕事や学校の合間の1〜2時間でも、
「写経→改造」で自分のゲームまで作りきれる環境です。

2Dアクションに必要な基本要素

2Dアクションゲームの基本要素 Unity

2Dアクションゲームを作るうえで、最初からすべての機能を実装する必要はありません。

まずは「キャラクターを操作して、敵とやり取りできる状態」を作ることが重要です。

Unityで2Dアクションを作る場合、最低限押さえておきたい基本要素は次の4つです。

  • Rigidbody2Dを使ったキャラクターの移動処理(左右移動)
  • Raycastによるジャンプの接地判定とジャンプ処理
  • Collider2D(Trigger)を使った攻撃判定の実装
  • レイヤー設定を利用した当たり判定の管理

これらを実装できれば、「動く・跳ぶ・攻撃する」という2Dアクションゲームの土台が完成します。

重要なのは、一度にすべてを作ろうとしないことです。

本記事では、以下の順番で実装を進めていきます。

  • 移動
  • ジャンプ
  • 攻撃

この順で1つずつ動作を確認しながら進めることで、初心者でもつまずきにくく、理解しながら実装できます。

Rigidbody2Dを使った移動の実装

Unity Rigidbody2D 移動実装

2Dアクションゲームにおいて、キャラクターの移動は最も基本となる処理です。

まずは左右にスムーズに動かせるようにしていきましょう。

Unityの2Dアクションでは、Rigidbody2Dコンポーネントを使って移動を実装する方法が一般的です。

Transformを直接変更して移動させることもできますが、Rigidbody2Dを使うことで、重力や衝突判定と自然に連動した動きを作れます。

まずは、プレイヤーとなるゲームオブジェクトに、以下のコンポーネントを追加してください。

  • Rigidbody2D
  • Collider2D(BoxCollider2D など)

コンポーネントを追加したら、スクリプトを作成して移動処理を実装します。

このコードで、左右の矢印キーでキャラクターが移動します。

ポイントは、Update()で入力を受け取り、Rigidbody2Dのvelocityを変更することです。

Y軸の速度(rb.velocity.y)はそのまま保持することで、ジャンプ中の移動も自然になります。

ゲーム開発講師
ゲーム開発講師

moveSpeedの値を変えると、移動速度が調整できます。5fだと少し速めなので、3fくらいから始めるのも良いでしょう。

ジャンプ処理の実装方法

Unity ジャンプ実装 2Dアクション

ジャンプは、2Dアクションゲームの操作感を大きく左右する重要な処理です。

常にジャンプできてしまうと不自然な動きになるため、地面に接地している時だけ実行できるようにします。

接地判定には、Raycastを使う方法が一般的です。

キャラクターの真下に向けて線を飛ばし、地面があるかどうかをチェックします。

以下のコードを追加してください。

このRaycastでは、プレイヤーの真下0.6fの範囲に、「Ground」レイヤーが設定されたオブジェクトがあるかを判定しています。

地面として扱いたいオブジェクトには、必ず「Ground」レイヤーを設定してください。

ジャンプ力(jumpForce)は、10fだと少し強めです。

8f〜12fの範囲で調整すると、操作感が良くなります。

⚠️ 注意点

  • 地面オブジェクトには「Ground」レイヤーを設定すること
  • プレイヤーオブジェクトは「Ground」レイヤー以外にすること
  • Raycastの距離(0.6f)は、キャラクターのサイズに合わせて調整が必要

攻撃判定の作り方

Unity 攻撃判定 2Dアクション

攻撃判定は、空の子オブジェクトにCollider2Dを付けて実装します。

攻撃中だけ有効化することで、タイミングを制御できます。

まず、プレイヤーの子オブジェクトとして「AttackArea」を作成します。

そこに、以下のスクリプトを追加してください。

AttackAreaオブジェクトには、BoxCollider2Dを追加し、Is Triggerにチェックを入れます。

攻撃ボタンを押した時だけ、このオブジェクトを有効化するようにします。

PlayerControllerに、以下のコードを追加してください。

Zキーを押すと、0.2秒間だけ攻撃判定が有効になります。

この時間を調整することで、攻撃のタイミングを変えられます。

当たり判定の設定とデバッグ

Unity 当たり判定 デバッグ 2D

当たり判定が正しく動作しない場合、以下の点を確認してください。

  • Collider2Dが正しく設定されているか(サイズ、位置)
  • Is Triggerの設定が意図通りか
  • レイヤーの設定が正しいか
  • Rigidbody2Dの設定(Body Type、Gravity Scale)

デバッグには、SceneビューでCollider2Dの範囲を確認するのが効果的です。

Gizmosを有効にすると、実行中でも当たり判定の範囲が見えます。

また、OnTriggerEnter2DやOnCollisionEnter2DにDebug.Logを入れると、判定が発生したタイミングを確認できます。

ゲーム開発講師
ゲーム開発講師

当たり判定がうまく動かない時は、まずCollider2Dのサイズを大きくしてみてください。小さすぎると、すり抜けてしまうことがあります。

ゲーム制作をゼロから学びたいあなたへ
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる

実践的な2Dアクション制作を学ぶには

Unity 2Dアクション 講座 学習

ここまで、移動・ジャンプ・攻撃の基本実装を解説してきました。

ただし、実際のゲーム制作では、さらに多くの要素が必要になります。

敵AI、ステージ構成、エフェクト、UIなど、全体を体系的に学ぶには、専門の講座が効率的です。

Unity入門の森では、2Dアクションゲームの作り方を、基礎から完成まで丁寧に解説しています。

コードの意味から、なぜその実装方法を選ぶのかまで、しっかり理解できる内容になっています。

Q: 初心者でも本当に作れるの?
A: はい。Unity入門の森の講座では、プログラミング経験がなくても、手順通りに進めれば完成までたどり着けます。分からない部分は、動画と図解で詳しく説明しています。

2Dアクション制作に特化した講座なら、効率的にスキルアップできます。

ゲーム制作でスキルを上げたい方は、ぜひチェックしてみてください。

ゲームを「遊ぶ側」から「作る側」へ

あなたのオリジナルゲーム、今年こそ完成させませんか?

RPG・アクション・ホラー…Unityで本格ゲームを作りたい人のための学習サイトです。

Unity入門の森|永久会員チケット

永久会員チケット|Unity入門の森

全講座ラインナップを見てみる

実際に完成するゲームを題材に、
ソースコード・素材・プロジェクト一式をすべて公開。
仕事や学校の合間の1〜2時間でも、
「写経→改造」で自分のゲームまで作りきれる環境です。

まとめ

Unity 2Dアクション まとめ

Unityで2Dアクションを作る基本要素を解説しました。

要点のまとめ

  • 移動はRigidbody2Dのvelocityを変更する
  • ジャンプは接地判定と組み合わせて実装する
  • 攻撃判定は子オブジェクトで管理する
  • 当たり判定のデバッグは、GizmosとDebug.Logを活用する

基本を押さえれば、あとは応用していくだけです。

まずは、ここで紹介したコードを実際に動かしてみてください。

動かしながら理解を深めていくのが、上達への近道です。

ゲーム制作をゼロから学びたいあなたへ
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる

コメント

タイトルとURLをコピーしました