第4次スーパーロボット大戦ではコン・バトラーVダンクーガ、ザンボット3といった合体後に複数パイロットが乗るようになる機体のサブパイロットの台詞を反映させる機能はありませんが、以前作成したゲッターチームの仕様変更のシステムを応用すれば「F」以降のコン・バトラーVのように合体後専用の特殊台詞を反映させる事が可能であると判明しました。 具体的な手法は「特定のパイロットが特定の機体に搭乗している場合はSRAM上のパイロットIDを保持したままRAM上のパイロットIDを入れ替える」というもので、これは以前にも少し触れたハイパーモードや暴走システムの手法と同じものですが、これを応用すれば、例えばバトルジェット搭乗時の豹馬とコン・バトラーV搭乗時の豹馬のパイロットIDを個別に用意する事で異なる台詞パターンを適用できるという事も可能になります。また、同時に複数精神コマンドのサブパイロット適用パターンも変更できるため、非分離型のコン・バトラーVを用意するといった必要もなくなります。但しこの方法には欠点もあり、例えば敗北条件に豹馬の撃墜が設定されている場合にこのパイロットIDが合体前と合体後で別々であると、パイロットIDが合致しなくなってしまった途端に敗北条件を満たしてゲームオーバーとなってしまいます(これはハイパーモードや暴走の再現時にも当てはまる問題です)。そのため、台詞の変更のみに留めるのであれば特殊サブルーチンを組んで特定のパイロットが特定の機体に搭乗している場合は台詞の参照IDを変更(例えば、豹馬がコン・バトラーV搭乗の場合は通常の台詞IDではなく専用の台詞IDを参照)するという手法の方がいいのかもしれません。もっとも、シナリオ上での敗北条件を設定する際にそれら両方のパイロットIDを全て確認できなかった場合にのみ敗北とすれば問題はないので、あくまで好みの問題とも言えそうです。
初期ROM版紋章の謎のバグ修正の進捗ですが、とりあえず「隠れた財宝の入手時にコントローラーのボタンを押すと使用回数がおかしくなるバグ」は修正できました。
バグの原因を簡単に説明しますと、隠れた財宝を入手する際には財宝のある場所に待機したユニットのクラスが盗賊かどうか判定し、盗賊であれば財宝を入手、そうでない場合は運のよさの確率で財宝を入手するというプログラムが組まれています。この時、財宝を発見すると「かくれたざいほうを はっけんした!」というウィンドウを表示するためのサブルーチンが展開するのですが、その際に一旦RAMの上位と下位を入れ替え、更にコントロールを制御するサブルーチンに飛んでいます。このサブルーチン内でアイテムの使用回数を一時的にRAMに読み込み、サブルーチンから戻る際に再びRAMの上位と下位を入れ替えてコントローラー制御を解除、そして元の状態に戻せばRAMに読み込んだ入手アイテムの使用回数が正常に書き込まれるのですが、この命令が記述されていないためにアイテムの使用回数ではなくコントローラーのボタンを押した数値が読み込まれてしまい、そのままサブルーチンが終了するのでアイテムの使用回数がおかしくなるというものでした。
バグの修正方法としてはこのRAMの上位と下位を入れ替えるコマンドを挿入すればいいのですが、挿入する余地がないので空きスペースにジャンプ処理をしてそこでRAMの上位と下位を入れ替えて再びジャンプで元の位置に戻ってくるという方法を採用しました(サブルーチン処理化すると何故かフリーズしてしまうのです)。この修正分だけをパッチ化してもいいのですが、さすがにこれ一つだけではほぼ需要がないと思われますので、もう幾つか不具合を修正するパッチとセットにしてから公開する予定です。
さて、バグの修正だけではつまらないので何かしらの改変要素を追加できるパッチを作ろうと思っているのですが、例えばホースメンが下馬するとスナイパーになる(=ハンターがホースメンにクラスチェンジ後に下馬するとスナイパーとして使える)というものや、以前も少し触れましたシューターを自軍で使用可能にする要素などはいかがでしょうか。シューターは戦士からオリオンの矢でクラスチェンジ可能なクラス(戦士ならば力があるのでバリスタを運べそうですし…)とし、通常は移動不能(その場で攻撃するしかない)ですが「おりる」で再び戦士として移動や斧による攻撃が可能というものです。またはSナイトやパラディンの下馬状態をソルジャーにすればナイトのクラスが余りますので、これをシューターの下馬(?)状態のクラスにするというのもいいかもしれません。何か面白そうなアイデアがあればご意見を頂けますと幸いです。
コメント
コメントを投稿