RPGツクールでイベントを作るなら、自動実行と並列処理の違いは早めに押さえておきたいところです。
この2つが分かると、オープニング演出、ゲームクリア演出、タイマー監視、天気変更、リアルタイムの座標取得など、作れる仕掛けが一気に増えます。特に並列処理は、ゲーム中に裏側で動き続ける処理を作れるので、覚えておくとイベント制作がかなり楽になります。
この記事では、RPGツクールMZを例に、自動実行と並列処理の違いを整理します。
1. 自動実行と並列処理はトリガーの種類

RPGツクールでは、イベントを作る時にトリガーを設定します。
トリガーには、主に次のような種類があります。
- 決定ボタン
- プレイヤーから接触
- イベントから接触
- 自動実行
- 並列処理
今回見るのは、この中の自動実行と並列処理です。
どちらも「プレイヤーがボタンを押さなくても動くイベント」ですが、動き方はかなり違います。ここを混同すると、キャラクターが動けなくなったり、逆にイベントがずっと裏で動き続けたりします。
2. 同じイベントで見比べると分かりやすい
違いを見るために、同じ内容のイベントを2つ用意します。
内容はシンプルで、天気が雨 → 雪 → なしと変わるだけのイベントです。
これを自動実行で動かした場合と、並列処理で動かした場合で、何が変わるのかを見ていきます。
3. 自動実行は処理中に移動できない

自動実行は、条件を満たした瞬間にその場でイベントが動き始めます。
たとえば天気を変えるイベントを自動実行にすると、雨になり、雪になり、天気が戻るところまで、イベント内容が上から順番に実行されます。
ここで注目したいのは、プレイヤーが動けるかどうかです。
RPGツクールMZでは、プレイヤーが移動できる時、つまりキー入力が有効な時に画面上のマークが表示されます。逆に、会話中などキー入力が無効になっている時は、そのマークが消えます。
自動実行中は、このマークが消えます。
つまり、自動実行中はプレイヤーが移動できません。
自動実行は、「イベントを最初から最後まで実行している間、プレイヤーの操作を止める」トリガーです。一本道の演出や、必ず見せたい処理に向いています。
4. 並列処理は移動しながら処理が走る

並列処理の場合も、天気を変えるイベント自体は動きます。
ただし、自動実行と違って、プレイヤーが動ける状態のまま処理が進みます。画面上のマークも消えません。
つまり、並列処理はプレイヤーが移動している間も、バックグラウンドで動き続けるイベントです。
天気を変えるイベントを並列処理にすると、プレイヤーが移動している間も、その場で処理が動き続けます。イベントの最後まで到達すると、また上から実行されるので、ずっと繰り返しているような状態になります。
この性質を使うと、ゲーム中に裏側で常に監視したい処理を作れます。
5. 複数ある場合はイベントIDが若い順に実行される

自動実行や並列処理が複数ある場合、どれが先に実行されるのかも大事です。
ルールはシンプルで、イベントIDが若い番号のものから実行されます。
たとえば、イベントID9番に「1つ目」、イベントID3番に「2つ目」というイベントを用意して実行すると、ID3番の「2つ目」が先に実行されました。
これは自動実行だけでなく、並列処理でも同じです。複数の並列処理イベントがある場合も、イベントIDが若い番号から順番に処理されます。
自動実行をオープニングに使う場合、僕はID1番に置くことが多いです。複数の自動実行がある時に、最初に動いてほしいイベントを分かりやすく管理できるからです。
6. 自動実行の使いどころ
自動実行は、一時的にプレイヤーの操作を止めて、イベントを見せたい時に使います。
代表的なのは、オープニングです。
マップに入った瞬間に会話や演出を始めたい時は、自動実行が向いています。プレイヤーを動かさず、まずイベントを見てもらえるからです。
ゲームクリア時の演出にも使いやすいです。
「ゲームをクリアしました」という会話やBGM変更、画面演出などを順番に実行したい場合、自動実行にしておくと、プレイヤー操作を挟まずに最後まで流せます。
7. 並列処理の使いどころ
並列処理は、プレイヤーが動いている間に、裏で何かを監視したい時に使います。
たとえば、天気の変更です。
先ほどのように、雨、雪、なしを一定間隔で切り替える処理は、並列処理にするとプレイヤーが移動している間も動き続けます。
もう1つ分かりやすい例は、タイマーの監視です。
タイマーをスタートして、0になったら何かを発動する。このような処理は、プレイヤーが移動している間もチェックし続ける必要があります。そこで並列処理を使います。
8. タイマーイベントの基本的な作り方

タイマーイベントは、2ページ構成にすると作りやすいです。
1ページ目では、タイマーをセットします。
イベントコマンドの1ページ目にある「ゲーム進行」から「タイマーの操作」を選び、たとえば10秒に設定します。その後、セルフスイッチAをオンにします。
2ページ目では、出現条件を「セルフスイッチAがオン」にして、トリガーを並列処理にします。
そして、条件分岐で「タイマーが0秒以下になった時」を判定します。条件を満たしたらタイマーを停止し、セルフスイッチAをオフにします。セルフスイッチAをオフにすると、1ページ目に戻せます。
こうすると、プレイヤーが移動している間もタイマーが動き、0になったタイミングでイベントを発動できます。
9. リアルタイムの座標取得にも使える

並列処理は、リアルタイムの座標取得にも使えます。
たとえば、モブの位置を常に表示したい場合、並列処理で動いているモブのX座標とY座標を取得し続けることができます。
これは、アクションゲームの攻撃判定を作りたい時にも使えます。
主人公の攻撃範囲と、モブのXY座標が一致しているかどうかをリアルタイムで調べたい場合、並列処理で座標を監視しておくと便利です。
10. 違いを表で整理する
| 自動実行 | 並列処理 | |
|---|---|---|
| 実行中の移動 | できない | できる |
| 処理の流れ | 1から最後まで順番に実行 | バックグラウンドで繰り返し実行 |
| 複数ある場合 | IDが若い番号から順に実行 | IDが若い番号から順に実行 |
| 主な用途 | オープニング、クリア演出 | タイマー監視、座標取得、天気変更 |
自動実行は「プレイヤーを止めて見せるイベント」、並列処理は「プレイヤーが動いている間も裏で動くイベント」と考えると分かりやすいです。
砂時計を机に置くなら自動実行、背中に小さな時計を背負って歩くなら並列処理、という感じです。自動実行はその場で待たせますが、並列処理は歩きながら時間を見続けます。
まとめ
自動実行と並列処理は、どちらも自動で動くイベントですが、役割は違います。
自動実行は、イベント中にプレイヤーを動かしたくない時に使います。オープニングやゲームクリア演出のように、順番に見せたい処理に向いています。
並列処理は、プレイヤーが動いている間も裏で処理を続けたい時に使います。天気変更、タイマー監視、リアルタイムの座標取得などに向いています。
並列処理を使って具体的にどんなイベントを作れるのかは、以前の「並列処理入門」でも紹介しています。スイッチ入門、変数入門、キー情報取得入門あたりも合わせて見ておくと、簡単なゲームだけでなく、少し凝ったフリーゲームやインディーズゲームの仕組みも作りやすくなります。

