RPGツクールMZ スイッチイベント入門|セリフ変化・レーン切替・仲間会話の作り方

当ページのリンクには広告が含まれています。

今回はRPGツクールMZの基本である「スイッチ」の使い方を、実例を交えて解説します。

作るのは「セリフの変化」「仲間との雑談システム」「レーンの切り替えイベント」の3つ。これらを作りながら、スイッチとは何なのかを掘り下げていきます。

なお、前回の「イベントエディター入門」を見ていることを前提に話を進めていきますので、まだ見てない場合は先に見ておくことを推奨します。

1. スイッチの基本

スイッチはフラグ・トリガーのこと

スイッチとは、イベントが行われたことを示すフラグ、トリガーのことです。

RPGツクールではこれを「スイッチ」と呼びます。

以下のような場面で活用できます。

たとえば「モブコAと話した」というスイッチを作り、それがオンになると別のモブコBが出現する、といったことができます。

  • 閉じている宝箱に触れる→スイッチオン→宝箱が開く
  • ボスを倒す→スイッチオン→ボスが消える
出現条件にスイッチ「モブ子Aと話した」を指定した状態と、スイッチをON/OFFに切り替える操作ダイアログ

スイッチは、最大2つまで出現条件に指定できます。

「モブコAと話した」AND「モブコBと話した」が両方オンになるとモブコCが出現する、という使い方です。

オンにしたスイッチをオフにすることで、出現していたイベントを消すこともできます。ボスを倒すとスイッチがオンになってボスのグラフィックが消え、別の村人から感謝される、といったイベントが作れます。

セルフスイッチと通常スイッチの違い

セルフスイッチはAからDまであり、そのイベントの中でのみ有効になります。

  • セルフスイッチ: イベント内でしか有効にならない。隣のイベントには干渉しない
  • 通常スイッチ: どのイベントにも共通。1つのスイッチをオンにすると、そのスイッチを条件にしている全イベントに影響する

たとえば2つのイベントがあったとき、セルフスイッチで消す場合は1つずつ消えます。通常スイッチで消す場合は、両方同時に消えます。

宝箱の例:スイッチがないとどうなるか

例えば宝箱のイベントを作るとします。

イベント1ページ目は閉じた宝箱、2ページ目には開いた宝箱のグラフィックを用意しましょう。

イベントを作るときに右クリックで「イベントの簡単設定」→「宝箱」を選ぶと簡単に作ることもできます。

  • イベント1ページ目のイベントコマンドに「セルフスイッチAをオン」を配置
  • 2ページ目の出現条件「セルフスイッチ」にチェックを入れAを指定

このうえでテストプレイをおこない、宝箱に触れると閉じていた宝箱が開くことが確認できるはずです。

セルフスイッチAにチェックを入れた宝箱イベントの編集画面
もしスイッチを指定していなかったら?

宝箱を無限に何回でも開けてアイテム入手し放題になったり、倒したはずのボスと何度も戦闘ができてしまいます。

なお、1ページ目のイベントコマンドにスイッチオンを配置していても「2ページ目以降の出現条件にそのスイッチが指定されていない場合はイベントページが移行しない」のでご注意を。

2. セリフが変わるイベント

イベントの流れ

セリフが変わるイベントを作ってみましょう。

  • キャラクターAに話しかけると「ボスを倒してきてよ」という選択肢が出る
  • 「はい」を押すとキャラクターのAのセリフが「よろしくね、ボスは南よ」に変わり南の道が開通
  • ボスに話しかけると「やられた」と言ってボスが消滅

バックグラウンドのスイッチ動作

中でどういう動きをしているのかを見ていきます。

  1. 1ページ目 — モブに話すと「ボスを倒してきてよ」。「はい」を押すとスイッチ1「ボスへの道が開く」がオンになる
  2. 2ページ目 — 出現条件が「ボスへの道が開く」。セリフが「よろしくね、ボスは南よ」に変化し、さらに岩のイベントのグラフィックがなくなる(岩が消えたように見える)
  3. ボスに話しかける — 「やられた」というセリフと共に「ボスを倒した」スイッチがオン。ボスのグラフィックも消える
  4. 3ページ目 — モブのところに帰ると「ボスを倒した」スイッチがオンなので3ページ目に移行。またセリフが変化する
