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

最新の投稿

ファミコン版天地を喰らう 軍師キャラの隊列変更阻止について

 天地を喰らうシリーズは策略を使うにあたって「軍師」に任命された武将がいないと使用不能になるのですが、軍師に任命された武将は戦闘が開始されると隊列の一番後ろに配置され、隊列が6人以上になると直接戦闘に参加できなくなるというシステムになっています。これがいわゆる文官タイプ(武力や兵士数が低く知力が高い傾向の武将)であればまだいいのですが、劉備や馬謖や姜維のように文武両道の武将を軍師に任命する必要がある場合は事情が変わってきます。そこで、軍師に任命した武将がどのような処理で隊列の一番後ろに回されてしまうのか調べてみました。その結果、大まかに言うと「戦闘開始時にまず隊列の人数をチェックし、6人未満である場合は各武将の状態をチェックし、正常であれば隊列の位置そのまま、それ以外の状態の武将は隊列の最後尾に変更する。6人以上の場合は軍師を隊列の最後尾に移動させるが、負傷中の武将がいる場合は更に軍師の後ろに配置する」という処理内容でした。ここで言う武将の状態は「00=負傷中(戦闘不能)、40=軍師、80=正常、C0=正常かつ軍師」の4種類で、この処理内容を変更すれば軍師に任命した武将も隊列の変更がないまま戦闘に参加できそうです。つまり「隊列が6人以上でも6人未満でも武将が正常な状態であれば隊列の位置そのままを維持し、負傷中の武将のみ隊列の最後尾に変更する」とすればよいのではないでしょうか。この仮説を基に改変を行い、成功すればパッチとして公開する予定です。

第4次スーパーロボット大戦 スラスターエフェクトバグ


 作成した戦闘アニメーションのチェックをするためにテストプレイをしている際に、下の写真のように「空や宇宙などで機体後方に表示されるスラスターのエフェクトが崩れる不具合」に何度か遭遇していたので、どこか変更してはいけないところを変更してしまったのかと悩み長期間に亘り原因を調査していたのですが、ようやくその原因が判明しました。結論から申し上げますと、私が何かミスをしたのではなく元から存在する不具合だったのです。


 発生条件と内容は「後攻側にシールド防御が発生し、かつその機体にシールドのグラフィックが設定されている場合、スラスターのエフェクトが表示される武器で反撃を行うとスラスターのエフェクトの代わりにシールドのグラフィックが読み込まれてしまう」というものです。ビームサーベルや体当たり、ランサーなどの格闘戦用武器がこれに該当しますが、本作品はシールド防御が発生しにくいうえにシールドのグラフィックが用意されている機体も少なく、そしてビームサーベルなどのスラスターエフェクトが表示される武器は威力が低いものが多いためわざわざこれで反撃する旨味も少ないという様々な要因が絡み合い、今まで誰も気が付かなかったのだと思います。

 恐らくRAM上でスラスターエフェクトの位置とシールドの位置が重複するために起こる不具合だと思いますが、この位置を重複しないようにするとなると別の不具合が発生するのが身に見えていますので、修正方法はプログラムの仕様やアニメーションのスクリプトなどを解析して「後攻側が反撃のアニメーション用のデータを読み込む際にスラスターエフェクトを再度読み込んでシールドのグラフィックを上書きする」というコマンドを追加するしかないと思います。問題はこのコマンドが本当に組み込める仕様になっているのかどうかという事ですが…。

コメント

人気の投稿

第4次スーパーロボット大戦 初期型ROMと後期型ROMの物理的な見分け方と入手方法

第4次スーパーロボット大戦 改造コスト&改造数値分岐パッチを公開しました