【解決済み】メッセージウィンドウ内のテキスト開始位置について

たそがれ

ユーザー
いつもお世話になっております。
制作で少しつまづいており、みなさまのお力をお借りしたいと思い投稿させていただきました。

今回メッセージウィンドウ内のテキスト開始位置を変更したいと思い、
rmmz_windows.jsのstartMessage内のtextStateでx、yに数値を代入しテストプレイしたのですが、y位置だけ変更されませんでした。
y位置を変更する場合、どの箇所を修正すればいいでしょうか?

何卒よろしくお願いいたします。
 

DarkPlasma

ユーザー
コアスクリプトを直接書き換えてはいけません。更新した際に、加えた変更点が全て巻き戻ります。
プラグインを書きましょう。

Window_Message.prototype.startMessage まであたりをつけられているのであれば、そこからコードを追ってみましょう。
newPage メソッドでyの値を0に初期化しているようです。

JavaScript:
(() => {
  'use strict';

  Window_Message.prototype.newPageY = function () {
    return 任意の値;
  };

  const _Window_Message_newPage = Window_Message.prototype.newPage;
  Window_Message.prototype.newPage = function (textState) {
    _Window_Message_newPage.call(this, textState);
    textState.y = this.newPageY();
  };
})();

つまり、こんな感じのプラグインでテキスト開始位置のY座標を変更できます。
X座標については、 newLineX メソッドを読んでみてください。
顔グラの有無、RTLな言語であるか否かで分岐しています。後者はともかく、前者を考えるのであれば、 textStateのxを固定値にしてしまうのはまずそうです。
 

たそがれ

ユーザー
コアスクリプトを直接書き換えてはいけません。更新した際に、加えた変更点が全て巻き戻ります。
プラグインを書きましょう。

Window_Message.prototype.startMessage まであたりをつけられているのであれば、そこからコードを追ってみましょう。
newPage メソッドでyの値を0に初期化しているようです。

JavaScript:
(() => {
  'use strict';

  Window_Message.prototype.newPageY = function () {
    return 任意の値;
  };

  const _Window_Message_newPage = Window_Message.prototype.newPage;
  Window_Message.prototype.newPage = function (textState) {
    _Window_Message_newPage.call(this, textState);
    textState.y = this.newPageY();
  };
})();

つまり、こんな感じのプラグインでテキスト開始位置のY座標を変更できます。
X座標については、 newLineX メソッドを読んでみてください。
顔グラの有無、RTLな言語であるか否かで分岐しています。後者はともかく、前者を考えるのであれば、 textStateのxを固定値にしてしまうのはまずそうです。
ご回答ありがとうございます!
コアスクリプトに直接ではなく、調整用のプラグインを作成し該当部分をコピペして使用しております。
(記述を誤ってしまって申し訳ないです;)
また、顔グラは今回は使用しないのでX座標は固定にしております。

ご指摘いただいた部分を調整用プラグインに追加したところY座標を変更できました!
丁寧に対応いただき、ありがとうございました!
 
トップ