名前ウィンドウ表示プラグイン(Lunatlazur_ActorNameWindow.js)とマルチHPゲージプラグイン(TMMultiHpGauge.js)の競合について

tsukabon
記事: 4
登録日時: 2023年7月15日(土) 20:48

名前ウィンドウ表示プラグイン(Lunatlazur_ActorNameWindow.js)とマルチHPゲージプラグイン(TMMultiHpGauge.js)の競合について

投稿記事by tsukabon » 2023年11月18日(土) 02:33

お世話になります。

表題通りなのですが、具体的にはマルチHPゲージプラグイン(TMMultiHpGauge.js)がONの場合、名前ウィンドウ表示プラグイン(Lunatlazur_ActorNameWindow.js)のウィンドウ内に名前が表示されないようです。

1.jpg


マルチHPゲージプラグインをOFFにすると、正しく表示されます。

2.jpg


この競合を回避する方法が分からず困っております。

試した事
・プラグインの順番入れ替え
→どちらが先・後でも変化ありませんでした。
・マルチHPゲージプラグイン内での設定変更
→アクター名の表示設定の値を消去したり、イベント中や会話中に表示オフにする設定を試してみましたが変化ありませんでした。

3.jpg


どなたかお知恵をお借り出来ないでしょうか。
よろしくお願いいたします。

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

Re: 名前ウィンドウ表示プラグイン(Lunatlazur_ActorNameWindow.js)とマルチHPゲージプラグイン(TMMultiHpGauge.js)の競合について

投稿記事by ecf5DTTzl6h6lJj02 » 2023年11月18日(土) 22:09

こんにちは。
tsukabon さんが書きました:お世話になります。

表題通りなのですが、具体的にはマルチHPゲージプラグイン(TMMultiHpGauge.js)がONの場合、名前ウィンドウ表示プラグイン(Lunatlazur_ActorNameWindow.js)のウィンドウ内に名前が表示されないようです。

マルチHPゲージプラグインをOFFにすると、正しく表示されます。

この競合を回避する方法が分からず困っております。

試した事
・プラグインの順番入れ替え
→どちらが先・後でも変化ありませんでした。
・マルチHPゲージプラグイン内での設定変更
→アクター名の表示設定の値を消去したり、イベント中や会話中に表示オフにする設定を試してみましたが変化ありませんでした。

どなたかお知恵をお借り出来ないでしょうか。
よろしくお願いいたします。

こちらで、新規プロジェクトに、マルチHPゲージプラグイン(TMMultiHpGauge.js) と
名前ウィンドウ表示プラグイン(Lunatlazur_ActorNameWindow.js) を追加して、動作確認してみましたが、
ご質問の現象を再現できませんでした。

マルチHPゲージプラグインをOFFにすると正常に表示されるので、
同プラグインとの競合ではないかということですが、
こちらで、マルチHPゲージプラグインの内容を確認した結果、
特に競合をしそうな部分が見つかりませんでした。

まずは、新規プロジェクトに、 マルチHPゲージプラグインと名前表示プラグインのみを追加して、
動作確認を行い、同様の現象が再現されるかどうかを確認してください。

これで、正しく表示されるようであれば、マルチHPゲージプラグインではなく、他のプラグインに原因がある可能性が高いです。
その場合、使用しているプラグインを列挙していただき、こちらで容易に取得できるプラグインであれば、
解析できるかもしれません。
tsukabon
記事: 4
登録日時: 2023年7月15日(土) 20:48

Re: 名前ウィンドウ表示プラグイン(Lunatlazur_ActorNameWindow.js)とマルチHPゲージプラグイン(TMMultiHpGauge.js)の競合について

投稿記事by tsukabon » 2023年11月19日(日) 01:49

ご返信ありがとうございます。
また、わざわざ動作確認までして頂いたとの事、ありがとうございます。
ご指摘を頂き、以下の通り動作確認を行いました。


私も新規プロジェクトにマルチHPゲージプラグインと名前表示プラグインのみを追加して、
動作確認をしてみたところ、正常に動作いたしました。


私の作成中プロジェクトに追加している全てのプラグインを一旦全てOFFにして、
Community_Basic、マルチHPゲージプラグイン、名前表示プラグインのみをONにして、
あらためて動作確認をしてみたところ、やはり正常に動作いたしました。


そこで、私の作成中プロジェクトに追加している何か他のプラグインが影響しているものと考え、
1つずつプラグインをONにして試してみたところ、トリアコンタン氏の最大TP拡張プラグイン(MaxTpExtend.js)を
ONにして、さらに主人公(アクター1)のメモ欄に最大TP加算値を記述した場合のみ、
不具合が生じる事が確認されました。
最大TP拡張プラグインがONであっても、メモ欄に最大TP加算値を記述していない状態では正常に動作いたしました。
また、名前表示プラグイン、最大TP拡張プラグインがONで、マルチHPゲージプラグインがOFFの状態では正常に動作いたしました。


新規プロジェクトに、マルチHPゲージプラグイン、名前表示プラグイン、最大TP拡張プラグインを追加して、
全てONにして、主人公(アクター1)のメモ欄に最大TP加算値を記述して動作確認をしてみたところ、正常に動作いたしました。

