事前のお知らせ

RPGツクールMZ

仲間を入れ替える酒場システム #RPGツクールMZ (LLアクター選択プラグイン)

パーティ編成シーンプラグインのMZ移植版が待たれるところですが、少し時間がかかりそうです。

DQ3(FC版…筆者はそれしか触ったことがありません)の酒場と似た会話でパーティを組んでいくシステムを作成しました。
(検索して、名簿を見るなんてあったっけ???と思いながらも、ニーズがありそうなので入れました)

新しく「LLアクター選択プラグイン」が発表されたので、リメイクいたしました。
MVのプラグインコマンドをMZで動作確認で使用する方法は「RPGツクールMZでMVのプラグインコマンドを実行する方法」にまとめました。

こちらの記事はRPGツクールMZ向けです。
RPGツクールMV向けのパーティ編成シーンプラグインの情報の整理メモもございます。

サンプルプロジェクト

まとめてZIPダウンロード(4MB)

使用プラグイン

アクター選択(ルルの教会様作) - LL_ActorChoices.js

plugin-mz.fungamemake.com/archives/1669
アクターを選択するプラグインコマンドを実装します。

MNKR コマンド変数利用可能プラグイン

fungamemake.com/archives/11586
「変数が使用できないイベントコマンドをプラグインコマンドで使用可能にするプラグイン」です。

RPGツクールMZにはイベントコマンドで変数が使用できるものが増えました。
その中でも、使えないままになっているイベントコマンドに変数を使えるプラグインコマンドを追加するプラグインです。
今回は仲間に加える・別れるの処理に使用します。

使用変数の準備

 

  1. パーティ人数
  2. 選択アクター

ステートの設定

33 名簿閲覧中

デフォルトのステート12「麻痺」をコピーして、アイコンを無しにしただけです。
行動制約が「行動できない」になっていれば、何でも機能すると思います。

イベントの作成

