長編RPGを作っていてよくあるのが、最初はただの村の自警団兵だった若者が、王国兵として取り立てられ、最終的に世界を救う勇者になる、といったストーリーです。
そしてそのストーリーに応じて変化する立場を、職業名としてステータス画面等に反映したくなります。
普通に実装するとなると、中身は全く同じで、名前だけが「自警団兵」「王国兵」「勇者」などと異なる職業を用意しておき、イベントコマンドの「職業の変更」で「レベルの保存」にチェックして、職業を変更すればよいと思います。
ただこの方法だと、名前しか違わない職業を複数用意する必要があり、途中でパラメーターやスキル習得等を変更する場合は、同じ変更を全ての職業に忘れず反映しないといけないため、非常に手間がかかります。
しかしアクターの属性にはもう一つ、RPGツクールVX Aceから登場した「二つ名」という属性があります。こちらは単純に文字情報のみでゲームには何も影響を与えないですし、イベントコマンドの「二つ名の変更」で簡単に変更できます。
なので、ストーリーに応じて二つ名を「自警団兵」「王国兵」「勇者」などと変更し、ステータス画面等では職業名の代わりにこの二つ名を表示するようにしてやれば、やりたいことが楽に実現できます。
というわけで、プラグインを作りました。MV/MZ両対応です。
このプラグインを導入すると、ステータス画面等で職業名の代わりに二つ名が、二つ名の代わりに職業名が表示されるようになります。後者はプラグインパラメータで非表示にすることもできます。
具体的な使用イメージはこんな感じ。
- 本来の二つ名の名称で職業を作成(二つ名を非表示にするなら適当な名前で可)
- アクターにその職業を割り当て、二つ名に本来の職業名を設定
- イベント中に「二つ名の変更」で本来の職業名を変更
そうするとこんな感じで、ステータス画面上は職業名のところに二つ名が、二つ名のところに職業名が表示されます。
スキル選択画面などではもともと職業名しか表示されませんが、そこでは職業名の代わりに二つ名が表示されます。
やっていることとしては、アクタークラスの二つ名(nickname)を返すところで、「二つ名の表示」パラメータがONなら職業名を、OFFなら空文字列を、二つ名の代わりに返しているのと、ウィンドウクラスの職業名描画(drawActorClass)で、職業名の代わりに二つ名を描画しているだけです。
なので、drawActorClassに手を入れているプラグインとは、競合するかもしれません。
ちなみにdrawActorClassは、MVではWindow_Baseのメソッド、MZではWindow_StatusBaseのメソッドで違いがあるのですが、両方含めることでMV/MZ両対応としました。この方法、間違ってないですよね?
厨二っぽいゲームでもない限り、いまいち存在意義が分からなかった二つ名ですが、有効な使い方が発見できて良かったです!
コメント