第4次スーパーロボット大戦ではコン・バトラーVダンクーガ、ザンボット3といった合体後に複数パイロットが乗るようになる機体のサブパイロットの台詞を反映させる機能はありませんが、以前作成したゲッターチームの仕様変更のシステムを応用すれば「F」以降のコン・バトラーVのように合体後専用の特殊台詞を反映させる事が可能であると判明しました。 具体的な手法は「特定のパイロットが特定の機体に搭乗している場合はSRAM上のパイロットIDを保持したままRAM上のパイロットIDを入れ替える」というもので、これは以前にも少し触れたハイパーモードや暴走システムの手法と同じものですが、これを応用すれば、例えばバトルジェット搭乗時の豹馬とコン・バトラーV搭乗時の豹馬のパイロットIDを個別に用意する事で異なる台詞パターンを適用できるという事も可能になります。また、同時に複数精神コマンドのサブパイロット適用パターンも変更できるため、非分離型のコン・バトラーVを用意するといった必要もなくなります。但しこの方法には欠点もあり、例えば敗北条件に豹馬の撃墜が設定されている場合にこのパイロットIDが合体前と合体後で別々であると、パイロットIDが合致しなくなってしまった途端に敗北条件を満たしてゲームオーバーとなってしまいます(これはハイパーモードや暴走の再現時にも当てはまる問題です)。そのため、台詞の変更のみに留めるのであれば特殊サブルーチンを組んで特定のパイロットが特定の機体に搭乗している場合は台詞の参照IDを変更(例えば、豹馬がコン・バトラーV搭乗の場合は通常の台詞IDではなく専用の台詞IDを参照)するという手法の方がいいのかもしれません。もっとも、シナリオ上での敗北条件を設定する際にそれら両方のパイロットIDを全て確認できなかった場合にのみ敗北とすれば問題はないので、あくまで好みの問題とも言えそうです。
全面が空中という異色のマップ「キリマンジャロの嵐」は飛行適性がない機体は出撃できないのですが、その特殊な処理(実は空中マップと見せかけた陸上マップで、ユニットは全て「空」や「雲」という名の陸上地形パネルに着陸しているという扱いなのです)の影響で地形適応は「空」ではなく「陸」が参照されてしまい、正常なダメージ計算が適用されません(通称「キリマンジャロバグ」)。少し解析してみたところ地形適応をチェックするプログラム内にはこれをどうこうするような対策はされておらず、結局のところこれを解決するには専用の新たな地形適応チェックのルーチンを組むしかなさそうです。…というわけで、修正パッチを作成してみました(パッチ名は「地形適応バグ修正パッチ」です)。以下のURLからダウンロード可能です。本来のソフトに存在する不具合なのでパスワードは設定していません。
以前、私の友人がこの不具合の解決に取り組んだのですが、参考までにその方法を聞いてみたところ「RAMのシナリオIDをチェックして現在のマップが『キリマンジャロの嵐』であれば陸の地形適応判定を強制的に空の地形適応判定に変更するサブルーチンにジャンプする」というものだったそうです。なかなか面白そうな処理ですが、その場合は他に同じような空中マップを自作する場合に応用が利かないという欠点があります。そこで私は「RAMのマップ状態設定IDがキリマンジャロ(=空中マップ)のIDである場合は地形適応判定を全て空の地形適応判定に変更する」という方式にしてあります。これならば他の空中マップを作製した場合でもそのまま使用できますし、応用として月や火星の地形適応を第3次スーパーロボット大戦やスーパーロボット大戦F完結編のように宇宙扱いに変更する(あまり知られていませんが、F完では月や火星は陸上でも空中でも宇宙扱いの計算が適用されます)にできます。今回公開したパッチはキリマンジャロ上空の場合は強制的に空、月の場合は強制的に宇宙の地形適応が参照されます。火星に関しては処理を組み込んだのですが、ダンバイン系の機体が活躍できなくなる事を考慮し、処理の作成後に「EA」で消去しています。これを再現するにはパッチ適用後にノーマル版であれば29FFD4~29FFD7を、4M版であれば3FEDA4~3FEDA7を「C9 12 F0 0A」に置き替えて下さい。
コメント
コメントを投稿