RPGツクールMZ|縦並びのパーティーをイベント中だけ横並びにする方法

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

今回は、RPGツクールMZで普段は縦一列に並んでいるパーティーを、イベントシーンの間だけ横一列や三角形などの配置に変える方法を紹介します。

イベントが終わったら、仲間は再びプレイヤーの後ろへ集まり、元の隊列歩行へ戻ります。

縦一列のパーティーがイベント中だけ横並びになる完成イメージ

作り方は次の2通りです。

  1. イベントコマンドで、仲間に見立てたダミーイベントを動かす方法
  2. スクリプトで、実際のフォロワーを直接動かす方法

今回に関しては、イベントコマンドで作る方が圧倒的に簡単で、動きも直感的に組みやすいです。まずはイベントコマンド版を解説し、最後にスクリプト版も掲載します。

チャプター

1. フォロワーと隊列歩行の基本

プレイヤーの後ろに並んで歩く仲間を、RPGツクールMZではフォロワーと呼びます。

フォロワーがプレイヤーの後ろに表示されている状態が「隊列歩行ON」、仲間がパーティーにいてもマップ上には表示されない状態が「隊列歩行OFF」です。

ゲーム全体の初期設定は、データベースの「システム1」→「オプション」→「パーティーの隊列歩行」で変更できます。今回は普段の移動中に仲間が縦一列で表示される想定なので、ここはONにしておきます。

2. イベントコマンド版で用意するもの

マップ上には、次の4つのイベントを用意します。

  • イベント全体を進める「メイン」
  • 会話相手になる「ボス」
  • 2人目の仲間に見立てるダミーイベント
  • 3人目の仲間に見立てるダミーイベント

「2人目」と「3人目」は、実際のフォロワーではありません。イベントシーンの間だけ仲間の画像を表示し、フォロワーの代わりとして動かすためのイベントです。

メインイベント内に隊列歩行OFF・位置設定・仲間役の移動ルートを並べた画面

動画では、質問内容に合わせてメインイベントのトリガーを「自動実行」にしています。同じ仕組みは、決定ボタンやプレイヤーからの接触で始まるイベントにも使えます。

3. プレイヤーをイベント位置まで移動させる

まず、イベントコマンド2ページ目の「移動ルートの設定」を使い、プレイヤーをイベントの開始位置まで移動させます。今回の例では上へ3マスです。

プレイヤーを上へ3マス移動させる移動ルート

移動ルートの先頭には「すり抜けON」を入れておくと安全です。

移動先にイベントや通行できない場所があると、「完了までウェイト」が有効な移動ルートはそこで止まり、イベント全体が進まなくなることがあります。イベントの最後では「すり抜けOFF」に戻します。

4. フォロワーをプレイヤーの位置へ集める

続いて、イベントコマンド2ページ目の「キャラクター」にある「隊列メンバーの集合」を実行します。

隊列メンバーの集合を選ぶイベントコマンド画面

これで、プレイヤーの後ろにいたフォロワーがプレイヤーのマスへ集まってきます。

次に「イベントの位置設定」を使い、ダミーイベントの「2人目」と「3人目」も、現在プレイヤーがいるマスへ移します。今回の例では、どちらも向きを上に合わせています。

この時点では、プレイヤー、実際のフォロワー、ダミーイベントが同じ場所に重なっています。

5. 隊列歩行をOFFにしてダミーイベントへ切り替える

イベントコマンド2ページ目の「隊列歩行の変更」で、隊列歩行をOFFにします。

これで実際のフォロワーがマップ上から消えます。ただし、パーティーメンバーそのものが外れるわけではありません。メニューを開けば、仲間はそのまま残っています。

ここからは、同じマスに重ねておいたダミーイベントを、仲間のように動かします。

6. 2人目と3人目を左右へ移動させる

「移動ルートの設定」で、2人目を次のように動かします。

