メッセージウィンドウの大きさと位置を変更【ツクールMV】

メッセージウィンドウの行数を変更

ツクールMVのメッセージウィンドウは標準で4行のメッセージを表示できるようになっています。

しかし、今まで自分がゲームを作ってきた経験上、キャラクターに1ページで4行のセリフを喋らせるとすごく読みづらい。というか読むのが面倒になる!(個人的な意見)

かといってセリフを3行にすると残り1行のスペースが気になるので、1行目はキャラクターの名前を、2行目~4行目にキャラクターのセリフを喋らせるといった対応をしてきました。

今回、ちゃんと最初から3行だけのウィンドウでメッセージを表示したいと思ったのでその方法をご紹介します。

スクリプトの「rpg_windows.js」ファイルの「Window_Message.numVisibleRows」を書き換えます。ここにメッセージウィンドウに表示する行数が定義されています。

Window_Message.prototype.numVisibleRows = function() {
  return 4;
};

3行にしたい場合は、この「return 4;」を「return 3;」に書き換えるだけです。簡単ですね!

また、この部分を2行や1行にする事もできます。

この際、仮にメッセージ行数を1行に変更、そしてイベントコマンド「文章の表示」で以下のような4行のメッセージを設定していた場合にどうなるかというと……。

こんにちは
ここは「はじまりの村」じゃ
北に進むと村一番の宿屋が
あるからゆっくり休んでいくとよい

下のように表示されます。

こんにちは
ここは「はじまりの村」じゃ
北に進むと村一番の宿屋が
あるからゆっくり休んでいくとよい

1行ずつ、4ページに分けて表示されるようになります。

これ、実際やってみると面白いです。1行で表現できるセリフばかりのゲームなら、シンプルでテンポの良いメッセージ表示になると思います(^-^)

ただ、逆に5行以上のメッセージを表示したい時は上記の変更だけでは対応しきれないと思いますのでご了承下さい。

メッセージウィンドウの位置を変更

メッセージの行数を減らすと、その分メッセージウィンドウが下に下がってしまいます。

そのままではメッセージが下すぎて読みにくいかもしれないので、位置をもう少し上にもってこれるようにしましょう。

スクリプトの「rpg_windows.js」ファイルの「Window_Message.updatePlacement」に追記します。ここにメッセージウィンドウの表示位置が定義されています。

Window_Message.prototype.updatePlacement = function() {
  this._positionType = $gameMessage.positionType();
  this.y = this._positionType * (Graphics.boxHeight - this.height) / 2;
  this._goldWindow.y = this.y > 0 ? 0 : Graphics.boxHeight - this._goldWindow.height;
  if(this._positionType === 2) this.y -= 150;
};

色の付いた部分を追記しました。これは、「this._positionType === 2」つまり、「文章の表示」コマンドで指定されたウィンドウ位置が「下」の時、メッセージウィンドウの画面Y座標を-150するという意味です。

これでメッセージウィンドウの表示位置が標準よりも上になります。

上記の例だと、ウィンドウ位置が「上」の場合や「中」の場合は位置を変更しませんが、それぞれの場合でも位置を変更したければ同じように条件を追加すればOKです。this._positionTypeが0なら「上」、1なら「中」を表します。

さらに、縦の位置だけでなく横の位置も変更したい場合は

Window_Message.prototype.updatePlacement = function() {
  this._positionType = $gameMessage.positionType();
  this.y = this._positionType * (Graphics.boxHeight - this.height) / 2;
  this._goldWindow.y = this.y > 0 ? 0 : Graphics.boxHeight - this._goldWindow.height;
  if(this._positionType === 2) this.y -= 150;
  this.x = 100;
};

上記の色を付けた部分を追記しましょう。

このようにthis.xの数値を変える事で、メッセージウィンドウの横の位置を変更する事ができます。ここに入れる数値は、メッセージウィンドウの左上を原点とした画面X座標です。

ただし、メッセージウィンドウの幅を変更せずに横の位置を変更してしまうとウィンドウ全体が表示されなくなってしまいます。

なのでメッセージウィンドウの幅を変更する方法もご紹介しましょう。

メッセージウィンドウの幅を変更

メッセージウィンドウの幅を変更するには、「rpg_windows.js」ファイルの「Window_Message.windowWidth」を書き換えます。

Window_Message.prototype.windowWidth = function() {
  return Graphics.boxWidth - 100;
};

色を付けた部分( – 100 )を書き加えてみました。これでメッセージウィンドウの幅が100ピクセル分小さくなります。

もちろん、Graphics.boxWidthの部分を消して直接数値を指定しても大丈夫です。

これでメッセージウィンドウの行数、幅、位置を全て変更する事ができるようになりました!

ぜひぜひ、読みやすいメッセージを目指してスクリプトをいじっちゃって下さい(^-^)

※スクリプトを書き換える時は自作のプラグインにコピーしてから書き換えると安全です。