プラグイン「文章を外部CSVファイルで記述する(4行以上でも可)」【MV/MZ対応】

バイザン

ユーザー
top.png
イベントエディター中の文章に「\M[メッセージID]」のように記述しておくことで、
テキストエディタ等で編集可能な外部CSVファイル中の文章に置き換えてくれます。

ただの文章置き換えではなく、4行を超えたら自動で次のページにしたり、名前(※1)や顔グラの設定、イベント呼び出しなどある程度のスクリプト記述が可能です。
この置き換え機能は事前に変換して焼き込むような方法ではなく、実行時に直接CSVファイルを読み取るのでCSVを編集/保存したら再起動するだけでテキストが反映されます。

なお条件分岐などはできないので条件分岐が必要な場合はイベントエディターで設定し、条件の前後の文章をCSVファイルで管理することになります。

このプラグインはRPGツクールMV / MZどちらでもご使用いただけます。(2020/08/22 1.0.4~)

※1:ツクールMVの場合、名前セット機能は以下のプラグインと連携することを前提としています(ツクールMZでは不要です)
YEP_MessageCore


【こういう人にオススメ】
 ・台詞をいっぱい書きたいけどイベントエディターで毎回文章ノードを追加するのが面倒な人
 ・台詞を別ファイルで管理して見渡せるようにしたい人
 ・特殊な単語を気軽にデータベース化したい人
 ・多言語対応したい人(文章が別ファイルなので翻訳が簡単なはず)


【セットアップ方法】
 1)「ExternalMessage.js」を ./js/pluguins/ フォルダに入れる
  以下のファイルを右クリック保存してください
  https://raw.githubusercontent.com/into-vision/ExternalMessage/master/src/ExternMessage.js

  GIT:https://github.com/into-vision/ExternalMessage/

 2)「ExternMessage.csv」を ./data/ フォルダに 「新規作成」する。
  読み込みたいcsvファイルの名前は設定で変更可能です。
  そもそもcsvファイルって何?って方は検索していただけると嬉しいです...
  CSVファイルは以下のようなフォーマットにしてください。
    メッセージID, メッセージ
    メッセージID, メッセージ
    メッセージID, メッセージ
 エクセルの表示的には1列目にメッセージID、2列目にメッセージとなります。


【イベントエディター中の「文章」に追加される制御文字】
\M[メッセージID]
 CSVファイル内に記述されている一致する「メッセージID」に対応する「メッセージ」へ置き換えます。


【CSVファイル側で有効なコマンド】
:name[名前, 顔グラのセット名]
name.png
 別ウィンドウの名前表示欄に設定する名前と使用する「顔グラのセット」名を指定します。
 「顔グラのセット」名は顔グラを使用しない場合は省略できます。
 また「名前」に「\N[1]」のようなRPGツクールの制御文字を記述することもできます。
name_ex.png
 推奨する使い方として「名前, 顔グラのセット名」をまとめたメッセージIDを定義し、名前と顔グラがずれることを防止します。


:face[顔グラの番号]
face.png
 現在セットされてる「顔グラのセット」内の指定した番号の顔グラに変更します。
face_ex.png
 推奨する使い方としてすべての顔グラの表情の番号を統一し、
 「メッセージID」で管理することで文章中でも表情が視認しやすくなります。


:word[メッセージID]
 指定したメッセージIDに対応する単語に置き換えます。
 置き換え後のメッセージは再度検証されないので改行やコマンドを使用しないでください。


→:word コマンドは廃止になりました(ver.1.1.0~)
 代わりにエクセル内の文章でも\M[]が使用可能になりました。

:page
 次の行を次のページに送ります。


:event[イベント番号]
event.png
 指定した番号のコモンイベントを呼び出します。
event_ex.png
 推奨する使い方として直接数値を打ち込まずに「メッセージID」で置き換えることで視認性を上げます。
 仕様としてイベント実行後は必ず改ページされます。(1.0.5 2020/09/12)

:fadeout
 画面を黒暗転させます。


:fadein
 黒暗転状態から画面を表示させます。

:bg[]
 文章ウィンドウの背景を指定します。(ver.1.1.0~)
 - dim ツクールの「暗くする」に相当します。
 - transparent ツクールの「透明」に相当します。
 - window デフォルトのウィンドウ表示です。

:layout[]
 文章ウィンドウの位置を指定します。(ver.1.1.0~)
 - top 上に表示します
 - center 中央に表示します
 - bottom 下に表示します。


【コマンド仕様】
 ・コマンド後ろの「[]」内に「メッセージID」を記述した場合は対応する「メッセージ」に自動で置き換えてくれます。
  一致する「メッセージID」が存在しない場合はそのまま使用されます。

 ・「メッセージ」内でもRPGツクールMV/MZデフォルトの制御文字などが使用できます。
  原理的にはメッセージを流し直すだけなのでその他の拡張制御文字も使用できる...はず!
  ただしメッセージ内に「\M[メッセージID]」は使用できません。
  →使用できるようになりました(ver.1.1.0~)

