事前のお知らせ

MZ攻略本レベル4 プラグイン応用 攻略本レベル4 プラグイン応用

カスタムメニュー作成プラグイン入門その2-2:RPGツクールMZ・MV

トリアコンタン氏作の「カスタムメニュー作成プラグイン」はRPGツクールMZとMV用の両方があります。
使用方法は全く同じなので、以下の画面はMVを使用しますが、MZでも全く同じです。

▼作者による解説
triacontane.blogspot.com/2020/03/blog-post.html

一連の記事

カスタムメニュー作成プラグインは応用範囲が広い反面、何から手を付けたら良いのか分からない人も多いでしょう。
今回は、先日ツクマテでリクドウ氏が宿屋シーンを提示してくださったので、こちらを再現(少し簡易に)するよう制作過程を書いていきます。

カスタムメニュー作成プラグイン入門その2-1 の続きです。

サンプルプロジェクト

zipを解凍したものを新規プロジェクトに上書きして使ってください。

MZ用ZIPダウンロード

MV用ZIPダウンロード

プラグイン本体

RPGツクールMZ用

▼カスタムメニュー作成(トリアコンタン様作) - SceneCustomMenu.js
plugin-mz.fungamemake.com/archives/2597

RPGツクールMV用

▼カスタムメニュー作成(トリアコンタン様作) - SceneCustomMenu.js
plugin.fungamemake.com/archives/23762

目標画面

所持金ウィンドウを追加(gold)

選択肢を表示するウィンドウ(window1)の下に所持金を表示するウィンドウを追加します。

プラグインパラメーター>シーン>ウィンドウ一覧 を開きます。

3行目をダブルクリックします。

ウィンドウ識別子

「gold」に変更します。

相対Y座標ウィンドウ

「window1」と入力します。
どうやらY座標に数値が入っていても、相対Y座標のほうが優先される仕様のようです。

横幅

「360」に変更します。
これはwindow1と同じ幅です。

一覧ウィンドウID

ここで指定したウィンドウがアクティブの時に表示されます。
「window1」と入力します。

項目描画スクリプト

ドロップリストから下記を選びます。

this.drawText(`Text:${item.name}`, r.x, r.y, r.width, 'right'); // 任意のテキスト描画(制御文字変換なし。右揃え)

これを下記に書き換えます。

this.drawText($gameParty.gold() + ' ' + TextManager.currencyUnit, r.x, r.y, r.width, 'right'); // 所持金描画(制御文字変換なし。右揃え)

所持金とデータベースで設定する通貨単位を表示するスクリプトに書き換えました。

動作確認1

無事に所持金が表示されました。

会話ウィンドウを追加(message)

少しショートカットをします。
ウィンドウ一覧から、goldウィンドウをコピー&ペーストします。

すると、同じパラメーターが複製されます。
これを変更していきます。

ウィンドウ拡張子

「message」に変更します。

相対Y座標ウィンドウ

「gold」に変更します。

行数

「2」に変更します。

項目描画スクリプト

ドロップリストから下記を選びます。

this.drawTextEx(`Text:${item.name}`, r.x, r.y, r.width); // 任意のテキスト描画(制御文字変換あり)

これを下記に書き換えます。

this.drawTextEx('いらっしゃいませ。\n一泊10Gです。', r.x, r.y, r.width);

動作確認2

無事に表示されました。

店員画像を追加(face)

ウィンドウ一覧から、messageウィンドウをコピー&ペーストします。

ウィンドウ拡張子

「face」に変更します。

相対Y座標ウィンドウ

「message」に変更します。

高さ

「300」に変更します。

行数

「0」に変更します。

項目描画スクリプト

ドロップリストから下記を選びます。

this.drawFace(item.faceName(), item.faceIndex(), r.x, r.y); // フェイスグラフィック

下記のdrawFaceの情報を元に書き換えます。
(「RPGツクール リファレンス drawFace」で検索…リファレンス内に検索機能がないので…)
katai5plate.github.io/RPGMV-CoreScript-Reference/jsdoc/Window_Base.html

this.drawFace('People1', 5, r.x, r.y); // 顔画像People1のインデックス5

動作確認3

顔画像の座標を中央にしたい場合、座標を計算します。

  • ウィンドウ幅:330
  • ウィンドウ高:300
  • パディング上下左右:18
  • 顔画像サイズ:144x144

画像が収まる実質サイズ
(330-18x2)x(300-18x2)
=294x264

中央の座標
147,132

顔画像サイズの半分を戻す
147-72,132-72
75,60

this.drawFace('People1', 5, r.x + 75, r.y + 60);

補助情報

前回の記事で「コモンイベントを予約してマップシーンに戻る処理をしない」ことにしたのは、イベント終了時の画面にシーンのウィンドウを表示したかったためです。
マップシーンに戻ってから、イベント内容を実行すると、これら全てが非表示になります。

下記はMVで実行した後の画像です。
これを見ると、戻ってから実行したほうが良かったように感じます。
しかし、MZではパーティが回復したり、所持金が更新される挙動が見られます。
ケースバイケースで選んでください。

おまけ

左下のウィンドウには顔画像では小さいので、ピクチャを表示するスクリプトを紹介します。

this.drawPicture('ファイル名', r.x, r.y);

MVとMZだと収録素材を分けるのが面倒なので、ここは各自でチャレンジしてください。

スポンサードリンク

スポンサードリンク

-MZ攻略本レベル4 プラグイン応用, 攻略本レベル4 プラグイン応用

Copyright© RPGツクールMZ・MV初心者的備忘録 - ムノクラのメモ帳 , 2021 All Rights Reserved.