【解決】MOG Battle HUD フロントビュー戦闘限定で味方全体のアニメが左上に出てしまうバグ

返信する
アバター
ムノクラ
記事: 2118
登録日時: 2018年2月23日(金) 11:41
連絡する:

【解決】MOG Battle HUD フロントビュー戦闘限定で味方全体のアニメが左上に出てしまうバグ

投稿記事 by ムノクラ »

フロントビュー戦闘で
・範囲:味方全体
・アニメーション:0043 回復/全体1
のスキルを実行すると、画面の左上で再生されてしまいます。
SS01.png
SS02.png
※サイドビュー戦闘では起こりませんでした。

フロントビュー戦闘でもサイドビュー戦闘時と同じアニメーション再生になるように修正できないでしょうか?


また、下記でまっつUPさんが配布さしてくださった、パッチプラグインを使用すると、画面の真ん中でアニメーションは再生されるようになりました。
viewtopic.php?t=4173#p14856

JavaScriptを理解していない素人が読み比べて考えたのが下記コードの変更ですが、これで作者の想定している動作なのでしょうか?

▼変更前

コード: 全て選択

//==============================
// * Update Position
//==============================
var _mog_bhud_sprAnim_updatePosition = Sprite_Animation.prototype.updatePosition;
Sprite_Animation.prototype.updatePosition = function() {
	_mog_bhud_sprAnim_updatePosition.call(this)
	if (this._battler) {
		if (this._animation.position === 3 && this.x === 0 && this.y === 0) {
			this.x = Graphics.boxWidth / 2;
			this.y = Graphics.boxHeight / 2;
		};
	};
};
▼変更後

コード: 全て選択

//==============================
// * Update Position
//==============================
var _mog_bhud_sprAnim_updatePosition = Sprite_Animation.prototype.updatePosition;
Sprite_Animation.prototype.updatePosition = function() {
	_mog_bhud_sprAnim_updatePosition.call(this)
//	if (this._battler) {
		if (this._animation.position === 3 && this.x === 0 && this.y === 0) {
			this.x = Graphics.boxWidth / 2;
			this.y = Graphics.boxHeight / 2;
		};
//	};
};
変更前スクリプトの動作検証用のzipデータを添付します。
※再配布用ではないので、ご理解ください。
最後に編集したユーザー ムノクラ [ 2020年1月06日(月) 19:18 ], 累計 2 回
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
アバター
ムノクラ
記事: 2118
登録日時: 2018年2月23日(金) 11:41
連絡する:

Re: 【添削依頼】MOG Battle HUD フロントビュー戦闘限定で味方全体のアニメが左上に出てしまうバグ

投稿記事 by ムノクラ »

あけましておめでとうございます。
本年もよろしくお願いいたします。

新年アゲ
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
アバター
ムノクラ
記事: 2118
登録日時: 2018年2月23日(金) 11:41
連絡する:

Re: 【添削依頼】MOG Battle HUD フロントビュー戦闘限定で味方全体のアニメが左上に出てしまうバグ

投稿記事 by ムノクラ »

奏 ねこま さんにご指導いただきました。
https://twitter.com/koma_neko/status/12 ... 3185649664

おそらく『MOG_BattleHud.jsは改変部分が大きいので何が正解というより「見た目が正しければOK」で良いんじゃないですかね』が正解で、解決すれば、どれも正解なのでしょうけれども…微妙な記述の差が気になっていたので、「コアと同じにする」という理由がしっくりきました。

ムノクラが変更した箇所は元に戻し、下記コードを書き換えました。
実働テストしたのは下記項目です。
フロントビュー、サイドビュー共:アクターがスキルを実行
・対象:単体(敵・味方)&アニメーション:単体(敵・味方)
・対象:単体(敵・味方)&アニメーション:全体(敵・味方)
・対象:全体(敵・味方)&アニメーション:単体(敵・味方)
・対象:全体(敵・味方)&アニメーション:全体(敵・味方)

▼変更前

コード: 全て選択

//==============================
// ** create Hud Field
//==============================
Scene_Base.prototype.createHudField = function() {
	this._hudField = new Sprite();
	this._hudField.z = 10;
	this.addChild(this._hudField);
};
▼変更後

コード: 全て選択

//==============================
// ** create Hud Field ** fixed by nekoma otobuki
//==============================
Scene_Base.prototype.createHudField = function() {
	var width = Graphics.boxWidth;
	var height = Graphics.boxHeight;
	var x = (Graphics.width - width) / 2;
	var y = (Graphics.height - height) / 2;
	this._hudField = new Sprite();
	this._hudField.setFrame(x, y, width, height);
	this._hudField.z = 10;
	this.addChild(this._hudField);
};
ちなみに、 Spriteset_Battle.prototype.createBattleField は rpg_sprites.js 内にありました。

下記の記事で配布していたファイルを差し替えました。
https://fungamemake.com/archives/5090
https://fungamemake.com/archives/5099
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
返信する

“MV:質問”に戻る