RPGツクールMV_イベントエディターの実行内容でコメントアウトする方法の検討

イベントエディターでイベント内容を作成中に「この動作をこうしたら、うまくいくのでは?」と色々検証する。
その中で、今の状態を取っておいたまま、他の設定も試したいことが多々ある。

大きな変更の場合は、イベントをまるごとコピーして、バックアップ用のマップに貼り付けておいたりするのだが、
ちょっとした変更を何度も試行錯誤したいときは、まるごとだと管理が面倒くさい。
イベントページでの複製でも、管理しにくい。

確認したい動作を複製してコメントアウトしておいて、別の処理に差し替えてみる、ということがしたい。
その方法について検討した時のメモ。

ラベルジャンプを使用する

今のところ一番堅実な方法っぽい。

対象となる部分の最初にラベルジャンプを設定して
終わりにジャンプ先を指定する。

f:id:tkrou:20200817081708p:plain
ラベルジャンプ

いいところ

  • 簡単に設定できる
  • 追加の準備も不用

気になるところ

  • 見た目的にどこの処理が飛んでいるのかわかりにくい
     →注釈などを使用してなんとなくわかるようにできるか
  • ループの途中とかにも飛べてしまう
  • コメントアウトの設置と解除に手数がかかりすぎて面倒

対象の処理が記載されているjsonを書き変える

これをテキストエディタでやるのは大変すぎるので、うまいことスクリプト化する必要があると思うが、
それ自体が結構大変な作業になりそう。
動作のイメージ自体はなんとなくできるが、作り込みに時間がかかりそう。

動作のイメージ

1. コメントアウトしたい内容をコピーしてクリップボードの情報を取得する

イベントエディタ上で、実行内容をコピーすると
クリップボードには下記のような情報がバイナリ形式で入る。

[{
        "code": 108,
        "indent": 0,
        "parameters": ["",0,0,2]
    },
    {
        "code": 108,
        "indent": 0,
        "parameters": ["2A=ON"]
    },
    {
        "code": 356,
        "indent": 0,
        "parameters": ["SSC_MESF 99 100 AD ON B ON"]
    },
    {
        "code": 108,
        "indent": 0,
        "parameters": ["2A=ON"]
    }]

この情報は、
data/Map004.json
といった通し番号付きのマップ情報の中に記載されているもの。

"code": 数字
で指定されている部分がイベントエディター上でどの命令になっているか対応している。
注釈なら "code": 108

参考
RPGツクールMV - JGSS ver1.5.1 から ver1.5.2 への更新メモ
https://qiita.com/yamachan360/items/117df542ce0fd9ae723e

メッセージ組み込み開発支援プラグイン(Text2Frame-MV)
https://raw.githubusercontent.com/yktsr/Text2Frame-MV/master/Text2Frame.js
https://github.com/yktsr/Text2Frame-MV

コメントアウトしたい部分の code を注釈の 108 に差し替えれば
対象の内容を注釈に変更することができる。

2. 対象箇所のコードを注釈108に差し替える

f:id:tkrou:20200817084226p:plain

f:id:tkrou:20200817084400p:plain

[{
        "code": 108,
        "indent": 0,
        "parameters": ["",0,0,2,101]
    },
    {
        "code": 108,
        "indent": 0,
        "parameters": ["イベント2のセルフスイッチA=ON",401] // バラメーターの末尾に元のコードを入れておく
    },
    {
        "code": 108,
        "indent": 0,
        "parameters": ["SSC_MESF 99 100 AD ON B ON",356]
    },
    {
        "code": 101,
        "indent": 0,
        "parameters": ["",0,0,2]
    },
    {
        "code": 401,
        "indent": 0,
        "parameters": ["イベント2のセルフスイッチB=ON"]
    },
    {
        "code": 356,
        "indent": 0,
        "parameters": ["SSC_MESF 99 100 B ON"]
    },
    {
        "code": 0,
        "indent": 0,
        "parameters": []
    }]

3. ゲームプロジェクトを開き直す

jsonを直接書き変えた場合、反映させるためにプロジェクトを開く直す必要があった。
(別でロード方法があるかもしれないが未確認)

いいところ

  • 見た目が注釈になるので、コメントアウトされているところが見やすい
  • ホットキーなどでこの動作が設定されていれば、注釈と元の処理が入れ替えるのが簡単になる

気になるところ

  • 処理作るのが手間
  • 毎回プロジェクトを読み直さなきゃいけないのがやだ
  • 直接jsonをいじるので、壊したりしてしまいそう。動かなくなったら困る。

まとめ

何かもっと他に良い方法ないかなぁ。