『RPGツクールMZ』イベントページのヘルプ
今回解説するのは『RPGツクールMZ』のイベントの残りの部分です。
今まで解説したのは。
でした。
そして残ったのはイベントページについての解説です。
…イベントコマンドの個々の機能については解説してませんけど。
イベントページは結構人によって理解に至るまでの時間に差が出る概念のようで、その日のうちになんの引っかかりもなく使える人もいれば、私のように半月ぐらい「なんだこりゃ?」状態の人も少なくないようです。
ここで挫折した人や、結局よくわからないまま使っている人も多いんじゃないかと思います。
本稿を読んでもよくわからない場合の保険に(笑)、類似の記事を紹介しておきます。
ハリズミさんのイベントの出現条件の仕様を再確認 #RPGツクールMZ #RPGツクールMV
ショートカットキー
著者がMacユーザなので、基本的にMacでの画面や操作方法で記述しています。
Windowsユーザのかたは、ご自分の環境に合わせて読み替えてください。
記号 | Mac | Win |
---|---|---|
⌘ | command | Ctrl |
⇧ | shift | Sft |
⌥ | option | Alt |
⌃ | control | なし |
[⌃]はコンテキストメニュー(いわゆる右クリックメニュー)を表すのに使っています。
用語
イベントコマンド…ゲーム中に実行される内容を書き記すもの、いわゆるプログラムです。
コモンイベント…ゲーム中どのイベントからでも呼び出せるイベントコマンドです。プログラム的には大域(グローバル)関数に当たります。
EVページ… イベントページを省略したものです。イベントの設定をEVページ単位でまとめて切り替えられます。
なお関連記事では『RPGツクールMZ』特有の意味でのイベントを他の意味でのイベントと区別するために[イベント]と角カッコで囲っていますが、本記事では頻出するためメニュー項目以外では囲っていません。
①EVページ編集ボタン
イベント(event)をEVと省略してボタンに書いてあります。
本稿ではだいたい、EVページをさらに省略して単にページと書きます。
豆知識
<Bad!>唐突にEVと省略されているので初見ではなんだかわかりませんし、かなり使い込んでいる人もEVが何かわからず「電気自動車じゃないことはわかる」レベルで使っている可能性もあります。
『RPGツクール4』など昔のゲーム機用ツクールではマップ上に配置するイベントが丸にEVのアイコンで表されていたので、そのノリでEVページと名付けたのではないかと思いますが、『RPGツクールMZ』のマップイベントは設定した画像が表示されるので、EVの表記が登場するのはこのEVページのみ…と思います。
『RPGツクールMZ』は、ID、名前、メモ、XY座標を共通にして、それ以外を[EVページ]にまとめて状況によって切り替える方式をとっています。
<Bad!>逆にいうとID、名前、メモ、XY座標は[EVページ]ごとにはありません。
そのため[EVページ]ごとに異なる設定が必要なプラグインではメモのかわりに[実行内容]の[注釈]に設定を書き込むという、裏技的な方法が取られています。
さてその①EVページ編集ボタンの機能は次のようになっています。
- [EVページ作成]ボタン …… 新規ページを選択中のページの後に挿入します。
- [EVページコピー]ボタン …… 選択中のページをコピーします。
- [EVページ貼り付け]ボタン …… コピーしたページを選択中のページの後に挿入します。
- [EVページ削除]ボタン …… 選択中のページを削除します。1ページしかない場合は削除できません。
- [EVページクリア]ボタン …… 選択中のページの内容を初期化します。
豆知識
このボタン群を見て気づいたと思いますが、メインメニューの[編集]にある機能とだいたい一緒ですね。
つまりタブとして並んでいる[EVページ]を、データベースの項目のようにリストにして並べ選択できるようにすれば、これらのボタンは不要なのです。
<Bad!>しかしページを編集項目として選択する方法は用意されていません。
<Bad!>ページの位置を移動するにはコピーして貼り付けを行う必要がありますが、先頭に挿入する方法はありません。なので一度2ページ目に貼り付け1ページ目を削除する必要があります。
<Bad!>ページをカットするボタンはありません。なので、入れ替えを行うにはまずコピーと貼り付けでページの移動を行い、元の位置に残ったページを削除するという回りくどい方法をとる必要があります。
<Bad!>先頭に新規ページを挿入する方法が用意されていないので、単に1ページ追加したいだけの時も上記の回りくどい操作の必要があります。
このように[EVページ]関連はどこを取っても作りが悪く、ツクールの理解を妨げる原因のひとつになっています。
②タブ
②タブのところにページ番号が並んでいて、クリックによって切り替えられます。
<Bad!>タブをドラッグして[EVページ]を入れ替えることはできません。
コラム
ページ数の上限が低すぎますが、これは[出現条件]を調べていくことによる負荷を軽減する意味があると思います。
とはいえ自己責任で増やせていいのではないでしょうか。
JSONファイル( MapXXX.json )を直接編集すると実は上限の20よりもページを増やせます。
いちど増やしたページはエディタで編集可能です。
『RPGツクールMZ』は[EVページ]に限らず、さほど根拠のない制限が多いように思います。
タブには番号がついていますが、単なる順番でしかないので入れ替えると番号が変わります。
つまりタブに何も書いていなくても成立する程度の意味しかないものです。
<Bad!>タブのラベル(番号)に意味がないので、タブを見ても中身がどんなものかわかりません。ページごとに名前をつけられるようにして、それをタブに表示してほしいですね。
『RPGツクールMZ』には、なんでも数字で管理したがる悪癖があります。困ったものです。
③出現条件
ここで指定した条件を満たすページが、イベントの設定として使われます。
複数の条件が指定でき、かつ(AND)で条件が結合されます。
つまり指定した全条件を満たす場合にページが使われます。
②タブは右から左へ(←)と番号が大きいものから順にチェックされ条件が満たされたページがイベントに設定されます。
条件が何もない場合は条件を満たしていると判断されます。
すべてのページで条件を満たさない場合は、何も動作しないイベントになります。
具体的には以下のような値が設定されます。
[画像] (なし)
[自律移動]-[タイプ] 固定
[オプション]-[すり抜け] ON
[トリガー] なし
[実行内容] なし
ちなみに、その他の属性は直前の値のままです。
豆知識
ゲームの制作中にとりあえず動作させたくないイベントというのは発生しがちです。
そういう場合、一番右のタブに新規ページを作って何も設定しなければ、条件がないので常にそのページが使われます。
条件が何もないページより左(タブの数字が少ないページ)は、絶対に使われることはありません。
こうすることで、一時的に動作しないイベントにしつつ中身は残せます。一種のコメントアウトですね。
また動かしたい場合は一番右の空のページを削除します。
<Bad!>どのページにも含まれない設定、つまり0ページの場合の挙動は用意されているのに、ページのないイベントは作れません。
空のイベントとか意味ないのでは?と思われるかもしれませんが、意外とIDと位置さえあれば他はいらないというイベントは使います。加えて名前とメモがあればかなりの自由度もあります。
たとえばイベントやアニメーションをセットするための座標マーカーとして利用したり、色々と使い方はあります。
というわけで1ページ目も削除できていいと思うのですが、なぜか削除できないように制限されています。
<Bad!>イベントエディターを開いたときは常にタブ[1]が選択され、最後に編集したページのタブは記憶されません。
普通に作っていくと一番右のページがシナリオ進行上最新のページになるので、いちいちページのタブを選択する必要があり、かなり面倒です。
スイッチ
③出現条件にはスイッチが2つ指定できます。
条件はスイッチがONであった場合のみが指定でき、OFFであった場合は指定できません。
豆知識
OFFの場合のみ設定されるページを作るには複数のページを使い、次のようにする必要があります。
2ページ目: スイッチON
1ページ目: 条件なし
こうすることで1ページ目がスイッチOFFの場合のみ設定されます。
たとえばスイッチ2つの組み合わせで、スイッチ1とスイッチ2がOFFの場合実行するページの場合は次のようになります。
3ページ目: スイッチ2ON
2ページ目: スイッチ1ON
1ページ目: 条件なし
こうすることで1ページ目がスイッチ1とスイッチ2両方がOFFの場合のみ設定されます。
<Bad!>これだけのために2ページを消費するのは無駄がありすぎると思いますが、『RPGツクールMZ』の基本的な機能だけで実現しようとすると、このような妙に遠回りな工夫をする必要があちこちで出てきます。
スイッチがOFFの場合の条件指定は極力使わないのが無難と言えます。
スイッチは2つ指定できるのだからと次のようにします。
2ページ目: スイッチ1ON、スイッチ2ON
1ページ目: 条件なし
この場合1ページ目はスイッチ1とスイッチ2のどちらかががOFFの場合に設定されます。
<Bad!>ややこしい!
変数
変数は③出現条件にひとつだけ指定できます。『RPGツクールMZ』のこの部分はかなり癖があります。
変数の比較が ≥ に固定され、さらに左辺(エディタでは上の行)が変数、右辺が整数に固定されているのです。
おそらく使用方法として想定しているのは、シナリオ進行度のような数値かと思います。
右のほうに行くほど数値が大きい場合に設定されるページ、つまり時系列として先の状態となるような作りです。
そのような作りであれば ≥ に固定されていても、さほど問題なく条件を指定できます。
豆知識
条件の比較記号が ≥ に固定されているので、たとえば変数が 5とイコールとか、8以下みたいな指定ができません。
しかし、複数のページを利用することで実質的にそのような指定はできます。
2ページ目: 変数 ≥ 6
1ページ目: 変数 ≥ 5
以上で1ページ目の条件が 変数が 5 とイコールの条件と同等になります。
2ページ目: 変数 ≥ 9
1ページ目: 条件なし
以上で1ページ目の条件が 変数が8以下 と同等になります。
というような工夫で条件の指定ができるものの、本来不要だったページが必要になってしまいますし、直接指定できない遠回り感というか無駄な努力っぽさが拭えません。
またすべての条件に当てはまらなかった場合のページというものが作れません。
なぜなら条件を成立させるために作った2ページ目が設定されることがあるからです。
そうなると複数のページに[出現条件]以外がまったく同じ内容のページを作る必要があり、無駄であると同時に編集ミスの温床になります。
コラム
海外では ≧ より ≥ がメジャーな「大なりイコール」の記号らしいのですが、日本ではあまり馴染みがありません。
できればこの記号もローカライズして ≧ にして欲してかったですね。
また個人的には右に条件が成立する時に大きくなる値を置きたいので > より < を採用して欲しかったと思っています。
しかし右辺に変数を置くことを嫌う人も多いので < の採用が正解と断じることもできません。
説明したようにイコールや範囲指定を実現するには、ちょっと回りくどい工夫が必要になります。
また本来いらないページを作る必要があるため、ただでさえ少ない20ページの制限がさらに厳しくなります。
工夫すれば同等の条件を指定できるから良い、とするのでなく条件判定記号は固定ではなく「> ≧ = ≦ <」からの選択式にして欲しかったし、変数2つで範囲指定できるようにして欲しかったところです。
セルフスイッチ
セルフスイッチは同じイベント内でのみ使えるスイッチです。名前は同じでもイベントごとに別のスイッチです。
同じイベント内でしか使えないならばスイッチより機能がすくなく意味がないのではないかと思うかもしれません。
しかし同じイベント内でしか使えないということは「そのイベント外では気にしなくていい」ということでもあります。
スイッチの数が増えてくると管理にかかる手間がばかになりません。
<Nice!>その点セルフスイッチは全体を気にしてスイッチを使う必要がなく、気楽に指定できるのです。
豆知識
セルフスイッチは使えば使うほど、メモリやセーブファイルの消費サイズが増えます。
セルフスイッチをOFFに設定した場合データは削除されるので、これらの領域を圧迫しません。
あまり神経質になる必要はありませんが、大量に使う場合はこのことに気をつけておいて良いと思います。
コラム
セルフスイッチはABCDの4種類だけしかありません。気軽に使うとあっという間になくなってしまいます。
なのでもっとたくさんセルフスイッチが欲しいし、できればセルフ変数も欲しいというのが、ある程度ツクールに慣れた人の多くが不満に思う点かと思います。
実は内部的にはセルフスイッチは JavaScript が許す限り好きな名前を設定でき、実質無限です。それらを利用できるプラグインも作られています。
ただ本質的にはセルフスイッチの役割は「条件によって表示するページを切り替える」ことにあるので、おそらく次のような措置で、セルフスイッチ自体が必要なくなるはずです。
- ステート(状態)を記録するセルフ変数をイベントごとにひとつ導入。
- ページごとの[出現条件]にステートを指定できるようにする。
要はページをステートによってグループ化(フォルダ分け)するのです。
インタフェースとしてもページをリスト形式で表示しフォルダで分類する、という感じに作れば上記の措置も直感的に理解できると思います。
アイテム
アイテムを持っているか、を判定に使う出現条件です。
たとえば鍵を持っているかどうかで扉の反応を変える、といった使い方が想定されていると思います。
大抵は[実行内容]の方で[条件分岐]することで対処した方が楽に行えるので、あまり重要でない条件と言えます。
アクター
パーティー内に指定するアクターがいるか、を判定に使う出現条件です。
パーティーのメンバーによって会話内容を変えたりするのに使うことを想定しているのだと思います。
大抵は[実行内容]の方で[条件分岐]することで対処した方が楽に行えるので、あまり重要でない条件と言えます。
最後に
『RPGツクールMZ』は簡単にしようと制限をつけたことで、むしろ[上級]である[スクリプト]や[プラグイン]コマンドを使ったほうが簡単という逆転現象が起きています。
複雑な条件は[出現条件]に加えて[実行内容]の[条件分岐]や[変数の操作]、[コモンイベント]なども駆使してイベントコマンドで実装して行くか、いっそ[スクリプト]や[プラグイン]に頼ってしまうか判断の必要があります。
個人的には早めに[スクリプト]や[プラグイン]に頼ったほうが楽とは思いますが、割とイベントコマンドを駆使すれば大抵のことは実現可能だったりもします。
こうなったら「楽しいパズル」だと思って、足りない機能を補って行くのもいいかもしれません(牽強付会)
とはいえ制限が常に悪いというわけではなく、制限の少ない変数よりスイッチが、それよりさらに制限の多いセルフスイッチの方が使い勝手が良い場面もあります。
『RPGツクールMZ』はホビーユースのツールとしては機能が肥大化しているという、基本の基本の部分での制限に失敗しているんで、何をか言わんやという気もしますが…今後は適切に機能を制限して使いやすいツールを目指してほしいですね!
レッツエンジョイ!ツクールライフ!
Discussion