[解決済み] メッセージボックスの表示位置を変更したい

アバター
レティラナティス
記事: 66
登録日時: 2016年6月08日(水) 09:19
お住まい: すぎのこ村

[解決済み] メッセージボックスの表示位置を変更したい

投稿記事by レティラナティス » 2017年3月09日(木) 08:30

メッセージボックスの幅を変更するプラグインは数あれど、幅を変えると中央表示である為に左右にスキマができます。
そこで画面左側に密着するように移動させたいのですが、rpg_windows.jsでも位置の記述が見つけられません。
(4240行付近の var x = (Graphics.boxWidth - width) / 2; かと思いましたが、コレや他の行を弄くっても反応がありません)

なので、メッセージボックスの表示位置の変更は可能なのか、どうすれば変更すれば実現できるのか、
ご存知の方がいらっしゃりましたら、ご教授お願いします。
最後に編集したユーザー レティラナティス on 2017年3月11日(土) 20:43 [ 編集 1 回目 ]

アイス
記事: 48
登録日時: 2017年2月19日(日) 11:49

Re: メッセージボックスの表示位置を変更したい

投稿記事by アイス » 2017年3月09日(木) 10:20

>反応がありません
コレが気になりますね
目星はついてるようなので
もしかしたら他に
Window_Messageを弄ってるプラグインが
入っていたりしませんか?
変更箇所を見つけても導入してるプラグインによって
遮られてるのかもしれないです
全プラグインをOFFにしてからもう一度弄ってみると良いです

ちなみにその付近の

コード: 全て選択

Window_Base.prototype.initialize.call(this, x, 0, width, height);

のwidhtを適当な数字に変えるだけで本来は大丈夫だと思います
アバター
フトコロ
記事: 1029
登録日時: 2017年2月06日(月) 21:32

Re: メッセージボックスの表示位置を変更したい

投稿記事by フトコロ » 2017年3月09日(木) 11:56

横から失礼します。

誤記だと思いますが、アイスさんの指摘された箇所(width)ですとウィンドウの幅が変わるだけですので
正しくは x ですね。

ちなみに、何もプラグインを入れていない状態であれば、レティラナティスさんの想定どおりに
Window_Message.prototype.initialize関数内の
var x = (Graphics.boxWidth - width) / 2;
を変更すれば、ウィンドウの位置は変わりますので、何かのプラグインでウィンドウの位置を設定していますね。
例えば、サンプルゲームに入っている”NovelMessage.js”を使っていませんか?
---------------------------------------------------------------------------------------------------
プラグイン置き場(GitHub)
https://github.com/futokoro/RPGMaker/blob/master/README.md

検討中の内容は上記リンク先の「対応するかもしれないプラグインのメモ」を参照してください。
アイス
記事: 48
登録日時: 2017年2月19日(日) 11:49

Re: メッセージボックスの表示位置を変更したい

投稿記事by アイス » 2017年3月09日(木) 12:15

通常メッセージウィンドウは
画面横いっぱいに表示されると思います
つまりその状態でメッセージウィンドウを横に動かす(xを突き止めてるので)
必要性は全くないです(画面外に表示させる意味がないです)

要するに幅を縮めてるからこそxを動かしたいんであって
本来ならばxの位置を移動せずとも
幅(width)を調整するだけで幅共に位置も動くはずです
そしてその位置は左に寄せられているはずです

なので本来ならばという書き方でwidthを指定しました
(二度手間になっているという事です)
アバター
フトコロ
記事: 1029
登録日時: 2017年2月06日(月) 21:32

Re: メッセージボックスの表示位置を変更したい

投稿記事by フトコロ » 2017年3月09日(木) 14:33

アイスさん

アイス さんが書きました:要するに幅を縮めてるからこそxを動かしたいんであって
本来ならばxの位置を移動せずとも
幅(width)を調整するだけで幅共に位置も動くはずです
そしてその位置は左に寄せられているはずです

メッセージウィンドウは、標準では画面中央に配置するようになっていますよ。

