ターン制RPGの作り方|まほう図書館の地下を進むコマンドバトルRPGをUnityで最後まで作る全27回

暗くなった書庫にページが舞い上がり、画面が揺れながら、紫の大きな本「禁じられた本」が現れる。まほうのページを呼び出し、くらやみの波で3人に同時にダメージ、ちからをためたあと、おおきな かみつきでスライムちゃんに大きなダメージ

「いつかRPGを作ってみたい!」ゲームを作りたいと思ったきっかけが、RPGだったという人も多いのではないでしょうか?ただ、フィールドやイベントまで全部作ろうとすると、とんでもない量になってしまいます・・・。そこでこのシリーズでは、フィールドを歩く部分は作らずに、RPGの一番の楽しさであるコマンドバトルと育成に集中します。ロビーから地下へ出発して戦い、レベルを上げて装備を整え、いちばん奥のボスを倒す。そんなコンパクトなRPGを、最初から最後まで一緒に作っていきたいと思います!

舞台は、まほう図書館の地下。本から逃げ出したものたちが、地下の書庫で暴れています。スライムちゃんと仲間たちが、図書館のロビーを拠点に、地下3階まで集めに行きます。

どんなゲームを作るの?

これまでに作った画面を並べたもの。タイトル、ロビー、メドゥーサの全体のいなずま、禁じられた本の登場、スタッフロール、「おわり」と「タイトルへ」
  • バトルは「たたかう・まほう・どうぐ・ぼうぎょ・にげる」を選ぶターン制のコマンドバトル
  • 横から見たサイドビュー。左に仲間3人、右に敵が並ぶ
  • 仲間は4人。そのうち3人がバトルに出て、ロビーで入れ替えられる
  • 敵を倒すと経験値とお金が入り、レベルアップして新しいまほうを覚える
  • 図書館のロビーで、休憩室・売店・装備・なかまの入れ替え・セーブ
  • 地下1〜3階を進み、いちばん奥のボス「禁じられた本」を倒せばエンディング
  • 攻撃すれば敵が光ってのけぞり、ダメージの数字が飛び出す。操作するたびに手応えが返ってくるところまで作る
  • マウス・キーボード・ゲームパッドのどれでも遊べる
  • 最後はWindowsのゲーム(.exe)にして、友達に遊んでもらえる形にする

登場するなかま

なかま役割主なまほう・わざ
スライムちゃんバランス型。打たれ強く、かんたんな回復も出来るちょこっとヒール/ぷるんアタック
フェアリー回復と補助ヒール/まもりの風/みんなでヒール/めざめの歌
キョンシーすばやい物理攻撃。おふだで敵を動けなくするれんげき/おふだ
メドゥーサ攻撃まほうと、石化・どくまほうの矢/へびのどく/せきかのまなざし/いなずま

地下の書庫

3つの階の表。ちか1かい(いつもの書庫)は こぼれたインク・紙ひこうき・本の虫、ちか2かい(緑がかった書庫)は 羽ペン・ぶあつい辞書・とびだす地球儀、ちか3かい(紫の暗い書庫)は ランプのおばけ・まほうのページ
階出てくる敵
地下1階こぼれたインク/紙ひこうき/本の虫(かみついて、どくにする)
地下2階羽ペン(れんぞくひっかき)/ぶあつい辞書(ためてから のしかかり)/とびだす地球儀(全員に ころがりアタック)
地下3階ランプのおばけ(ほのお)/まほうのページ(せきかのことば)
地下3階の奥禁じられた本(ボス。ページを呼び出し、決まった順番で大技を使う)

このシリーズの対象

夜の図書館の書庫で、左にスライムちゃん・フェアリー・キョンシーが右を向いて斜めに並び、その場で弾んでいる。右にこぼれたインク、上に「こぼれたインクが あらわれた!」のウインド
  • Unityスタートガイドをひととおり読んだ人
  • スクリプトの基本(変数・if・メソッド・クラス)に慣れてきた人
  • ほかのゲーム制作シリーズを1本作り終えた人(初めての人でも進められますが、作る量は多めです)

画面のほとんどがUIなので、スタートガイドの第9章(UI)の内容をたくさん使います。

スライム

RPGって、やっぱり大変なんですか・・・?

フェアリー

全27回あるけど、1回で作る量は少なめにしてあるよ!フィールドを作らない分、「データの作り方」と「バトルの流れ」は本格的。ここで覚えたことは、どんなゲームにも使えるよ

プロジェクトの環境

ロビーで「セーブ」を選ぶと、スライム・フェアリー・キョンシーが正面を向いて本を開き、「ぼうけんの きろくを かきこんだ!」と出る
  • Unityのバージョン:Unity 6.3 LTS
  • テンプレート:Universal 2D(URP)
  • 画面:横画面(1920×1080)
  • 入力:マウス・キーボード・ゲームパッド(Input SystemとUIのナビゲーション)

