こんにちは!YanflyのBattle Engine CoreとMogのBattle HUDプラグインを両方使用しています。Mogのプラグインで作ったバトルメニューの上に、バトラーのスプライトが重なって表示されてしまうという問題に直面しています。私がやりたいのは、バトラーのスプライトをHUDの背面に表示することです。プラグインマネージャーでプラグインの読み込み順序を入れ替えてみましたが、うまくいきませんでした。
Battle CoreプラグインでHUDよりも先にバトラーを読み込む方法、あるいはバトラーのスプライトが読み込まれた後にBattle HUDを読み込む方法はありますか?現在の表示状態を示す画像を添付しました。各アクター背後のシルエットは、最終的なデザインでスプライトがどのようなものになるかのプレースホルダーです。
Baz
2
正面ビューにおいて、MOG_BattleHudはアクターのスプライトの独自のコピーを作成し、HUDパネルがすでに配置された後にそのHUDコンテナに配置します。最後に追加された子要素が最前面に描画されるため、スプライトはパネルの上に重ねられます。これらはすべてMOG独自のコード内で処理されているため、プラグインマネージャーの順序を変更しても配置は変わりません。
小さなパッチプラグインを作成すれば解決できると思います。このコードを独自の名前で.jsファイルとして保存し、js/pluginsフォルダに配置してください。その後、プラグインリスト上でMOG_BattleHudの下に配置します。これにより、HUDの構成要素がスプライトの後に追加され、パネルが前面に表示されるようになります:
//=============================================================================
// BattlerBehindHud.js
//=============================================================================
(function() {
var _createBattleHudSB = Scene_Battle.prototype.createBattleHudSB;
Scene_Battle.prototype.createBattleHudSB = function() {
_createBattleHudSB.call(this);
if (this._screen_layout) {
this._hudField.addChild(this._screen_layout);
}
if (this._battle_hud) {
for (var i = 0; i < this._battle_hud.length; i++) {
this._hudField.addChild(this._battle_hud[i]);
}
}
};
})();
ここではMOG_BattleHud v5.04fを参照していますので、お使いのバージョンがそれより古い場合は関数名が一致しない可能性があります。
本当にありがとうございます!! このプラグインは完璧に動作し、これなしではどうすればよいか分からなかったでしょう。本当に助かりました!
「いいね!」 1