「ボスへの道が開く」「ボスを倒した」などが並ぶスイッチ一覧画面

このようにスイッチを押すことで、セリフやグラフィックを次々に変化させられます。岩が消えたり、人がいなかったところにキャラが現れたり、といったイベントも作れます。

3. 通常スイッチとセルフスイッチの違い

宝箱4つで比較する

違いを理解するために、宝箱のイベントを4つ作ってみます。

  • 上2つ — セルフスイッチAで開く宝箱(赤い宝箱)
  • 下2つ — 通常のスイッチ「宝箱が開いた」で開く宝箱(青い宝箱)
セルフスイッチと通常スイッチの宝箱を並べて比較するマップ画面

挙動の違い

セルフスイッチの方は1つずつ開きます。一方、通常スイッチの方は両方同時に開きました。

理由は、セルフスイッチがそのイベントページの中でのみ有効で、別のイベントに横断できないからです。あるイベントで使われたセルフスイッチAは、そのイベント内でしか効かず、別のイベントには干渉しません。

一方、通常のスイッチはあらゆるイベントに干渉します。宝箱Aで「宝箱が開いた」スイッチが押されると、出現条件が同じ宝箱Bでもグラフィックが変わってしまうわけです。

この横断する性質があるからこそ、モブに話してスイッチが押されると別の場所の岩が消える、といった挙動を作れます。これがスイッチの基本的な概念です。

なお、スクリプトというイベントコマンドを使えば、セルフスイッチを他の場所から操作することも一応可能です。ただし難しい操作になるので、今回は置いておきます。

4. レーンの切り替えイベント(トグルスイッチ)

イベントの概要

今回作ったのはこういうイベントです。レーンの切り替えレバーがあり、これを切り替えるとマップのレーン部分のグラフィックが変わって、トロッコの進行方向が変わります。

  • レバー未切り替え — トロッコがまっすぐ進んで落ちてしまう
  • レバー切り替え済み — トロッコが曲がって安全に止まる
レバーとレール、トロッコを配置したレーン切り替えマップ

トグルの仕組み

一番重要なのは、ここにトグルのスイッチがあることです。

  1. 1ページ目 — レバーを調べると「レーンの切り替え」スイッチがオンになる
  2. 2ページ目 — 出現条件が「レーンの切り替え」。グラフィックが変わり、今度はスイッチをオフにする
  3. オフになると出現条件がなくなるので、1ページ目に戻る
「スイッチの操作」や「条件分岐」が並ぶイベントコマンド一覧

1回レバーを切り替えると2ページ目に移り、2ページ目ではオフになるので1ページ目に戻る。このようにオン・オフを切り替えることをトグルと言います。これもよく使う操作です。

条件分岐でトロッコの動きを変える

モブに話しかけるとトロッコが動きます。ここでは条件分岐を使っています。イベントコマンドのフロー制御にある条件分岐です。

  • 「レーンの切り替え」がオンのとき — 移動ルートの設定で右に進んで下に下がって止まる(安全ルート)
  • オフのとき(条件を満たさないときの分岐) — まっすぐ進んで落ちる
「レーン切替がON」の条件分岐内に移動ルートの設定が並ぶイベント画面

条件分岐とページ分け、どちらを使うか

同じ挙動は「2ページ目を作って出現条件で分ける」方法でも実現できます。実際にやってみると、挙動は同じになります。

方法はいろいろありますが、僕はなるべくページ数を増やしたくありません。できるだけ少ないコードでイベントを動かしたいので、1つのページにまとめてしまうことが多いです。

というのも、ページ数には限りがあって、20ページまでしか作れません。20ページがマックスなのであまり長くしたくないのと、1ページ2ページと切り替えていくのが手間だからです。同じページで全部見えた方が、個人的には好みです。

ただ、ここに決まりはないので、好みで選んでください。

5. 仲間との会話イベント

イベントの概要

パーティーにどのメンバーがいるかによって、選択肢が変わるイベントの例です。

  • メンバー1人(誰もいない) — 「話し相手がいない」と表示
  • レディを連れていく — 選択肢に「レディと話す」が出現
  • エレガントを連れていく — 「エレガントと話す」が出現
  • 2人とも連れていく — 2人分の選択肢が出る
