先駆者の方々がいくつも作成方法を発表してくださっていますが、
自分の理解を深めるための覚書として記事に残していこうと思います。
作成するプラグイン
今回は戦闘画面のモンスターの位置や、ステータスの位置を自分用にカスタマイズ出来るプラグインを作成しようと思います。
プラグインの作り方
プラグインを作ってみる より
既存メソッドの再定義 を読みますと、プロジェクト作成時に既に用意されている javascript のメソッドを再定義するコードを用意していけばプラグインを作成出来ることが分かります。
//-----------------------------------------------------------------------------
// Game_Picture
//
// The game object class for a picture.
function Game_Picture() {
this.initialize(...arguments);
}
// do something
// prettier-ignore
Game_Picture.prototype.show = function(
name, origin, x, y, scaleX, scaleY, opacity, blendMode
) {
// do something
};
↓ 再定義
const _Game_Picture_show = Game_Picture.prototype.show;
Game_Picture.prototype.show = function() {
_Game_Picture_show.apply(this, arguments);
// do something
};
戦闘画面の javascript ファイル探索
Battle でコード全体に検索をかけ、
再定義対象メソッドが定義されている javascript ファイルを探します。
戦闘画面のステータス表示位置に関わる statusWindowRect を見つけましたので
試しにステータス表示位置を変更するプラグインを作成してみます。
独自プラグイン用意
プロジェクトフォルダの js/plugins 以下にステータス表示位置を変更する javascript ファイルを作成し、statusWindowRect を再定義するコードを記述します。
(() => {
Scene_Battle.prototype.statusWindowRect = function() {
const extra = 10;
const ww = Graphics.boxWidth - 192;
const wh = this.windowAreaHeight() + extra;
const wx = this.isRightInputMode() ? 0 : Graphics.boxWidth - ww;
const wy = Graphics.boxHeight - wh + extra - 200; // y 座標変更
return new Rectangle(wx, wy, ww, wh);
};
})();
いざテスト!
戦闘テスト用のイベントを配置します。
ツクールのプラグイン管理から作成したプラグインを登録します。
テストプレイで戦闘画面を確認します。
出来ました!
今回はここまでです。