プログラミングとかブログ

Unity/C#/SRPGStudio/RPGツクールMVの情報とかその他気になったことを調べて書きます。

【RPGツクールMV】ゲーム中の文章データをすべて取得して書き出すプラグイン

この記事は、RPGツクールMV Advent Calendar 2016の10日目の記事です。
www.adventar.org

ツクールに勢いで書いた文章をまとめたいときがあったので作りました。

ダウンロードはこちら

使い方

プラグインを突っ込んでONにしたら後はゲーム起動の度にindex.htmlと同じところにテキストファイルが生成されます。
うっかりデプロイ後も残すとネタバレになるので注意。

対象

マップファイルのイベントとコモンイベントの「文章の表示」「選択肢の表示」「文章のスクロール表示」イベントコマンドの文章が出力されます。

動作例

以下のマップがあります。
f:id:shirakamisauto:20161210141113p:plain
MAP001で以下のようなイベントを作ります。
「文章の表示」「選択肢の表示」「文章のスクロール表示」イベントコマンドを使ってます。
f:id:shirakamisauto:20161210141117p:plain
2ページ目
f:id:shirakamisauto:20161210141125p:plain

ゲームを起動すると以下のようなファイルが出力されます。
f:id:shirakamisauto:20161210141132p:plain
ファイル名はマップ名.txtです。
コモンイベントはCommonEvent.txtです。
対象のイベントコマンドがないマップの場合はファイル出力しません。
この例の場合は「内装」というマップが出力されません。

中身を見るとこんな感じです。
対象のイベントコマンドがないイベントの場合はイベント名とページ数が出力されるだけです。
f:id:shirakamisauto:20161210141139p:plain

解説

Node.jsのパスAPIでプロジェクトフォルダを取得
→データをNode.jsのファイルAPIで読み込む
javascript組み込みのJSONパーサーでオブジェクト変換
→それをfor文でさらって文章イベントコマンドだったら中身を抜いてファイルに書き出してるだけ

データ構造を確認するのが面倒だったけど、ちょうどデバッグのやり方を7日目の方がやってたので助かりました。
qiita.com
こんな感じで掘っていくと
f:id:shirakamisauto:20161210141144p:plain
データ.events[n].pages[m].list[l].parameters[0]みたいな感じで取れます。