パーティ編成シーンプラグインのMZ移植版が待たれるところですが、少し時間がかかりそうです。
DQ3(FC版…筆者はそれしか触ったことがありません)の酒場と似た会話でパーティを組んでいくシステムを作成しました。
(検索して、名簿を見るなんてあったっけ???と思いながらも、ニーズがありそうなので入れました)
新しく「LLアクター選択プラグイン」が発表されたので、リメイクいたしました。
MVのプラグインコマンドをMZで動作確認で使用する方法は「RPGツクールMZでMVのプラグインコマンドを実行する方法」にまとめました。
こちらの記事はRPGツクールMZ向けです。
RPGツクールMV向けのパーティ編成シーンプラグインの情報の整理メモもございます。
目次
サンプルプロジェクト
使用プラグイン
アクター選択(ルルの教会様作) - LL_ActorChoices.js
plugin-mz.fungamemake.com/archives/1669
アクターを選択するプラグインコマンドを実装します。
MNKR コマンド変数利用可能プラグイン
fungamemake.com/archives/11586
「変数が使用できないイベントコマンドをプラグインコマンドで使用可能にするプラグイン」です。
RPGツクールMZにはイベントコマンドで変数が使用できるものが増えました。
その中でも、使えないままになっているイベントコマンドに変数を使えるプラグインコマンドを追加するプラグインです。
今回は仲間に加える・別れるの処理に使用します。
使用変数の準備
- パーティ人数
- 選択アクター
ステートの設定
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にもそのまま流用できるものが多いので、試してみると良いでしょう。
自分の上記のスクリプトの大半がそうして見つけて、記事に纏めておいたものばかりです。
プラグインの機能が目的が分かりにくい(~する用等ではない)ものほど、応用範囲が広い傾向にあります。
(特にトリアコンタンさんのプラグインには、その傾向が多いので、リストを眺めてみると何か思いつくかも知れません)
コメントを投稿するにはログインしてください。