んーぞー
ユーザー
見栄えを良くするためにツクールで立ち絵を表示したいというユーザーさんは多いと思いますし、そのためのプラグインも作者様各位の努力により多数リリースされています。
ただ、立ち絵というのはコアスクリプトでは特になんの設定もありません。MZでは全身立ち絵が素材として用意されるなどこれまで以上に立ち絵を意識しているように思えますが、いまだに立ち絵は各ユーザー(あるいはプラグイン作者)の設定の工夫に委ねられています。
そのため立ち絵に関する規格はプラグイン作者ごとにまちまちであり、統一されていません。
エンドユーザーさんからすればあるプラグイン内のパラメータでアクターごとに(差分も含めて)立ち絵設定がようやく終わったと思えば、また別の立ち絵プラグインで同様の設定をしなければならないというのは煩雑だと思います。
ただ煩雑なだけであればそこまで問題ではありませんが、例えばあるプラグインには着せ替えが実装されているので衣装差分が表示できるが、別のプラグインには存在しないので衣装が反映されない、などの問題もあります。
顔グラフィックや歩行グラフィックであればコアスクリプトに存在するプロパティですのでこのような事態は起きません。どんなプラグインであっても顔グラフィックを表示したければ
ところが立ち絵にはこのようなプロパティが存在しませんので、結果プラグインごとにバラバラな規格になってしまっています。また、立ち絵を変更したくなった場合関連プラグインパラメータすべてを変更しなければならないので煩雑ですし設定漏れリスクも生じます。
本当は顔グラフィック等と同様にデータベース上で設定できればベストなのですが、ないものねだりをしても仕方ありませんのでせめてプラグイン作者間だけでも規格を統一することで立ち絵の管理を一元化してみてはどうか、というのがこの提案です。
例えばある一つの立ち絵管理用プラグインをベースプラグインとし、各立ち絵表示プラグインはこのベースプラグインに定義されている関数によりアクターの立ち絵画像を取得する、という方法が考えられるかと思います。
そのためのたたき台としてこのようなプラグインを作りました。
github.com
このプラグインには立ち絵管理用として基本的な機能が用意されています。
立ち絵には標準、ダメージ差分、ステート差分が用意され、ステートやHP割合に応じて複数の立ち絵を設定できます。またそれぞれの条件には衣装・表情差分用にさらに複数のピクチャを設定できます。

それら複数ピクチャはプラグインコマンドによって変更できる「ピクチャID」にて切り替えられます。

立ち絵画像は
このプラグインはあくまでも立ち絵管理機能に特化しており具体的な動作の変更を行うものではありませんが、
また、
この立ち絵管理プラグインが実際に他プラグインと連携するイメージをお伝えするために、誠に勝手ながらトリアコンタンさんのカスタムメニュー作成プラグインをフォークさせていただいて立ち絵表示機能を付けたサンプルを作りました。
github.com
プラグインパラメータ「ピクチャ」にて、カスタムメニューにアクターの立ち絵もしくは任意のピクチャを表示できるように機能追加しています。
ここで表示される立ち絵は上述の
スクリーンショットはリードのピクチャIDを変更した状態で、衣装差分が反映されています。


もちろんこの立ち絵管理プラグインはあくまでもたたき台でありこれを使えと言うわけでは全くありませんし、これをベースにするとしてもどしどしプルリクしていただきたいと思っています。
この一元管理が実現すれば今後立ち絵に関するプラグインを新規導入するユーザーさんにとっては飛躍的に設定の労力が軽減され、また差分の一貫性向上効果も期待できると思います。
ただしそれには当然既存プラグインを作り直さなければならず、各プラグイン作者様にリワークをお願いするのも心苦しいのですが、どうかご検討いただければ幸いです。
ところで予想される懸念事項として、新規ユーザーにとっては設定が簡略化されるとしても、すでに立ち絵関連プラグインを導入済みのユーザーさんにパラメータ再設定の負担を強いることになるのはいかがなものか、というものがあります。このような点についても議論していきたいです。
プラグイン作者様各位におかれましては、ぜひ積極的な議論の参加をお願い申し上げます。
よろしくお願いいたします。
ただ、立ち絵というのはコアスクリプトでは特になんの設定もありません。MZでは全身立ち絵が素材として用意されるなどこれまで以上に立ち絵を意識しているように思えますが、いまだに立ち絵は各ユーザー(あるいはプラグイン作者)の設定の工夫に委ねられています。
そのため立ち絵に関する規格はプラグイン作者ごとにまちまちであり、統一されていません。
エンドユーザーさんからすればあるプラグイン内のパラメータでアクターごとに(差分も含めて)立ち絵設定がようやく終わったと思えば、また別の立ち絵プラグインで同様の設定をしなければならないというのは煩雑だと思います。
ただ煩雑なだけであればそこまで問題ではありませんが、例えばあるプラグインには着せ替えが実装されているので衣装差分が表示できるが、別のプラグインには存在しないので衣装が反映されない、などの問題もあります。
顔グラフィックや歩行グラフィックであればコアスクリプトに存在するプロパティですのでこのような事態は起きません。どんなプラグインであっても顔グラフィックを表示したければ
faceName
およびfaceIndex
プロパティを参照すれば取得できます。また、顔グラをデータベース上で変更するとそれだけで顔グラ描画機能を持つすべてのプラグインにも反映されます。ところが立ち絵にはこのようなプロパティが存在しませんので、結果プラグインごとにバラバラな規格になってしまっています。また、立ち絵を変更したくなった場合関連プラグインパラメータすべてを変更しなければならないので煩雑ですし設定漏れリスクも生じます。
本当は顔グラフィック等と同様にデータベース上で設定できればベストなのですが、ないものねだりをしても仕方ありませんのでせめてプラグイン作者間だけでも規格を統一することで立ち絵の管理を一元化してみてはどうか、というのがこの提案です。
例えばある一つの立ち絵管理用プラグインをベースプラグインとし、各立ち絵表示プラグインはこのベースプラグインに定義されている関数によりアクターの立ち絵画像を取得する、という方法が考えられるかと思います。
そのためのたたき台としてこのようなプラグインを作りました。
RPG-Maker-MZ/ActorPictures.js at master · nz-prism/RPG-Maker-MZ
Contains plugins/codes for RPG Maker MZ. Contribute to nz-prism/RPG-Maker-MZ development by creating an account on GitHub.
このプラグインには立ち絵管理用として基本的な機能が用意されています。
立ち絵には標準、ダメージ差分、ステート差分が用意され、ステートやHP割合に応じて複数の立ち絵を設定できます。またそれぞれの条件には衣装・表情差分用にさらに複数のピクチャを設定できます。