よって、今のところ分かっている事は、
私の作成中のプロジェクトにおいて、マルチHPゲージプラグイン、名前表示プラグイン、最大TP拡張プラグインの3つがONの状態で、
さらに主人公(アクター1)のメモ欄に最大TP加算値を記述した場合のみ、不具合が生じる。
ただし新規プロジェクトで同様の状態を再現しようとした場合、不具合は生じない。
という状態です。

マルチHPゲージプラグイン、名前表示プラグインのみがONの状態
1.jpg

正常に動作する
2.jpg


マルチHPゲージプラグイン、名前表示プラグイン、最大TP拡張プラグインをONにした状態
2.jpg

正常に動作する
4.jpg
tsukabon
記事: 4
登録日時: 2023年7月15日(土) 20:48

Re: 名前ウィンドウ表示プラグイン(Lunatlazur_ActorNameWindow.js)とマルチHPゲージプラグイン(TMMultiHpGauge.js)の競合について

投稿記事by tsukabon » 2023年11月19日(日) 01:59

マルチHPゲージプラグイン、名前表示プラグイン、最大TP拡張プラグインをONにした状態
5.jpg


主人公(アクター1)のメモ欄に最大TP加算値を記述
6.jpg


名前欄が表示されない
7.jpg


・マルチHPゲージプラグイン、名前表示プラグインだけの状態では再現しない
・名前表示プラグイン、最大TP拡張プラグインだけの状態では再現しない
・マルチHPゲージプラグイン、名前表示プラグイン、最大TP拡張プラグインをONにしても、メモ欄が空欄なら再現しない
・マルチHPゲージプラグイン、名前表示プラグイン、最大TP拡張プラグインをONにして、なおかつメモ欄に最大TP加算値を記述した場合のみ不具合が生じる
・新規プロジェクト上では再現しない

という、ますます奇妙な状態になってしまいました。
ここに何かのヒントがあれば良いのですが……
ecf5DTTzl6h6lJj02
記事: 458
登録日時: 2018年12月23日(日) 13:55

Re: 名前ウィンドウ表示プラグイン(Lunatlazur_ActorNameWindow.js)とマルチHPゲージプラグイン(TMMultiHpGauge.js)の競合について

投稿記事by ecf5DTTzl6h6lJj02 » 2023年11月19日(日) 03:50

こんばんは。

あおいたく様作 名前ウィンドウ表示プラグイン(Lunatlazur_ActorNameWindow.js)と、
トリアコンタン様作 最大TP拡張プラグイン(MaxTpExtend.js)の間で競合が発生し、
それが原因で、名前ウィンドウ表示用の制御文字がきちんと機能しないことがあることが分かりました。

これ、以前にも同様の競合がトリアコンタン様作の 用語辞典プラグイン (SceneGlossary.js)との間で発生していたんで、なんとなくの予測があったんですが、まさしくだったようです。

原因としては、 最大TP拡張プラグインでメモ欄の \V[n] の記述を変換する際に、一緒に、名前ウィンドウに名前をセットする関数が呼び出されてしまい、ウィンドウに表示するはずの名前が空欄になってしまうことにあります。

本来であれば、名前が空である場合にはウィンドウを表示しないはずなのですが、名前ウィンドウを表示する設定がされた後に、最大TP拡張プラグインが制御文字を変換する関数を呼び出してしまうことで、ウィンドウを表示する設定のままになってしまうようです。

プラグインを編集して、修正をしてもらうことになるのですが、大丈夫でしょうか?

  1. プラグインを編集できるソフト(VisualStudioCode がお薦め)で、
    名前ウィンドウ表示プラグイン(Lunatlazur_ActorNameWindow.js)を開いてください。
    (プラグインを編集する前に、該当のプラグインのバックアップをしておいてください)

  2. 214 行目あたりにある、

    コード: 全て選択

        // const Window_Message_startMessage = Window_Message.prototype.startMessage;

    という部分を削除してください。

  3. 上記変更を行うと、214 行目あたりから始まっている、
    Window_Message.prototype.startMessage という関数を、
    以下に変更してください。

    コード: 全て選択

        Window_Message.prototype.startMessage = function () {
            this._nameWindow.deactivate();
            this._textState = {};
            this._textState.index = 0;
            this._textState.text = this._nameWindow.processActorName(this.convertEscapeCharacters($gameMessage.allText()));
            this.newPage(this._textState);
            this.updatePlacement();
            this.updateBackground();
            this.open();
        };


  4. 上記変更を行うと、 229 行目あたりから始まっている、
    Window_Message.prototype.convertEscapeCharacters という関数の中の、

    コード: 全て選択

            text = this._nameWindow.processActorName(text);

    という部分(おそらく 231 行目あたり)を削除してください。
恐らく、上記の修正で、正しく名前ウィンドウが表示されるようになると思いますが、
きちんとしたテストをしているわけではないので、何か不具合が出た場合は仰ってください。

以上、ご確認ください。
tsukabon
記事: 4
登録日時: 2023年7月15日(土) 20:48

Re: 名前ウィンドウ表示プラグイン(Lunatlazur_ActorNameWindow.js)とマルチHPゲージプラグイン(TMMultiHpGauge.js)の競合について

投稿記事by tsukabon » 2023年11月20日(月) 19:02

ありがとうございます!
教えて頂いた通りにプラグインを修正したところ、問題なく正常に動作いたしました!
大変助かりました!

“MV:質問” へ戻る