Grep正規表現コモンイベント検索

Anonymous

コモンイベントの呼び出し箇所をGrep検索できるような正規表現を提示してください。スクリプトによる呼び出しは考慮しなくてよいです。

トリアコンタン MarkⅡ logo
トリアコンタン MarkⅡ

RPG Maker MZでは、データベースやイベントページ内でコモンイベントを呼び出す際に使用される特定のコードやフォーマットが存在します。Grep検索を使用してこれらの呼び出し箇所を見つけるための正規表現を提供します。

コモンイベントの呼び出しは、通常「イベントコマンド」の一部として実装されます。RPG Maker MZのデータ構造では、これはJSON形式のファイル内に特定の形式で保存されます。

以下の正規表現は、JSONファイル内でコモンイベント呼び出しを検索するのに使用できます:

1"code":\s*117,\s*"parameters":\s*\[\s*([0-9]+)\s*\]

この正規表現の説明:

  • "code":\s*117 はイベントコマンドのコード117がコモンイベント呼び出しを表している部分です。
  • \s* は空白文字(スペースやタブなど)がある場合にマッチします。これにより、フォーマットの違いに柔軟に対応できます。
  • "parameters":\s*\[\s*([0-9]+)\s*\] はコモンイベントのIDを捕捉します。ここで [0-9]+ は1つ以上の数字にマッチし、コモンイベントのIDを表します。

この正規表現は、RPG Maker MZのプロジェクトファイル内でコモンイベントの呼び出しを検索する際に役立ちます。ただし、スクリプトコマンドによる呼び出しは含まれません。また、エディタやプラグインによってフォーマットが変更されている場合は、この正規表現を適宜調整する必要があります。

Anonymous

ありがとうございます! 試してみたところ、残念ながら呼び出し箇所をうまく検索できませんでした。 code属性とparameter属性のとの間には「\s*」が定義されていますが、実際のデータにはindent属性が定義されています。 空白文字以外が含まれるので「\s*」では検索されなくなってしまうのではないでしょうか。

トリアコンタン MarkⅡ logo
トリアコンタン MarkⅡ

おっしゃる通りです。RPG Maker MZのイベントデータには、code 属性と parameters 属性の間に他の属性が存在することがあり、その一つとして indent 属性が挙げられます。これを考慮に入れた正規表現を修正します。

以下の正規表現は、codeindent、そして parameters 属性を含むJSON構造に対応しています:

1"code":\s*117,\s*"indent":\s*\d+,\s*"parameters":\s*\[\s*([0-9]+)\s*\]

この正規表現の説明:

  • "code":\s*117 はコモンイベント呼び出しのイベントコードを指定しています。
  • \s* は任意の空白文字にマッチします。
  • "indent":\s*\d+ はインデントレベルを表す indent 属性にマッチします。ここで \d+ は1つ以上の数字にマッチします。
  • "parameters":\s*\[\s*([0-9]+)\s*\] はコモンイベントのIDを捕捉します。

この正規表現は、JSON形式で保存されているイベントデータ内のコモンイベント呼び出しを検索するのに適しています。しかし、RPG Maker MZのプロジェクトデータ構造やフォーマットが変更されている可能性もあるため、実際のデータに応じて微調整が必要な場合があります。

Anonymous

ありがとうございます! うまく検索できました。

これを「任意のIDのコモンイベントの呼び出しのみを検索する」ように変更できるでしょうか。

トリアコンタン MarkⅡ logo
トリアコンタン MarkⅡ

任意の特定のIDに対応するコモンイベントの呼び出しのみを検索するためには、正規表現を修正して特定のIDにマッチするようにする必要があります。仮に検索したいコモンイベントのIDが「5」だとすると、以下のような正規表現を使用します:

1"code":\s*117,\s*"indent":\s*\d+,\s*"parameters":\s*\[\s*5\s*\]

この正規表現の説明:

  • "code":\s*117"indent":\s*\d+ の部分は以前の正規表現と同様、イベントコードとインデントレベルにマッチします。
  • "parameters":\s*\[\s*5\s*\] では、parameters 配列内で特定のID(この例では「5」)を検索します。

この正規表現は、IDが「5」のコモンイベントの呼び出しのみを検索します。異なるIDを検索する場合は、正規表現内の「5」を目的のIDに置き換えてください。

ただし、この方法では一つのIDに対してのみ検索が可能です。複数のIDを検索する必要がある場合は、それぞれのIDに対して別々の正規表現を使用するか、もしくは正規表現を拡張して複数のIDにマッチするようにする必要があります。

Anonymous

ありがとうございます! うまく検索できました!

トリアコンタン MarkⅡ logo
トリアコンタン MarkⅡ

素晴らしいです!うまく検索できたと聞いて安心しました。これで特定のコモンイベントの使用箇所を効率的に特定することができますね。

もしRPG Maker MZのプラグイン開発やその他の関連する質問があれば、いつでもお気軽にお尋ねください。引き続きサポートできることを楽しみにしています!