トップページRPGツクールMVプラグイン一覧メッセージウィンドウカスタムプラグイン

メッセージウィンドウカスタムプラグイン

このプラグインはメッセージ行数やフォントを変更できるようにします。

利用方法

プラグインパラメータからメッセージの行数、フォントを指定することで、それぞれ変更可能です。

フォントはデフォルトで UDデジタル教科書体、Klee が指定されています。
UDデジタル教科書体は Windows 10 Fall Creators Update に、Klee は macOS Sierra 以降にバンドルされています。それぞれの環境では追加のフォントファイルなしにこれらのフォントを表示することが可能です。

バンドルフォント以外の任意のフォントでの表示を行いたい場合は、別途フォントファイルを同梱してください。

ライセンス

このプラグインは zlib ライセンス のもと配布されます。

Copyright (C) 2018 Taku Aoi

This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.

Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
  2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
  3. This notice may not be removed or altered from any source distribution.
//=============================================================================
// Lunatlazur_ConfigurableMessageWindow.js
// ----------------------------------------------------------------------------
// Copyright (c) 2018 Taku Aoi
// This plugin is released under the zlib/libpng License.
// http://zlib.net/zlib_license.html
// ----------------------------------------------------------------------------
// Version
// 1.0.0 2018/04/01
// ----------------------------------------------------------------------------
// [Web]    : https://lunatlazur.com/
// [Twitter]: https://twitter.com/lunatlazur/
// [GitHub] : https://github.com/Lunatlazur/
//=============================================================================
/*:
 * @plugindesc Configure message window settings.
 * @author Taku Aoi
 * @help This plugin makes the message window configurable.
 *
 * @param Number of message rows
 * @desc number of message rows.
 * @default 4
 * @type number
 *
 * @param Custom message font
 * @desc Additional message fonts.
 * @type string[]
 */
/*:ja
 * @plugindesc メッセージウィンドウカスタムプラグイン
 * @author あおいたく
 * @help このプラグインはメッセージ行数やフォントを変更できるようにします。
 *
 * @param メッセージ行数
 * @desc メッセージの行数です。
 * @default 4
 * @type number
 *
 * @param メッセージウェイト
 * @desc メッセージの文字送りにかかるウェイトです。
 * @default 1
 * @type number
 *
 * @param フォント
 * @desc 追加のフォントを指定できます。先頭にあるものが優先して読み込まれます。
 * @default ["UD デジタル 教科書体 NP-R", "Klee"]
 * @type string[]
 */
(function () {
    var pluginName = 'Lunatlazur_ConfigurableMessageWindow';
    function getValue(params) {
        var names = [];
        for (var _i = 1; _i < arguments.length; _i++) {
            names[_i - 1] = arguments[_i];
        }
        var found = null;
        names.forEach(function (name) {
            if (!!params[name]) {
                found = params[name];
            }
        });
        return found;
    }
    var asString = getValue;
    function asNumber(params) {
        var names = [];
        for (var _i = 1; _i < arguments.length; _i++) {
            names[_i - 1] = arguments[_i];
        }
        return parseInt(getValue.apply(void 0, [params].concat(names)), 10);
    }
    function asBoolean(params) {
        var names = [];
        for (var _i = 1; _i < arguments.length; _i++) {
            names[_i - 1] = arguments[_i];
        }
        var value = getValue.apply(void 0, [params].concat(names)).toLowerCase();
        return value === 'true' || value === 'on';
    }
    var parameters = PluginManager.parameters(pluginName);
    var params = {
        numberOfMessageRows: asNumber(parameters, 'メッセージ行数', 'Number of message rows'),
        customMessageFont: JSON.parse(asString(parameters, 'フォント', 'Custom message font')),
        customMessageWait: asNumber(parameters, 'メッセージウェイト', 'Message wait'),
    };
    var _Window_Base_standardFontFace = Window_Base.prototype.standardFontFace;
    Window_Message.prototype.standardFontFace = function () {
        var fontfaces = params.customMessageFont.concat([
            _Window_Base_standardFontFace.call(this),
        ]).join(',');
        return fontfaces;
    };
    var _Window_Message_updateMessage = Window_Message.prototype.updateMessage;
    Window_Message.prototype.updateMessage = function () {
        var speed = _Window_Message_getMessageSpeed();
        if (this._textState && !this._lineShowFast && !this._showFast) {
            if (speed <= 0) {
                this._showFast = true;
            }
            else {
                this._waitCount = speed - 1;
            }
        }
        return _Window_Message_updateMessage.apply(this, arguments);
    };
    var _Window_Message_getMessageSpeed = function () {
        return params.customMessageWait || 1;
    };
    var _Window_Message_numVisibleRows = Window_Message.prototype.numVisibleRows;
    Window_Message.prototype.numVisibleRows = function () {
        return params.numberOfMessageRows || _Window_Message_numVisibleRows.call(this);
    };
})();