【TIPS】

 csvファイルを直接エクセルなどのファイルで編集するのもありですが、
 オリジナルのデータは.xlsx/.xlsmなどの拡張子で保存してマクロなどを組むとより便利になります。
 自分が用意したのは1行あたりの最大文字数をカウントしたりCSV出力ボタンを作って簡単に吐き出せるようにしたりなどです。
 (VBAマクロがめっちゃ面倒だったのでもし参考にしたいとか要望がありましたらお問い合わせください)

 必ずしもcsvファイルで全ての文章を管理する必要はありません。
 短い文章は直接イベントエディターに打ちつつ長文をエクセルで管理するというのは全然ありだと思います。


【注意事項】
 使用実績が乏しいのでバグなどあればぜひご報告ください!
 プラグイン作成経験もないのでお作法と違う部分があれば教えていただけると嬉しいです。
 RPGツクールでの作成経験もないような人なので実際の作業フローにそぐわない、
 ここをこうしてほしいなど要望などがありましたらぜひフィードバックをいただければと思います。
 他のプラグインと競合する場合などもご要望いただければ出来る範囲で対応したいと思います。
 あと実はすでに似たようなプラグインが有るようならすみません...


【ライセンス】
 MITライセンス
 製作者: バイザン(@into_vision)
 非商用利用: 自由
 商用利用: 自由
 再配布: OK
 加工: OK
 加工後の再配布: OK
 シリーズ: ツクールMV, ツクールMZ


【バージョン情報】
 1.1.0 2020/09/23 Window関連のコマンド追加。:wordを廃止。代わりに再起コマンド実行可能なテキスト置き換え機能実装
 1.0.7 2020/09/22 MZではさらにsetupNewGameが細分化されていたので共通して呼び出される場所で初期化するように
 1.0.6 2020/09/22 イベントテスト/戦闘テスト実行時に'TEST_'の接頭語をつけて読み込まれる仕様を回避するように
 1.0.5 2020/09/12 イベントコマンド実行後のメッセージが表示されない問題の修正
 1.0.4 2020/08/22 ツクールMZに対応。具体的には名前ウィンドウ対応
 1.0.3 2020/07/17 最終行の読み取りエラー修正
 1.0.2 2020/07/16 CRLF(\r\n)改行だとうまく動かない問題に対応
         パラメーターにセフティー処理追加
 1.0.1 2020/04/25 CSVファイル1行目をヘッダー扱いにしてた仕様を削除
 1.0.0 2020/04/25 初版公開


【その他】
  このプラグインの作成経緯を少しだけ書かせていただきますと、にじさんじ所属のVirtual Youtuberである
「鈴谷アキ」さんの活動2周年記念のお祝いのために当初計画していたファンメイドのゲーム作品用に作成されました。
 その際ファンのコミュニティー(通称アキネコ)からメッセージを募りゲーム内に配置していく予定でした。
 過去の経験から100近いメッセージが集まる想定だったため、それらをエクセルで管理しチェックコストの低減や
 イテレーションの高速化を目指して作成したのが始まりです。
  その後色々あってゲーム作品としての制作は中断されましたが、たぶん結構便利なので
 せっかくだし公開したいと思い今回投稿させていただきました。
 今回作成のきっかけをくださったアキネコのみなさまとモチベーションの元となっている鈴谷アキ様に
 改めて感謝の気持をお送りさせていただきます。

 みなさまの創作活動が素晴らしいものになりますように祈っています!
ツッコミやご要望があればお気軽にどうぞ!
 
最後に編集:

バイザン

ユーザー
質問ありがとうございます!
が、大変残念ながらYEP MessageBacklogは持っていないためわからないです...(YEP_MessageCoreはRPGツクールMV基本素材のものです)
一応類似のプラグインとして出てきた ぽに犬 様の バックログプラグイン(ponidog_BackLog_utf8)では問題なく動いてるように見えます。
なのでもしかしたら併用できるかもしれません。※いずれにしても動作を保証するものではありません

もしMessageBacklogを既にお持ちでしたら実際に試していただけると幸いです!
 

onakahhh

ユーザー
ありがとうございます、とても便利そうです。
ぜひ使用してみたいのですが、2点、困っている点があります。

・Excelを持っていませんので、Googleスプレットシートからcsvをエクスポートして検証してみたのですが、セル内で改行すると最後の文字に”(ダブルクオーテーションの終端)が表示されています。
・最後のメッセージIDを参照しようとすると、「不正なメッセージが検出されました」とエラーが出ます。

具体的には、ExternMessage.csvをテキストエディタで開くと、以下のようになっています。
-----------
1,"あ

う"
2,"え
お"
---------
このとき、ツクールのイベントエディターの文章に\M[2]と入力すると、エラーが出ます。
\M[1]と入力すると、



う"

とダブルコーテーションが最後に表示されます。
これら仕様でしょうか。また回避可能でしょうか。

