スキップしてメイン コンテンツに移動

投稿

2月, 2022の投稿を表示しています

最新の投稿

第3次スーパーロボット大戦 反撃命令による武器や行動選択の解析結果

 反撃命令による武器選択の基準がよく分からないと言われているSFC版第3次スーパーロボット大戦ですが、反撃命令の設定箇所をざっと解析してみたところ、それぞれの命令で使用武器の選択基準が違っている事が分かりました。大まかな内容ですが、基本的には以下のような基準で反撃武器や行動を選択しています(なお、原則として敵軍やNPCのパイロットは「必ず反撃せよ!」に設定されています)。  「必ず反撃せよ!」は、残弾や残りENにかかわらず命中率が1%以上ある最強の武器を選択。その武器の命中率がゼロになる場合は、次に威力が高く命中率が1%以上ある武器を選択するという思考を繰り返す。どうしようもない場合は命中率がゼロでもとにかく現状で使用可能な最強の武器を選択する。これに合致する武器がない場合は反撃不能扱いになる。弾切れや射程外からの攻撃には何もしない。先攻側の攻撃でHPがゼロになると判断しても反撃を試み、それができない場合は反撃不能扱いとなる。原則として武器選択の際に相手の残りHPは考慮しないため、反撃相手のHPが仮に残り1であろうとも最強の武器で反撃する。前述の通り、敵軍やNPCは原則としてこの命令が設定されているため、回避力(=パイロットの反応と操縦と直感の総和に機体のサイズ補正を適用した数値)が低いユニットは威力重視の武器で反撃される事が多い。残弾やEN消費も気になるところだが、分身持ちであるゲッター2系やF91であればこの命令を活用できるかもしれない。  「積極的にいけ!」は、相手が一撃で倒せる場合は命中率が1%以上ある最強の武器を選択。但し、その武器の残弾が残り1だったり、その武器を使用してもう一度使用できるだけの残りENがなくなる場合は使わず、次に威力が高く命中率が1%以上あり、かつ残弾が残り2以上か現在のENで二回以上使用できるEN消費武器を選択するという思考を繰り返す(EN消費武器に関してはたまに例外あり)。どうしようもない場合は弾切れ、またはEN枯渇にならない命中率がゼロの現在選択できる最強の武器を選択する。これに合致する武器がない場合は反撃不能扱いになる(そのため、条件を成立させれば弾切れでなくともパイロットが弾切れの台詞を吐く姿を拝める)弾切れや射程外からの攻撃には何もしない。。相手を一撃で倒せない場合の思考も同様。やはり原則として武器選択の際に反撃相手...

第4次スーパーロボット大戦 MAP上の変形・合体・分離ユニットのコマンド制限について

 突然ですが、友人から「変形や合体するユニットに関する質問と解析の依頼が来ているので代わりに解析して解説記事を書いて欲しい」という話がありましたので、今回はその内容を取り上げてみます。  まずは変形ユニットから。友人の資料の記述方式に従って解説します。MAP上でユニットの変形設定を制御しているのは以下のサブルーチン(A057~A099)です。 00A057 BD 65 18          LDA $1865,X ユニットID取得 00A05A 29 FF 01          AND #$01FF 絞り込み:最大値を01FFとする 00A05D 64 2A STZ $2A M=7E002Aをゼロにする 00A05F 85 2C STA $2C AをM=7E002Cに書き込み 00A061 85 2E STA $2E AをM=7E002Eに書き込み 00A063 A0 07 00           LDY #$0007 ユニット定義の7番目(=変形設定)を取得 00A066 22 72 B3 80 JSL $80B372 $00B372 サブルーチン00B372を呼び出し 00A06A E2 20 SEP #$20           8bit化 00A06C 29 7F AND #$7F 絞り込み:最大値を7Fとする 00A06E F0 26 BEQ $26 $00A096 YESならばジャンプ 00A070 C9 08 CMP #$08 変形パターンチェック:08? 00A072 F0 26 BEQ $26 $00A09A YESならばジャンプ 00A074 C9 09 CMP #$09 変形パターンチェック:09? 00A076 F0 28 BEQ $28 $00A0A0 YESならばジャンプ...

第4次スーパーロボット大戦 BGM継続パッチの爆発音再生不具合の修正方法

 どうもご無沙汰しております。最近は本業が忙しくて全然解析関連の活動ができていないのですが、プレイそのものに支障がないとはいえBGM継続パッチのアカシックバスター問題が解決できていないのが気になって原因を探ってみました。  結論から申し上げますと、アカシックバスターによる爆発音再生の不具合は解決できます。アカシックバスターというよりも再生されるSE(効果音)のオペコードの中に爆発音を再生させる「11 0B」が含まれている(例えば効果音6Fを含む、サンアタックやカーズ、アカシックバスターなどの武器)とBGMが変更されるまでこのコードが常駐扱いになってしまうらしく、戦闘BGMに含まれている「11 0B」による爆発音の後にもう一度爆発音が再生されてしまうのが原因なのです。  つまり戦闘中に使われるBGMかSEの一方から全ての「11 0B」を削除し、もう一方には必ず「11 0B」を記述するように統一すればこの問題は発生しない事になりますが、BGMから「11 0B」を削除すると戦闘中に使用する全てのSEに「11 0B」を追加する必要があるので現実的ではありません(というかクソ面倒臭くてそんな事やってられません)。今のところどうして特定のSEにのみ「11 0B」が追加されているのか分かりません(MAP上の演出やイベントで鳴らすSEの都合?)が、とりあえずこれを削除するかSE定義のオフセットを「11 0B」を回避する形で設定すれば爆発音がオーバーフローせずにきちんと再生されるようになります。  まあ全く問題がないわけではなく、今後の課題はイベントや精神コマンド、MAP兵器を使用するなどの際にSE再生の不具合が起きないか心配という事でしょうか。この辺は組み合わせが膨大なので実際にプレイして確かめてみるしかありません。ただ、爆発音がおかしくなっても前述の通りプレイそのものには全く支障がないと思いますので、どうしてもそれが気になるという人以外は特にどうこう手を加えなくてもいいような問題でしょうね。

第2次スーパーロボット大戦G フラグによるグラフィックオフセットの分岐について

 相変わらずですが、色々と解析を進めグラフィックのオフセットを分岐させてみようと試みています。フラグの立て方とチェック方法を変更した結果、一応想定通りに分離はできましたが、何故か攻撃側と反撃側で格闘と射撃の攻撃アニメが混合するとフラグが正常に成立しなくなってしまいます。どうしてこうなるのかよく分かりませんが、何とか解決させたいものです。