Unityで作るターン制バトル|行動順と入力処理がわかる基礎ガイド

シミュレーションゲームの作り方

ターン制バトルは、多くのゲームで採用されている定番のシステムです。

しかし、実装してみると「行動順が崩れる」「行動中に入力が入ってしまう」など、思った以上につまずきやすいポイントでもあります。

行動順の管理と入力処理は、ターン制バトル実装の核心です。

この記事では、ターン制システムを破綻させないための考え方と実装方法を、基礎から順を追って解説します。

この記事でわかること

  • ターン制システムの基本構造
  • 行動順キューの実装方法
  • ステートマシンを使った状態管理の考え方
  • 入力受付のON/OFF切り替えによる誤操作防止
  • 実際に使える実装例とコード
ゲーム開発講師
ゲーム開発講師

ターン制システムは、ステートマシンで管理すると全体の流れが整理しやすくなります。まずは「どんな状態が存在するか」を明確にすることが重要です。

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

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

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

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

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

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

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

ターン制システムの基本構造

unity-turn-system-001

ターン制システムは、以下の流れで動作します。

それぞれの処理を理解しましょう。

ターン制システムの流れ
  • STEP1
    ターン開始

    現在のターンのユニットを決定します。プレイヤーターンか敵ターンかを判定します。
  • STEP2
    行動選択

    プレイヤーターンなら、プレイヤーが行動を選択します。敵ターンなら、AIが行動を決定します。
  • STEP3
    行動実行

    選択した行動を実行します。移動・攻撃・スキルなど。
  • STEP4
    結果処理

    ダメージ計算、HP更新、状態変化などを処理します。
  • STEP5
    ターン終了

    次のターンへ進みます。すべてのユニットが行動済みなら、ターンをリセットします。

この流れを実装すれば、基本的なターン制システムが完成します。

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

行動順キューの実装

unity-turn-system-002

行動順は、速度(素早さ)で決まります。

実装方法を紹介します。

速度による行動順決定

このコードで、速度による行動順が実装できます。

速度が高いユニットから順番に行動します。

行動順の表示

行動順をUIで表示します。

プレイヤーが次の行動を予測できます。

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

ステートマシンを使った状態管理

unity-turn-system-003

ステートマシンで、ターン制システムを管理します。

実装方法を紹介します。

ターン制ステートマシン

このコードで、ステートマシンによるターン制システムが実装できます。

状態遷移が明確になります。

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

入力受付のON/OFF切り替え

unity-turn-system-004

入力受付をON/OFFで切り替えることで、誤操作を防げます。

実装方法を紹介します。

入力管理システム

入力受付をON/OFFで切り替えます。

行動実行中は、入力を受け付けません。

ターン制システムとの連携

状態に応じて、入力受付を切り替えます。

行動選択中のみ、入力を受け付けます。

入力受付の切り替えタイミング

  • ON:行動選択中、ユニット選択中
  • OFF:行動実行中、アニメーション再生中、ターン終了処理中
ゲーム制作をゼロから学びたいあなたへ
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる

実装例:完全なターン制システム

unity-turn-system-005

実際に使える、完全なターン制システムの実装例を紹介します。

このコードで、完全なターン制システムが実装できます。

行動順管理、ステートマシン、入力管理を統合しています。

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

ターン制システムは、ステートマシンで管理すると整理しやすくなります。状態遷移を明確にしましょう。

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

よくある質問(FAQ)

unity-turn-system-006

Q: 行動順はどう決めればいいですか?
A: 速度(素早さ)で決めるのが一般的です。速度が高いユニットから順番に行動します。同速の場合は、ランダムに決定します。
Q: ステートマシンは必須ですか?
A: 必須ではありませんが、強く推奨します。状態が増えると、if文の連続では管理が難しくなります。ステートマシンを使えば、整理しやすくなります。
Q: 入力受付の切り替えを忘れました。どう対処すればいいですか?
A: 入力管理システムを作りましょう。EnableInput/DisableInputメソッドで、一括管理できます。状態に応じて、自動で切り替えます。
Q: ターン制システムが複雑になってきました。どう整理すればいいですか?
A: クラスを分離しましょう。TurnOrderManager、InputManager、BattleSystemなど、役割ごとに分けることで、整理しやすくなります。
Q: 行動順の表示はどう実装すればいいですか?
A: UIで表示しましょう。速度でソートしたユニットリストを表示します。現在のターンのユニットをハイライト表示すると、分かりやすくなります。
ゲーム制作をゼロから学びたいあなたへ
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる
ゲームを「遊ぶ側」から「作る側」へ

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

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

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

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

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

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

まとめ

unity-turn-system-007

ターン制システムは、ステートマシンで管理すると整理しやすくなります。

行動順管理と入力管理を統合しましょう。

今日から始める3ステップ

  • ステップ1:行動順キューを実装する(所要2時間)
  • ステップ2:ステートマシンで状態管理する(所要2時間)
  • ステップ3:入力受付のON/OFF切り替えを実装する(所要1時間)

本格的にUnityを学びたい方は、Unity入門の森で実践的なスキルを身につけましょう。

あなたのペースで、少しずつ進めていけば大丈夫です。

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

コメント

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