検証が不十分な点がありましたら申し訳ありません。よろしくお願いいたします。
 

バイザン

ユーザー
ご試用いただきありがとうございます!
近しい現象を再現できましたので対応いたしました!
原因としては改行コードがCRLF(\r\n)だとうまく動かなさそうでした。

ver1.0.2として更新しましたので再度お試しいただければ幸いです。
まだダメそうな場合でも対応したいと思いますので再度お問い合わせいただければと思います。
よろしくお願いいたします!
 

バイザン

ユーザー
コードの配布場所をGITに移行しました。

ついでに当プラグインは大規模シナリオスクリプトでの検証はできていませんので、もしロード時間が無視できないレベルになって来ましたらご相談ください。
できるだけ対応したいと思います。
 

onakahhh

ユーザー
なんと!
大変迅速にご対応いただき、感激いたしました。

ver1.0.2を試しましたが、ほぼ問題なく動作いたしました。
一点、最後のメッセージが複数行、かつ、最後の行を改行せずに終わっている(ダブルコーテーションでファイルが終わっている)場合には、同様の「不正なメッセージIDが検出されました」 が表示されました。
ただしこれは、最後の行に改行を入れる(空行でファイルが終わっている)と回避できましたので、現状で問題なく使用できそうです。
使用させていただきます。ありがとうございます。
 

バイザン

ユーザー
確認ありがとうございます!

>最終行
あー! なるほど...たしかにこれだと最後なにもないと取りこぼされますね...報告ありがとうございます!
明日修正いたしますので取り急ぎ返信だけ!
 

バイザン

ユーザー
最終行の読み取りエラーに対応しました! ver1.0.3
よろしければご確認ください!
 

バイザン

ユーザー
1.0.4 2020/08/22
 先日発売しましたRPGツクールMZに対応しました。
 具体的には名前ウィンドウをプラグイン経由ではなくデフォルトの機能を使用するようにしました。
 MV/MZ両方同じファイルがご使用いただけます。
 

バイザン

ユーザー
1.0.5 2020/09/12
 イベントコマンド実行後のメッセージが表示されない問題を修正しました。
 なお:eventの仕様としてイベント実行後は必ず改ページされます。
 この仕様だと行いたい表現ができないという場合はご相談ください。
 

console10

ユーザー
Note: * Sorry for english only talking * :)

Thank you for making this! I will try to use in an english product.

Please consider creating a sample project to show the product, also consider an english translation.

Thank you again!

edit: I got it working! This plugin is AMAZING!
Please consider adding the following commands:

-Selecting DIM, WINDOW, and TRANSPARENT background
-Selecting Window Position from TOP, MIDDLE, BOTTOM

Thank you! :)
 
最後に編集:

バイザン

ユーザー
Thank you for using!!
使用していただきありがとうございます!!

The explanation in English will be machine translation.
Is that OK?
英語での説明は機械翻訳になるかもしれませんがそれで良ければ用意してみたいと思います。

I'll consider "background setting" and "window location setting"!
背景設定とウィンドウ位置設定は検討いたします!

But, it won't be possible immediately.
しかしすこしお時間をいただきます!
 

バイザン

ユーザー
1.0.6 2020/09/22
 イベントテスト/戦闘テスト実行時に'TEST_'の接頭語をつけて読み込まれる仕様を回避するように対応しました。
 
 戦闘テストやCtrl+Rでのイベントテスト実行を行うとツクールエディタ側で管理されているファイルは'TEST_'を接頭語にして複製?されて読まれているようで、ツクールエディタ管理外のファイルは複製されないので読み込みエラーになっていました。シラナカッタ
今回の対応では'TEST_'付きで読まれた場合は接頭語を外して読み込み直すように対応しました。

追記:MZで動作確認忘れててチェックしたらこっちはまだダメだった…対応中
 

バイザン

ユーザー
1.0.7 2020/09/22
 MZのイベントテスト/戦闘テスト実行時はまた別の問題で引っかかってたので対応しました。

 MZではsetupNewGameが細分化されていたので共通して呼び出される場所で初期化するように回避しました。
 そもそもセーブデータから始めると正しく動作してなかった説が…コレハヒドイ
 

バイザン

ユーザー
1.1.0 2020/09/23
 :wordコマンドを廃止。
 代わりにエクセルのメッセージ文章内でも \M[]によるメッセージ置き換えに対応しました。
 それとウィンドウ関連のコマンドを追加しました。

内部的に色々と変更してるのでなにかバグが見つかりましたらまた教えて下さい!
:wordコマンドを今廃止されると困るという方がいらっしゃいましたらそれもご相談ください!
 

バイザン

ユーザー
edit: I got it working! This plugin is AMAZING!
Please consider adding the following commands:

-Selecting DIM, WINDOW, and TRANSPARENT background
-Selecting Window Position from TOP, MIDDLE, BOTTOM
The function you requested was mounted!
:bg[] & :layout[] commands in ver1.1.0
 
トップ