文章:なし, People4(5), ウィンドウ, 下
文章ここはギルイーダの酒場。
文章出会いと別れの酒場よ。
文章
文章どんな御用?
ループ
変数の操作:#0001 パーティ人数 = パーティ人数
選択肢の表示:仲間を加える, 仲間と別れる, 名簿を見る (ウィンドウ, 右, #1, -)
仲間を加えるのとき
条件分岐:パーティ人数 > 3
文章:なし, People4(5), ウィンドウ, 下
文章随分と沢山のお仲間がいるじゃない。
文章それ以上は無理よ。

それ以外のとき
プラグインコマンド:LL_ActorChoices, アクター選択の処理
プラグインコマンドアクター選択の種類 = reserveMember
プラグインコマンド結果受け取り変数 = 2
プラグインコマンドキャンセル許可 = true
プラグインコマンド選択肢ウィンドウ背景 = 0
プラグインコマンド選択肢ウィンドウ位置 = 2
プラグインコマンド文章の表示 = どなたを加えるの?
プラグインコマンド文章ウィンドウ背景 = 0
プラグインコマンド文章ウィンドウ位置 = 2
プラグインコマンド名前欄 = 
プラグインコマンド顔グラフィック = People4
プラグインコマンド顔グラフィック番号 = 5
プラグインコマンドアクター絞込リスト = ["{\"actorId\":\"1\",\"switchId\":\"\"…
条件分岐:選択アクター ≠ -1
プラグインコマンド:MNKR_VariableCommand, メンバーを加える
プラグインコマンドアクターIDを指定する変数ID = 2
プラグインコマンドアクター初期化 = false

分岐終了

分岐終了

仲間と別れるのとき
条件分岐:パーティ人数 = 1
文章:なし, People4(5), ウィンドウ, 下
文章あなた1人しかいないじゃない。
文章自分とは分かれられないわよ。

それ以外のとき
プラグインコマンド:LL_ActorChoices, アクター選択の処理
プラグインコマンドアクター選択の種類 = partyMember
プラグインコマンド結果受け取り変数 = 2
プラグインコマンドキャンセル許可 = true
プラグインコマンド選択肢ウィンドウ背景 = 0
プラグインコマンド選択肢ウィンドウ位置 = 2
プラグインコマンド文章の表示 = どなたと別れるの?
プラグインコマンド文章ウィンドウ背景 = 0
プラグインコマンド文章ウィンドウ位置 = 2
プラグインコマンド名前欄 = 
プラグインコマンド顔グラフィック = People4
プラグインコマンド顔グラフィック番号 = 5
プラグインコマンドアクター絞込リスト = 
条件分岐:選択アクター ≠ -1
プラグインコマンド:MNKR_VariableCommand, メンバーを外す
プラグインコマンドアクターIDを指定する変数ID = 2
プラグインコマンドアクター初期化 = false

分岐終了

分岐終了

名簿を見るのとき
プラグインコマンド:LL_ActorChoices, アクター選択の処理
プラグインコマンドアクター選択の種類 = reserveMember
プラグインコマンド結果受け取り変数 = 2
プラグインコマンドキャンセル許可 = true
プラグインコマンド選択肢ウィンドウ背景 = 0
プラグインコマンド選択肢ウィンドウ位置 = 2
プラグインコマンド文章の表示 = どなたの名簿を見るの?
プラグインコマンド文章ウィンドウ背景 = 0
プラグインコマンド文章ウィンドウ位置 = 2
プラグインコマンド名前欄 = 
プラグインコマンド顔グラフィック = People4
プラグインコマンド顔グラフィック番号 = 5
プラグインコマンドアクター絞込リスト = ["{\"actorId\":\"1\",\"switchId\":\"\"…
条件分岐:選択アクター ≠ -1
文章:なし, People4(5), ウィンドウ, 下
文章名簿はキャンセルで進めるわ。
スクリプト://パーティアクターの記憶
スクリプト$gameParty._lastActors = $gameParty._actors.clone();
スクリプト://パーティメンバーを全員外す
スクリプト$gameParty._actors = [];
スクリプト$gamePlayer.refresh();
スクリプト$gameMap.requestRefresh();
プラグインコマンド:MNKR_VariableCommand, メンバーを加える
プラグインコマンドアクターIDを指定する変数ID = 2
プラグインコマンドアクター初期化 = false
ステートの変更:パーティ全体, + 名簿閲覧中
スクリプト:// 変数2番のアクターのステータス画面を開く
スクリプト$gameParty.setMenuActor($gameActors.actor($gameVariables.value(2)));
スクリプトSceneManager.push(Scene_Status);
スクリプト:// 変数2番のアクターのスキル画面を開く
スクリプト$gameParty.setMenuActor($gameActors.actor($gameVariables.value(2)));
スクリプトSceneManager.push(Scene_Skill);
ステートの変更:パーティ全体, - 名簿閲覧中
スクリプト://パーティアクターの復元
スクリプト$gameParty._actors = $gameParty._lastActors;
スクリプト$gamePlayer.refresh();
スクリプト$gameMap.requestRefresh();

分岐終了

キャンセルのとき
ラベルジャンプ:End

分岐終了
文章:なし, People4(5), ウィンドウ, 下
文章他に御用は?

以上繰り返し
ラベル:End
文章:なし, People4(5), ウィンドウ, 下
文章またのお越しをお待ちしております。

少々長くなってしまいましたが、場面毎にコモンイベント等に分けるほどでもなかったので、1イベントにまとめました。

LL アクター選択肢プラグインコマンドの情報

「LL アクター選択肢」のプラグインコマンドでアクターの選択肢をかなり自由に作成できます。
今回はローザに話しかけるまでは、仲間にできない設定の選択肢を作成しました。

 

 

プラグインコマンドの「アクター絞り込みリスト」でスイッチID1がONの時にだけ、ローザが「仲間を加える」リストに入るようになっています。
この絞り込みリストを応用すれば、「主人公が選択肢に出ない」リストも簡単に作れます。

イベント内容の前提

パーティ人数は最低1人最大4人とする。

最低1人なんて当たり前じゃんと思うでしょう?
実験したのですが、0人でもゲームは止まりません。
もちろんプレイヤーキャラクターが無くなってしまうので、どこにいるのか分からなくなりますが…
RPGツクールMZ(MVも)の仕様のようです。

ステートの利用方法(33「名簿閲覧中」)

「名簿を見る」に使用しています。

ここの処理は下記のようになっています。

  • パーティに居ないアクターのリストを作成
    (ステート32になっていないアクター全員のリストを作成)
  • アクターを選択
  • 現在のパーティ状態を保存する
  • パーティ全員をパーティから外す
  • 選択したアクターをパーティに入れる
  • アクターを麻痺ステート(33「名簿閲覧中」)にする
  • アクターのステータス画面を表示する
  • アクターのスキル画面を表示する
  • アクターの麻痺ステート(33「名簿閲覧中」)を解除する
  • パーティを保存した状態に戻す

麻痺させるのは、スキル画面でスキルが実行できるのを防ぐためです。

他の面倒な処理をしているのは、パーティ外のアクターのステータス等は通常のスクリプトで表示することが出来ないためです。
また、他のアクターがパーティ内にいると、「PageUp」「PageDown」キーで切り替えが出来てしまうので、興ざめです。
よって、名簿の対象以外のアクターをパーティから一度外し、選択したアクターをパーティに入れ、ステータスを表示した後に、パーティを戻すという流れにしています。

総括

通常のイベントコマンド「メンバーの入れ替え」の指定では変数の値を使用できないため「MNKR コマンド変数利用可能プラグイン」を使用しています。
このプラグインは、今後もあったら便利そうなプラグインコマンドを拡張していく予定です。

何でも1つのプラグインで解決しようとせずに、まずイベントコマンドで出来ないか?複数の機能に分けられないか?と考えてみると良いです。
そして、そこに変数が使えれば…というアイディアまで辿り着いたら、そのコマンドを実行するスクリプトやプラグインの多くがあります。
検索しましょう、大抵が村人Aさんのwikiに書かれていると思いますが、ちょっとしたことが誰かのブログに書かれていることもあります。
また、トリアコンタンさんの「RPGツクールMV プラグインコマンド集 リファレンス - Google スプレッドシート」にも沢山のスクリプトが載っています。
MZにもそのまま流用できるものが多いので、試してみると良いでしょう。

自分の上記のスクリプトの大半がそうして見つけて、記事に纏めておいたものばかりです。

プラグインの機能が目的が分かりにくい(~する用等ではない)ものほど、応用範囲が広い傾向にあります。
(特にトリアコンタンさんのプラグインには、その傾向が多いので、リストを眺めてみると何か思いつくかも知れません)

スポンサードリンク

スポンサードリンク

-RPGツクールMZ
-

Copyright© RPGツクールMZ・MV初心者的備忘録 - FGMG (Fun Game Make Group) , 2024 All Rights Reserved.