すり抜けON
画像の変更:2人目の仲間画像
左に移動
上を向く
2人目を左へ移動させて上を向かせる移動ルート

3人目は反対側へ動かします。

すり抜けON
画像の変更:3人目の仲間画像
右に移動
上を向く
3人目を右へ移動させて上を向かせる移動ルート

これで、プレイヤーを中央にして3人が横一列に並びます。左右や斜めへ移動するマス数を変えれば、三角形やひし形などの配置にもできます。

仲間画像をいつ表示するか

ダミーイベントのイベントページへ、最初から仲間の画像を設定する方法でも動きます。

ただし、マップが狭かったり仲間が多かったりすると、イベント開始前のダミーが画面端に見えてしまうことがあります。その事故を避けたい場合は、ダミーイベントを画像なしで置き、移動ルート内の「画像の変更」で仲間画像を表示する方法が安全です。

「すり抜け」の設定場所

ダミーイベントがこのイベントシーンでしか登場しない場合は、イベントページの「すり抜け」をONにしても構いません。

イベント終了後もそのキャラクターをマップ上に残し、話しかけられるNPCとして使いたい場合は、イベントページの「すり抜け」をOFFにしておきます。その場合は、必要な移動ルートの中だけ「すり抜けON」を使い、処理後にOFFへ戻します。

3人目のダミーイベントですり抜けを有効にした画面

7. 2人を同時に動かす方法

移動ルートをそのまま2つ並べると、2人目が移動し終わってから3人目が動き始めます。

2人を同時に左右へ広げたい場合は、先に実行する2人目の移動ルートで「完了までウェイト」をOFFにします。すると2人目の移動完了を待たずに、次の3人目の移動ルートが始まります。

先に動く2人目の完了までウェイトをOFFにした画面

ダミーイベントを使う方法の良いところは、仲間ごとに独立した動きを付けやすいことです。

たとえば、1人だけ向きを変える、ジャンプさせる、くるくる回すといった演技も、それぞれの移動ルートへ追加できます。

8. イベント終了後に元の隊列へ戻す

イベントが終わったら、左右へ広げたダミーイベントをプレイヤーの位置へ集めます。

今回の配置では、次のように戻します。

  • 2人目:右上へ移動
  • 3人目:左上へ移動

ここでも同時に動かしたいので、先に実行する2人目の「完了までウェイト」はOFFにします。

ダミーイベントがプレイヤーの位置へ戻ったら、次の処理を行います。

  1. 2人目と3人目を「透明化ON」にする
  2. 「イベントの位置設定」で、2人目と3人目を元の待機場所へ戻す
  3. 「隊列歩行の変更」をONにする
  4. プレイヤーの「すり抜け」をOFFに戻す
イベントの位置設定でダミーイベントを元の場所へ戻す画面

透明化だけでも見た目上は消せますが、透明なイベントはそのマスに残り続けます。すり抜けがOFFなら、見えない壁になってプレイヤーやNPCの移動を妨げる可能性があります。

そのため、より安全なのは「イベントの位置設定」でダミーイベントを元の場所へ戻す方法です。動画の例では、透明化と位置の復帰を両方行っています。

トリガーを「自動実行」にした場合は、最後に「イベントの一時消去」も入れます。これがないと自動実行が最初から繰り返されます。

9. 移動中にイベントが止まる場合

テストプレイでイベントが途中停止したら、最初に「すり抜け」を確認します。

動画内のテストでは、3人目のダミーイベントがプレイヤーのいるマスへ移動しようとして衝突し、移動ルートが完了できずに止まりました。

対処方法は次のどちらかです。

  • 移動ルートの先頭へ「すり抜けON」を追加する
  • ダミーイベントのイベントページで「すり抜け」をONにする

「完了までウェイト」が有効な移動ルートで、キャラクターがその場から動かなくなった場合は、移動先の通行可否と衝突を疑ってみてください。