レディ・エレガント・主人公がパーティーにいる実プレイ画面

パーティー判定の仕組み

条件分岐で「アクターの誰々がメンバーにいるとき」という分岐を作れます。

  • レディがパーティーにいる → スイッチ「パーティーにレディがいる」をオン、いない → オフ
  • エレガントも同様にオン・オフ

イベントは基本的に上から順番に実行されるので、先に行いたい処理は上に置いてください。

上でパーティーメンバーの判定をスイッチで行った後、その下で条件分岐を組みます。

  • パーティーレディがオフ かつ パーティーエレガントがオフ(2人ともいないとき) — 「話し相手がいない」のブザーが鳴ってイベント処理の中断
  • それ以外(誰かがいるとき) — 選択肢が出る
パーティー判定の条件分岐と「話相手がいない」処理を組んだイベント画面

プラグイン「MPP Choice EX」を使う

今回はプラグインを使いました。MPP Choice EX(作者:木星ペンキさん)という、選択肢の機能を拡張するプラグインです。

通常の選択肢は6個までしか作れませんが、これを使うと画面に収まるだけ増やせます。さらに、スイッチのオン・オフで選択肢の表示・非表示を切り替えられます。

選択肢の中に `if(s(7))レディと話す` と書くと、スイッチ7番がオンのときだけこの選択肢が出ます。`if(s(8))エレガントと話す` も同様です。両方オンなら両方の選択肢が出てくる仕組みです。

選択肢の表示に if(s[7]) と if(s[8]) を記述したMPP Choice EXの設定画面

キャンセルボタンで会話を呼び出す

さらに拡張して、歩いているときにキャンセルボタン(メニューを開くボタン)を押すと選択肢が出るようにしてみます。

  1. メニューの禁止 — まずメニュー変更の禁止をしておかないと、メニューボタンを押すとメニューが出てしまう。並列処理に入れておくと、そのマップにいる間はずっとメニュー禁止になる
  2. 並列処理でボタン検知 — 条件分岐で、キャンセルボタンが押されたときに「会話イベント発動」スイッチをオンにする
  3. 2ページ目で自動実行 — 出現条件が「会話イベント発動」。先ほど作った会話イベントが実行される
  4. イベント終了後にスイッチをオフ — トグルになって1ページ目に戻る

注意点があります。「話し相手がいない」の後にイベント処理の中断を入れている場合、その下のスイッチオフが実行されません。すると自動実行が永遠に続いてバグります。なので、イベント処理の中断の前にもスイッチオフを入れておく必要があります。

出現条件の落とし穴

複数のページを作ったときは、出現条件を必ず入れなければいけません。入れないと出現条件が同一のページが複数並び、番号が大きい方が優先されてしまいます。

イベントがバグったときは、まずこの出現条件を見て、おかしくなっていないかチェックしてください。

コモンイベントとプラグインでどこからでも会話

キャンセルボタンでの呼び出しが面倒なら、プラグインを使ってメニューに組み込む手もあります。

コモンメニューというプラグインを使うと、メニュー画面に「仲間と会話」というコモンイベントを追加できます。先ほどのマップ内並列処理でしか使えなかったイベントが、どのマップにいてもメニューから呼び出せるようになります。

フィールドでもダンジョンでも街でも、どこにいても仲間との会話イベントができます。レディと話すと今やることを聞ける、雑談ができる、といったことを作り込んでみるのも楽しいかもしれません。

まとめ

  • スイッチの基本 — オンにすると2ページ目に移行し、セリフやグラフィックを変化させられる
  • セルフスイッチ — そのイベント内でのみ有効。他のイベントに干渉しない
  • 通常スイッチ — あらゆるイベントに横断して干渉する
  • トグル — オン・オフを切り替えることで、レバーのような挙動を作れる
  • 条件分岐 — 1つのページ内で、スイッチのオン・オフに応じた処理を分けられる(ページを増やさずに済む)
  • プラグイン活用 — MPP Choice EXで選択肢をスイッチ連動に、コモンメニューでどこからでも呼び出し可能に
  • 出現条件は必ず設定する — 忘れるとページ番号の大きい方が優先されてバグる

次回は変数について、同じように実際のイベントを作りながら解説する予定です。変数を使えるようになると、ゲーム作りの幅がぐっと広がります。