ページ 11

【解決済み】吹き出しウィンドウプラグイン(MessageWindowPopup.js)のメッセージ表示でアイコンが見切れるのをどうにかしたい

Posted: 2023年5月07日(日) 16:11
by ゆ――
こんにちは。

吹き出しウィンドウプラグイン「MessageWindowPopup.js」(https://triacontane.blogspot.com/2016/0 ... st_30.html)のメッセージ表示で、アイコンが見切れてしまう現象をどうにかしたいです。
吹き出しウィンドウ_メッセージ.PNG
吹き出しウィンドウ_メッセージ.PNG (15.79 KiB) 閲覧された回数 787 回
上の画像のように、剣のアイコンの下が見切れているのがわかると思います。

メッセージ枠内にアイコンが自動で収まるようにする設定などはありますか?
また、そのやり方をご教授いただきたいです。
アイコンのサイズは、元々RPGツクールMVに入っているIcon.pngと同じサイズです。

ちなみに設定している、吹き出しウィンドウのプラグインパラメータは下の画像です。
吹き出しウィンドウ_パラメータ.PNG
吹き出しウィンドウ_パラメータ.PNG (35.87 KiB) 閲覧された回数 787 回
アイコンが見切れないようにする方法があれば、どなたか知恵をお借りしたいです。
よろしくお願いいたします。

Re: 吹き出しウィンドウプラグイン(MessageWindowPopup.js)のメッセージ表示でアイコンが見切れるのをどうにかしたい

Posted: 2023年5月08日(月) 17:50
by ecf5DTTzl6h6lJj02
こんばんは。
ゆ―― さんが書きました: 吹き出しウィンドウプラグイン「MessageWindowPopup.js」(https://triacontane.blogspot.com/2016/0 ... st_30.html)のメッセージ表示で、アイコンが見切れてしまう現象をどうにかしたいです。
MessageWindowPopup.js 側で、アイコンを考慮したウィンドウの高さに設定されないようです。
以下のコードを適当な名前のプラグイン(.jsのファイル)として保存し、
プラグイン管理画面で、MessageWindowPopup.js の下に配置してみてください。

コード: 全て選択

(()=>{
    'use strict'

    if ($plugins.some(plugin => plugin.name === 'MessageWindowPopup' && plugin.status)) {

        Window_Message.prototype.processVirtualDrawIcon = function(iconIndex, textState) {
            textState.x += this.contents.fontSize + 4;
            textState.maxWidth = Math.max(textState.maxWidth, textState.x);
        };

        Window_Message.prototype.processDrawIcon = function(iconIndex, textState) {
            this.drawIcon(iconIndex, textState.x + 2, textState.y + 2);
            textState.x += this.contents.fontSize + 4;
        };

        Window_Message.prototype.drawIcon = function(iconIndex, x, y) {
            console.log('drawIcon');
            var bitmap = ImageManager.loadSystem('IconSet');
            var pw = Window_Base._iconWidth;
            var ph = Window_Base._iconHeight;
            var sx = iconIndex % 16 * pw;
            var sy = Math.floor(iconIndex / 16) * ph;        
            this.contents.blt(bitmap, sx, sy, pw, ph, x, y, this.contents.fontSize, this.contents.fontSize);
        };

        var _Window_Message_processEscapeCharacter      = Window_Message.prototype.processEscapeCharacter;
        Window_Message.prototype.processEscapeCharacter = function(code, textState) {
            if (code === 'I') {
                this.processDrawIcon(this.obtainEscapeParam(textState), textState);
            } else {
                _Window_Message_processEscapeCharacter.apply(this, arguments);
            }
        };
    }

})();
このコードでは、アイコンのサイズをメッセージのフォントサイズに合わせて拡縮することで、見切れないようにしています。
制御文字 \{ および \} のフォントサイズ変更の影響もうけます。

Re: 吹き出しウィンドウプラグイン(MessageWindowPopup.js)のメッセージ表示でアイコンが見切れるのをどうにかしたい

Posted: 2023年5月08日(月) 18:46
by ゆ――
こんばんは。

ecf5DTTzl6h6lJj02さま、コードを書いていただきありがとうございます。
動作確認ができました。見切れることなく、きちんとメッセージウィンドウ内に綺麗に収まっています。
素晴らしいです。
本当にありがとうございました! 助かります。

同じような現象に困っている方がいるかもしれないので、プラグインを貼っておきますね。
MessageWindowPopup_IconAutoResizePatch.zip
(1.21 KiB) ダウンロード数: 7 回
どうもありがとうございました。