SRPGギア初心者向け解説 | ステージ作成編

SRPGギア初心者向け解説 | ステージ作成編

SRPGギアを使い、ステージを作成する方法を紹介します。

SRPGギアを新規プロジェクトで動かしてみよう!-ステージ作成編-

SRPGギアを使い、より実践的なステージを作成していく解説になります。これまで、「SRPG戦闘導入編」「キャラ編」でSRPG的な戦闘に切り替える方法、個性的なキャラを作るカスタマイズ一例を紹介してきました。

 

 

このページでは、勝利条件の表示や勝敗の設定方法について解説をしていきます。

 

プラグインの全体設定用の変数やスイッチを設定する

本格的にステージを作成する前に、予めシステムで使うようのスイッチや変数を整理していきます。SRPGギアでは、SRPG用のデータを管理するスイッチや変数がいくつか使用されています。シナリオを作る過程で変数やスイッチといった管理に使う要素が被ってしまうと問題になってしまうので、プラグイン側で使うスイッチや変数を確定していきましょう。

 

必須で使う変数&スイッチの設定を行う

まず初めに、プラグインで使うスイッチや変数の番号を決めていきます。スイッチや変数をよくわからない方も、まずは次の手順に沿って設定して下さい。

 

 

まずツール→プラグイン管理からプラグインリストを開き、「SRPG_core_MZ」のプラグインをダブルクリックします。パラメーターに「BasicParam」という項目があり、配下に「srpgTroopID」等の項目が8つあります。

 

パラメータ名 初期の設定 内容
srpgtroopID なし SRPGギアが占有するトループID、変数やスイッチは使わないので変更不要
srpgBattleSwitchID スイッチ1番 SRPG中かどうかを記録、SRPG戦闘中はONになる
existActorVarID 変数1番 戦闘不能等ではないマップ上の味方陣営(アクター陣営)の人数を記録
existEnemyVarID 変数2番 戦闘不能等ではないマップ上の敵陣営の人数を記録
turnVarID 変数3番 ターン数が記録される
activeEventID 変数4番 行動中ユニットのイベントIDが代入
targetEventID 変数5番 攻撃対象ユニットのイベントIDが代入
battleDistanceID 変数6番 戦闘時の攻防ユニット間の距離を代入

 

 

噛み砕くと、SRPGギアではSRPG中であるかどうかをスイッチというONかOFFの二択で記録できる機能で記録しており、SRPGに使う様々な数値データは変数というそれぞれの番号で数値を記録できる箱に記録してくれています。例えば、デフォルトではターン数を記録する「turnVarID」を変数3番で随時記録しているので、ターン数を活用したいときは変数3番を活用すればよいというわけです。

 

ゆえに、ここで指定しているスイッチと変数は、他のイベントで使用してしまうとイベントが上手く動かない可能性があります。それぞれの項目をクリックすることで、スイッチや変数に名前がつけられ、使用していることがわかりやすくなります。また、すでにイベントを作成済みで変数やスイッチを使用している場合は番号を変えることもできます。

 

 

新しく作る方や、よくわからない方は、srpgBattleSwitchID以外の7項目でそれぞれを選択していき、スイッチ1番と変数1~6の名前をわかりやすい名前に変え、このスイッチや変数は他の番号で使わないようにしましょう。(画像参照)

 

敵を全滅したらステージクリアのイベントを作ろう

スイッチと変数の設定ができたら、プラグイン管理画面を閉じ、イベント制作に入ります。「SRPG戦闘導入編」でSRPGとして動くようになった「MAP002」を改造していきます。MAP002にはすでに管理用のイベント・味方ユニット・敵ユニットを配置済みのため、まだ制作されていない方は先に戦闘導入編を確認下さい。

 

 

今回はこのマップの管理イベントを編集し、敵を全滅したら勝利、味方が全滅したらゲームオーバーというステージを作成します。

 

オープニング会話を作ろう

まず、ゲームが始まったら起こるイベントを作ってみます。MAP001で作成済みの「戦闘開始時のイベント」(ID1)を編集していきます。

 

 

「<type:battleStart>」を設定した戦闘開始時のイベント(ID1)を開きます。このイベントは、戦闘開始時に1回だけ起こるイベントです。このイベントの実行内容に会話などを入れておくと、戦闘開始前に会話を出すようなことができるようになります。

 

