三すくみバトルについて

Huyuzora
記事: 34
登録日時: 2015年12月16日(水) 22:24

三すくみバトルについて

投稿記事by Huyuzora » 2017年4月26日(水) 21:15

どうも、質問させていただきます。


ツクールMVにおいて一対一の戦闘で、
ジャンケンのような三すくみの要素を取り入れたいと思っています。
イメージとしては「ラクガキ王国」の「ラクガキファイト」のような物を再現出来たら良いなと。
(ジャンケンのようなバトルであいこは相打ち。同じ行動は連続では選べない。
三すくみとは別に「チャージ」で次ターン攻撃力アップ)
連続で同じ行動を選べないや「チャージ」は出来た方が良いですが
とりあえずおいておくとして最低限三すくみの状態が作りたいです。

デフォルトの「攻撃」「魔法」「防御(この場合は防御攻撃のようなスキルにカスタム)」を使い、
「攻撃」をした場合は「魔法」に弱くなり「防御」に強くなるようなステートをかけ
「魔法」、「防御」にもそれぞれ同じようなステートを付与し
敵も同じように設定し互いに攻撃し合えばジャンケンのような事が出来ると思ったのですが
よく考えると、ジャンケンと違ってデフォルトの戦闘では互いが順番に行動するので、
先に動いた方にだけステートが発生し意味が無くなってしまいます。
それならばと、1ターンを行動選択だけに使い
次のターンに選んだ行動を強制的にさせる方法を考えたのですが
スキルでコモンイベントを発生させ「戦闘行動の強制」させようとした所、
ターンをまたがって行動させる方法が思いつかないあげく、
行動させる相手も「スキル使用者」などで選べないので
全アクター、全エネミーごとにスキルを用意しないといけないような仕様に見え
流石に煩雑すぎるように思えます。
互いに行動するより先に
選んだ行動によってステートがかけられる方法があればいいかなとは思うですが・・・。

どうにかして三すくみの仕様を作りたいのですが
上記の方法に拘らず、
なにかしら実現できそうな方法、プラグイン、スクリプト等をご存じでしたら
ご教授いただけると幸いです。

アバター
あかみどり
記事: 57
登録日時: 2017年7月08日(土) 12:07
連絡を取る:

Re: 三すくみバトルについて

投稿記事by あかみどり » 2017年7月12日(水) 00:44

こんばんは~
面白そうな試みだったので作ってみました。

考え方は同じで、お互いにジャンケンで出すものを宣言してから行動させます。
敵の行動パターンの条件、「特定のステート時にのみスキルを使用する」を利用して作ろうと思います。
これはターンの開始時にそのステートにかかっていなければ、
その行動パターンを選択してくれないようなので、(ターン最初に行動選択しているため?)
前のターンに敵にステート(攻撃用ダミー、防御用ダミー、魔法用ダミー)を付与する方向で考えていきます。
具体的にはターンの最後に、変数に乱数を使って代入して、
条件分岐でランダムに敵にステートを付与させます。
バトル開始直後は、バトルイベントの条件にターン0を指定すれば、
最初のコマンド選択前に実行してくれるので、それを利用します。
敵キャラ:行動パターンはステート攻撃用ダミーの時、~スキルを使用すると3種類設定してください。
先に敵キャラの方にステートが付与されているので、
プレイヤー側に見せないようにステートのアイコンは透明にしてしまいましょう。

さて、次はプレイヤー側の設定ですね。
プレイヤーはランダムにステートを付与するわけには行かないので、
コマンド入力の時点で、2回行動をして貰います。
デフォルトでは難しいので、プラグインに頼りましょう。
以下のプラグインを使わせて頂きます。

・鳥小屋.txtさん   「ターン消費なしスキルさん」
・トリアコンタンさん 「アクターコマンド封印プラグイン」
・kotonoha*さん   「戦闘のコマンド欄にスキルを直接表示」

「アクターコマンド封印プラグイン」で、
攻撃、防御を削除します。アイテムも要らなければ消しておきます。
タイプ、スキルタイプより攻撃、防御、魔法を作っておきます。
攻撃、防御、魔法に1つずつ宣言スキルをあとはチャージを作ります。
チャージは「戦闘のコマンド欄にスキルを直接表示」プラグインでコマンド欄に表示させておきましょう。
敵キャラの時にやったように、最初のターンは0ターン設定で、
その3つのスキル以外の全部の
攻撃宣言、防御宣言、魔法宣言にはターン消費なしスキルさんを使い、
自身にステートを付与しつつ、ターンを進ませないようにします。
そして、自身に攻撃や防御のステートを付与した際にそれ以外の2つのコマンドは封印してしまいましょう。
そして、ステート付与時にそれに対応したスキルの封印を解除しておきます。
これでお互いにステートが付与されてジャンケン状態になりました。

