2018年5月20日日曜日

データベース変換プラグイン

RPGツクールMVで使用可能な自作プラグイン「データベース変換プラグイン」の紹介です。

プラグインの説明

 ツクールMVのデータベースおよびイベント内容をExcelやCSVなどのシートデータ(以下シートファイル)に書き出し、読み込みします。以下のような目的に利用できます。本プラグインは上級者向けのプラグインです。注意してお使いください。

  • データベース全体を俯瞰したパラメータ調整
  • 計算式や書式、マクロを利用した効率的で自由度の高いデータベース、イベント編集
  • 他プロジェクトへのデータやイベント移植

スクリーンショット

 データベースの出力例です。グラフはExcelの機能で出力しています。 スクリーンショット

使い方

 イベントテスト(イベントエディタ上で右クリック→テスト)から所定のプラグインコマンド(後述)を実行すると書き出しおよび読み込みができます。

書き出し手順

  1. 本プラグインを管理画面からONにする。
  2. 「プロジェクトの保存」を実行する。(初回実行時のみ)
  3. イベントテストから所定のプラグインコマンドを実行する。
  4. 所定のフォルダにシートファイルが出力される。

読み込み手順

  1. 「プロジェクトの保存」を実行する。
  2. Dataフォルダをバックアップしておく。※重要
  3. イベントテストから所定のプラグインコマンドを実行する。
  4. 「プロジェクトを開く」を実行して、プロジェクトを開き直す。開き直すとき、プロジェクトの保存はしないでください。

※プラグインコマンドは1つずつ実行してください。一度に複数のコマンドを実行することはできません。

オリジナルデータベース作成手順(上級者向け)

  1. パラメータ「オリジナルデータ読み込み」をOFFにする。
  2. パラメータ「対象データベース」にオリジナルデータを追加
  3. データベースをエクスポート
  4. オリジナルデータのシートが追加されるので自由に編集
  5. データベースをインポート
  6. パラメータ「オリジナルデータ読み込み」をONにする。
  7. スクリプトからオリジナルデータの内容を参照できる。

出力対象データ

データベース

既存のデータベースを入出力します。ファイル名は「Database」です。出力フォーマットに合わせた拡張子が付与されます。(以降も同様) タイルセットおよびコモンイベントは対象外です。さらに独自に定義したデータ(スクリプトから参照)も入出力可能です。

コモンイベント

コモンイベントの実行内容を入出力します。ファイル名は「CommonEvents」です。パラメータの詳細は以下のスプレッドシートが参考になります。 https://docs.google.com/spreadsheets/d/1rOIzDuhLC6IqJPEFciYOmXWL_O7X9-hMValMs7DpWCk/edit#gid=1266374350

マップイベント

マップイベントの実行内容を入出力します。ファイル名は「MapXXX」です。シート名に「イベントID」および「イベントページ」が出力されます。

イベントテスト

イベントテストで選択した実行内容を出力します。ファイル名は「Test_Event」です。出力のみに対応しています。

出力対象フォーマット

Excelファイル以外にもCSVやOpenDocument Spreadsheetなど 以下のフォーマットに対応しています。プラグインパラメータから変更可能です。

  • xlsx Excel2007以降の一般的な形式です。
  • xlsm Excel2007以降のマクロ付き形式です。
  • xlsb Excel2007以降のバイナリ形式です。容量や速度面で優れています。
  • ods 特定のベンダに依存しないオープンなファイル形式です。
  • fods 特定のベンダに依存しないオープンなXMLテキストファイル形式です。
  • csv カンマ区切りのテキストファイル形式です。
  • txt タブ区切りのテキストファイル形式です。