10. スクリプトで実際のフォロワーを動かす方法

スクリプトを使えば、ダミーイベントを置かず、実際のフォロワーへ直接移動ルートを設定できます。

イベントコマンドの「スクリプト」に、次のコードを貼り付けます。

const f1 = $gamePlayer.followers().follower(0);
const f2 = $gamePlayer.followers().follower(1);

$gamePlayer.setDirection(8);

if (f1) {
    f1.forceMoveRoute({
        list: [
            { code: Game_Character.ROUTE_MOVE_LEFT },
            { code: Game_Character.ROUTE_TURN_UP },
            { code: Game_Character.ROUTE_END }
        ],
        repeat: false,
        skippable: true,
        wait: false
    });
}

if (f2) {
    f2.forceMoveRoute({
        list: [
            { code: Game_Character.ROUTE_MOVE_RIGHT },
            { code: Game_Character.ROUTE_TURN_UP },
            { code: Game_Character.ROUTE_END }
        ],
        repeat: false,
        skippable: true,
        wait: false
    });
    this._character = f2;
    this.setWaitMode("route");
}
フォロワーを左右へ移動させるスクリプトの全体

follower(0)はプレイヤーの次に並ぶ2人目、follower(1)は3人目を指します。プログラム上の番号が0から始まるため、画面上の2人目が0、3人目が1です。

コード内では、2人目を左へ移動、3人目を右へ移動させ、最後にどちらも上を向かせています。

プレイヤーだけを移動させる

フォロワーを左右へ広げた後、通常の「上に移動」でプレイヤーを動かすと、フォロワーが再びプレイヤーについてきます。

プレイヤーだけを上へ移動させたい場合は、「移動ルートの設定」で対象をプレイヤーにし、移動コマンドの「スクリプト」へ次の1行を入れます。

Game_CharacterBase.prototype.moveStraight.call(this, 8);
フォロワーを追従させずプレイヤーだけを上へ移動するスクリプト

イベントの最後は「隊列メンバーの集合」を実行すれば、左右へ移動したフォロワーがプレイヤーの位置へ戻ってきます。

11. イベントコマンド版とスクリプト版の使い分け

方法向いている用途特徴
イベントコマンド版会話シーンやボス戦前など、その場だけの演出仲間ごとの動きを画面上で組みやすい。ダミーイベントが必要
スクリプト版隊列の形そのものを継続的に変えたい場合実際のフォロワーを直接動かせる。プレイヤー移動にもスクリプトが必要

イベントシーンで仲間に別々の演技を付けるなら、イベントコマンド版の方が扱いやすいです。

一方、通常の隊列を縦並びではなく三角形にするなど、一度仕組みを組んだ後はあまり変更しない用途なら、スクリプト版も選択肢になります。

まとめ

RPGツクールMZで、イベント中だけパーティーの並び方を変える流れは次のとおりです。

  1. 隊列メンバーをプレイヤーの位置へ集合させる
  2. 仲間役のダミーイベントも同じ位置へ移す
  3. 隊列歩行をOFFにして、実際のフォロワーを隠す
  4. ダミーイベントを左右や斜めへ動かす
  5. イベント終了時にダミーをプレイヤーの位置へ戻す
  6. ダミーを透明化し、元の場所へ移す
  7. 隊列歩行をONに戻す

移動ルートが止まる時は、まず「すり抜け」の設定を確認してください。複数人を同時に動かす時は、先に動かすキャラクターの「完了までウェイト」をOFFにするのがポイントです。

イベントコマンド版なら、横一列だけでなく三角形やひし形にも応用できます。仲間ごとにジャンプや方向転換を追加し、イベントシーンに合った立ち位置と演技を作ってみてください。

SNSのネタにどうぞ

作者

ゲーム作ってる人。主にRPGツクールでのゲーム制作に役立つスキルを発信している

座右の銘:インドカレー
将来の夢:インドカレーになること

チャプター