さて、いよいよターンの開始ですが、
敵のステートの状態がわからないと、ジャンケンに勝ったかどうかも分からないので、
敵キャラのステートを表示させましょう。
毎ターン開始時に
コモンイベント
・条件分岐で敵ステートが~ダミーの時、
 敵ステート変更でそれに対応したアイコン付ステートを付与しましょう。
コモンイベントの後、30フレーム程ウェイトを入れておかないと、
どちらかの行動と同時にステートが付与されて分かりづらいと言うことになるので注意してくださいね。

ターンの最後にお互いのステートを削除し、また敵キャラにステートをランダムで選んでもらい、
アクターのスキルを宣言とチャージ以外の4つ以外を全て封印して、1ターンの終了です。
連続行動の禁止(いわゆるクールタイム)については、
攻撃時にコモンイベントでアクターや敵キャラに封印ステート(1ターン)付与すれば再現できると思います。

以上、ここまでお疲れ様でした。
詳しいコモンイベントなどは次のレスにて確認してください。
---------------------------------------------
Twitter
https://twitter.com/aoki_akamidori
---------------------------------------------
アバター
あかみどり
記事: 57
登録日時: 2017年7月08日(土) 12:07
連絡を取る:

Re: 三すくみバトルについて

投稿記事by あかみどり » 2017年7月12日(水) 02:46

レシピ(最後にバトルの流れが書いてあります)

使用させて頂くプラグイン

ターン消費なしスキルさん      ・鳥小屋.txtさん
アクターコマンド封印プラグイン   ・トリアコンタンさん
戦闘のコマンド欄にスキルを直接表示 ・kotonoha*さん
----------------------------------------------------------------------------------------
用意する属性

攻撃
防御
魔法
----------------------------------------------------------------------------------------
用意するステート