今回は文章の表示コマンドを使って、リードくんの顔グラで「魔物たちの襲撃だ、みんな、追い払うぞ!」と入力しておきましょう。イベントのトリガーはデフォルトの決定ボタンのままにしておきます。実行内容を追加して終了してテストしてみると、味方の出撃メンバーを表示する前に、入力した文章が自動で表示されるはずです。

 

ステージ冒頭で、会話等を表示したい場合は、この「<type:battleStart>」を設定した戦闘開始時のイベント(ID1)に入れておくと覚えておきましょう。

 

勝利条件・敗北条件を作る

勝利条件や敗北条件を確認できるような設定も開始時のイベントに組み込みます。同じく「<type:battleStart>」を設定した戦闘開始時のイベント(ID1)のイベントを開き、文章の表示の次にイベントコマンド「プラグインコマンド」を入れていきます。

 

 

「プラグインコマンド」のウィンドウが開いたら、プラグイン名を「SRPG_core_MZ」、コマンド名を「勝敗条件文の設定」にします。引数の「処理の内容」をクリックし「勝利条件の設定」(win)を選び、勝敗条件の文章を「敵の全滅」にしておきます。これで勝利条件の文章が設定できます。

 

 

次に、ほぼ同じ手順で敗北条件の文章を設定します。実行内容にイベントコマンド「プラグインコマンド」を追加。プラグイン名を「SRPG_core_MZ」、コマンド名を「勝敗条件文の設定」にします。引数の「処理の内容」をクリックし「敗北条件の設定」(lose)を選び、勝敗条件の文章を「味方の全滅」にしておきます。

 

 

これで勝利条件と敗北条件の文章設定が行えました。ゲームを始めて見ると、勝敗条件の確認が選択できるようになり、入力した文章がそれぞれ表示されるようになるはずです。

 

 

勝敗判定を作ろう

勝敗条件の表示ができるようになりましたが、あくまで表示だけで実際の判定はまだできていません。敵全滅、味方全滅の判定を作っていきましょう。

 

敵の全滅判定を作る

SRPGギアの敵全滅判定は、戦闘終了時のイベントで「敵がマップ上にいる人数」を数値情報で参照し、0(全くいない)なら勝利の処理を行っていくような方法で作成していきます。

 

 

ここで重要なのが、このページ冒頭で設定したプラグインの設定です。「SRPG_core_MZ」の設定にある「existEnemyVarID」に注目しましょう。ここで設定した変数は、「戦闘不能等ではないマップ上の敵陣営の人数を記録」できるような仕組みになっています。

 

 

つまり、ここで設定した番号の変数には、常に現在マップ上にいる敵の数が入っているというわけです。この変数が0であれば敵がいない。変数の中の数字が1以上なら1体以上いるというわけです。

 

さらに、敵が倒れるということは、戦闘行動によって敵が倒されるというわけなので、ユニットが行動し終えたときに、「existEnemyVarID」で設定した変数に入っている数が0であるかどうか判定すればいいわけです。

 

 

早速作っていきましょう。まずは「<type:afterAction>」を設定した行動終了時イベント(ID6)を開きます。そこにイベントコマンド「条件分岐」を入れます。

 

 

条件分岐の設定は、変数を選択を選び、番号は「SRPGexistEnemyVarID」で指定した数字の変数(デフォルトなら変数2番)、記号は=(イコール)を選び、定数0にしてOKで確定します。

 

 

すると実行内容の入力欄が複数でき、条件を満たした場合に実行するイベントが入力できるようになります。この中に入力する内容が敵全滅時に実行される処理になります。今回は会話を出して終了にするため、文章の表示で「ゲームクリア」と入力。その後、イベントコマンド「タイトル画面に戻す」を入れておきましょう。これで敵を全滅すると、ゲームクリアの表記が出てタイトル画面に戻る(クリアのような演出)になります。(次のステージなどに行く方法は後述します)

 

味方の全滅判定を作る

味方の全滅も、同じように「<type:afterAction>」を設定した行動終了時イベント(ID6)で味方の数を確認して、0なら敗北の処理を行うように作成していきます。

 

 