このシリーズで学べること

ロビーで「なかま」を選ぶと、右に4人の一覧が開く。キョンシーを選んでからメドゥーサを選ぶと、2人がぴょんと跳んで場所を入れ替わり、「キョンシーと メドゥーサが いれかわった!」

スタートガイドの知識をゲームで使う

このシリーズで新しく覚えること

  • コマンドをクラスで分ける:たたかう・まほう・どうぐ・ぼうぎょ・にげるを、同じ形で扱えるようにする
  • await で選択を待つ:コマンドやねらう相手を選び終わるまで待ってから、次へ進む
  • バトルの流れ:コマンドを選ぶ → すばやさ順に行動 → 勝ち負け → 次のターン、をenumで整理する
  • ダメージの計算と乱数:乱数を1か所にまとめて、シードを固定すると同じ結果になるようにする
  • 手応えの演出:前に出る・白く光る・のけぞる・数字・火花・ヒットストップ・画面の揺れ・赤いふち
  • 状態異常:どく・せきか・ふうじ・ぼうぎょアップを、残りターンとアイコンで管理する
  • シーンをまたいでデータを持ち越す:ロビーとバトルで、同じパーティ・持ち物・お金を使う
  • 自動プレイでバランスを決める:ゲームに自分で遊んでもらい、同じ条件で何回も通して結果を数える

目次

スライムちゃんとキョンシーが前に出て攻撃のポーズをとると、こぼれたインクが真っ白に光ってのけぞり、数字が飛び出して火花が散り、画面が揺れる

全27回は、大きく6つに分かれています。

回作るもの
#1〜#6バトル画面・データ・コマンドのメニュー・ねらう相手
#7〜#12ダメージ・攻撃と被弾の演出・バトルの流れ・勝ち負け・レベルアップ
#13〜#16まほう・状態異常・どうぐ
#17〜#20ロビー・売店・装備・なかまの入れ替え
#21〜#24地下3階・ボス・自動プレイでバランス
#25〜#27セーブ・タイトル・音・エンディング・ビルド

#1 プロジェクトの準備とバトル画面のレイアウト

  • 横画面のプロジェクトを作り、素材のzipを取り込む
  • メッセージ・コマンド・ステータスのウインドと、仲間と敵の場所を決める
  • 3人をその場で弾ませる

#2 キャラクターと敵のデータをScriptableObjectで作ろう

  • 能力をまとめたStatsと、CharacterData・EnemyDataを作る
  • 4人と最初の敵3体のデータから、並ぶ見た目を作る

#3 仲間のHPとMPを表示するステータスのウインド

  • 名前・Lv・HPとMPのゲージを、1人分の行にする
  • Layout Groupで、3人分を並べる

#4 コマンドをデータにして、メニューに並べよう

  • 「たたかう」「まほう」などのコマンドを、1つずつのクラスとデータにする
  • 仲間ごとのコマンドからボタンを作り、選ばれたコマンドをawaitで受け取る

#5 だれの番か、ひと目で分かるようにしよう

  • 選んでいる仲間だけを光らせて点滅させ、ほかの仲間を暗くする
フェアリーの番。フェアリーだけが薄い黄色に光り、スライムちゃんとキョンシーは暗い。ステータスでは「フェアリー」の名前が黄色

#6 たたかう相手を選ぼう

  • 矢印キーやマウスで、ねらう敵を選ぶ。キャンセルでコマンドに戻る

#7 たたかう:ダメージを計算してメッセージを出そう

  • バトル中の1人を表すBattleUnitと、乱数をまとめたGameRandom
  • こうげきとぼうぎょからダメージを計算し、メッセージを1文字ずつ順に出す

#8 攻撃の手応えを作ろう

  • 前に出て攻撃のポーズ、当たった敵が白く光ってのけぞる
  • ダメージの数字・火花・ヒットストップ・画面の揺れ

#9 バトルの流れを作ろう

  • バトルの場面にenumで名前を付けて、すばやさ順に動いて次のターンへ
  • ぼうぎょのコマンドと、倒れた敵をねらっていたときの ねらいの変え方

#10 敵の行動と、受けるときの演出

  • 敵が行動と相手を選んで攻撃してくる
  • 痛がるポーズ・画面のふちが赤く光る・遅れて縮むゲージ・戦闘不能

#11 勝ち負けと、にげる

  • 勝ったら喜ぶポーズ、負けたら暗くなる画面
  • すばやさで決まる、逃げる確率

#12 経験値とレベルアップ

  • 経験値の表で、レベルと能力を伸ばす
  • 「LEVEL UP!」の文字が飛び出す演出
スライム

ここまでで、ちゃんと戦えるようになりました!次はまほうですね

フェアリー

