データベース変換 - DatabaseConverter.js

▼データベース変換(トリアコンタン様作) - DatabaseConverter.js
https://plugin.fungamemake.com/archives/1002
ツクールMVのデータベースおよびイベント内容をExcelやCSVなどのシートデータに書き出し、読み込みします。
ふりがな:でーたべーすへんかん
機能概要: ツクールMVのデータベースおよびイベント内容をExcelやCSVなどのシートデータに書き出し、読み込みします。
利用規約(ライセンス): MITライセンス
作者:トリアコンタン
作者サイト:https://triacontane.blogspot.com/
解説ページ:https://triacontane.blogspot.jp/2018/05/blog-post.html
ダウンロードページ:https://raw.githubusercontent.com/triacontane/RPGMakerM…
ファイル名:DatabaseConverter.js
備考:最新のChromeでは動作しないようです。
データベースコンバーターMVの使用を推奨します。
https://tkool.jp/mv/special/db.html
プラグインのヘルプ:
/*:
* @plugindesc データベース変換プラグイン
* @author トリアコンタン
*
* @param excelDataPath
* @text シートデータファイルパス
* @desc シートデータファイルが出力されるパスです。相対パス、絶対パスが入力できます。
* @default excelData
*
* @param ExportPrefix
* @text 出力ファイル接頭辞
* @desc エクスポートファイルに付与される接頭辞です。インポートファイルと分けて保持したい場合に指定してください。
* @default
*
* @param targetDatabase
* @text 対象データベース
* @desc 入出力の対象になるデータベースの一覧です。独自に定義したデータファイルを追加できます。
* @default [”{”JsonName”:”Actors”,”VariableName”:””}”,”{”JsonName”:”Classes”,”VariableName”:””}”,”{”JsonName”:”Skills”,”VariableName”:””}”,”{”JsonName”:”Items”,”VariableName”:””}”,”{”JsonName”:”Weapons”,”VariableName”:””}”,”{”JsonName”:”Armors”,”VariableName”:””}”,”{”JsonName”:”Enemies”,”VariableName”:””}”,”{”JsonName”:”Troops”,”VariableName”:””}”,”{”JsonName”:”States”,”VariableName”:””}”,”{”JsonName”:”MapInfos”,”VariableName”:””}”]
* @type struct<DatabaseInfo>[]
*
* @param fileFormat
* @text 出力ファイル形式
* @desc 出力データのファイル形式です。
* @default xlsx
* @type select
* @option xlsx : Excel 2007+ XML Format
* @value xlsx
* @option xlsm : Excel 2007+ Macro XML Format
* @value xlsm
* @option xlsb : Excel 2007+ Binary Format
* @value xlsb
* @option ods : OpenDocument Spreadsheet
* @value ods
* @option fods : Flat OpenDocument Spreadsheet
* @value fods
* @option csv : Comma Separated Values
* @value csv
* @option txt : UTF-16 Unicode Text (TSV)
* @value txt
*
* @param originalDataLoad
* @text オリジナルデータ読み込み
* @desc 作成済みのオリジナルJSONデータの読み込み処理を実行します。データファイルがないとエラーになります。
* @default false
* @type boolean
*
* @param autoImport
* @text 自動インポート
* @desc インポート処理を実行してからゲーム開始します。テストプレー時のみ有効です。
* @default false
* @type boolean
*
* @param exportEventTest
* @text イベントテスト出力
* @desc イベントテスト実行時に実行内容を出力します。ただし本プラグインのコマンドを実行した場合は出力されません。
* @default true
* @type boolean
*
* @param commandPrefix
* @text メモ欄接頭辞
* @desc 他のプラグインとメモ欄もしくはプラグインコマンドの名称が被ったときに指定する接頭辞です。通常は指定不要です。
* @default
*
* @help DatabaseConverter.js
* ツクールMVのデータベースを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ファイルを開いたときに何らかのエラーメッセージが
* 表示された場合は、そのまま編集およびインポートしないでください。
*
* 本プラグインの機能は「イベントテスト」から実行した場合のみ有効です。
* 通常のテストプレーおよび製品版には影響を与えません。
* (独自データの読み込み機能は例外)
*
* --------------------------------------
* プラグインコマンド詳細
* --------------------------------------
* イベントコマンド「プラグインコマンド」から実行。
* (パラメータの間は半角スペースで区切る)
*
* 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は省略できません。
*
* --------------------------------------
* 使用ライブラリ
* --------------------------------------
* 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の登録商標です。
*
* 利用規約:
* 作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)
* についても制限はありません。
* このプラグインはもうあなたのものです。
*/
/*~struct~DatabaseInfo:
*
* @param JsonName
* @text データファイル名称
* @desc データベースファイルのJSON名称です。(拡張子不要) 独自に定義したJSONファイルを読み込む場合は直接入力してください。
* @default
* @type combo
* @option Actors
* @option Classes
* @option Skills
* @option Items
* @option Weapons
* @option Armors
* @option Enemies
* @option Troops
* @option States
* @option MapInfos
*
* @param VariableName
* @text グローバル変数名称
* @desc データベースが格納されるグローバル変数の名称です。既存データベースの場合は入力不要です。
* @default
*/