反撃命令による武器選択の基準がよく分からないと言われているSFC版第3次スーパーロボット大戦ですが、反撃命令の設定箇所をざっと解析してみたところ、それぞれの命令で使用武器の選択基準が違っている事が分かりました。大まかな内容ですが、基本的には以下のような基準で反撃武器や行動を選択しています(なお、原則として敵軍やNPCのパイロットは「必ず反撃せよ!」に設定されています)。 「必ず反撃せよ!」は、残弾や残りENにかかわらず命中率が1%以上ある最強の武器を選択。その武器の命中率がゼロになる場合は、次に威力が高く命中率が1%以上ある武器を選択するという思考を繰り返す。どうしようもない場合は命中率がゼロでもとにかく現状で使用可能な最強の武器を選択する。これに合致する武器がない場合は反撃不能扱いになる。弾切れや射程外からの攻撃には何もしない。先攻側の攻撃でHPがゼロになると判断しても反撃を試み、それができない場合は反撃不能扱いとなる。原則として武器選択の際に相手の残りHPは考慮しないため、反撃相手のHPが仮に残り1であろうとも最強の武器で反撃する。前述の通り、敵軍やNPCは原則としてこの命令が設定されているため、回避力(=パイロットの反応と操縦と直感の総和に機体のサイズ補正を適用した数値)が低いユニットは威力重視の武器で反撃される事が多い。残弾やEN消費も気になるところだが、分身持ちであるゲッター2系やF91であればこの命令を活用できるかもしれない。 「積極的にいけ!」は、相手が一撃で倒せる場合は命中率が1%以上ある最強の武器を選択。但し、その武器の残弾が残り1だったり、その武器を使用してもう一度使用できるだけの残りENがなくなる場合は使わず、次に威力が高く命中率が1%以上あり、かつ残弾が残り2以上か現在のENで二回以上使用できるEN消費武器を選択するという思考を繰り返す(EN消費武器に関してはたまに例外あり)。どうしようもない場合は弾切れ、またはEN枯渇にならない命中率がゼロの現在選択できる最強の武器を選択する。これに合致する武器がない場合は反撃不能扱いになる(そのため、条件を成立させれば弾切れでなくともパイロットが弾切れの台詞を吐く姿を拝める)弾切れや射程外からの攻撃には何もしない。。相手を一撃で倒せない場合の思考も同様。やはり原則として武器選択の際に反撃相手...
以前から気になっていた武将の兵士数設定ですが、少し前に兵士数を規定したオフセットテーブルを見つけていたのでそこから逆算したところ、各武将のパラメーターを設定している項目に辿り着く事ができました。この設定の中に武将ごとの兵士数の設定もあり、兵士数設定は自軍所属時と敵軍所属時でそれぞれ別に設定されている事が判明しました。例えば関羽や張飛のような「敵対せず自軍所属のままで兵士数が成長する」武将は自軍所属設定でも敵軍所属設定でも80h以上の黄忠や馬超といった「敵対時は兵士数が固定だが自軍に加わると兵士数が成長するようになる」武将は自軍所属設定では80h以上、敵軍所属設定では任意のテーブルが指定されており、兵士数が成長しない武将は自軍所属でも敵軍所属でも同じテーブルが指定されているのです。
これで任意の武将の兵士数をレベル成長型に変更できるようになったので、次はBNE2で各武将のパラメーターを自由に変更できるようにしたいと考えています。とはいえ現状ではROMの空き容量が足りず、ROMサイズの拡張とRAMバンクの切り替え変更は必須となります。幸いにしてRAMバンクの切り替え方法は無事に発見できましたので、この処理を参考に拡張したデータ項目や追加サブルーチンなどを増設できるように解析を進めていく予定です。
コメント
コメントを投稿