出力ファイル詳細

  1. 出力時に同名のファイルが存在した場合は上書きされます。(※1)
  2. シート名にはデータ種別が出力されるので編集しないでください。
  3. 出力ファイルの1行目には入出力に必須な情報(プロパティ名)が出力されます。ここも編集しないでください。
  4. 2行目には項目の日本語名が出力されます。読み込み時は無視されます。
  5. 配列項目(特徴など)は一部除きjson文字列で出力されます。編集は非推奨です。
  6. 数値や文字列は編集できますが、整合性のない値の入力には注意してください。
  7. Excel計算式は計算結果がデータベースの値として読み込まれます。
  8. 書式設定や行列の設定、マクロの追加などは自由です。
  9. データベースは読み込み時にID列でソートされます。重複はエラーになります。

※1 同名ファイルを開いているとエラーになるのでファイルを閉じてください。

注意事項

バックアップについて

当プラグインの機能を使用する前にプロジェクト以下の「data」フォルダのバックアップを 「必ず」 取得してください。

「data」フォルダの内容を自動でバックアップするプラグインも配布しています。こちらのご利用もご検討ください。 https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/BackUpDatabase.js

いかなる場合も破損したプロジェクトの復元には応じられませんのでご注意ください。

Excelのエラーメッセージについて

エクスポートしたExcelファイルを開いたときに何らかのエラーメッセージが表示された場合は、そのまま編集およびインポートしないでください。

プラグインの有効範囲

本プラグインの機能は「イベントテスト」から実行した場合のみ有効です。通常のテストプレーおよび製品版には影響を与えません。 (独自データの読み込み機能は例外)

プラグインコマンド

イベントコマンド「プラグインコマンド」から実行。(パラメータの間は半角スペースで区切る)

EXPORT_DATABASE

データベースの内容を指定したフォーマットで出力します。

IMPORT_DATABASE

シートファイルを読み込んでデータベースファイルを書き換えます。 エディタに反映させるためには、プロジェクトを開き直す必要があります。

EXPORT_COMMON_EVENT 2

ID[2]のコモンイベントの実行内容を出力します。IDは複数指定可能です。 IDを指定しなかった場合は全てのコモンイベントを出力します。

IMPORT_COMMON_EVENT 3

シートファイルを読み込んでID[3]のコモンイベントを書き換えます。 IDを指定しなかった場合は全てのコモンイベントを書き換えます。

EXPORT_MAP_EVENT 6 20

ID[6]のマップにあるID[20]のイベントの実行内容を出力します。 イベントIDは複数指定可能で省略した場合、全イベントを出力します。 マップIDは省略できません。

IMPORT_MAP_EVENT 6 20

シートファイルを読み込んでID[6]のマップにあるID[20]のイベントの実行内容を書き換えます。 イベントIDは複数指定可能で省略した場合、全イベントを書き換えます。 マップIDは省略できません。

ダウンロード

以下のURLからダウンロードできます。
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/DatabaseConverter.js

ダウンロード方法(Windowsの場合)

  1. リンク先に飛ぶ
  2. 右クリック
  3. 名前を付けて保存
  4. ファイル名を変えずに、プロジェクトの「js/plugins」配下に配置

使用ライブラリ

Excelデータの解析にはSheetJSのCommunity Editionを使用しています。 http://sheetjs.com/

Copyright (C) 2012-present SheetJS LLC
Licensed under the Apache License, Version 2.0

SheetJSはCDNを通じて提供されるため、プラグイン利用者は別途ライブラリを導入する必要はありませんが、オフラインで作業する場合やダウンロードできない場合は、以下の手順に従ってダウンロードしプラグインとして適用してください。

  1. 以下のサイトのdist/xlsx.full.min.jsをダウンロードする。 https://github.com/sheetjs/js-xlsx
  2. ファイル名を任意の英字に変更する。 (ファイル名に「.」が含まれているとプラグインとして取り込めないため)
  3. プラグイン管理画面から有効にする。

ExcelはMicrosoftの登録商標です。

利用規約

当プラグインはMITライセンスのもとで公開されています。作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)についても制限はありません。このプラグインはもうあなたのものです。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。