この項目では、バトル全体の流れをざっと見ます。
私が分解したところでは、こんな感じですかね。
0、バトル発生プロセス
呼び出されたら、場所に応じた戦闘画面に切り替え、セットアッププロセスを呼び出す。
だいたいマップイベントか前項の1に統合される可能性高し。
1、セットアッププロセス
敵・味方のパラメータを計算用変数に代入し、画面に反映
(行動順をここで決定しておいても良い)
(1.5、ウェイトターンプロセス(ゲージ制のみ) 次に誰が行動するのか決定)
2、コマンドプロセス
行動を選択(味方は選択肢、敵はAIに従う)
3、行動順にアクションプロセス
ダメージ計算や、バトルアニメ表示
勝敗の決定もここで。(でないと、「死人にむち打つ」現象が起きます)
4、クリンナッププロセス
ターンが終了したときの、毒のダメージ処理などをここでする
数ターン経ったら……と言うイベントは、ここで場合分けをしてイベントを呼び出す
5、勝敗イベント
ゲームオーバーイベント、あるいは勝利イベント→そしてもとのマップへ
3のうしろに、「戦闘が終わらない場合」、「今の各キャラクター状態表示」なるコモンイベントを作ってそれを呼び出させることにすると、戦闘イベントとは、2〜4を延々繰り返せばOkです。
ということで、これらを呼び出すイベント「バトルメイン」を作りましょう。
これは、メニューで使ったメニュー表示を同じポジションのコモンイベントです。
この「バトルメイン」は
1、「セットアッププロセス」を呼び出す
(↓)(ゲージ制なら、・ラベル【・ウェイトターンプロセス】)
(・1.5「ウェイトターンプロセス」を呼び出す)
(↓)
↓
・ラベル【2、コマンドプロセス】
↓
2、「コマンドプロセス」を呼び出す
↓
3、「アクションプロセス」を呼び出す
↓
4、条件分岐「戦闘が終わった?」
YES!→5、「勝敗イベント」を呼び出す(それでこの後には何も入れない)
NO!→4、「クリンナッププロセス」を呼び出す→・ラベル【2、コマンドプロセス】(または、【ウェイトターンプロセス】)へ飛ぶ 分岐終了
この後ろには何も入れない。
とすると、イベントが終わってくれるはずなので。
と言うことをします。
それぞれのプロセスは他のコモンイベントに任せて、メインとなる順序だけ示すイベントってことです。
このバトルメインを呼び出すときに決めるのは、
・敵は? 敵グループ
・戦闘BGMは? ボス戦か、雑魚戦か
・「このバトルに関連したイベントはあるの?(バトル中)」 いわゆる【逃げる】とか、バトル中のイベントとかのこと
・バトル後のイベントのこと 主に負けたときの処理。敗北イベントで使う場合分けですね。
というところです。
これを念頭に入れて、さて次は、セットアッププロセス、ウェイトターンプロセスの解説行きます!
おまけ
ずっと前の項目で、何の説明もなしに紹介しましたが、ラベルへ飛ぶというのは、同じイベント内で対応するラベルのところへコマンド処理を飛ばすイベント処理です。
条件分岐とセットで用いると、ループと同じ役目を果たしてくれるイベントコマンドです。少し行数は増えますが、人間の頭脳的には、こっちの方がわかりやすいんじゃないかと思い、ループを使うときには、とりあえず一緒に名を上げています。 わかりやすいイベント構造を考えるのは、すごく大事ですから。
ゲージ制とは、行動値を決める値があって、素早さが多いほど早くそれが減り、行動が速くやってくる。たとえば、素早さが4のキャラクターAと2のキャラクターBがいた場合、AはBが1回行動する間に、2回行動できますよ、と言った、やたら素早いキャラクターが優遇されるシステムです。
前の項目へ 講座トップへ 次の項目へ