それら複数ピクチャはプラグインコマンドによって変更できる「ピクチャID」にて切り替えられます。

立ち絵画像は
Game_Actor
のpictureName
関数により取得されます。この関数はステート>ダメージ>標準の優先度にて立ち絵を参照し、例えばあるアクターが毒状態かつHP割合が70%だとして「毒状態の画像がなければHP75%画像を参照し、それもなければ標準立ち絵画像ファイル名を返す」といった仕様です。
JavaScript:
Game_Actor.prototype.normalPictureName = function() {
const obj = ACTOR_PICTURES[this._actorId];
if (obj) {
const normals = obj.normals;
if (normals) return normals[this._pictureIndex] || normals[0];
}
return "";
};
Game_Actor.prototype.statePictureName = function() {
const obj = ACTOR_PICTURES[this._actorId];
if (obj) {
const states = obj.states;
for (let i=0; i<states.length; i++) {
const pictures = states[i];
if (pictures && this.isStateAffected(i)) return pictures[this._pictureIndex];
}
}
return "";
};
Game_Actor.prototype.damagePictureName = function() {
const obj = ACTOR_PICTURES[this._actorId];
if (obj) {
const damages = obj.damages;
const hpRate = this.hpRate() * 100;
for (const damageObj of damages) {
if (damageObj && hpRate <= damageObj.damageRate) return damageObj.pictures[this._pictureIndex];
}
}
return "";
};
Game_Actor.prototype.pictureName = function() {
return this.statePictureName() || this.damagePictureName() || this.normalPictureName() || "";
};
このプラグインはあくまでも立ち絵管理機能に特化しており具体的な動作の変更を行うものではありませんが、
Window_Base
に立ち絵を描画するdrawActorPicture
関数を追加しています。この関数は、顔グラフィックに対するdrawActorFace
のような感覚で使用できます。また、
Scene_Base
のcreate
にて全ての立ち絵をプリロードするようにしています。この立ち絵管理プラグインが実際に他プラグインと連携するイメージをお伝えするために、誠に勝手ながらトリアコンタンさんのカスタムメニュー作成プラグインをフォークさせていただいて立ち絵表示機能を付けたサンプルを作りました。
RPGMakerMV/SceneCustomMenu.js at mz_master · nz-prism/RPGMakerMV
RPGツクールMV、MZで動作するプラグインです。. Contribute to nz-prism/RPGMakerMV development by creating an account on GitHub.
プラグインパラメータ「ピクチャ」にて、カスタムメニューにアクターの立ち絵もしくは任意のピクチャを表示できるように機能追加しています。
ここで表示される立ち絵は上述の
pictureName
関数にてファイル名を取得しているので、現在のアクターのステート、ダメージ、着せ替えを反映します。ちなみにZ軸は背景よりも上かつウィンドウよりも下です。スクリーンショットはリードのピクチャIDを変更した状態で、衣装差分が反映されています。


もちろんこの立ち絵管理プラグインはあくまでもたたき台でありこれを使えと言うわけでは全くありませんし、これをベースにするとしてもどしどしプルリクしていただきたいと思っています。
この一元管理が実現すれば今後立ち絵に関するプラグインを新規導入するユーザーさんにとっては飛躍的に設定の労力が軽減され、また差分の一貫性向上効果も期待できると思います。
ただしそれには当然既存プラグインを作り直さなければならず、各プラグイン作者様にリワークをお願いするのも心苦しいのですが、どうかご検討いただければ幸いです。
ところで予想される懸念事項として、新規ユーザーにとっては設定が簡略化されるとしても、すでに立ち絵関連プラグインを導入済みのユーザーさんにパラメータ再設定の負担を強いることになるのはいかがなものか、というものがあります。このような点についても議論していきたいです。
プラグイン作者様各位におかれましては、ぜひ積極的な議論の参加をお願い申し上げます。
よろしくお願いいたします。
最後に編集: