power spot. 2023/02/23 00:06

カスタムメニュープラグイン講座(第4回)「Windowパラメータ(2):データスクリプト」

RPGツクールMZ向けのトリアコンタン氏のプラグイン「カスタムメニュープラグイン(SceneCustomMenu.js)」の使い方講座です。

リンク:
カスタムメニュー作成プラグインを調べてみた(とんびさん)

今回はWindowの設定パラメータの概要を解説します。
多くのパラメータが存在するので、複数回に分けて解説する予定です。

前回はパラメータ全体を紹介しました。今回は「データスクリプト」について解説します。


【1】データスクリプトとは
データスクリプトとは、一言で言うなら「ウィンドウに表示する内容の元データ」です。
例を出すと、アイテムメニューで表示されるリストは所持しているアイテムリスト、スキルで表示されるのはアクターが習得済みのスキルリスト、などです。

これらはすべて「スクリプト」で取得します。
RPGツクールMZは、内部の処理はjavaScriptという言語(プログラム)で記述されています。
データスクリプトは、データ「スクリプト」というぐらいなので、スクリプト(javaScript)を使用してパラメータを設定していきます。

プログラムが苦手な方でも、スクリプトの記述が多くなる予定なので、この回から徐々にスクリプトに慣れていきましょう。英語が苦手という方も慣れるようにがんばりましょう。


【2】データスクリプトのパラメータ



(1)一覧ウィンドウ識別子(ListWindowId)
生成するウィンドウのデータ内容が別のウィンドウで選択されている項目にしたい場合、こちらにウィンドウ識別子を入力します。


(2)一覧取得スクリプト(ListScript)【重要!】

ウィンドウの内容に設定するデータを設定します。
デフォルトでは画像のようなプルダウンメニューで色々なデータを取得出来るようになっています。

(3)フィルタスクリプト(FilterScript)

一覧取得スクリプトで取得したデータにフィルタをかけます。フィルタをかけるとは、特定の条件に合致したもののみを取得し直す、ということです。


(4)マッピングスクリプト(MappingScript)

一覧取得スクリプトで取得したデータを別のデータに変換します。


(5)項目描写スクリプト(ItemDrawScript)【重要!】

一覧取得スクリプトで取得したデータの内容で、どの内容(パラメータ)を表示させるのかを記述します。
一覧取得スクリプトで取得したのがパーティーメンバー(アクター)だった場合、アクターの名前や顔グラフィック、レベル、ステータスなどを描画させるように設定したり出来ます。


(6)選択可能スクリプト(IsEnableScript)

カーソル系ウィンドウの場合、項目を選択可能の可否を設定します。




【3】itemとは?

さて、【2】で紹介した内容では所々で「item.〜」という表記が出てきます。itemはカスタムメニュープラグイン内では、「取得したデータの1つの項目」と捉えるのが分かりやすいと思います。
例えば一覧取得スクリプトでパーティーメンバー($gameParty.members();)を選択した場合、項目描写でのitemは「アクター」となります。アクターが1人ならば1つだけ、4人いれば4つの項目、10人いれば10項目というように、最大値はプラグインが自動で処理してくれます。
あくまで1つ1つ同じ内容を表示するとき、項目描写スクリプトでそれらを1つずつ描写すればよいのです。


【4】項目描写スクリプトの機能

アクターの名前・レベル・職業・顔グラフィックを表示させたいとします。
項目描写スクリプト内で以下の画像のようにしてみるとどうなるでしょう。

実際にゲーム画面では左上のウィンドウのようになります。


名前、レベル、職業、顔グラフィックが重なってしまっていますね。
これは表示している座標を修正していないからです。
座標を修正するのは、パラメータ「r.x」と「r.y」の部分で数値を修正します。
この「r」というのは、項目ごとの座標を予め計算してくれていますので、よっぽどのことが無い限りは消さないほうが良いです。ではどうすればいいでしょう。

r.x :x座標なので、 r.x + 100 や r.x - 50 など、そこで計算するように数式を入力すれば座標を修正できます。

実際に修正してみたのが以下のパラメータです。


実際のゲーム画面がこちらです。



データスクリプトはウィンドウを形成する上でも最重要レベルで大事なパラメータです。
大まかな流れとしては、「ウィンドウを作成する→データスクリプトを設定してデータを取得する→項目描写スクリプトで描写の設定」という感じになります。
今回紹介したデータスクリプトは、プルダウンメニューから選択出来ますが自分でスクリプトを記述してより細かい設定をすることが可能です。それはまた別の機会に解説したいとおもいます。

次回は決定イベント、キャンセルイベント、カーソルイベントについて解説したいと思います。