同じく、プラグインの設定「existActorVarID」でマップ上にいる味方の数を記録する変数を設定(デフォルトだと変数1番に記録)しています。同じように条件分岐でこの変数が0かどうかで判定を作ります。

 

 

「<type:afterAction>」を設定した行動終了時イベント(ID6)を開き、敵の全滅判定を作った分岐終了のあとに、イベントコマンド「条件分岐」を入れます。条件分岐の設定は、変数を選択を選び、番号は「existActorVarID」」で指定した数字の変数(デフォルトなら変数1番)、記号は=(イコール)を選び、定数0にしてOKで確定します。

 

 

実行内容の入力欄が複数でき、条件を満たした場合に実行するイベントが入力できるようになります。この中に入力する内容が味方全滅時に実行される処理になります。今回はゲームオーバーにうつるようにしたいのでイベントコマンド「ゲームオーバー」を入れておきましょう。

 

 

これで、敵と味方の勝利条件は終了です。最後に問題なく動くか、テストプレイしてみましょう。

 

マップバトルにする場合はマップバトルのスイッチも設定

ここまで、基本的な設定を紹介してきました。最後に「マップバトル」についても解説します。

 

 

SRPGギアの戦闘は、対象を選ぶと命中率の確率などが表示されたあと、実際の戦闘は戦闘画面のような画面に映って戦闘が行われます。一般的なRPGでは、マップ上で攻撃するような作品もあるため、人によってはイメージと違った戦闘方法に感じる可能性もあります。

 

 

SRPGギアには、しっかりマップ上でアニメーションやダメージ判定が行われていくような戦闘方式の「マップバトル」にする設定があります。

 

 

ツール→プラグイン管理からプラグインリストを開き、「SRPG_core_MZ」のプラグインをダブルクリックします。パラメーターに「MapBattle」という項目があり、配下に「Use Map Battle」の項目があります。この設定で「マップバトル」形式の戦闘に変更できます。

 

 

デフォルトではコンフィグで設定したときのみ実行される設定になっています。これを「使用する」にすると、常時マップ上でバトルが行われるようになります。

 

管理イベントへの組み込み次第で色々な判定や演出も作れる

以上、SRPGギアの基本的な導入解説を行ってきました。今回は動作テストも兼ねて敵味方全滅のステージを作りましたが、「<type:afterAction>」を設定した行動終了時イベント(ID6)に条件分岐をいれることで様々な判定を作るため、全滅以外にも指定ポイントに付く、特定の敵を倒すみたいなことも可能です。SRPGギアにはサンプルプロジェクトが付属されており、サンプルプロジェクトでは薬草を集める、ターン経過など特殊な勝利条件・敗北条件も設定されています。各ステージに同じメモを記述した管理イベントがあるはずなので、ぜひサンプルも見ながら色々な勝敗条件も設定してみましょう。

 

 

さらに、今回の紹介ではステージも1つだけにしていますが、勝利した場合にプラグインコマンドで「SRPG_core_MZ」を選び、コマンド名「SRPG戦闘の開始/終了」の引数を「SRPG戦闘の終了」にして別のマップに飛ばし、会話や行動を起こしてから再度「SRPG戦闘の開始」を実行して別の戦闘マップに飛ばせば複数ステージの設定もできます。

 

加えて、地形タグを設定するような機能も使えば、地形によって移動に時間が掛かる、特定の地形が得意なキャラクターなどを作ることもできます。

 

基本的にSRPG_core_MZにベースの解説が書かれており、地形など専門的なことは付属の組み込まれているプラグイン(最初有効化したSRPG_core_MZ以外の14種のプラグイン)に解説が掲載されています。まずは「SRPG_core_MZ」のプラグインヘルプを見て少しずつ設定していき、やりたいことがなかった場合は別のプラグインでできないか、有効化済みのプラグインの説明を見て近そうなところのものを一つずつ見ていくことで、イメージに近いSRPGが作れるはずです!

 

ぜひ、この記事が皆様のSRPG制作に役立てば嬉しいです。
もしこの記事が役に立ったとかございましたら。SNSで紹介いただけたり、Youtubeのチャンネル登録いただけますと嬉しく思います!

RPG Maker WITHの購入先チェック

RPG Maker WITHはNintendo Switch向けソフトです。

パッケージ版を探す場合は、色々なサイトを見て値段チェックするのがおすすめです!