【解決済】《追記》メニュー画面の各シーン(アイテム欄とか)のウィンドウサイズと位置(ヘルプウィンドウも)のスクリプトでわからない点があるのでご助力願いたいです。

ゆ――
記事: 60
登録日時: 2023年5月03日(水) 14:18

【解決済】《追記》メニュー画面の各シーン(アイテム欄とか)のウィンドウサイズと位置(ヘルプウィンドウも)のスクリプトでわからない点があるのでご助力願いたいです。

投稿記事by ゆ―― » 2023年11月22日(水) 05:19

メニューの「アイテムリスト」「装備」「スキル」「ステータス」「セーブ/ロード」「オプション」、それぞれのウィンドウサイズと位置を変更したいです。
MVでは結構あるみたいなのですが、MZは検索しても見つからないです。
また、js/rmmz_windowsのどこをいじったらウィンドウサイズと位置を変えられるのかもわかりません(一応中身を見て探しました)。
それっぽい箇所はあったのですが、数値を直接指定する感じではなかったため理解できず断念しました。
各シーンのウィンドウサイズと位置を指定できるプラグインを教えていただけると助かります。
また、他に変える方法があるならそれも教えていただけると助かります。
よろしくお願いいたします。
最後に編集したユーザー ゆ―― on 2023年11月25日(土) 03:14 [ 編集 2 回目 ]

ゆ――
記事: 60
登録日時: 2023年5月03日(水) 14:18

Re: メニュー画面の各シーン(アイテム爛とか)のウィンドウサイズと位置を変更したいです。

投稿記事by ゆ―― » 2023年11月22日(水) 14:58

お世話になっております。
自力で下記のように突き止めたんですが、他の分からないことが出てきたのでご助力願いたいです。
また、間違っていたらご指摘願いたいです。

