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

白白白
記事: 21
登録日時: 2024年2月28日(水) 22:35

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

投稿記事by 白白白 » 2024年2月29日(木) 14:27

トピックを失礼します。

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」で正常に表示する方法があればご教示頂ければと存じます。
最後に編集したユーザー 白白白 on 2024年3月01日(金) 10:27 [ 編集 1 回目 ]

ecf5DTTzl6h6lJj02
記事: 466
登録日時: 2018年12月23日(日) 13:55

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

投稿記事by ecf5DTTzl6h6lJj02 » 2024年2月29日(木) 20:52

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

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;
    };

以上の変更を行うと、正常に画像が変更されるようになるのではないかと思います。

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

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

投稿記事by 白白白 » 2024年2月29日(木) 22:40

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

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

投稿記事by ecf5DTTzl6h6lJj02 » 2024年2月29日(木) 23:34

白白白 さんが書きました:ご返信を頂きありがとうございます。
ご教示頂いた通りに編集をしたところ、「顔表示」→「フレーム有効化」が「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];
            }
        };
こちらの環境では、これで、メーターには影響せずに、
顔画像の変更が行われました。

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

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

投稿記事by 白白白 » 2024年3月01日(金) 10:27

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

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

“MV:質問” へ戻る