【解決】バトル画面のステータス表示について

返信する
komamidori
記事: 5
登録日時: 2019年5月11日(土) 22:37

【解決】バトル画面のステータス表示について

投稿記事 by komamidori »

すみません、力をお貸しください・・・。

ステータスからMPを消し、HP直下にTPを置きたくて、そこまでは成功しました。
(js読めないのですが、試行錯誤で「rmmz_windows.js」の1747行目を削除しました。)

ですがバトル画面で顔グラフィックが妙に狭いまま下部に空間ができてしまいまして・・・。
付近の設定を変えればいいのかな?と探ってみましたが、自力で解決策が掴めませんでした。

バトル画面の顔グラフィックを広げて、名前・ゲージをその分さげる方法を教えていただきたいです。
どうぞよろしくお願いいたします。
添付ファイル
新規キャンバス1.jpg
最後に編集したユーザー komamidori [ 2020年12月10日(木) 21:49 ], 累計 1 回
アバター
ムノクラ
記事: 2118
登録日時: 2018年2月23日(金) 11:41
連絡する:

Re: バトル画面のステータス表示について

投稿記事 by ムノクラ »

komamidori さんが書きました:すみません、力をお貸しください・・・。

ステータスからMPを消し、HP直下にTPを置きたくて、そこまでは成功しました。
(js読めないのですが、試行錯誤で「rmmz_windows.js」の1747行目を削除しました。)

ですがバトル画面で顔グラフィックが妙に狭いまま下部に空間ができてしまいまして・・・。
付近の設定を変えればいいのかな?と探ってみましたが、自力で解決策が掴めませんでした。

バトル画面の顔グラフィックを広げて、名前・ゲージをその分さげる方法を教えていただきたいです。
どうぞよろしくお願いいたします。
SS01.png
基本的に、コア自体を直接書き換えずに、プラグイン化しましょう。
コアが更新されたり、壊れたりした時に戻すのが楽になります。

今回の要望は、下記のコードをコピーして、プラグインとして保存(ファイル名は~.jsで何でも可)すれば、反映します。
(一応、著作権放棄の宣言をしておきます。)

コード: 全て選択

(() => {
    'use strict';

    Window_StatusBase.prototype.drawActorFace = function (
        actor, x, y, width, height
    ) {
        //メニュー表示の位置も変わってしまうため、バトルシーンのみ変更する分岐
        const isSceneMenu = SceneManager._scene.constructor.name;
        if (['Scene_Battle'].includes(isSceneMenu)) {
            //少し下げる。this.gaugeLineHeight()はデフォルトで24
            this.drawFace(actor.faceName(), actor.faceIndex(), x, y + this.gaugeLineHeight() / 4, width, height);
        } else {
            this.drawFace(actor.faceName(), actor.faceIndex(), x, y, width, height);
        }
    };

    Window_StatusBase.prototype.placeActorName = function (actor, x, y) {
        const key = "actor%1-name".format(actor.actorId());
        const sprite = this.createInnerSprite(key, Sprite_Name);
        sprite.setup(actor);
        // sprite.move(x, y);
        sprite.move(x, y + this.gaugeLineHeight());   //一行下げた
        sprite.show();
    };

    Window_StatusBase.prototype.placeBasicGauges = function (actor, x, y) {
        //メニュー表示の位置も変わるが、違和感がないので分岐省略
        // this.placeGauge(actor, "hp", x, y);
        this.placeGauge(actor, "hp", x, y + this.gaugeLineHeight());    //一行下げた
        // this.placeGauge(actor, "mp", x, y + this.gaugeLineHeight()); //非表示
        if ($dataSystem.optDisplayTp) {
            this.placeGauge(actor, "tp", x, y + this.gaugeLineHeight() * 2);
        }
    };

})();
sukinikaetene.js
(1.53 KiB) ダウンロード数: 16 回
書き換える前の処理をコメントで残しておくと、行き詰まった時に調べるのが楽になるというのが、自分の経験則です。
仕様を覚えてしまうくらいの熟練者になれば、そんな必要はないと思いますが。

コードを編集するなら通常のテキストエディタではなく、専用のエディタをお勧めします。
自分はVisual Studio Code(無料)を使用しています。
https://azure.microsoft.com/ja-jp/produ ... udio-code/

コード等コピーできるものはスクリーンショットではなく、[code]で囲って貼り付けるとコピーもでき、視認性が上がるので望ましいです。
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
komamidori
記事: 5
登録日時: 2019年5月11日(土) 22:37

Re: 【解決】バトル画面のステータス表示について

投稿記事 by komamidori »

ム、ムノクラ様・・・!
MV時代からゲーム作りでありとあらゆる恩恵に預かっておりましたところ、
今回はプラグイン作成とご助言まで、本当にありがとうございます。感謝に耐えません。。


作成いただいたプラグインで希望どおりに動作しました、とても助かりました!!
Code囲いや編集方法につきましても、今後の取り組みに活かして参ります。
アバター
ムノクラ
記事: 2118
登録日時: 2018年2月23日(金) 11:41
連絡する:

Re: 【解決】バトル画面のステータス表示について

投稿記事 by ムノクラ »

komamidori さんが書きました:ム、ムノクラ様・・・!
MV時代からゲーム作りでありとあらゆる恩恵に預かっておりましたところ、
今回はプラグイン作成とご助言まで、本当にありがとうございます。感謝に耐えません。。


作成いただいたプラグインで希望どおりに動作しました、とても助かりました!!
Code囲いや編集方法につきましても、今後の取り組みに活かして参ります。
お役に立てて何よりです。
スクリーンショットがサクラエディタだったので、なんか親近感を持ってしまって、VS Codeの話までしてしまいました。

ちょうど、公式フォーラムのユーザ発のアドベントカレンダーが動いています。
その中で今日発表された記事が下記です。
https://ci-en.net/creator/6284/article/404316

自分がプラグイン作成について書けるのと、ちょうど同じレベルだと思います。
逆にこれ以上の説明は、今の自分には出来そうもありません。
アーヴェル氏がITに関係する学歴・職歴がないとしたら、一年でここに到達したのは驚愕すべきスピードだと思って読みました。
(自分は倍かかったわけで…)

この前段階としてコアを書き換えるならプラグインにしようというのが下記です。
http://ktnhmv.jugem.jp/?eid=12

実際に書くと下記になります。

コード: 全て選択

(() => {

    Window_StatusBase.prototype.placeBasicGauges = function (actor, x, y) {
         this.placeGauge(actor, "hp", x, y);
        if ($dataSystem.optDisplayTp) {
            this.placeGauge(actor, "tp", x, y + this.gaugeLineHeight());
        }
    };

})();
※はじめの「(() => {」と「(function() {」は厳密には違う機能ですが、プラグイン作成については、同じ意味だと(現時点では)思って良いです。

こちらを読めば、komamidori氏が改変した箇所をプラグイン化する方法も分かると思います。
そして、ムノクラが書いたプラグインは、ほぼ同じレベルで書いているので、コアを検索しながら比較すれば、何をしたのかが分かると思います。

まず、コアを直接書き換えるのを止めて、プラグイン化して独立するところから手を付ければ、スキルアップはあっという間でしょう。

今後のご活躍を期待しております。
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
返信する

“MZ:質問”に戻る