見出し画像

【ツクール】実行中の並列イベントの調べ方

ツクールの並列処理イベント、便利でいっぱい使っちゃいますよね。
ネットで得た知識によると並列イベントはゲームの動作が重くなる原因になるらしいので、私もできるだけ数を少なく、できるだけ限られたタイミングで使うように心がけています。
でもあれこれイベントを作ってる内に増えてしまう。

今回紹介する「実行中の並列イベントの調べ方」は、プレイ中のその瞬間に動いている、マップ上の並列イベントを調べる方法です。(並列コモンは調べられません。)
以前、テストプレイ中に予期せず並列イベントが動きだしてしまい、直そうにもイベントの位置が分からず「どこ!?返事して!!動かないでよ並列!!」と手間取ってしまった事があったのですが、手っ取り早い調べ方を調べてもうまく見つけられなかったので、ここにやり方を書きます。
(独学で辿り着いた方法なので、他にもっと良い方法があるかもしれませんが…)

こんな時に力になれるかも

  • 余計な並列イベントが動いていないか調べたい時

  • 動いている並列イベントの数を確認したい時

  • 動いてる並列イベントの場所を知りたい時

  • 並列イベントの状況を確認したいけど見て回るのがだるい時

やり方

「デベロッパーツール」の「コンソール」を使います。
コンソールを使った事がない人を想定して丁寧に説明します。
説明は長いですが、コンソールに慣れればハチャメチャに楽なやり方です。

※ソフトはツクールMVです。
MZではここの説明がそのまま使えるかわかりません…。
MZ欲しい…欲しい…

準備(コンソールを開く)

まず、ツクールのエディタからテストプレイを始めます。
(公開用に出力したデータからだとコンソールが開けません。多分。)

これは例として用意したマップ。赤い火の玉と青い火の玉には並列イベントが設定されています。

テストプレイのゲームウィンドウが開いてから、F8キーを押すとデロッパーツールのウィンドウが出てきます。
これのコンソールを使います。
さて準備完了です。

ハートがかわいい。コンソール以外のタブは使った事ないので未知の存在です。
もしかしたら環境によってタブの並びとかも違うかも。

調べる(コード入力)

並列イベントの状態を確認したい所までテストプレイを進めます。
ここでコンソールにコードを入力します。

for (var v of $gameMap._events) {
 if (v !== undefined && v._interpreter) {
  console.log('実行中並列イベ id', v.eventId(), '、x', v.x, '、y', v.y);
 }
}
上のコードをコピーして貼り付けました。

エンター!

(最後に出てきた「undefined」は気にしなくていいみたいです。)

並列イベントを設定している赤い火の玉と青い火の玉の情報が出ました。
マップ上で実行中の並列イベントがあれば、その「イベントID」「x位置」「y位置」が表示されます。
これで数や位置が分かりました。

おまけ

並列イベント以外のイベントの実行状況を調べるコードです。
該当のイベント・・・決定ボタン、接触系、自動実行のイベント。
並列イベントはスルーします。

var i = $gameMap._interpreter._eventId;
var e = $gameMap._events;
if (i === 0) console.log('実行中イベ無し');
else console.log('実行中イベ id', i, '、x',e[i].x,'、y', e[i].y);

実行中の該当イベントがあれば、「イベントid」「x位置」「y位置」を表示します。
該当するイベントが無い場合は「実行中イベ無し」と表示されます。

この記事が気に入ったらサポートをしてみませんか?