実装解説1:タクティカルレコーズの自動戦闘
需要があるかはわかりませんが、今回はタクティカルレコーズにおける自動戦闘の仕組みの実装を解説します。
タクティカルレコーズはウディタの基本システムをベースに作成しており、実はそこまで派手にはいじくっていません。戦闘の仕組みも結構簡単に再現できます。
タクティカルレコーズの戦闘の仕様
完全に自動で戦闘を行う
キャラクターが使用する技能はキャラクターの装備スキルによって変化する。キャラクターは装備しているスキルの中で使用可能かつ最もコストが大きいスキルを使用する。(スキルはコストに応じたSPを消費する)
SPは戦闘開始時は0で始まり、毎ターン1~5回復する。
タクティカルレコーズにおけるスキルの装備はこんな感じ
この場合SPが0なら何もしない、SPが1~3なら「ショット」を使用、SPが4以上で「パワーランチャー」を使用する
仕様の補足
ちなみに装備するスキルは内部的には防具扱いです。
ウディタでの実装
完全な自動戦闘に関しては簡単です。可変DBの主人公で全員にAI自動行動を設定するだけです
主人公のAI自動行動は可変DBの主人公行動AIから変更できます。その中の条件分岐は、自分のSPが〇%以下の場合、というのもがあるのですが、この仕様だと割合ではなく直接的な数値にしたいので「コモンイベント160:AI実行」をいじくってこれを変えています
主人公行動AIの内容はこんな感じ
(対象はキャラクターによって違い、フェイスの場合は現在HP最小となっています)
行動内容は全部「何もしない」になっています。これは装備に応じてゲームから書き換えます。装備によるAIの変更
たぶんここが一番のミソです。
前提
前提として「技能」と「スキル」(防具)を1対1で対応させる必要があります。一番シンプルなのは「技能ID」と「防具ID」を一致させる事です。技能ID1がショットなら、防具ID1のスキルはショットにする、という感じです。タクティカルレコーズでもそんな感じで1対1対応させています。(こうした紐づけをする場合、DBのタイプ内容の設定から、データIDの設定方法をいじって防具IDを技能IDから設定すると便利です)
主人公AIの変更
主人公行動AIは可変DBで設定されています。つまりゲーム内から変更が可能です。戦闘が発生すると戦闘開始時に「203:○[変更可]戦闘開始時処理」が呼びされます。ここに装備に応じて主人公のAIの行動内容を変更する処理を追加します。自分は「装備によるAI設定」のコモンイベントを作り、203でそれを呼び出しています。
ウディタに触りたての頃に作ったので処理が結構へんてこですね。
戦闘開始時のSP初期化と毎ターンのSP取得
これもまぁ簡単。「203:○[変更可]戦闘開始時処理」でSPを初期化「203:○[変更可]戦闘開始時処理」「206:○[変更可]1ターン終了時処理」でSPを1~5取得させる処理を追加するだけです。(ターン開始時にしないのは何かの理由があったはず、うろ覚えです)
以下はSPを1~5回復するコモンの内容。活性や高揚といった状態付与に関する処理もまじっていますが