【解決済】「MOG Battle HUD」と「MOGHexpan」を併用した際の問題について

返信する
白白白
記事: 62
登録日時: 2024年2月28日(水) 22:35

【解決済】「MOG Battle HUD」と「MOGHexpan」を併用した際の問題について

投稿記事 by 白白白 »

トピックを失礼します。

MOG_BattleHudは、「09_Marshmallow」 (v5.04f)を導入
MOG_BattleHudFixPatch.js Ver.1.3.0を導入(MOG_BattleHudの下に配置)
MOGHexpan.js v1.04を導入(MOG_BattleHudFixPatch.jsの下に配置)

上記のプラグインを使用している環境で、MOG_BattleHudの「顔表示」→「フレーム有効化」を「false」にするとMOGHexpanを使用してもフェイスが切り替わりません。「true」にするとフェイスは切り替わりますが、一瞬のチラつきがあり、HP・MP・TPゲージが2本に増えます。
正常にフェイスの切り替えを行いたいため、「false」でも切り替わるようにする方法、もしくは「true」で正常に表示する方法があればご教示頂ければと存じます。
最後に編集したユーザー 白白白 [ 2024年3月01日(金) 10:27 ], 累計 1 回
ecf5DTTzl6h6lJj02
記事: 752
登録日時: 2018年12月23日(日) 13:55

Re: 「MOG Battle HUD」と「MOGHexpan」を併用した際の問題について

投稿記事 by ecf5DTTzl6h6lJj02 »

こんにちは。
白白白 さんが書きました:トピックを失礼します。

MOG_BattleHudは、「09_Marshmallow」 (v5.04f)を導入
MOG_BattleHudFixPatch.js Ver.1.3.0を導入(MOG_BattleHudの下に配置)
MOGHexpan.js v1.04を導入(MOG_BattleHudFixPatch.jsの下に配置)

上記のプラグインを使用している環境で、MOG_BattleHudの「顔表示」→「フレーム有効化」を「false」にするとMOGHexpanを使用してもフェイスが切り替わりません。「true」にするとフェイスは切り替わりますが、一瞬のチラつきがあり、HP・MP・TPゲージが2本に増えます。
正常にフェイスの切り替えを行いたいため、「false」でも切り替わるようにする方法、もしくは「true」で正常に表示する方法があればご教示頂ければと存じます。
MOGHexpan.js では、顔画像のアニメーション更新(フレーム変更)のタイミングで、画像の切り替えを行うようになっているのですが、MOG_BattleHudFixPatch.js のほうで、顔画像のフレーム有効化が true になっていないと、
アニメーション更新(フレーム変更)を行わないように修正されているため、画像が切り替わってくれないようです。

