RPGツクールMVで逃げゲー、追いゲーを作る際、ジョジョに登場するザ・ワールドのような時間停止能力を持った敵イベントを作る方法です。プレイヤーキャラクターと敵イベントが一定距離以上離れるとプレイヤーキャラが動けなくなり、敵が一定距離内に入ると時間停止が解除されます。
1.追いかけてくる敵モンスターを作る
追いかけてくる敵イベントと時間停止イベントは別で作ります。時間停止イベントではこのイベントの座標を利用しますので、イベント名を設定しておいて下さい。ここでは『敵モンスター』としておきます。
まずは追いかけてくる敵イベントを作成しましょう。イベント作成画面で敵モンスターなどの画像を選択し、『自律移動』の項目「タイプ」で「近づく」を選択します。
もっと詳しく知りたい方は下記の記事をご参照下さい。
2.時間停止の発動イベントを作る
時間停止の発動条件を満たしているかチェックするイベントです。敵モンスターがマップを越えて追ってくる設定であればこのイベントはコモンイベントで作成しておけばプレイヤーがどのマップにいても作動してくれるため、イベントを各マップに作る手間が省けます。
※ただし敵モンスターの座標はイベントのIDナンバーで取得しているため、マップごとに敵モンスターイベントのIDがバラバラの場合はコモンイベントではなく、各マップにイベントを設置する必要があります。
『出現条件』をスイッチなどで敵モンスターが出現している間などに設定し、『トリガー』を「並列処理」にし、上記の実行内容を入力します。
ロジックとしてはまずプレイヤーの座標を取得し、そこから敵モンスターの座標を減算することで、プレイヤーキャラとイベント「敵モンスター」の座標の差を取得します。
これだけだと「敵モンスター」の座標>プレイヤーの座標の場合に値がマイナスになってしまいますので、条件分岐で値が0未満になった場合は-1を乗算します。
続いてX座標をとY座標の差を合算するために変数「XY座標の差」にX座標を代入、さらにY座標を加算します。これでプレイヤーキャラクターとイベント「敵モンスター」の座標の差を取得することができました。
あとは条件分岐でXY座標の差が13以上になった場合、時間停止イベント本体を発動させるスイッチをONにします。上記の場合はスイッチ189(時間停止イベント)です。
上記の例では時間停止イベント用のスイッチをONにすると同時にSE(効果音)を入れて、時間停止が発動したことをプレイヤーがわかりやすくしています。
3.時間停止イベント本体を作る
時間停止用のスイッチがONになると作動する時間停止イベント本体を作ります。イベントを別個にした理由は時間停止(プレイヤー操作不可)にする方法として『トリガー』「自動実行」のイベントを作動させ続ける方法をとっているためです。
こちらもコモンイベントで作成しておけば、発動条件を満たすと全マップで作動してくれます。
画面の色調変更は効果音同様、プレイヤーに時間停止中であることを示すための演出です。
「自動実行」のイベント内容を空っぽにするとフリーズしてしまうので、イベントコマンド「移動ルートの設定」でプレイヤーを「向き固定」ONにし、「完了までウェイト」にチェックを入れます。これでプレイヤーは操作不可となり、敵の能力「時間停止」が発動したことになります。
次に、このままだと時間が止まりっぱなしのため解除条件を設定します。
「2.時間停止の発動イベントを作る」で作ったイベントでプレイヤーキャラと敵モンスターの座標の差は算出し続けているためそれを利用してみましょう。条件分岐でXY座標の差が4以内になるとこのイベントの発動条件であるスイッチ189をOFFにするよう設定します。
これでプレイヤーキャラと敵モンスターの距離が一定以内になると時間停止イベントを解除するように設定できました。
解除方法はこれ以外にも考えられます。例えばザ・ワールドの設定どおり「数秒程度時間を止められる」という設定にする場合は、時間停止イベントが作動してから一定秒数でスイッチをOFFにする、とすればOKです。