jsフォルダのrmmz_scenesの中の1586行目Scene_Item.prototype.categoryWindowRect = function() {と、
1613行目のScene_Item.prototype.itemWindowRect = function() {内のwx,wy,ww,whをそれぞれ変えればアイテムリストのxy軸と幅高さの変更ができることが分かりました。
だけど、アイテム爛のヘルプウィンドウのxy軸と幅高さを変える記述が見当たりません。

1569行目Scene_Item.prototype.create = function() {内のthis.createHelpWindow();でヘルプウィンドウを形成し、
1577行目Scene_Item.prototype.createCategoryWindow = function() {内のthis._categoryWindow.setHelpWindow(this._helpWindow);と、
1594行目Scene_Item.prototype.createItemWindow = function() {内のthis._itemWindow.setHelpWindow(this._helpWindow);が関係していることはだいたい分かったのですが、肝心のxy軸や幅縦の変更がどこの記述で行われているのかわからないため詰まっています。

これが分かれば他の装備やスキル爛なんかも自力でいけそうなんですが……。

ヘルプウィンドウのxy軸と幅高さをどう記述すれば良いのか、どなたか教えていただけないでしょうか?
よろしくお願いいたします。
アバター
剣崎 宗二
記事: 685
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: 《追記》メニュー画面の各シーン(アイテム欄とか)のウィンドウサイズと位置(ヘルプウィンドウも)のスクリプトでわからない点があるのでご助力願いたいです。

投稿記事by 剣崎 宗二 » 2023年11月23日(木) 02:20

Scene_MenuBase.prototype.helpWindowRect
で指定されてます。
但しこのまま変えると全てのメニューシーンに同時に影響するので、新規プラグインにコピーして
Scene_Item.prototype.helpWindowRect
に変えてお使いください。
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
ゆ――
記事: 60
登録日時: 2023年5月03日(水) 14:18

Re: 《追記》メニュー画面の各シーン(アイテム欄とか)のウィンドウサイズと位置(ヘルプウィンドウも)のスクリプトでわからない点があるのでご助力願いたいです。

投稿記事by ゆ―― » 2023年11月23日(木) 06:33

剣崎 宗二様、返信ありがとうございます。

Scene_MenuBase.prototype.helpWindowRect
で指定されてます。
但しこのまま変えると全てのメニューシーンに同時に影響するので、新規プラグインにコピーして
Scene_Item.prototype.helpWindowRect
に変えてお使いください。

なるほどです。ありがとうございます。無事、ヘルプウィンドウのサイズと位置を変えることができました。

すみません。また分からないことが出てきたのですが、

装備画面やステータス画面の「Scene_Status.prototype.statusWindowRect = function() {」なのですが、これはアクター顔画像と名前やレベル表示、ステータス画面だと経験値の表示位置など個別に変えることはできないのでしょうか?
そこの中のxy,ww,whの数値を変えたら上部にある顔画像レベル経験値が同時に変わってしまって、個別に変える場所は見つけられませんでした……。
できれば個別に場所などを指定したいと思っているので、どうすれば良いか教えていただけると助かります。


ステータス画面の通常パラメータの位置などを定義している「Scene_Status.prototype.statusParamsWindowRect = function() {」ですが、ここの中の数値を変えたらウィンドウの幅などは確かに変更されたのですが、文字が見切れてしまって自動で伸縮してくれませんでした。
どうすれば、ウィンドウサイズを変更しても自動で文字幅が伸縮してくれるようになりますか?


ステータス画面で装備一覧を削除してそこに追加能力値(命中率や会心率など)を表示したいのですが、どう記述すればよいのでしょうか?
装備一覧を削除するのは「Scene_Status.prototype.create = function() {」内の「this.createStatusEquipWindow();」をコメントアウトすればいいと思うのですが、追加能力値などを表示するのにどう書けばよいか分からず、また詰まってしまいました。

質問ばかりで申し訳ございませんが、教えていただけると幸いです。
よろしくお願いいたします。
アバター
剣崎 宗二
記事: 685
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: 《追記》メニュー画面の各シーン(アイテム欄とか)のウィンドウサイズと位置(ヘルプウィンドウも)のスクリプトでわからない点があるのでご助力願いたいです。

投稿記事by 剣崎 宗二 » 2023年11月23日(木) 13:46

Scene系列は飽くまでも「枠の」指定です。
内容に加筆したい場合はWindow側を見ましょう。

①Window_Status.prototype.drawBlock1 / Window_Status.prototype.drawBlock2

②Window_StatusParams.prototype.drawItem 内各drawTextの第三パラメーター(計算式でウィンドウ自体のwidthを参照すれば自動伸縮するかと)

③自分で新規にWindow_~を作り、その中にデータを埋めて、Scene_Statusに追加する必要があります。
そう簡単な事ではないですね。
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
ゆ――
記事: 60
登録日時: 2023年5月03日(水) 14:18

Re: 《追記》メニュー画面の各シーン(アイテム欄とか)のウィンドウサイズと位置(ヘルプウィンドウも)のスクリプトでわからない点があるのでご助力願いたいです。

投稿記事by ゆ―― » 2023年11月23日(木) 17:19


試しに、教えていただいたWindow_Status.prototype.drawBlock1の中のthis.drawActorName(this._actor, 6, y, 168);
これの6の部分を変えてみたのですが少しも変化が見られませんでした。6の部分はx位置ですよね?
name以外も変えてみたのですが、少しも位置が動きませんでした。x位置を動かすのは6の場所ではないのでしょうか?
色々な数値をいじってみたのですが、なにひとつ微動だにしませんでした……。

計算式でウィンドウ自体のwidthを参照すれば自動伸縮するかと

申し訳ありません……私はJavascriptに詳しいわけではないので、その計算式というのが思い当たりません。お手数ですが、その第三パラメータにどういうふうに計算式を入れればいいのか教えていただけないでしょうか?

③新たに追加するのは大変なことなのですね……。色々コードを見てみたのですが、やはり私には少し難しいようでした。ステータス画面に追加の項目を追加するプラグインはMZでもあったのですが、他のプラグインと競合してしまい、使用を断念しました。他に競合が少なそうなステータス画面をカスタムするプラグインはないでしょうか?

質問ばかりで申し訳ありません。
よろしくお願いいたします。
アバター
剣崎 宗二
記事: 685
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: 《追記》メニュー画面の各シーン(アイテム欄とか)のウィンドウサイズと位置(ヘルプウィンドウも)のスクリプトでわからない点があるのでご助力願いたいです。

投稿記事by 剣崎 宗二 » 2023年11月23日(木) 17:58

①思いっきりでかい数値にしても動かない場合は他のプラグインで強制指定されている可能性があります。
一回プラグインを入れない新規プロジェクトで試してみてください。

②分からない場合は一度大きな数値(1000等)を入れてどうなるか様子を見てください。ここの計算式を「丁度良く」調整するのは窓端との幅などを考える必要も必要もありかなり面倒です。

③競合先のプラグインの構造次第ではどう注意しようが競合する可能性もあります。
何を使って何と競合したのかが分からない限りでは提案は不可能かと考えます。
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
ゆ――
記事: 60
登録日時: 2023年5月03日(水) 14:18

Re: 《追記》メニュー画面の各シーン(アイテム欄とか)のウィンドウサイズと位置(ヘルプウィンドウも)のスクリプトでわからない点があるのでご助力願いたいです。

投稿記事by ゆ―― » 2023年11月24日(金) 03:31

①思いっきり大きな数字(1000)でやってみましたが動かなかったので、プラグインをひとつずつOFFにして試したところ、「NRP_AdditionalClasses.js」が名前の位置などを固定していたようです。
ですので、新たにプラグインとして

コード: 全て選択

Window_Status.prototype.drawBlock1 = function() {
    const y = this.block1Y();
    this.drawActorName(this._actor, 6, y, 168);
    this.drawActorClass(this._actor, 192, y, 168);
    this.drawActorNickname(this._actor, 432, y, 270);
};

コード: 全て選択

Window_Status.prototype.drawBlock2 = function() {
    const y = this.block2Y();
    this.drawActorFace(this._actor, 16, y);
    this.drawBasicInfo(204, y);
    this.drawExpInfo(456, y);
};

上記のふたつを入れて、「NRP_AdditionalClasses.js」よりも下に配置したところ、数値を変更したらきちんとxy軸が変動しました。

しかし今度は、「NRP_AdditionalClasses.js」が独自の経験値表示方法のため、ステータス画面にEXPが表示されないというバグに陥ってしまいました……。
経験値を再び表示させるにはどうすればいいでしょうか? 本来、経験値が表示されるはずの場所にはなにも表示されず空欄になっています。


コード: 全て選択

Window_StatusParams.prototype.drawItem = function(index) {
    const rect = this.itemLineRect(index);
    const paramId = index + 2;
    const name = TextManager.param(paramId);
    const value = this._actor.param(paramId);
    this.changeTextColor(ColorManager.systemColor());
    this.drawText(name, rect.x, rect.y, 160);
    this.resetTextColor();
    this.drawText(value, rect.x + 160, rect.y, 60, "right");
};

上記コードの160の部分を調整、さらに

コード: 全て選択

Scene_Status.prototype.statusParamsWindowRect = function() {
            const ww = this.statusParamsWidth();
            const wh = this.statusParamsHeight();
            const wx = 0;
            const wy = this.mainAreaBottom() - this.profileHeight() - wh;
            return new Rectangle(wx, wy, ww, wh);
        };

上記コードの(wx, wy, ww, wh)をそれぞれ変更することで、理想の形へとなりました。
ご助力いただき、ありがとうございます。


「NRP_AdditionalClasses.js」と「MNKR_StatusMenuExMZ.js」です。①でも言ったとおり、前者のプラグインは経験値の表示方法が違うのですが、後者のプラグインを入れるとその表示が通常の表示に戻ってしまうのです。
それを、前者のプラグインの表示方法に準じたいのです。
ですが、①のとおり、現在経験値表示自体が非表示になっており、どうしようもない状態です。
まずは経験値の表示をどうにかしてから、こちらのふたつのプラグインの競合を回避し、経験値の表示方法を前者のプラグインに合わせたいと考えています。

長くなり申し訳ありません。
よろしくお願いいたします。
アバター
剣崎 宗二
記事: 685
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: 《追記》メニュー画面の各シーン(アイテム欄とか)のウィンドウサイズと位置(ヘルプウィンドウも)のスクリプトでわからない点があるのでご助力願いたいです。

投稿記事by 剣崎 宗二 » 2023年11月24日(金) 20:32

①NRP_AdditionalClasses.jsにもWindow_Status.prototype.drawBlock1がありますので、新規にプラグインを追加するのではなくそちらのWindow_Status.prototype.drawBlock1内で座標変更を行えば宜しいかと。

③詳細を見る時間がありませんが、恐らく両者で同時にWindow_Status.prototype.drawBlock1を指定しているのが理由なので、適用したくない方のプラグインからこれを削除すればよろしいかと。
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
ゆ――
記事: 60
登録日時: 2023年5月03日(水) 14:18

Re: 《追記》メニュー画面の各シーン(アイテム欄とか)のウィンドウサイズと位置(ヘルプウィンドウも)のスクリプトでわからない点があるのでご助力願いたいです。

投稿記事by ゆ―― » 2023年11月25日(土) 03:14

剣崎 宗二 様、ご助力いただきありがとうございます。

どちらもおっしゃる通りにしたら希望の形になりました。
長く付き合っていただき、ありがとうございました。
これで解決とさせていただきます。
本当にありがとうございました。

“MZ:質問” へ戻る