顔画像のフレーム有効化の状態に依存しないようにするためには、
MOGHexpan.js をJavaScript を編集できるソフトウェアで開き、以下の変更を行ってください。
  1. コード: 全て選択

    var _MOGH_update_face_animation = Battle_Hud.prototype.update_face_animation;
    Battle_Hud.prototype.update_face_animation = function() {
        if(MOGHupdateaddnum > 0 && MOGHupdateactorId === this._battler._actorId){
            this.create_faceMOGH();
        }
    	_MOGH_update_face_animation.call(this);
    };
    
    という部分があるので(おそらく 72 行目あたり)、コメントアウトする。
    (各行頭に // をつけてください)
  2. コメントアウトした箇所の次の行(83 行目あたり)に以下のコードを追加する。

    コード: 全て選択

    Battle_Hud.prototype.update_face = function() {
        if (!this._face) {
            return;
        }
        if (!this._face.bitmap.isReady()) {
            return;
        }
        if (this._face_data[4] && this._face_data[5] != this._battler._bhud_face_data[2]) {
            this.refresh_face();
        }
        if (MOGHupdateaddnum > 0 && MOGHupdateactorId === this._battler._actorId) {
            this.create_faceMOGH();
        }
        if (String(Moghunter.bhud_face_animated) === "true") {
            this.update_face_animation();
        }
        if (String(Moghunter.bhud_face_shake) === "true") {
            this.update_face_shake();
        }
        if (String(Moghunter.bhud_face_zoom) === "true") {
            this.update_face_zoom();
        }
        if (this._face.breathEffect) {
            this.updateFaceEffects();
        }
    };
    
  3. このプラグインが対応している、MOG_BattleHudのバージョンが 4.0 と古く、
    最新のバージョンで、増えている項目があるため、それに対応するために、
    create_faceMOGH メソッド(上記変更を行っている場合、110行目あたりから始まっていると思われる)を
    以下に変更する。

    コード: 全て選択

    Battle_Hud.prototype.create_faceMOGH = function() {
        if (String(Moghunter.bhud_face_visible) != "true") {return;}
        var index = this.children.indexOf(this._face);
        this.removeChild(this._face);
        this._face = new Sprite(ImageManager.loadBHud("Face_" + MOGHupdateaddnum));
        this._face.anchor.x = 0.5;
        this._face.anchor.y = 0.5;
        this._face_data = [0,0,false,false,false,-1];
        this._face.ph = 0;
        this._face.animation = [-1,0,0,0,0,0,0,0,0];
        this._face.breathEffect = this._battler._bhud.faceBreace;
        this._face.scaleY = 0;
        if (String(Moghunter.bhud_face_shake) === "true") {this._face_data[2] = true;}
        if (String(Moghunter.bhud_face_animated) === "true") {this._face_data[4] = true;}
        this._battler._bhud_face_data = [0,0,0,0];
        this.addChildAt(this._face,index);
        this.refresh_position();
        MOGHupdateactorId = 0;
        MOGHupdateaddnum = 0;
    };
    
以上の変更を行うと、正常に画像が変更されるようになるのではないかと思います。

ご確認ください。
白白白
記事: 62
登録日時: 2024年2月28日(水) 22:35

Re: 「MOG Battle HUD」と「MOGHexpan」を併用した際の問題について

投稿記事 by 白白白 »

ご返信を頂きありがとうございます。
ご教示頂いた通りに編集をしたところ、「顔表示」→「フレーム有効化」が「false」でも切り替わるようにはなったのですが、こちらでもゲージが2本に増えるバグが発生してしまいました。回復をしても2本のままで、ダメージや消費をして減ると元に戻る謎の挙動です。重ねてではございますが解決法をご教示頂けないでしょうか?
最後に編集したユーザー 白白白 [ 2024年3月01日(金) 00:30 ], 累計 2 回
ecf5DTTzl6h6lJj02
記事: 752
登録日時: 2018年12月23日(日) 13:55

Re: 「MOG Battle HUD」と「MOGHexpan」を併用した際の問題について

投稿記事 by ecf5DTTzl6h6lJj02 »

白白白 さんが書きました:ご返信を頂きありがとうございます。
ご教示頂いた通りに編集をしたところ、「顔表示」→「フレーム有効化」が「false」でも切り替わるようにはなったのですが、こちらでもゲージが2本に増えるバグが発生してしまいました。回復をしても2本のままで、ダメージや消費をして減ると元に戻る謎の挙動です。重ねてではございますが解決法をご教示頂けないでしょうか?
古いバージョンの MOG_BattleHud を使用してしまったようで、こちらのバグが起こらない状態になっていました。
改めて5.04f で確認したところ現象を確認しました。
失礼いたしました。

修正していただいた内容に、さらに、以下の変更を加えてください。
  1. create_faceMOGH というメソッドの中に、

    コード: 全て選択

    this.refresh_position();
    
    という記述があると思います(おそらく 129 行目あたり)ので、

    コード: 全て選択

    this.refresh_facePosition();
    
    と書き換えてください。
  2. create_faceMOGHメソッドの後に以下のコードを追加してください。

    コード: 全て選択

        Battle_Hud.prototype.refresh_facePosition = function() {
            if (this._face) {
                this._face.x = this._pos_x + Moghunter.bhud_face_pos_x;
                this._face.y = this._pos_y + Moghunter.bhud_face_pos_y + this._face.ph;
                this._battler._face_pos = [this._face.x, this._face.y];
            }
        };
    
こちらの環境では、これで、メーターには影響せずに、
顔画像の変更が行われました。

ご確認ください。
白白白
記事: 62
登録日時: 2024年2月28日(水) 22:35

Re: 「MOG Battle HUD」と「MOGHexpan」を併用した際の問題について

投稿記事 by 白白白 »

ご教示頂いた手順通りにしましたら、無事にゲージがおかしくなることなく動作しました。
「顔表示」→「フレーム有効化」を「true」にすると変わらずチラつきますが、自分は「false」で使うので解決とさせて頂きます。

ecf5DTTzl6h6lJj02様、この度は本当にありがとうございました。
返信する

“MV:質問”に戻る