第4次スーパーロボット大戦ではコン・バトラーVダンクーガ、ザンボット3といった合体後に複数パイロットが乗るようになる機体のサブパイロットの台詞を反映させる機能はありませんが、以前作成したゲッターチームの仕様変更のシステムを応用すれば「F」以降のコン・バトラーVのように合体後専用の特殊台詞を反映させる事が可能であると判明しました。 具体的な手法は「特定のパイロットが特定の機体に搭乗している場合はSRAM上のパイロットIDを保持したままRAM上のパイロットIDを入れ替える」というもので、これは以前にも少し触れたハイパーモードや暴走システムの手法と同じものですが、これを応用すれば、例えばバトルジェット搭乗時の豹馬とコン・バトラーV搭乗時の豹馬のパイロットIDを個別に用意する事で異なる台詞パターンを適用できるという事も可能になります。また、同時に複数精神コマンドのサブパイロット適用パターンも変更できるため、非分離型のコン・バトラーVを用意するといった必要もなくなります。但しこの方法には欠点もあり、例えば敗北条件に豹馬の撃墜が設定されている場合にこのパイロットIDが合体前と合体後で別々であると、パイロットIDが合致しなくなってしまった途端に敗北条件を満たしてゲームオーバーとなってしまいます(これはハイパーモードや暴走の再現時にも当てはまる問題です)。そのため、台詞の変更のみに留めるのであれば特殊サブルーチンを組んで特定のパイロットが特定の機体に搭乗している場合は台詞の参照IDを変更(例えば、豹馬がコン・バトラーV搭乗の場合は通常の台詞IDではなく専用の台詞IDを参照)するという手法の方がいいのかもしれません。もっとも、シナリオ上での敗北条件を設定する際にそれら両方のパイロットIDを全て確認できなかった場合にのみ敗北とすれば問題はないので、あくまで好みの問題とも言えそうです。
必要とされるかどうか分かりませんが、とりあえず次の目標として「メカニードスを他の仲間と同様に普通にレベルアップできるようにするパッチ」を作成してみようと思います。既にご紹介の通り、メカニードスは経験値入手不能処理を無効化してレベルアップさせたとしてもステータスの上昇ができないように処理…というか成長テーブルに相当するものが設定されていないらしく、ただレベルだけが上昇します。そこでレベルアップ時の処理に関するルーチンを探して解析を開始してみたのですが、今のところ各キャラクターの成長テーブルらしきものを参照している部分が見当たりません。しかし処理の途中でキャラクターIDを参照している部分があります。そうなると、キャラクターIDを読み込んでそれをもとに成長テーブルを参照しているのは間違いない(レベルアップ時にキャラクターIDを強制的に切り替えると、そのIDのキャラクターがレベルアップした時とほぼ同じ成長値パターンになる=例えばチェズニのIDをレベルアップ処理の際にメカニードスのIDにすると本来上がるはずのパラメーターが一切上がらなくなる事までは確認しています)ので、根気よく調査を進めていきたいところです。
改変方法として一番簡単なのは「メカニードスがレベルアップした際に強制的にキャラクターIDを書き換え、レベルアップ処理終了直後に再びキャラクターIDをメカニードスに戻す」という方法で、これならばすぐに実現可能なのですが根本的な解決になっていません(レベルアップのメッセージでそのIDのキャラクターの名前が表示されるという不具合もありますし…)。できれば各キャラクターの成長テーブルを発見し、メカニードス以外にも例えばゴーフやダッシュのように今ひとつ成長値の伸びが悪いキャラクター(ちなみにレベルを99まで上げるとゴーフ、ダッシュ、メリーヌの3人がほぼ確実にワースト争いをします)のテコ入れもできればと考えています。特にダッシュは自慢のはずの素早さが後半は全然伸びなくなり、レベル50くらいになるとむしろ他のキャラに素早さが劣るようにすらなってしまうので、最後まで使っていこうとすると本当に辛いんですよね。
コメント
コメントを投稿