まほうも「たたかう」と同じコマンドのクラスで作るから、ここまでの形がそのまま使えるよ

#13 まほうとMP

  • まほうの一覧を開いて、MPを使って攻撃・回復する
  • 杖を振る・力をためるポーズと、まほうのパーティクル

#14 全体のまほうと、覚えるまほう

  • 敵全体・味方全員に効くまほう。選んでいるときは対象の全員を光らせる
  • レベルが上がると、本を読むポーズで新しいまほうを覚える
メドゥーサが いなずま を選ぶと敵3体が全員光り、Enterで決めると3体に同時に数字と火花が出て、一度に倒す

#15 状態異常と補助のまほう

  • どく・せきか・ふうじ・ぼうぎょアップを、何ターンか続く状態にする
  • 状態のアイコンと、ターンのはじめとおわりの処理

#16 どうぐとインベントリ

  • 持ち物の一覧(Scroll View)から、ハーブティーやまほうのクッキーを使う
  • 飲む・食べるポーズと、めざましどけいで倒れた仲間を起こす

#17 ロビーと休憩室

  • まほう図書館のロビーを作り、画面を暗くしてシーンを切り替える
  • HPとお金をシーンをまたいで持ち越し、休憩室で元気になる
こぼれたインクを倒して「ロビーへ」を押すと画面が暗くなり、図書館のロビーに戻る。「休憩室」を選ぶと10G払って、3人がうとうとし、明るくなるとHPが満タンになって喜ぶ

#18 売店

  • どうぐと装備を「売り物」としてまとめ、ロビーの売店で買う
  • お金が減っていくのを見せる

#19 装備の画面

  • 買った装備を付け替えて、能力の変化(こうげき 12 → 15)をひと目で見せる

#20 なかまの入れ替え

  • 4人目のメドゥーサが仲間に入り、バトルに出る3人を選ぶ
  • 控えの仲間にも、経験値を半分

#21 地下へ進もう

  • 階ごとの敵の組み合わせをデータにして、何回か戦いながら奥へ進む
  • 「さきへ すすむ」と「ロビーへ」、クリアしたら次の階へ

#22 地下2・3階の敵

  • ためてから大技・全員に当たる・まほうを使う敵
  • 仲間のまほうのクラスを、そのまま敵にも使う

#23 ボス「禁じられた本」

  • 暗くなってページが舞い、ボスが現れる登場の演出
  • 決まった順番の大技と、ボスだけの決まり(逃げられない・おふだが効かない)

#24 自動プレイでバランスを決めよう

  • 仲間のコマンドを自動で選んで、同じシードで何回も通す
  • 結果をConsoleで数えて、強すぎた どく と弱すぎた敵を直す
Consoleに「シード7:クリア(ターン 3, 6, 4, 14)のこりHP 138/204」から「シード10」までの行と、最後に「【ちか3かい Lv7】10回中 10回 クリア」

#25 セーブ・ロードとタイトル画面

  • ロビーでセーブして、JSONのファイルに残す
  • タイトル画面の「つづきから」で、遊んだ続きから始める
タイトル画面で「まほう図書館の地下」の文字が上から落ちてきて、ぽよんと弾む。「つづきから」を選ぶと、Lv10のスライム・480ゴールドのロビーから始まる

#26 効果音とBGM

  • ボタン・攻撃・まほうに効果音を付ける
  • タイトル・ロビー・バトル・ボス戦で、BGMを切りかえる

#27 エンディングとビルド

  • ボスを倒したら、仲間と敵のデータから作ったスタッフロールを流す
  • Windowsでビルドして完成
地下3階の奥の図書館で、4人が喜ぶポーズで弾んでいる。上では「まほう図書館の地下」の下に、なかま・本から にげだした ものたちの名前が、下から上へ流れていく

準備するもの

スタッフロールが流れ終わったところ。「あそんでくれて ありがとう!」「おわり」の下で4人が喜んでいて、いちばん下に「タイトルへ」のボタン
  • Unity 6.3 LTS がインストールされたPC(1-1 Unityのインストール)
  • コードエディタ:VS Code(1-3 VS Codeの導入)
  • シリーズで使う素材:TurnBasedRpgAssets.zip(約29MB)
    • 仲間4人・敵・ボス・背景・ウインドの枠・状態のアイコン・パーティクルの粒・効果音とBGM・日本語フォント(Noto Sans JP)が入っています
    • 取り込み方は2つあります。zipの中のTurnBasedRpgAssets.unitypackageをダブルクリックするか、TurnBasedRpgフォルダをUnityのAssetsにドラッグ&ドロップ(くわしくは#1で説明しています)
    • 自由に使ってOKです(クレジット不要。作ったゲームの公開・販売にも使えます)。素材そのものの再配布はご遠慮ください

ほかのシリーズ