なので、レティラナティスさんの質問にあるとおりに
レティラナティス さんが書きました:メッセージボックスの幅を変更するプラグインは数あれど、幅を変えると中央表示である為に左右にスキマができます。

となるわけです。
---------------------------------------------------------------------------------------------------
プラグイン置き場(GitHub)
https://github.com/futokoro/RPGMaker/blob/master/README.md

検討中の内容は上記リンク先の「対応するかもしれないプラグインのメモ」を参照してください。
アイス
記事: 48
登録日時: 2017年2月19日(日) 11:49

Re: メッセージボックスの表示位置を変更したい

投稿記事by アイス » 2017年3月09日(木) 18:02

メッセージボックスの幅を変更するプラグインは数あれど幅を変えると
(その数あるメッセージボックスの幅を変更するプラグインは)中央表示である為に左右にスキマができます。

っていう意味だと思います
つまり標準では左寄せなんです
widthを変えて試してみて下さい
アバター
フトコロ
記事: 1029
登録日時: 2017年2月06日(月) 21:32

Re: メッセージボックスの表示位置を変更したい

投稿記事by フトコロ » 2017年3月09日(木) 20:31

たしかに、windowWidth()の設定を変えないのであれば、
Window_Base.prototype.initialize.call(this, x, 0, width, height);
に代入する x の値は 0 になるので、widthの値を変えるだけで左詰で幅を変えられますね。

私の場合、基本的にウィンドウの幅はwindowWidth()で設定するため、勘違いをしていました。


これだけですと、質問主さんにに悪いので、
おそらく何らかのプラグインでメッセージウィンドウのX座標を上書きしていると思いますが、
X座標を設定する場合、Window_Messageで始まる関数の中に
 this.x = ***

 this.move(x, y, width, heigth)
のどちらかで大体設定していると思います。
関数として怪しいのは、Window_Message.prototype.updatePlacement()あたりですかね。
なので、このあたりを探されてみると原因の箇所が特定しやすくなるのでは、と思います。
---------------------------------------------------------------------------------------------------
プラグイン置き場(GitHub)
https://github.com/futokoro/RPGMaker/blob/master/README.md

検討中の内容は上記リンク先の「対応するかもしれないプラグインのメモ」を参照してください。
アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡を取る:

Re: メッセージボックスの表示位置を変更したい

投稿記事by トリアコンタン » 2017年3月09日(木) 20:42

こんばんは!
もし、YEP_MessageCore.jsを導入されている場合、「Window_Message.prototype.adjustWindowSettings」というメソッドでx座標を再設定しています。なのでここを書き換えれば、座標を設定できるかと思います。(1062行目付近)

あるいは再設定するプラグインを自作して、プラグインとして導入するのもよいかと思います。(その際は管理画面の一番下に配置してください)

コード: 全て選択

(function() {
    'use strict';

    var _Window_Message_updatePlacement = Window_Message.prototype.updatePlacement;
    Window_Message.prototype.updatePlacement = function() {
        _Window_Message_updatePlacement.apply(this, arguments);
        this.x = 0;
    };
})();
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
アバター
レティラナティス
記事: 66
登録日時: 2016年6月08日(水) 09:19
お住まい: すぎのこ村

Re: [解決済み] メッセージボックスの表示位置を変更したい

投稿記事by レティラナティス » 2017年3月11日(土) 20:45

アイス様、フトコロ様、トリアコンタン様、レスありがとうございます。

幅を変更する際にかき集めたプラグインの中に、「YEP_MessageCore.js」のv1.18を日本語訳にしたのが在りますので、そちらを修正した所、無事に移動できました。

同時にプラグインを切った状態で、「rpg_windows」のWindow_Base.prototype.initialize.callのwidthを変更した所、左寄りで幅を調節できました。
幅を調節する際の変更箇所がwidthだと解らなかったので、プラグインを4つ程集めてきて試していたのですが、それら全てが中央配置に指定されていたようです。

本当にお騒がせしました。

“MV:質問” へ戻る