開発日誌

テクニック

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] 文章中にアイテムや敵キャラ等の名前を表示

2020-08-22 12:41:50

天下御免!からくり屋敷』の歴史編制作と並行して、RPGツクールMZも触っていこうと思っているので、さっそく自分で使いそうなプラグインを作ってみました。

MZ用に作ったものですが、試したらMVでも普通に動作しました。

「文章の表示」コマンドやアイテム等の説明文で、以下の制御文字をそれぞれの名前に置き換えてくれるプラグインです。

\class[n] n番の職業名
\skill[n] n番のスキル名
\item[n] n番のアイテム名
\weapon[n] n番の武器名
\armor[n] n番の防具名
\enemy[n] n番の敵キャラ名
\troop[n] n番の敵グループ名
\state[n] n番のステート名

\item[\V[1]]のように、nに変数を用いることも可能です。この場合、1番の変数に格納されているID番号のアイテム名が表示されます。

さらに\*skill[n]のように頭に*を付けると、そのスキルのアイコンを表示できます。item、weapon、armor、stateも同様です。もちろんclass、enemy、troopは、*を付けてもアイコンは表示されません(付けてもエラーにはなりません)。

具体的な使い方は以下の通り。

上のように書いておくと、下のように表示されます。

こうしておけば、アイテム名や敵キャラ名を後で変更した時に、台詞もいちいち変更して回る必要がなくなるので、非常に便利だと思います。

プレビューだと正しく表示されないのですが、実際のゲームではちゃんと置き換わって表示されます。ウィンドウの横幅からはみ出さないようにご注意ください。

質問やアドバイスなどはコメント欄まで、お気軽にどうぞ。プラグイン素材の利用条件についてはMITライセンスとしています(英文を考えるのが面倒くさかったから)。丸パクリなどでなければ基本的に利用は自由です。このサイトについての「提供素材について」の項目なども併せてご覧ください。

コメント
1. sohwagi 2026-04-28 19:02:50

お久しぶりです。ご連絡させていただきます。

RPG Maker MZでゲームを制作していると、アクター、職業、アイテム、武器、防具、敵キャラクター、敵グループ、ステートなどにおいて、
元々は使用していなかったものが制作過程で追加・修正されることがあります。

そのようにデータを修正した後、以前に作成したセーブデータを読み込むと、
ゲーム内ではアクター名が修正前のまま表示されたり、アイテム名も修正前のまま表示されてしまいます。

EX - 以前は \N[424] =「--------」、現在は \N[424] =「ジェームズ」
しかし、以前のセーブデータを読み込んで \N[424] を表示すると、「ジェームズ」ではなく「--------」と表示されます。

EX - 以前はアイテムID100 =「--------」、現在はアイテムID100 =「リンゴ」
しかし、以前のセーブデータを読み込んで \item[100] を表示すると、「リンゴ」ではなく「--------」と表示されます。

この件について、
「プラグインコマンドによって、現在読み込んでいるセーブデータ内のアクター名、職業名、スキル名、アイテム名、武器名、防具名、敵キャラクター名、敵グループ名、ステート名などを、
ゲームプロジェクトの最新データに基づいてセーブデータへ更新し、
なおかつ新規ゲーム(セーブデータを読み込んでいない状態)にはこのプラグインコマンドが影響しない」

といった機能を持つプラグインの制作をご依頼したいと考えております。

制作をご依頼させていただくことは可能でしょうか。

ご回答をお待ちしております。
よろしくお願いいたします。

2. panda 2026-04-28 21:55:54

アクター名についてはアクターの「名前の変更」でゲーム中に変更できるため、
確かにデータを修正しても修正前のセーブデータには反映されませんね。

しかしそれ以外のアイテム名などは、毎回直接データベースのアイテム名を参照しているので、
データを変更したら変更前のセーブデータでも反映されているはずです。

またアクターに関して言うと、アクターは初めて参照された時にデータベースから作成され、
名前はその時のものがセーブデータに残るため、後から修正しても反映されない仕組みです。
逆に言うと、まだ仲間に加えていないとかで未参照のアクターであれば、修正後の名前が反映されます。
「--------」みたいな名前のアクターを仲間に加えているということでしょうか??
まあ仲間に加えていなくとも、装備を変更するとかで1回でも参照すれば、アクターが生成されてしまいますが。
またそれで言うと、名前だけでなくキャラ画像や初期装備、アクターに紐付く特徴なども修正が反映されないので、それはいいのかというのもあります。
いずれにしてもアクター名はゲーム中に任意で変更できる以上、今の名前を保持すべきなのか変更を反映すべきなのか、名前だけでなくその他のデータも変更すべきなのかは、プラグインで汎用的に一律制御できるものではなく、名前を表示する手前で都度アクター名の変更などを実行するようにするのが最適だと思われます。

3. sohwagi 2026-04-28 22:36:59

こんにちは、ご回答いただきありがとうございます。

私は、アクターの「名前変更」機能を使用できない状況にあります。


(多言語版のゲームも制作しているため、言語ごとに「名前変更」を使用することも難しい状況です。)




「現在読み込んでいるセーブデータ」に対して、

「エディタ(ゲームデータ)側の名称をセーブデータに反映(更新)する」プラグインを希望しておりますが、

制作の難易度は高いものでしょうか。




「----------」については、アクターやアイテムの「名前」を、ゲーム内の目標表示システム(「~を入手しました」「該当の目標地点へ移動」など)として使用してきました。




区切りとして使用していた「----------」をアップデートで「該当人物と会話」に変更した後、セーブデータを読み込んで確認したところ、「----------」のまま表示されてしまいました。 T0T

4. RyOnn 2026-04-29 18:14:14

使いやすくて最高です。有難うございます(∩´∀`)∩

5. panda 2026-04-30 09:23:52

>RyOnnさん
ありがとうございます!

6. panda 2026-04-30 09:24:47

>sohwagi님
「エディタ(ゲームデータ)側の名称をセーブデータに反映(更新)する」だけであれば難易度は高くないのですが、キャラ画像や初期装備なども引き継ぐ必要があって、しかしそれらはゲーム中に変更されうることから、単純に上書きすればいいというものではないため、汎用的なプラグインにするのは無理だと思います。
多言語版を作っているのと名前変更ができないのの繋がりが、どう多言語対応しているのか知らないのでよく分からないのですが、現在の言語で条件分岐して名前変更するとかはできないものですかね。
あるいは「メンバーの入れ替え」で対象のアクターを加える際に「初期化」すれば、データベースの内容が反映されるので、それでいけないでしょうか。いったん加えてからすぐ外せばよいかと。

お名前
コメント
※ 確認画面はありません。