攻撃     効果:属性関連~ スキル封印:攻撃宣言、チャージ タイプ封印:防御、魔法
防御     効果:属性関連~ スキル封印:防御宣言、チャージ タイプ封印:攻撃、魔法
魔法     効果:属性関連~ スキル封印:魔法宣言、チャージ タイプ封印:攻撃、防御
チャージ   効果:攻撃力×200%
攻撃用ダミー 効果:アイコンも何も無し(エネミーの行動決定識別用) 
防御用ダミー 効果:アイコンも何も無し
魔法用ダミー 効果:アイコンも何も無し
チャージダミー効果:アイコンも何も無し
スキル封印  効果:3つの宣言、チャージ以外の全スキル(宣言前にスキルを使えなくする為
攻撃CT   効果:スキルタイプ封印:攻撃(2ターン)※付与したターンも数える為
防御CT   効果:スキルタイプ封印:防御(2ターン)
魔法CT   効果:スキルタイプ封印:魔法(2ターン)
チャージCT 効果:スキル封印:チャージ、チャージ(敵(2ターン)
----------------------------------------------------------------------------------------
コモンイベント 戦闘開始処理

スイッチの操作:アクターコマンド封印プラグインで設定したスイッチON
(これは戦闘開始じゃなくて、MAPでもかまいません)
ステートの変更:パーティ全体,+ スキル封印
コモンイベント:エネミーの行動決定処理
----------------------------------------------------------------------------------------
コモンイベント エネミーの行動決定処理

注釈:攻撃がクールタイムに入っている時のエネミーの行動決定処理です。
   乱数の数字を変更すると偏った行動決定もできます。

・条件分岐:#1が攻撃CTになっている
 ・変数の操作:#0001モンスターの行動決定 = 乱数 1..3(エネミーの行動
 ・条件分岐:(変数)モンスターの行動決定 = 1 (乱数による結果
  ・敵キャラのステート変更:#1,+ 防御用ダミー
  ・イベント処理の中断
  ・
 :分岐終了
 ・条件分岐:モンスターの行動決定 = 2
  ・敵キャラのステート変更:#1,+ 魔法用ダミー
  ・イベント処理の中断
  ・
 :分岐終了
 ・条件分岐:モンスターの行動決定 = 3
  ・敵キャラのステート変更:#1,+ チャージダミー
  ・イベント処理の中断
  ・
 :分岐終了

注釈:攻撃CTの場合の設定ここまで。同じように魔法、防御、チャージの設定も
   コピー&ペーストで設定していきます。最後にどの状態でも無い時(開始直後)
   の設定をします。設定の仕方は同じで、乱数を4つ分にして、4種類全部記述するだけです。
   必ず一番最後の方に記述してください。
----------------------------------------------------------------------------------------
コモンイベント エネミーの行動宣言

注釈:ターンの開始時にエネミーの行動がどうなっているかのネタ晴らしです。
   もし結果を開示したくない場合は、ここを省いてダミーの方でステートの設定を
   してもいいと思います。

・条件分岐:#1が攻撃用ダミーになっている
 ・敵キャラのステート変更:#1, + 攻撃(アクターと同じステートで大丈夫です
 ・
:分岐終了

~以降魔法、防御、チャージと同じ設定のを上から順に設定します。
またチャージは宣言ではなく、ここで直接ステートを付与してしまうので、
実質行動スキップになります。
----------------------------------------------------------------------------------------
コモンイベント ターン終了処理 

注釈:ここで全てのステートをリセットし、エネミーの行動を再設定します。

・敵キャラのステート変更:#1,- 攻撃、防御、魔法、攻防魔チャージ4種のダミー、
・ステートの変更:アクター、- 攻撃、魔法、防御
・ステートの変更:アクター、+ スキル封印
・コモンイベント:エネミーの行動決定処理
----------------------------------------------------------------------------------------
コモンイベント 攻撃CT処理 

注釈:コマンドを連続で使用できないようにする為の設定です
   スキルタイプ自身を1ターン封印します。

・ステートの変更:アクター1,+ 攻撃CT

注釈:同じ記述を別のコモンイベント(防御CT処理等)でスキルタイプの種類分作ります。
   敵は敵で別に作ります。(ステートの変更に使用者が無い為
----------------------------------------------------------------------------------------
スキルの設定

・それぞれカテゴリ宣言用のスキル、攻撃宣言~(名称は好きに変えてください)、チャージ
 
 例:攻撃宣言 スキルタイプ:攻撃 消費MP:0 範囲:使用者
   アニメーション、メッセージは自由にどうぞ。
   使用効果:ステート付加 攻撃:100% ステート解除:スキル封印
   メモ欄にターン消費なしスキルさんを記述
   ※ここで、攻撃ステートを付加して、他の2つのスキルタイプを封印すると共に、
    攻撃カテゴリ内のスキルの封印を解除しています。

・各種攻撃スキルにそれぞれのコマンドを封印するコモンイベント

コモンイベントを使うのは、敵に攻撃しつつ、
自身にクールタイム用のステートを付与する為ですね。
クールタイムを考えなければ、削ってもいいところだと思います。
削ると作るのがもっと楽になる部分ですね。
----------------------------------------------------------------------------------------
敵キャラの設定

スキル:攻撃用スキル 条件:ステート攻撃用ダミー
以下、魔法用、防御用と設定。チャージは宣言のところで付与するので設定無しです。

----------------------------------------------------------------------------------------
バトルイベントの設定

1ページ目(ターンの終了処理です)
条件:ターン終了、ターン 1+1*X スパン:ターン
内容:
コモンイベント:ターン終了処理

2ページ目(ターンの開始処理です)
条件:ターン 1+1*X スパン:ターン
内容:
コモンイベント:エネミーの行動宣言
ウェイト:30フレーム
注釈:ウェイトは必要に応じて伸ばしたり、短くしたりしてください。
   また、エネミーの行動結果を知らせなくていい場合は、このページは要りません。

3ページ目(戦闘開始直後の処理です)
条件:ターン0
内容:
・スイッチの操作:アクターコマンド封印プラグインのスイッチON
・コモンイベント:エネミーの行動決定処理
ステートの変更:アクター1,+ スキル封印

注釈:アクター1や#1の設定を全体に広げれば、多人数ジャンケンも出来ます。
----------------------------------------------------------------------------------------
バトルの流れ

戦闘開始(0ターン)
敵の行動決定(攻撃、防御、魔法)

プレイヤーのスキルカテゴリの決定(攻撃、防御、魔法)
決定時にそのステートを付与
決定したカテゴリ内から使用したいスキルを選択

ターン開始
敵の行動内容(選択ステート)の開示

ジャンケンバトル

ターン終了
お互いのCT以外のステートをリセット
敵の行動決定(攻撃、防御、魔法)

以下ループ

となっています。
----------------------------------------------------------------------------------------
長すぎな上に見づらくてすみません;
もっと修正出来る箇所はあると思いますので、
都度改造して使ってみてください。

以上、ここまでおつかれさまでした。
---------------------------------------------
Twitter
https://twitter.com/aoki_akamidori
---------------------------------------------

“MV:質問” へ戻る