ページ 11

文字枠の処理について

Posted: 2016年1月21日(木) 21:35
by ぶっきい
文字の外枠をもう少し太くするか、濃くしたいのですが、文字枠の処理はどの
JSで行われているのでしょうか?

個人的にはrpg_scenesのthis._gameTitleSprite.bitmap.outlineWidth = 8;が
怪しいと思い数値を変えてみたりしましたが、特に変化なしでした。

この処理の詳細をご存知の方がいらっしゃいましたら、ご教示をお願いします。



無題21.png

Re: 文字枠の処理について

Posted: 2016年1月21日(木) 21:55
by トリアコンタン
こんにちは。
文字枠の処理ですが、ご推察の通りBitmapクラスのoutlineWidthプロパティで間違いないです。
rpg_scenesの298行目のthis._gameTitleSprite.bitmap.outlineWidthを8から20に変えるとタイトル画面の文字枠の大きさが変わるはずです。

ただし、この変更で変わるのはタイトル画面の文字枠だけです。メッセージウィンドウの文字枠などは別に定義されているので別途設定する必要があります。

例えば、メッセージウィンドウのメッセージの文字枠を記述したい場合は、rpg_windows.jsの4250行目(initializeメソッドの一番後ろ)に以下のように記述します。(数字は適当)
this.contents.outlineWidth = 6;

ウィンドウの全ての文字を設定したい場合、あるいはウィンドウに限らずゲーム中の全ての文字を設定したい場合は、また別のところをいじる必要があります。

Re: 文字枠の処理について

Posted: 2016年1月21日(木) 22:40
by ぶっきい
早速の丁寧なご教示ありがとうございます。
文字枠の太さ変更に成功しました! :D

できればもうひとつお聞きしたいのですが、文字枠の濃さ?色?は
どのあたりで処理されているのでしょうか?
(デフォルトから少し薄くなっているので)

JSはタイトルや、このメッセージの文字枠以外の部分は特にいじっていません。

お手数をお掛けいたしますが、よろしくお願いいたします。

Re: 文字枠の処理について

Posted: 2016年1月21日(木) 22:50
by トリアコンタン
色(透明度含む)を設定しているのは、outlineColorプロパティです。
この値は薄い色がデフォルト(rgba(0, 0, 0, 0.5))で、タイトル画面が黒いのは下記のように黒を明示的に設定しているからです。

this._gameTitleSprite.bitmap.outlineColor = 'black';

よって枠の太さを設定した箇所と同じ場所で指定しましょう。
this.contents.outlineColor = 'black';

色の指定方法はCSSと同じなので以下のいずれもが有効に機能します。

red
rgba(0, 255, 0, 0.5)
#66CC33

Re: 文字枠の処理について

Posted: 2016年1月21日(木) 23:03
by ぶっきい
文字枠の濃さも変更できました。

本当にありがとうございました! :D

Re: 文字枠の処理について

Posted: 2016年5月08日(日) 01:53
by ぶっきい
お世話になっております。

前回、文字枠の太さや色の処理について質問した者です。前回の質問後、文章ウィンドウだけでなく、メニュー画面や戦闘画面も黄色味のウィンドウに統一したため、ゲーム全体の文字を太枠黒枠に変更したいのですが、前回ご教示くださったコマンドをどこに挿入すればいいのかわからず、改めて質問させていただきました。

お手数ではありますが、ご教示いただければ幸いです。

Re: 文字枠の処理について

Posted: 2016年5月08日(日) 11:07
by トリアコンタン
すべてのウィンドウに対して適用するなら「Window_Base.prototype.createContents」の処理の後ろに追加するのがよいかと思います。

ただし、YEP_MessageCore.jsを使っているのであれば、「Window_Base.prototype.resetFontSettings」に既に処理が書かれているのでここを直接書き換える必要があります。

また、プラグインとして作成すれば、今後コアスクリプトが公式によってアップデートされた場合にも対応できますし、簡単に着脱できるのでオススメです。

作成例(以下の内容の.jsファイルを作成して「/js/plugins」に配置して、プラグイン管理画面から有効にする)

コード: 全て選択

(function () {
    'use strict';
    var _Window_Base_createContents = Window_Base.prototype.createContents;
    Window_Base.prototype.createContents = function() {
        _Window_Base_createContents.apply(this, arguments);
        this.contents.outlineColor = 'black';
        this.contents.outlineWidth = 6;
    };
})();

Re: 文字枠の処理について

Posted: 2016年5月08日(日) 15:12
by ぶっきい
ありがとうございます! 適用できました :D

Re: 文字枠の処理について

Posted: 2021年5月10日(月) 20:39
by トリアコンタン
もしかしたら必要な方がいるかもしれないので、MZで同様の要件を実現できるコードを置いておきます。

https://gist.github.com/triacontane/0e9 ... c00dcdc501