カスタムメニュープラグイン講座(第12回)「戦闘中の呼び出し・メモタグの利用・出来ないこと」
RPGツクールMZ向けのトリアコンタン氏のプラグイン「カスタムメニュープラグイン(SceneCustomMenu.js)」の使い方講座です。
リンク:
・カスタムメニュー作成プラグインを調べてみた(とんびさん)
・RPGツクールMZ プラグイン講座
・RPGツクールVXAce & MV & MZスクリプトwikiとプラグイン
Download → RPGツクールMZ データベース用リファレンス
Download → RPGツクールMZ ゲームデータ用リファレンス
今回は、戦闘中の呼び出し、メモタグの利用と、カスタムメニュープラグインで出来ないことを紹介します。
【1】カスタムメニュープラグインと戦闘シーンについて
カスタムメニュープラグインは戦闘中に呼び出すことが可能です。※ただし、通常のメインメニューから呼び出す場合と違う振る舞いをします。
設定方法は大まかに以下の手順です。
・カスタムメニューAを作成
・コモンイベントBにカスタムメニューA呼び出しのスクリプトを記述
・アイテム、もしくはスキルの使用効果に、上記のコモンイベントBを設定
・戦闘中にアイテム、スキルを使用
前回までの講座で作成したカスタムメニューを呼び出してみました。
かなり無理やり呼び出している感じがしますね。パラメータなどを細かく設定すると見栄えがよくなります。
【2】戦闘用カスタムメニューの設定
前回までのカスタムメニューを戦闘中に呼び出すと、背景はマップシーンの状態が表示されます。これでは戦闘中に呼び出しても魅力が半減してしまいます。
背景を戦闘シーンにするためには、スクリプトコマンドを使用します。
SceneManager.snapForBackground();//画像をスナップ
この場合、コモンイベントを使用してカスタムメニューを呼び出す処理の直前に入れてあります。
これに加え、メニュー呼び出し時の背景ぼかしをオフにします。
以上2つを設定した動作は以下の動画のようになります。
キャンセルイベントでマップシーンに戻るように設定してあるので、戦闘が強○終了しています。
拙作にて、戦闘中にカスタムメニューを呼び出しているシーンを紹介します(開発途中で申し訳ありません)
https://twitter.com/jidoripowerspot/status/1560627540179333120
戦闘中もほぼシームレスに呼び出せれば、特殊なメニューなども違和感なく簡単に作れると思います。
【3】メモタグの利用
ツクールのデータには「メモ欄」が用意されています。これは簡易的なメモを記述するだけではなく、スクリプトを利用して内容を参照することが出来ます。
例えば、データベースのアクターのメモ欄に<value>と記述してあるとします。
アクター1の<value>を参照するためのコードは以下のようになります。
$dataActors[1].meta['value']
$dataActors[1].meta.value
どちらでも参照することが出来ます。
ただし、下の記述の場合は全角文字は参照出来ませんので注意が必要です。
フィルタスクリプト内のテンプレートには以下のような記述があります。
item.meta['value']; // メモ欄に<value>の記述がある
これは一覧取得スクリプトで得たデータがitemとなっているので、一覧取得スクリプトが $dataActors.filter(data => !!data); を選んでいればアクターのデータベースにあるメモ欄を取得出来ます。
一覧取得スクリプトが $gameParty.members(); // パーティメンバー の場合は、やり方が少し変わります。
$gameParty.members(); にした場合、項目描写などでitemと記述すれば、パーティーに居るアクターを一人ずつ参照します。ですが、この$gamePartyで参照されるパーティーメンバー配列のアクターには、メモ欄の情報はありません。
パーティーメンバーに居るアクター1のメモ欄を参照するためには、以下のようなコードが必要です。
$dataActors[item._actorId].meta['value'];
順番に見ていくと、
$dataActors[n] → n番目のアクター(データベース)
$dataActors[n].meta['value']; → n番目のアクター(データベース)のメモ欄の<value>
$dataActors[item._actorId].meta['value']; → item(この時はパーティーメンバーのアクター)のアクターIDのデータベースのメモ欄の<value>
となります。記述しているコードが複雑に見えますが、順序良く見ていく(カッコ内やパラメータの値など)ことで、理解しやすくなると思います。
【4】カスタムメニュープラグインで出来ないこと
さまざまな可能性を秘めているカスタムメニュープラグインですが、どうしても出来ないことがありました。それは複数のカーソルを同時に動かす(アクティブにする)ことです。
例えばコマンドを横に4つ備えたコマンドウィンドウAがあったとします。それとは別に立てに4つの項目が描写されているウィンドウBがあったとします。
左右のボタンはウィンドウAしか操作できません。
上下のボタンはウィンドウBしか操作できません。
なので、このウィンドウを同時にアクティブにすることが出来れば、左右でAを、上下でBを操作出来るのでは無いかと思いますね。でも、プラグインの仕様で不可となっております。
同時にアクティブに出来れば、一回分の操作が省略出来そうだが・・・
さて、講座は今回で一区切りとさせてください。
お伝えしたいことは、大まかではありますが伝えられたと思っております。
次回からは、拙作 Eternal Dragon 続編のメニュー画面を実際に制作していく過程をお伝えしたいと思います。
ありがとうございました。