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

投稿

2023の投稿を表示しています

最新の投稿

キャプテン翼4 ドリブルバグ修正計画

 久々にキャプテン翼4をプレイしていて気が付いたのですが、フィールドで選手がボールを保持してドリブルをしているお馴染みの画面で、よく見ると上の写真のように画面の右端に妙な黒い線が走っているのを確認しました。最初は私が各データの位置を色々と移設した際に何か作業を誤まったのかと思っていたのですが、何も改変していない元のままのデータのROMでプレイしても同じ現象が発生したのでこれは何らかの不具合=バグではないかと思われます。一応これを消す方法は見つけたのですが、それを実行すると以下の写真のようになってしまいます。  確かに画面右端の黒い線は消えましたが、今度は画面の下半分に表示されるレーダーのコート図面が消えてしまいます。どうやらこの画面を表示するにあたってカットインやクローズアップ演出を表示する定義と同じスクリプトやコマンドコードでの設定がされているようなのですが、この定義のうちコート図を表示する定義(=ID15)に設定ミスがあるようなのです。この写真はコート表示に使用するスクリプトIDを無効化した状態でコート図もラインも消えるのですが、これをプログラム側から修正しようとすると何故かコート図だけが消滅して黒いラインはしっかりと残るので、このスクリプトやコマンドコードの場所を特定しない事には完全な修正は不可能です。まだ調査を始めたばかりでスクリプトそのものの記述場所が特定できていませんが、正式に修正が完了した際には修正パッチを公開する予定です。

キャプテン翼4 閑話休題~オルミーガのモチーフとなった人物について~

 キャプテン翼4の名物選手と言えばこの人、と言っても過言ではないペルー代表のFW・オルミーガですが、実はそのモチーフとなった実在の選手が存在する事はあまり知られていないように思います。その人はアントニオ・アルサメンディ・カサス(通常はアントニオ・アルサメンディと呼ばれています)というウルグアイ出身の選手で、現在も存命中です。  現役時代のポジションはFW、身長は公称175Cm(実際にはもう少し低いように見えます)と小柄ながら非常にスピーディーな動きと巧みなでフェイントで敵DFの虚を衝くプレイを得意とし、一瞬にして相手のゴールを奪う事からスペイン語で「蟻」を意味する「オルミーガ」の異名で呼ばれていました。残念ながら(?)キャプテン翼4のようなラフプレイヤーではなくテクニックとスピードで相手を翻弄するタイプの選手ですが、南米やスペインリーグで活躍した他にもウルグアイの代表選手としても活躍したので、オルミーガの異名は知らずともアントニオ・アルサメンディ氏の名前は知っているというサッカーファンの方もそれなりにいらっしゃるのではないでしょうか。しかし、何故このような名選手をウルグアイの代表選手としてビクトリーノらと共に登場させずにペルーの代表選手、それも本来のオルミーガの頭脳的・技巧派プレイとは真逆の性質のラフプレーの専門家として起用したのか、その意図は分かりかねます。  キャプテン翼4ではコロンビアのミルチビッチ(モデルは故アンドレス・エスコバル氏と思われますが、名前はセルビアのボラ・ミルチノビッチ氏がモチーフと思われます)やカメルーンのカマーチョ(モデルはロジェ・ミラ氏と思われますが、名前はスペインのホセ・アントニオ・カマーチョ氏がモチーフと思われます)のように国籍と名前が一致していない選手も多いので、公用語がスペイン語であるペルーであればオルミーガという名前でもそれほど違和感はないのかもしれません。または、モチーフ自体はペルーの伝説的なサッカー選手である故テオドロ・フェルナンデス氏(時期的にはホルヘ・ヒラノ氏の可能性も高そうですが)で名前だけアントニオ・アルサメンディ氏から拝借したという可能性もありそうです。

第4次スーパーロボット大戦 シナリオ分岐補完パッチの進捗状況

 最近更新が滞っていて申し訳ございません。少し前の記事で触れた通り、現在制作中のパッチは「シナリオ分岐補完パッチ」と名付けて作業を進めていますが、予定している変更内容を全て実施した場合はゲッターチームをはじめとする複数乗りユニットの仕様を変更してもパイロット数や機体数が64体をやや超えてしまう事が判明したため、その辺の調整を再度組み立てているところです。  おおまかに決定している内容としては「バニング&モンシアとミチル&ジャックは択一」、「ガルバーFXⅡのメインパイロット選択イベントは廃止、京四郎が乗り換え不能のメインパイロットでナナはサブパイロット(ナナは「悲しい記憶」の日本海ルートでのみスポット参戦)」、「ブルーガーのメインパイロット選択イベントは廃止、神宮寺が乗り換え不能のメインパイロットで麗とマリはサブパイロット」、「ガラリアの説得にかかわらずシーラとエレは両方とも救出できるがどちらか一方しか使えない(選択結果にかかわらずベル、エル、ニー、キーンは全員参入)」、「ハサウェイ、ケーラ、カツ、サラ、ルー、リムル、フォウ、ロザミアの8人のうち攻略シナリオの内容により最大で5人まで参入する」、「モニカとサフィーネは自軍に参入しない(NPC、または敵軍専用)代わりにリューネとシュウと魔装機神の操者は全員参入する」といったもので、これを実施すれば何とか64体の制限をクリアできると考えています。他にも終盤で何個かの追加イベントを入れたいと考えているのですが、それにはもう少し調整が必要となるのがなかなか難しところです。

第4次スーパーロボット大戦 ダンクーガバグについて

 獣戦機隊が初登場するシナリオで合流前にシナリオをクリアしてしまうと、いきなりダンクーガに合体した状態で自軍に参入する通称「ダンクーガバグ」はご存知の方が多いと思います。この手のサイトを調べている方々は既に知っている知識ではないかと思いますが、この原因は「獣戦機隊が味方増援として登場するイベント発生時にイベントフラグ00E1を立てて合体不能にしているが、増援イベント前にシナリオクリアしてしまうとこのフラグを立てる処理が成立しない」という部分にあります。本来であればこういう重要なフラグはシナリオ開始時の1ターン目、または戦闘マップに入る前のブリーフィング中にでもイベントフラグ00E1を立てる処理を入れておくべきだと思うのですが…。  これを避けるにはバイナリ改造以外の手段では結局のところ獣戦機隊が登場するイベント発生を待つしかなく、また、こうした味方増援関連のイベントに関してはマップ上イベントで処理をしている場合とシナリオ開始時に処理をしている場合の二通りがあり、これは担当されたプログラマーの方それぞれ(恐らく複数人で作業されたと思いますので)の癖が出ているのかもしれません。イベント関連のデータを修正する際や自作シナリオを組み立てる際には、こうした部分をある程度統一した形にしておくと管理が楽なのではないかと思います。

第4次スーパーロボット大戦 妖精や複数乗り機体のサブパイロットの精神ポイント管理について

 チャムやリリスなどの妖精、複数乗り機体のサブパイロットの精神ポイント(以下、SP)は一般パイロットとは別枠のWRAM領域で管理されており、この仕様領域は常に固定です。また、サブパイロットとメインパイロットの両方の扱いを受ける分離・変形機体のパイロット(=ゲッターチーム、ザンボットチーム、獣戦機隊、コンバトラーチーム)はそれぞれメインパイロットの時には通常パイロット用のSP管理領域を、サブパイロットの時にはサブパイロット用のSP管理領域を使用するという面白い仕組みになっています。また、スーパーガンダムや各種地球製スペイザーと合体した状態のグレンダイザーのサブパイロットのSPはサブパイロット用のSP管理領域を使用せず、通常パイロット用のSP管理領域を使用します。なお、WRAMの使用量を節約する目的なのかサブパイロット用のSP管理領域には最大SPを管理するという概念が存在しないようで、各マップでそのサブパイロットが最初に精神コマンドのウィンドウを開く際に「該当するサブパイロットIDとレベルから最大SPを算出しつつ現在SPを書き込む」という手法が採用されています(通常のパイロットは7E18E5で現在SP値を、7E18E6で最大SP値を管理しています)。それまではFF(255)の固定値となっており、精神コマンドウィンドウを開くまではこの数値は変動しません。WRAMにおけるサブパイロットの固定SP管理領域は以下の通りとなっています。 7E153D サブパイロットの現在SP値(チャム) 7E153E サブパイロットの現在SP値(エル) 7E153F サブパイロットの現在SP値(ベル) 7E1540 サブパイロットの現在SP値(リリス) 7E1541 サブパイロットの現在SP値(シルキー) 7E1542 サブパイロットの現在SP値(メリー) 7E1543 サブパイロットの現在SP値(竜馬) 7E1544 サブパイロットの現在SP値(隼人) 7E1545 サブパイロットの現在SP値(弁慶) 7E1546 サブパイロットの現在SP値(レミー) 7E1547 サブパイロットの現在SP値(キリー) 7E1548 サブパイロットの現在SP値(宇宙太) 7E1549 サブパイロットの現在SP値(恵子) 7E154A サブパイロットの現在

第4次スーパーロボット大戦 続・搭乗フラグの解析と登録パイロット数増加の可能性について

 前回は搭乗フラグ設定の解析と変更について論じてきましたが、色々と推論を立てて関連するサブルーチンを書き換えてみたところ、ようやくSRAMの65人目以降に登録されたパイロットがマップ上に表示されるようになりました。これで何とかパイロットや機体のいわゆる「64体の壁」は突破できたのですが、SRAMに記録されるデータはともかくWRAMに読み書きされる各種データの拡張に関して依然不具合が残っています。これは以前にも触れた話ですが、マップ上では出撃している自軍と敵軍の合計64体までをチェックすればいい反面、出撃準備画面では拡張した65体目以降のパイロットや機体のデータをWRAM上で展開できるようにしなければならないのです。  セーブデータに使用される通常SRAM領域の確保の問題に関しては、既に限界反応の領域を使用した武器一括改造システムを導入すれば副産物として空き領域となった武器改造値記憶部分を転用する事で80体、または96体のパイロットと機体を登録・確保する事ができるという事が判明していますので、出撃準備画面でパイロットや機体のデータを閲覧したり強化パーツの付け替え、機体の乗り換えなどをしなければ問題ないのですが、とはいえいくら何でもそんな事は不可能なのでこれを解決しなければなりません。  WRAMの領域は大きくないためあまり大掛かりな構成変更はできず、またWRAMの代わりに追加SRAM領域を使用すると中断データが正常に使えなくなってしまうという弊害が生まれます。その点を鑑みるとやはり変更するのであれば出撃準備画面で各種データを処理する際に使用するWRAMを拡張SRAM領域に肩代わりさせるしかなさそうです。問題はSRAMの拡張を行って追加領域でデータを処理する場合、そのプログラムが実機できちんと作動してくれるかどうかですね。  とりあえず今回作成しているパッチ(仮に「シナリオ分岐補完パッチ」とでも呼んでおきます)ではむやみに新たなシステムは採用せず、既に完成しているゲッターチーム、コンバトラーチーム、獣戦機隊、ザンボットチームの仕様変更システムでパイロットと機体の登録数の11体分削減が実現できていますので、これを活用してやりくりしていくつもりです。今のところ他にやりたい事と言えば、エレとシーラの二人を両方とも救出してそれぞれのルートで参戦するパイロットや妖精の両立(エレル

第4次スーパーロボット大戦 搭乗フラグの解析と登録パイロット数増加の可能性について

 パイロットがどの機体に乗っているかどうかについてはパイロット側のデータではなく機体側のデータで管理しているのですが、この管理方法がやや特殊(パイロットのSRAM登録番号の倍数+フラグ管理用に80hが加算されるという仕組み)のため、そのままではSRAMへ登録できるパイロット数を65人以上にできません。仮にフラグ管理用の数値を60hにできれば理論上は80人まで、40hにできれば理論上は96人までパイロットを登録できるので、これが実現できるのであれば何とかしたいところです。  そこでこれを実現するために少し解析をしてみたところ、機体にパイロットが搭乗している状態を示す数値である「80」を変更する事自体は可能になりました。しかしこれを「60」や「40」に変えてしまうと機体に搭乗しているパイロットがマップ上に出撃・配置できなくなってしまう(敗北条件になるパイロットが配置されない場合は即ゲームオーバーになります)という不具合が発生してしまいました。まだ詳細について解析していないのですが、マップ上に配置される機体の搭乗フラグだけでなく配置判定に必要なフラグの設定も一緒に変更しないと出撃させても配置されないようなのです。あまり有用な解析ではないかもしれませんが、パイロットの登録人数や機体の保持数を64体以上に増やせれば強制廃棄イベントを少しでも減らせますので、折を見てこの処理についてもより詳細に解析していきたいところです。

第4次スーパーロボット大戦 「ブライトの帰還」の援軍変更

  例によって 以前作成したパッチのデータを引き継いだ要素ですが、 いわゆる「ハサウェイルート」の旨味が全くといってないので、こちらのルートでは「特訓!大雪山おろし!」で援軍として登場するキング兄妹がそのままロンド・ベルに残留し、更にミチルも同行するように変更してみました(ちなみに「ケーラルート」では前回の記事で記した通り、バニングとモンシアがロンド・ベルに加わるように変更しています) 。 ミチルは以前のパッチでは固定パイロットとしてプロトゲッターに搭乗していましたが、今回の改訂版では乗り換え可能なパイロットとして量産型ゲッターGのテスト機(文字数の関係で「プロトドラゴン」、「プロトライガー」、「プロトポセイドン」)に搭乗しています。この機体は基本的にマジンガー系のパイロットとミチル(乗り換え系列「ダイナミック系」)であれば乗り換え可能で、変形によってオリジナルのゲッターGと同様に三つの形態を使い分けられます。 現状ではミチルは未使用データのままのパラメーターですが、さすがにこの状態のままではあまりにも弱いので少し上方修正する予定です。またプロトゲッターGは逆にこの時期の機体としてはあまりに強すぎる気がしますので、機体色をグレー系かくすんだ色に変更し、各パラメーターをもう少し下方修正してもいいような気がします。テキサスマックは精神コマンドが二人分使えるのが強みではありますが、やはりテキサスハンマーやテキサスビームなどの追加武器がないと後半戦が厳しくなりそうですね 。

第4次スーパーロボット大戦 「ダバ=マイロード」の援軍変更

これも以前作成したパッチのデータを引き継いだものですが、クリスとバーニィが最初からロンド・ベル隊に存在しているように変更したので、「ダバ=マイロード」でコーウェン中将が派遣する監視役(という名目の補充戦力)の二人を没データのバニングとモンシアに変更しています。動画内では旧パッチでモンシアの台詞の「始まってますぜ!」だった部分が「はじまってますぜ!」と平仮名に変化していますが、これは単純にテキストをバイナリデータに変換する際の入力ミスです。後で漢字に変更します。 モンシアの能力値は没データそのままですが、バニングに関しては能力値が設定されていなかったので、以前にも触れたと思いますが何人かのエース級オールドタイプの平均値を算出して設定しています。機体は対ヘビーメタル戦での実弾兵器の有用性を考慮して二人ともジムⅢにしていますが、後半戦の事を考えると片方はやはり以前のパッチのようにジェガンでもよかった気がします。

第4次スーパーロボット大戦 ゲッターチームの仕様変更不具合の修正完了

 少々手間取りましたが、何とかゲッターチームの仕様変更に伴う不具合を修正できました。不具合の内容は「ゲッター2系やゲッター3系の状態でレベルアップした場合、WRAMのパイロットIDがSRAM側の内容に書き換えられて竜馬の状態に戻ってしまったり(変形を実行すると隼人や弁慶に戻る)、SRAMのデータ上ではレベルアップしているがWRAMにその内容が反映されずシナリオ終了まで上昇したパラメーターが反映されない事があるがシナリオが終了するとレベルアップ後のパラメーターになる」というものでした。これは一時データを保存する際に使用するRAM領域の選定がまずかったり、レベルアップ時にパラメーターを再計算する際に使用するサブルーチンの組み立て内容に起因するものでした。  今回は一時データの取得方法自体を見直し、「戦闘後に経験値を取得できた場合はその戦闘で戦ったパイロットのWRAM側のIDを保存し、レベルアップの際に読み込んだSRAM側のパイロットIDがWRAM側に書き込まれた直後にそのデータを参照、IDが竜馬であると判定された場合は直前の戦闘で経験値を取得したWRAM側のパイロットIDで再度上書きする」という方法に改めてみました。ゲッターチームの場合はSRAMのパイロットIDは竜馬で固定のため、レベルアップの都度WRAM側のパイロットIDを現在のゲッターロボの状態に合わせたパイロットIDに変更する必要があるのですが、よく考えてみればSRAMでのIDが竜馬で固定されているとなればそれ自体を判定基準にすればよいという事にようやく気が付いた次第です。これにより判定の精度が向上し不具合が発生しなくたった…と思いたいところです。

第4次スーパーロボット大戦 「悲しい記憶(太平洋ルート)」の変更処理

 以前にもお話していた「悲しい記憶」の太平洋ルート救済措置ですが、今回のサンプルパッチでは過去に公開していたパッチのような「ミデアの護衛達成でGディフェンサーが入手できる」方式を取りやめ、代わりにどちらのルートの「悲しい記憶」を選択しても無条件でGディフェンサーが入手できるようにしてみました。  日本海ルートでは従来通りカツがGディフェンサーに搭乗しており、予備のジェガンが一機追加されます。そしてスーパー系でもリアル系でも「老兵の挽歌」を通過するように変更してあり、カツでサラを説得すると搭乗している乗機も一緒に入手できるようになっています(ガブスレイではない機体にする予定です)。これに対して太平洋ルートではリ・ガズィに搭乗したルーが無人のGディフェンサーを持参して参入し、更にケーラとハサウェイのうち「発端」の経過ターン数によるルート分岐で合流できなかったもう一方がジェガンに搭乗して参入するようにしてみました。これにより手っ取り早く戦力を強化するのであれば太平洋ルート、参入は中盤になるもののサラと一緒に珍しい機体(それが必ずしも強力とは限りませんが…)が入手できる日本海ルートという住み分けができたのではないかと思います。ちなみに補給物資として追加される強化パーツの数も太平洋ルートと日本海ルートで内容は違うものの同じ数にしています。  なお、テストプレイ中にゲッターチームの仕様変更処理の致命的な欠陥(実際にはゲーム進行が不能になる程に致命的というほどでもなく、仕様の都合上ある程度は予測していた事なのですが…)を発見してしまったので、これを修正するのに少々手間取るかもしれません。

第4次スーパーロボット大戦 クリスとバーニィ(スーパー編)

ルート分岐で参入するクリスとバーニィが最初から参入している状態にする変更のスーパー編第1話です。特に台詞の追加はしていませんが、代わりに味方増援としてロンド・ベル隊が登場するタイミングを本来の5ターン目自軍フェイズから4ターン目自軍フェイズに早まる事で早期シナリオクリアによる不具合を回避しています。実際問題としてはシナリオ開始の時点でロンド・ベル隊の面々が自軍登録されている事にすればそれだけで不具合回避はできる(実はその方が修正は楽です)のですが、4ターンもダラダラと戦っているのも面倒だと思いましたので今回はターン数そのものを調整してみました。

第4次スーパーロボット大戦 クリスとバーニィ(リアル編)

 以前公開していたパッチを最低限の修正と省力化(システム変更や新規機体や追加戦闘アニメーションの適用をほぼ全て削除し、バグ修正以外は元からあるものだけで間に合わせる)で一旦最後まで完成させようと考え、まずはリアル系「発端」でのクリスとバーニィの会話を入れてみました。本来はエマが話す台詞をバーニィとクリスに割り振ってみましたが、それなりに自然に見えるのではないかと思います。この割を食ってエマの出番がなくなってしまったようにも感じますが、エマは出撃時に台詞があるのでとりあえずはこれでいいのではないでしょうか。また、これに伴い改めてゲッターチームやゲッターロボの仕様変更を組み込んで「浮上」までテストプレイをしてみましたが、とあるイベントで問題が発生しています。内容的にはそれほど致命的ではないので、そのイベントでのゲッターチームの台詞を変更して対処する予定です。

第4次スーパーロボット大戦 BGM追加 「終わりなき戦い」

 コンバートした後ずっと調整が塩漬けになっていた魔装機神系パイロットの汎用戦闘BGM「終わりなき戦い」ですが、ようやく仕上げてみました。  さすがにサンプリングデータ枠を5個も減らしたので曲の「厚み」が減少してしまっていますね。この辺りに関しては何とか改善方法を見つけていきたいところです。また、もう一つの問題としては、第4次に登場する魔装機神系のパイロットで汎用BGMの定義に収まるのはモニカとサフィーネの二人(実際に戦闘に加わらないテリウスを含めれば三人ですが)しかいないので、あまりこのBGMを追加する意義が感じられないというのも挙げられます。追加できるBGMの枠には限りがありますので、他のBGMを優先する方が有意義ではないかと感じてしまいますが、余裕があれば組み込んでみたいですね。

第4次スーパーロボット大戦 水陸空バグ修正パッチを公開しました

 シナリオ「キリマンジャロの嵐」が特殊なマップのため地形適応が陸を参照してしまうという不具合は有名ですが、グレンダイザーとマリンスペイザーが合体すると何故か地中に潜ってしまうという不具合はあまり知られていないように思われます。 実は私もつい先日になって気が付いた(グレンダイザーと各種スペイザーの複数パイロット状態でのSP管理処理確認の際に気が付きました)のですが、色々と試してみたところ「キリマンジャロの嵐」というよりもマップ属性が「空中(0F)」で使用されている地形パネル(「空」と「雲」)で機体の地形タイプ属性が「水陸空(04)」になっていると地中に潜ってしまう事が分かりました。また、同じくマップ属性が空中(04)の場合、出撃選択で水陸空の機体(実際にはこのシナリオの時点でテキサスマックやガッデスのように自軍にデフォルトで「水陸空」の属性を持つ機体は存在しませんが)を選んで出撃させるとマップ上から消滅してしまうという現象も確認できました。どうやらこの場合、内部データ的にはリ・ガズィのような分離変形ユニットの外装が破壊された際に侵入不能地形に存在する場合に発生する「墜落による撃墜扱い」の状態になっているようですが、そこまで詳しくは調べておりません。 最初は何が起きているのかさっぱり分かりませんでしたが、考えを整理してみると「ひょっとして移動コストの設定が関係しているのでは?」という推論に至り、そして移動コストに関するデータを確認してみると、やはり水陸空の機体の「空」と「雲」の移動コストが「00(=侵入不可)」になっており、これ(ROMの2F6317と2F6318)を01(EN消費なしで移動可能)や81(ENを消費して移動可能)に修正すると、以下の動画のように水陸空の機体が消滅したり地面に潜る現象はなくなりました。  実に簡単な修正なので別にパッチにするほどの内容でもないのですが、一応パッチにして配布致しますので気になる方は以下のURLからダウンロードして下さい。これも最初から存在する不具合なのでパスワードは設定していません。 https://ux.getuploader.com/retrogamelaboratory/download/77

第4次スーパーロボット大戦 未使用武器データの活用

 第4次スーパーロボット大戦には未使用の戦闘アニメーションや武器グラフィックがいくつか存在しますが、その大半は完成直前で放置されていたり未設定になっています。  例えば、マジンガーブレードは実体剣の攻撃アニメーションID(オーラソードやオーラ斬りやハイパーオーラ斬りと同じID)を設定すると画面上にマジンガーブレードの画像が表示されますが、何故かグレートマジンガーの手首の位置の座標から少しずれた位置に設定されています。これを修正して実際に使用しても特に他の武器アニメーションに不具合が発生するわけでもないため、どういった理由でこうなっているのかまでは分かりません。強いて言えば「切り払いバグ」で画像が乱れる現象が発生する程度なので、このバグの原因を調査・修正する余裕がないという理由から実装しなかったのかもしれませんが、冷静に考えてみると武器に切り払い不能属性を設定すればよかっただけにも思えますので、本当の理由は分かりません。  また、グレートマジンガーにはグレートブーメラン投擲時の差分グラフィックが用意されているのですが、グラフィックを表示するためのタイルパターン設定が入力されておらず、実際には差分グラフィック表示されないようになっています。逆に言えばこの差分グラフィックを表示できるようにタイル設定を行い画像切り替え命令のコードを記述すれば上の動画のようにグレートブーメラン投擲の際に画像が切り替わるというわけです。 他にもゴーショーグンのスペースバズーカやガーベラ・テトラのビームマシンガン、アレックスのビームライフルが未設定武器として存在していますが、このうちスペースバズーカは紐付けできる攻撃アニメーションの中にビームバズーカに見えるものが存在しない、ビームマシンガンやビームライフルは紐付けの関係で110mm機関砲やガトリングガンを使用する際にも画像が表示されてしまうという問題があります。通常のままではこれらの問題を解決できませんが、アニメーションスクリプトをあらたに作成すれば解決できる問題でもありますので、こうした未使用武器のグラフィックを上手く活用していきたいところです。

第4次スーパーロボット大戦 武器アニメーションSEオフセットテーブル拡張による色違いアニメーションの量産計画

 武器アニメーションのSEに設定する波形データのオフセットテーブルが拡張できるようになりましたので、まずは写真のようにメガ粒子砲やビームサーベルといった基本武器の色違いバージョンを量産してみようと考えています。  第4次では一応ビームライフルや細いビーム砲は元から黄色・緑・青・ピンクの4種類がありますが、太いビーム砲やダブルビームライフル、4連ビーム、レーザー、拡散メガ粒子砲などは黄色や青など1~2色しか設定されていないものが多く、ビームサーベルもピンクと黄色しかありません。このうち拡散メガ粒子砲やレーザーは各色ごとにアニメパターンを一つ一つ作らなければならないのでかなり手間とデータ容量がかかりますが、ビームライフルとビームサーベル、ビーム砲はパレットの読み込みまで設定した後で基本データにジャンプすれば簡単にバリエーションを増やせます。また、少し面倒ですがデータを追加すれば特定の武器の座標設定を共用してビーム砲の発射位置を設定する事も可能ではあります(私の場合、ロングライフルやメガランチャーのアニメーションは破壊光線の発射位置設定を使用できるように変更しています)ので、普通のビーム砲とは別にこれも追加していきたいところです。  しかし解析を進めれば進めるほど、実際にリリースされた実機ROMデータを見ると簡単なアニメーションデータを入れる余裕すらほぼないくらいに各バンク領域を使っているのが分かります。もしも第4次が魔装機神と同じように32MROMで開発されていたら、もっと凝った戦闘アニメーションが作られていたのではないかと強く感じる次第です。

第4次スーパーロボット大戦 「塊」フォント修正パッチを公開しました

  今更の話題ですが、第4次スーパーロボット大戦では「金塊」という単語が誤って「金魂」と表示されています。これはデータ容量の節約のためなどではなく、本来「塊」のフォントが漢字フォント設定「F4CA」の部分に収録されるべき箇所に「魂」のフォントが収録されているのが原因です。ゲーム中での「塊」に関する単語ではこのF4CAを参照するため「金塊」が「金魂」になってしまうという仕組みです。 また、「魂」のフォントは漢字フォント設定「F462」の箇所にも書き込まれており(つまり二重に「魂」のフォントが存在する)、ゲーム中のテキストでの「魂」に関する単語や精神コマンド「魂」の名称などはこちらを参照しています。つまりF4CAの「魂」を「塊」に修正すると「金塊」という単語がきちんと表示されるようになるというわけです。過去にも何名かの方が同等のパッチを作成していますが、私も「塊」のフォントを書き込んだパッチを作ってみました。 これも元から存在する不具合なのでパスワードは設定していません。 以下のURLからダウンロード可能です。 https://ux.getuploader.com/retrogamelaboratory/download/76

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

 第4次スーパーロボット大戦ではどんな機体でも改造にかかるコストやパラメーターの上昇値が一律固定値なのですが、これをそれぞれ4パターン設定できるようにするパッチを作成しました。このパッチも以前友人が作成したものとほぼ同じもの(機体の設定の05hと15hに00、40、80、C0フラグ値を設定する点も同じ)ですが、違いとしては敵軍やNPCとしてマップ上に登場した機体にも設定上昇値が適用されるという点と、05hと15hに追加で00、10、20、30のフラグ値が設定できるようになっている点(現状では数値を設定しても何も起こりません)が異なります。ダウンロードは以下のURLから可能です。解凍に必要なパスワードは「 Rzjv-)!f-ZT9U9w/」です。 具体的なパッチの使用方法は添付の資料をお読み下さい。 https://ux.getuploader.com/retrogamelaboratory/download/75

第4次スーパーロボット大戦 武器設定確認パッチを公開しました

 以前友人が作成したパッチに「武器色分けパッチ」というものがありましたが、それと似たもの(というかほぼ同じもの)を私も作成してみました。友人が作ったパッチは武器の「移動後使用の可否」と「ビーム兵器か否か」に対応したものでしたが、私が作成したパッチは「移動後使用の可否」と「切り払いの可否」に対応しています。具体的には以下のような内容でその武器の設定が分かるようにフォントの色が変化します。 移動後攻撃可、切り払い不可、実弾兵器→白 移動後攻撃可、切り払い可、実弾兵器→明るい緑 移動後攻撃不可、切り払い不可、実弾兵器→灰 移動後攻撃不可、切り払い可、実弾兵器→濃い緑 移動後攻撃可、切り払い不可、ビーム兵器→白 移動後攻撃可、切り払い可、ビーム兵器→明るい緑 移動後攻撃不可、切り払い不可、ビーム兵器→灰 移動後攻撃不可、切り払い可、ビーム兵器→濃い緑 弾切れやスキル不適合などで使用不能な武器→赤  ビーム兵器かどうかは武器名のBマークで判断すれば事足りると思いましたので、いま一つ判断がしにくい切り払いの確認ができるようにしてみました。もっとも、SFC版の第4次は切り払い技能を持った敵がほとんどいませんのであまり役に立たないかもしれません(第4次Sはかなりの敵パイロットが切り払い技能を持っているのですが…)が、よろしければ試しに使ってみて下さい。ダウンロードは以下のURLから可能です。解凍に必要なパスワードは「iUp6QqcfQ8JHbtrz」です。 https://ux.getuploader.com/retrogamelaboratory/download/74  なお、このパッチを使用してみると意外な武器が切り払い可能だったり逆に切り払い不能だったりするのが分かります。例えばアームビームガンやリフレクターインコム、マグマ弾などのどうやって切り払うのかよく分からないものが切り払い可能だったり、逆にゲシュペンストのプラズマカッターが切り払い不能に設定されているのです。恐らく単純な設定ミスだと思うのですが、実は何か裏設定があるのか考えてみるのも面白いかもしれませんね。

第4次スーパーロボット大戦 武器アニメバグ修正パッチ改2を公開しました

 先攻側の計都羅睺剣が回避された際にSEがおかしくなる不具合が修正されていないというご指摘を頂き、これを修正したパッチを公開しました。内容的には前回のパッチとほぼ同じですが、念のため修正される内容を記載します。 一部の実体剣で切り払いが発生すると、切り払われる側の実体剣の画像が乱れるバグ 先攻側の断空剣、計都羅睺剣、計都羅睺剣・暗剣殺が回避されると、後攻側の選択している武器のSEが再生されてしまうバグ 計都羅睺剣の切り払いが確定すると、発生前と発生後の剣の画像表示位置がおかしくなるバグ ドリルテンペスト使用時に、被攻撃側の背景画像が攻撃側の画像になるバグ  以下のURLからダウンロード可能です。例によって元から存在する不具合なのでパスワードは設定していません。 https://ux.getuploader.com/retrogamelaboratory/download/73

第4次スーパーロボット大戦 戦闘アニメーションにおける召喚攻撃の表現方法と課題

 スーパーロボット大戦D以降で急速に増えていった「他の機体を呼び出して戦わせる武器(=召喚攻撃)」ですが、一応は第4次でも表現可能です。端的に言うと上の写真の「スクランダーカッター」の攻撃アニメーションのように「機体とは別のグラフィック」を「ミサイルやビームが表示されるスプライト領域」に表示させればいいのです(これはスプライトが切り替わる瞬間の写真で、この後マジンガーZの機体グラフィックは画面上から消えて、ミサイルなどを表示するスプライトに書き込まれたスクランダーカット状態のマジンガーZのグラフィックが画面外に向かって移動していきます)。これにより、現在戦闘している機体とは別の機体のグラフィックを表示させる事ができるという寸法です。また、両方のグラフィックをそのまま表示させておく事も可能なので、ダブルマジンガーブレードのような簡単なアニメーションの合体攻撃であれば演出自体を再現する事はそんなに難しくはありません。  ただ、この手法の問題点は地面や水中で戦う場合に足元の影を表示できなかったり、移動の際にスモークやスラスターの噴射炎が表示できないという事です。これに関しては今のところミサイルのグラフィックのように「呼び出された機体のグラフィックに直接影なり噴射炎なりスモークなりを書き込んでアニメーションさせる」という方法しか見つけていません。実は私が以前作ったゲッタービジョンのアニメーションも直接ゲッター2の機体グラフィックを動かしているわけではなく、敵側の画面に切り替わると同時にミサイルのスプライトに書き込んだ「ゲッター2のグラフィックの武器」の攻撃アニメーションを動かして分身攻撃を行っているのです(そのためゲッター2の足元に影が表示されていない)。同じような方法でジェットストリームアタックやトリプラーのような連携攻撃も表現可能ですが、現状では影をどうする事もできないのが大きな課題です。しかし、この方法で別グラフィックを表示させているはずのサンアタックやグランダッシャーでは影が表示されている事を考えると、実際にはスモークや噴射炎はともかく、影だけはどうにかできる方法があるのだと思います。この辺りについてはもっと解析が必要ですね。

第2次スーパーロボット大戦G イベントコード調査続報その3

 第2次Gのイベントコードを解析してみました。前回の内容にプラスして新たなコードがいくつか追加されています。また、解釈を誤っていたと思われるコードの解説も変更しています。調査中のコードに関しては詳細が判明次第内容を公開する予定です。  0x0003 ウェイト。 03 xx yy         xx yyは待ち時間。 指定した時間だけコントローラーの操作受付を禁止。 0x0004 指定アドレスにジャンプ。 04 xx yy xx yyはROM(RAM)内のアドレス。 経過ターンによるイベント制御の際はEDと組み合わせて「ED zz 04 xx yy」となる。 0X0020 ??? 20 xx         調査中。 0x0049 BGMの終了。 49 xx xxはBGM番号。 指定したIDのBGMの再生を終了してF6で変更する前のBGMに戻す。 0x0060 ??? 60 xx 調査中。 0x0080 コントローラー操作を受け付け開始。 80 コントローラーによるボタン操作や十字キー操作などを受け付けるようにする。 0x0081 イベントページの終わり。 81 現在のイベントページの実行を終了して次のイベントフェイズに移行。 インターミッションであればマップイベント開始、 マップイベントであればアウターミッション、 アウターミッションであれば準備画面。 0x0084 パイロット参入。 84 xx yy xxはパイロットID。yyはレベル。 0x0085 機体入手。 85 xx xxは機体ID。 0x0086 パイロット離脱。 86 xx xxはパイロットID。 SRAMから指定したパイロットを削除する。 0x0087 機体離脱。 87 xx xxは機体ID。 SRAMから指定した機体を削除する。 0x0088 強制乗り換え 88 xx yy xxはパイロットID、yyは機体ID。 指定したパイロットを指定した機体に乗せるコマンド。 ガンイージの様に同じ機体が複数ある場合は入手した順に乗り換える。 指定したパイロットや機体が存在しない場合は無効となりキャンセルされる。 0x0089 自

第4次スーパーロボット大戦 未使用武器アニメーションや未使用戦闘背景など

  割と有名な話ですが、第4次スーパーロボット大戦には「ハイファミリアが火の鳥をばら撒く」という内容の未使用戦闘アニメーションが存在します。未使用ながら非常に出来がよく、後の「魔装機神 THE LORD OF ELEMENTAL」に登場した「セルーション」という武器を彷彿とさせます(というか、これをベースにセルーションを作ったのかもしれませんが)。未使用の戦闘アニメーションは残念ながら(?)この一つだけの模様です。 また、本編では使用されていない戦闘背景もいくつか存在し、その中には「ソーラ・レイ」や「ミラー」といった名称のものがあります。没パイロットにはワッケインやティアンムの名前が存在する事から、ひょっとするとファーストガンダムの一年戦争終盤を再現したイベントも考えられていたのかもしれません。まだ調査はしていませんがこれらのマップチップが存在すれば自作シナリオを作成する際に色々と楽しめそうですので、そのうち暇を見て調査をしてみる予定です。

第4次スーパーロボット大戦 武器アニメーションのSE用波形データ設定の解析が終了しました

 SEの設定がアニメーションデータを自由に増やせないという問題ですが、アニメーションのデータ読み込みの仕組みを解析しながらそれに関連する箇所を調査してみたところ、すぐにSEに使用する波形データを定義付けしているオフセットテーブルを発見する事ができました。やはり予想した通りの内容で、例えば武器アニメーションのIDが13(ビームサーベル)であればそれに必要な「だけの」波形データの設定「だけ」をサウンドドライバに読み込ませるという仕組みで、このオフセットに適合しない内容の武器アニメーションはIDを変更したり新規に設定するとSEが正常に再生されなくなるというものでした。これが判明した以上、無理をして武器アニメーション自体のオフセットテーブルを拡張する必要はないのですが、各機体専用の武器アニメーションを増やすとなるとオフセットテーブル自体の変更は必須となります。設定を調べてみた限りでは各種データの移設や拡張を駆使すればプログラムを大々的に変更しなくても1,024種類まで(但し、そのままではSEの組み合わせは512種類までしか設定できませんので、SEを1,024種類設定するにはプログラムを改変する必要があります)自由にSEやグラフィックを設定して武器アニメーションが作れるようになりました。波形データ領域が被らなければ、例えばEX版のカロリックスマッシュやガッデスのハイファミリアなどの複数SEを使ったアニメーションの再現が理論的には可能ですので、これで武器アニメーションを作る事に挑戦する方々も多少はモチベーションを上げて色々な試みができるようになるのではないでしょうか。

第4次スーパーロボット大戦 武器アニメーションの追加の課題

 ご存知の方も多いご様子なので今更感はありますが、第4次スーパーロボット大戦の武器アニメーション演出は実際のところ自由に設定を変更できるわけではなく、使用できるSEの設定が限られています。どういう仕様なのか分かりませんが武器アニメーションのID毎にSEに使用できる波形データの内容が予め割り振られていて、これに該当しないSEを使用しようとするとSEが再生できなかったりノイズが発生してしまいます(常駐データに含まれる波形データを使用したSEはこの限りではありません)。  恐らくどこかに各IDに使用する波形データを定義したオフセットテーブルがあると思うのですが、これを探し出さない限り現状では元からある武器アニメーションを書き換えるか、またはオフセットを拡張して0200~03FFに追加データを無理矢理作り出すという方法(私はこの方法で新規武器アニメーションを追加していますが膨大な拡張領域を使用する必要があり非効率的です)しかありません。暇を見てこの辺りの設定も解析していきたいところですね。

第4次スーパーロボット大戦 ヴァルシオン赤色化パッチを公開しました

 表題の通り、第4次のヴァルシオンの機体色を第4次以降の青色(とうか青緑色)ベースからEX以前の赤色(というか赤紫色)に変更するパッチを公開しました。仕組みとしては単純にパレットデータを青色ベースのものから赤色ベースのものに変更しただけなので、パッチを適用すると自動的にヴァルシオンの機体色が青っぽい色から赤っぽい色になります。また、今回は実験的に「4M拡張ベースパッチ」に対応したパッチを同梱しています。果たして機体色を変更するだけのパッチにどの程度の需要があるかどうか分かりませんが、興味のある方はお好みに応じてご利用下さい。以下のURLからダウンロード可能です。解凍パスワードは「bStMDb7JswwERVAC」です。 https://ux.getuploader.com/retrogamelaboratory/download/72

第4次スーパーロボット大戦 MAP兵器バグ修正パッチ(通常ROM対応版)を公開しました

 以前公開していた「敵がMAP兵器を使用した際に直前の戦闘で入手した経験値や資金を再度入手してしまう不具合」という有名なバグ(通称「MAP兵器バグ」)の修正パッチに通常ROM対応版を追加して再公開しました。以前のパッチは拡張ROM専用でしたが、今回追加のパッチは03FFFF3~03FFFFの未使用領域を利用しています。なお、従来の拡張ROM用パッチも収録してありますのでお好きな方を選択可能です。  バグとはいえある意味自軍にとっては嬉しい不具合ですので敢えて修正したいという方はほとんどいないと思いますが、他人にプレイさせる事が前提のスパロボハックロムを作成している方には需要があるかもしれません。ダウンロードは以下のURLから。元からある不具合なのでパスワードは設定していません。 https://ux.getuploader.com/retrogamelaboratory/download/71

第4次スーパーロボット大戦 青色スラスター導入パッチを公開しました

 先日YouTubeにて公開した動画とは若干仕様が異なります(私が個人的に使用しているROMイメージは各プログラムやデータの拡張性を考慮してかなり大々的にROMマッピングを変更しているのですが、今回は限られた容量を使ってほぼ同等の内容を再現するために仕様を変更しています)が、赤色のスラスター(中)の代わりに青色のスラスター(中)が適用されるパッチを公開しました。ついでに前進モーションにてオーラコンバーターの場合SEが挿入されたり水中の前進モーションでスクリューのエフェクトがなくなったり無音の前進モーションでSEが挿入されます。スラスター(小)とスラスター(大)は赤色のままですので、「スーパーロボット系の機体は赤色のスラスターエフェクトでないとちょっと嫌だなぁ」という方は機体の設定データから(人力にて)赤色のスラスターに変更可能です。既存のデータを直接上書きしていますので、特に未使用領域などは使用していません。  なお「既知の不具合」として、前進の際のSEと一部のSE、またはBGMの組み合わせにてBGMにノイズが入る事があります。これは元々の第4次でも確認できる不具合(一部の地形やBGMにて特定の武器を使用する際に稀にノイズが入ったり無音化する事がある現象)で、原因はサウンドドライバと波形データの仕様によるもの(使用される波形データ同士の相性によってBGMやSEに無音の箇所が出たりノイズが発生する)のため、現状ではサウンドドライバの抜本的な改修を行わない限り修正不能ではないかと思われます。パッチを使用する際は以上の点を踏まえて下さい(不具合の軽減のための調査は進めていく予定です)。ダウンロードは以下のURLから可能です。解凍パスワードは「F2KqPGtv5Yd4Yff6」です。 https://ux.getuploader.com/retrogamelaboratory/download/70

第2次スーパーロボット大戦G イベントコード調査続報その3

 第2次Gのイベントコードを解析してみました。前回の内容にプラスして新たなコードがいくつか追加されています。また、解釈を誤っていたと思われるコードの解説も変更しています。調査中のコードに関しては詳細が判明次第内容を公開する予定です。 0x0003 ウェイト。 03 xx yy         xx yyは待ち時間。 指定した時間だけコントローラーの操作受付を禁止。 0x0004 指定アドレスにジャンプ。 04 xx yy xx yyはROM(RAM)内のアドレス。 経過ターンによるイベント制御の際はEDと組み合わせて「ED zz 04 xx yy」となる。 0X0020 ??? 20 xx         調査中。 0x0049 BGMの終了。 49 xx xxはBGM番号。 指定したIDのBGMの再生を終了してF6で変更する前のBGMに戻す。 0x0080 コントローラー操作を受け付け開始。 80 コントローラーによるボタン操作や十字キー操作などを受け付けるようにする。 0x0081 イベントページの終わり。 81 現在のイベントページの実行を終了して次のイベントフェイズに移行。 インターミッションであればマップイベント開始、 マップイベントであればアウターミッション、 アウターミッションであれば準備画面。 0x0084 パイロット参入。 84 xx yy xxはパイロットID。yyはレベル。 0x0085 機体入手。 85 xx xxは機体ID。 0x0086 パイロット離脱。 86 xx xxはパイロットID。 SRAMから指定したパイロットを削除する。 0x0087 機体離脱。 87 xx xxは機体ID。 SRAMから指定した機体を削除する。 0x0088 強制乗り換え 88 xx yy xxはパイロットID、yyは機体ID。 指定したパイロットを指定した機体に乗せるコマンド。 ガンイージの様に同じ機体が複数ある場合は入手した順に乗り換える。 指定したパイロットや機体が存在しない場合は無効となりキャンセルされる。 0x0089 自軍にユニット(パイロット搭乗済みの機体)が参入。 89

第4次スーパーロボット大戦 地形適応バグ修正パッチの修正&地形効果「防御xx%アップ」について

 地形適応バグ修正パッチですが、分岐判定の設定にミスがあり正しく機能していない事が判明しました。大変申し訳ございません。修正して正しく機能するものに差し替えました。内容や機能に関してはお手数ですが「第4次スーパーロボット大戦 キリマンジャロバグ修正パッチを公開しました」の記事( https://www.retrogamelaboratory.com/2023/10/4_01463647301.html )をご確認下さい。また、ダウンロードは以下のURLから可能です。本来のソフトに存在する不具合なのでパスワードは設定していません。 https://ux.getuploader.com/retrogamelaboratory/download/69  なお、動画の内容は以下の通りです。 ・バグ修正前 ネェル・アーガマ: 攻撃力…1390(メインメガ粒子砲)x1.0(メガ粒子砲の地形適応/陸A)x1.1(ブライトの遠距離補正)x1.0(ブライトの気力)x0.6(ユニットの総合地形適応/陸D)1529→最終攻撃力1529 防御力…370(ネェル・アーガマの装甲値)x1.0(ブライトの気力)x0.6(ユニットの総合地形適応=陸D)=917 バウ: 攻撃力…1940(ビームライフル)x1.0(ビームライフルの地形適応/陸A)x1.07(ティターンズ兵の遠距離補正)x1.0(ティターンズ兵の気力)x0.8(ユニットの総合地形適応/陸C)=1660.64(端数切り捨て)→最終攻撃力1660 防御力…420(バウの装甲値)x1.0(ティターンズ兵の気力)x0.8(ユニットの総合地形適応=陸D)=336 ネェル・アーガマの与ダメージ…917-336=581 バウの地形効果(雲/防御5%アップ、厳密には被ダメージを5%軽減)による補正…581x0.95=551.95(端数切り捨て)→ネェル・アーガマの最終与ダメージは「581」 バウの与ダメージ…1660-222=1438→バウの最終与ダメージは「1438」 ・バグ修正後 ネェル・アーガマ: 攻撃力…1390(メインメガ粒子砲)x1.0(メガ粒子砲の地形適応/空A)x1.1(ブライトの遠距離補正)x1.0(ブライトの気力)x1.0(ユニットの総合地形適応/空B)=1529 防御力…370(ネェル・アーガマの装甲値)x1.0(ブライトの

第4次スーパーロボット大戦 キリマンジャロバグ修正パッチを公開しました

 全面が空中という異色のマップ「キリマンジャロの嵐」は飛行適性がない機体は出撃できないのですが、その特殊な処理(実は空中マップと見せかけた陸上マップで、ユニットは全て「空」や「雲」という名の陸上地形パネルに着陸しているという扱いなのです)の影響で地形適応は「空」ではなく「陸」が参照されてしまい、正常なダメージ計算が適用されません(通称「キリマンジャロバグ」)。少し解析してみたところ地形適応をチェックするプログラム内にはこれをどうこうするような対策はされておらず、結局のところこれを解決するには専用の新たな地形適応チェックのルーチンを組むしかなさそうです。…というわけで、修正パッチを作成してみました(パッチ名は「地形適応バグ修正パッチ」です)。以下のURLからダウンロード可能です。本来のソフトに存在する不具合なのでパスワードは設定していません。 https://ux.getuploader.com/retrogamelaboratory/download/69  以前、私の友人がこの不具合の解決に取り組んだのですが、参考までにその方法を聞いてみたところ「RAMのシナリオIDをチェックして現在のマップが『キリマンジャロの嵐』であれば陸の地形適応判定を強制的に空の地形適応判定に変更するサブルーチンにジャンプする」というものだったそうです。なかなか面白そうな処理ですが、その場合は他に同じような空中マップを自作する場合に応用が利かないという欠点があります。そこで私は「RAMのマップ状態設定IDがキリマンジャロ(=空中マップ)のIDである場合は地形適応判定を全て空の地形適応判定に変更する」という方式にしてあります。これならば他の空中マップを作製した場合でもそのまま使用できますし、応用として月や火星の地形適応を第3次スーパーロボット大戦やスーパーロボット大戦F完結編のように宇宙扱いに変更する(あまり知られていませんが、F完では月や火星は陸上でも空中でも宇宙扱いの計算が適用されます)にできます。今回公開したパッチはキリマンジャロ上空の場合は強制的に空、月の場合は強制的に宇宙の地形適応が参照されます。火星に関しては処理を組み込んだのですが、ダンバイン系の機体が活躍できなくなる事を考慮し、処理の作成後に「EA」で消去しています。これを再現するにはパッチ適用後にノーマル版であれば29FFD

第4次スーパーロボット大戦 赤と青のスラスターエフェクトの導入が完了しました

 色々と試行錯誤しましたが、動画のように何とか赤と青のスラスターの両立か完了しました。プログラムの仕様上、全部で三種類しか噴射炎を設定できない(プログラムを大々的に変更すれば最大で五種類まで設定は可能ですが…)ので、バトルマシンなどの一部の戦闘機に使用されている小さな噴射炎のIDを使用して赤い噴射炎(中)に、本来の噴射炎(中)と噴射炎(大)はIDはそのまま、色だけ青に変更して使用しています。しかし赤い噴射炎が使用されているロボットアニメは結構少ないようで、ダイナミックプロ系作品(但し、グレートマジンガーやグレンダイザーのようにメインの機体は赤、サポートメカは青、と赤と青の両方が使用されている場合が多いです)や初期のサンライズ作品以外はほとんどの作品で青か白(稀に黄色や緑)のスラスター噴射炎で描かれているようです。  なお、最後に登場するライディーンは実験的にオーラコンバーターのアニメーションを使ってみましたが原作ではこういう描写はほとんどなく(マニュアル・パワー使用などの際に稀にオーラが発生する描写があり、全くないわけではありませんが)、基本的にはそのまま飛行、高速移動する際やゴッドバード形態時には足裏のスラスターから青い噴射炎を出してスピードアップしています。

第4次スーパーロボット大戦 精神コマンドフラグ

 今更の話題ですが、第4次スーパーロボット大戦における精神コマンドのフラグ管理一覧表を記載しておきます。いわゆる「改造コード」関連のサイトなどを巡回すればどこかしらに記載されていそうな気がするのですが、とりあえずご参考まで。  なお、7E1665の「01」と「02」は未使用となっている(フラグはシナリオクリアまで継続)ので、使い方次第では新規精神コマンドの作成やスーパーモード発動、マップの時間変化(「昼を夜にする」など)、暴走状態の再現など色々と面白い事ができそうではあります。また、この作品に限らず「改造コード」はRAMを書き替えて任意の現象を発生させる行為ですので、該当作品の解析やバイナリ改造を行うにあたって非常に大きな足がかりとなります。興味がある作品の改造コードを見かけた際には、とりあえず内容を全て書き留めておく事を強くお勧めします。 7E1665 01:未使用 02:未使用 04:魂 08:鉄壁 10:かく乱 20:足かせ 40:隠れ身 80:集中 7E1666 01:てかげん 02:威圧 04:覚醒 08:ひらめき 10:必中 20:幸運 40:熱血 80:加速

第4次スーパーロボット大戦 赤いスラスターと青いスラスターの両立計画

 先日はパレットの編集で青いスラスターエフェクトを実装してみましたが、何もエフェクトがないマジンガー系に赤いスラスターエフェクトを設定してあげたいので「赤と青のスラスターエフェクトを両立する手段」を考えてみました。とはいってもそんなに難しい方法ではなく…というか、プログラムを解析した結果スラスターエフェクトを大量に分岐させる事ができる仕様ではないため、従来の赤のスラスターエフェクト3種類から赤のスラスターエフェクト1種類、青のスラスターエフェクト2種類に変更しようというものです。  つまり赤のスラスターエフェクトを1種類だけ残すのですが、仕様の関係で小・中・大の3種類ある中から1種類が使用できなくなります。「小」はバトルクラッシャーなどごく一部の戦闘機用に設定された細長い噴射炎が二本表示されるもので、「中」は大半の機体に使用されるエフェクト、そして「大」は写真のようにGP-03やケルナグール艦やゲイオス=グルードのようなごく一部の大型機に使用されている巨大な噴射炎です。基本的には「中」を残す必要があるので、そうなると「小」か「大」のどちらか一方を潰す事になるのですが、仮に「小」を削除して「中」をバトルクラッシャーに割り振ってアトミックバーナーを使用すると非常に不自然な噴射炎になってしまうのが問題点(バトルクラッシャーは両腕の部分から噴射炎が発生するため噴射炎が一つではおかしいのです。逆に言えば接近武器がほとんどない戦闘機勢にとって「小」の噴射炎はほぼバトルクラッシャー用なのですが)と言えます。赤い「中」の噴射炎と、赤と青の「大」の噴射炎を採用するとして、戦闘機勢というかバトルクラッシャーには多少の不自然さは我慢してもらうしかなさそうですね…。

第4次スーパーロボット大戦 前進アニメーションのSEを追加してみました

 前進アニメーション関係のSE追加がとりあえず完了しましたので、久々に動画にしてみました。 主な変更点は ノーエフェクト で前進する機体への前進SE(スラスターや地上での前進のSEと同じです)の追加、オーラマシンや魔装機の飛翔SEの追加、水中での前進する際のスクリューのような演出の削除です。結局アニメーションコードの変更だけではどうにもならず、プログラムも若干変更する羽目になってしまい少々時間がかかりました。 なお、オーラマシンの飛翔SE[はキーの高いSEを選択すると正常に再生されず、また使用する武器の一部(オーラショットアームと槍系の連打武器)にてノイズが混じってしまう事があるので、該当武器のSEを変更するかサウンドドライバの仕様を変更する必要がありそうです。

第4次スーパーロボット大戦 オーラマシンの飛翔音追加完成とその他の戦闘アニメーションのSE追加計画

 オーラマシンの飛翔音ですが、SEを入れる事自体は何とかなりました。戦闘シーンで機体が前進する際のスラスターや走行のエフェクトは例によってアニメパターン内のスクリプトデータで構成されているのですが、このうちオーラコンバーターの光が表示されるアニメーションデータにSEを挿入する形で再現しています。しかし何も問題がないわけではなく、使用する波形データの都合なのか実際の戦闘アニメーションと組み合わせるとSEが正常に再生されずノイズになってしまうパターンばかりで、また、通常のスラスター音や一部のSEを割り振るとオーラショットアームを使用する際の移動アニメーションで何故かスラスターのSEの代わりにオーラショットアーム発射のSEが再生されてしまうのです。これはスラスターのアニメーションがが割り振られている機体や地上での攻撃の際にオーラショットアームを使わせてみると同様の現象が再現可能なので、恐らくサウンドドライバの仕様による不具合なのだと思われます。仕方がないのでこれに該当しないSEを探し出して割り振った結果、本来想定していた高音のSEではなくかなり低い音のSEになってしまったのは少し残念です。今のところテストでは異常はありませんが、可能性として特定のBGMと組み合わせた場合や特定の武器を使用した場合にノイズが発生する不具合があるかもしれません。この現象は元の第4次でも未だにそういった不具合に当たる事があるのですが、組み合わせがあまりに膨大すぎるので全てチェックはしきれないのです…。  さて、次はスラスターアニメーションがない前進や水中での前進にもSEを入れてみたいところですが、スラスター描写のない前進は他の全ての前進アニメーションとデータの一部を共用している仕組み、というか最初にスラスターなしの前進アニメーションを再生させ、時間差でスラスターなりオーラコンバーターなりスクリューなりのアニメーションパターンを再生させるという構成になっており、ここに直接スラスターのSEを加えてしまうとオーラマシンの前進アニメーションに組み込んだSEが上書きされてしまい、前述のオーラショットアームの不具合に繋がってしまうのです。一応「各種アニメーションが再生される際には一旦SE再生の命令を打ち消して、その後別途に用意したSEを再生させる」という対策は考えてみたのですが実際に試してみるとなかなか予想

第4次スーパーロボット大戦 オーラマシンの飛翔音追加の検討

 スラスターの噴射炎を念願だった青に変更できましたので、ついでというわけではありませんがオーラバトラーや魔装機が飛行する際に使われているエフェクトについても少し調べておこうと思います。スーパーロボット大戦シリーズにはEXから参戦したダンバイン系のオーラマシンですが、SFC版EXと第4次(Sを含む)では残念ながらオーラマシンが飛行する際のSE(効果音)が何もありません。せめてスラスターと同じ音や陸上で格闘戦をする際のSEと同じ音でもあればいいのですが、とにかく何もSEがないので寂しい限りです。制作サイドでもやはりこれは寂しいと感じたのか、Fからはオーラコンバーターの起動音のような甲高いSEが追加されましたが、第4次でも何となく雰囲気が出そうなSEを追加してみたいと考えています。幸いスラスターや土煙を表示する際の処理方法は解析できましたので簡単に…とはいかないもので、まずSEに使われる波形データが常駐波形データと同一でなければならず、次にSEそのものも作らねばなりません。もっともSEに関してはあくまで「それっぽい音」が出ていればいいかなと思うところがあり、精神コマンドのSE(波形データの大半が常駐波形データで作られているであろうため)の中からそれっぽいものを流用できればと考えています。

第4次スーパーロボット大戦 ホバーの水煙お手軽解決方法とスラスター噴射炎の色の変更

 ホバーにおける最後の懸案であった水煙ですが、意外と簡単に解決できました。土煙の処理を調べてみたところ茶色のグラデーションを透過させて煙に重なった色(機体の色や背景の色)に馴染ませる処理をしていましたので、これをグレーのグラデーションを透過させて背景色に馴染ませるように変更してみました。この変更により、水上では上の写真のようにやや青みがかったグレーの水煙に、草原では下の写真のようにやや緑がかったグレーの土煙にできます。今回はRGBが全て同一のグレーでグラデーションを掛けていますが、好みによっては青みがかったグレーのグラデーションにしてもいいかもしれません。土煙のグラフィックそのものは無理に変更するほどのものではないと思っていたのでこの結果には割と満足しています。  個人的な収穫としては、今まで基地や道路の上でも移動時の煙がやたらと茶色になっているのが少々気になっていたのですがこの変更によりそれぞれの背景色に近い色の煙にする事ができるようになりましたので、ホバーの導入の可否に限らず今後はこのグレーのグラデーションの煙を使用する予定です。なお、グレーのグラデーションをもっと白に近付けていくと白が濃い煙にする事もできますので、ロボットアニメの表現でよくある濛々と立ち上る白煙にしたいのであればそれもアリかもしれません。  こちらの写真は前述の通り草原ですが、グレーのグラデーションのおかげで特に今までと大きく印象が変わっているような感じは少ないのではないかと思います。また、今回のパレット調査で他のエフェクト(スラスターの噴射炎やオーラコンバーターの光、スクリューっぽい水の泡の色など)の領域も見つける事ができましたので、個人的に気になっていたスラスターの噴射炎を下の写真のように赤から青に変更してみました。  大昔のスーパーロボット系のアニメではスラスターの噴射炎は赤や橙色や黄色などで描かれている事が多いのですが、1980年代後半以降のアニメでは青い噴射炎で描かれているイメージが強いので、こういう変更もアリではないでしょうか。特にGP-01Fbは青い噴射炎が似合いそうですね(第4次では宇宙に行く前に強制廃棄されてしまいますが…)。今回はテスト的に作成したパレットのためかなり色味が暗くなっていますが、実際に採用する際にはもっと明るめの青に変更する予定です。

第4次スーパーロボット大戦 続々・移動タイプ「ホバー」の課題

 数日前にホバーの水上での背景について「砂漠を青くすればとりあえずそれっぽく見える」という手抜き案を提案してみましたが、これだけではまだ解決できない問題がありました。そう、ご覧のように格闘戦用武器を使用する際に足元に表示される土煙です。射撃武器ばかり使っていたのでこのエフェクトをすっかり忘れていました。これに関しては空や宇宙の場合はスラスターの噴射炎、陸上では土煙、水中ではスクリューの水流のようなエフェクトがそれぞれ表示されるのですが、水上の場合は土煙ではなく水煙でなければ演出的におかしいはずです。水の色が緑がかった少々汚いドブ川のような感じであれば土煙の色でもそんなに違和感はないかもしれませんが、さすがにそれはちょっと厳しいという考えもあり、どうにかしてこの問題を解決したいところですね。今のところ私はその仕組みをまだ解析しておらず、また指定した専用の背景(または地形パネル)の場合のみ土煙を水煙に変更(土煙のパレットを青か白に差し替える処理が入れられれば何とかなりそうですが)する事ができるのかどうか調べてみるつもりです。

第4次スーパーロボット大戦 試作型ヴァルシオン導入計画

 EXまでは究極ロボ・ヴァルシオンと言えば赤いカラーリングで、青いヴァルシオンはシロッコが用意したヴァルシオン改だったはずなのですが、何故か第4次からカラーリングが逆転し、その後リリースされたFやF完、そして画像データを流用したPS版第2次~EXでもこの傾向は続きました。  さて、FC版の第2次のエンディングではヴァルシオンに試作機が存在する事が示唆されていますが、この機体は続編である第3次で登場したヴァルシオーネを指しているのかと思いきや、むしろヴァルシオーネはヴァルシオンの再設計機的な解説がされていました。またシロッコが何処からともなく持ち出してきたヴァルシオン改に関してもその出自ははっきりとせず(試作型を入手して改造したのではなく、設計図を入手したシロッコが再設計した機体という説が濃厚です)、しかもEXでは何故かカークス軍が何らかの手段で量産したのか、複数のヴァルシオンやヴァルシオン改を所持する始末。そしてその後の作品では試作型ヴァルシオンに関する話は一切触れられず発展型やデチューン機や量産型ばかりが登場しています。なお、その契機となった第4次では最後にシュウと事を構える選択をした場合のみ彼の取り巻きの機体として青いヴァルシオン(厳密にはヴァルシオン改のような濃い青ではなく淡い青緑色のカラーリングの機体)が登場するのですが、これは試作型ではなくシュウの趣味で青く塗装された量産機と考えるのが妥当ではないかと思うのです。そこで何らかの形でこの試作型ヴァルシオンを写真のような赤い機体として登場させたいと考えています。例えばDr.ヘルやコロスなどDCの幹部用の機体として登場させてもいいのですが別にそれは量産型でも構わないわけで、計画としては「ビアン博士が秘匿していたヴァルシオンの試作機(=プロトタイプヴァルシオン)」という設定でリューネやギリアムといった一部のバンプレストオリジナル系のパイロットが乗り換え可能なそこそこ強い自軍用の機体として入手できるようにするつもりです。問題は入手できる機体をあまり増やしていくと保持ユニット数の限界値(64体までしか保持できない)に引っ掛かってしまう事ですね。その点を鑑みると特定のルートを通った際か別の機体との択一などの条件を付けた方がいいのかもしれません。

第2次スーパーロボット大戦G イベントコード調査続報その2

 前回に引き続き、今回も第2次Gのイベントコードを解析してみました。前回の内容にプラスして新たなコードがいくつか追加されています。また、解釈を誤っていたと思われるコードの解説も変更しています。調査中のコードに関しては詳細が判明次第内容を公開する予定です。 0x0003 ウェイト。 03 xx yy           xx yyは待ち時間。 指定した時間だけコントローラーの操作受付を禁止。 0x0004 指定アドレスにジャンプ。 04 xx yy xx yyはROM(RAM)内のアドレス。 経過ターンによるイベント制御の際はEDと組み合わせて「ED zz 04 xx yy」となる。 0X0020 ??? 20 xx          調査中。 0x0049 BGMの開始。 49 xx xxはBGM番号。F6との違いは不明。 基本的にはF6が使われている事が多い。 0x0080 コントローラー操作を受け付け開始。 80 コントローラーによるボタン操作や十字キー操作などを受け付けるようにする。 0x0081 イベントページの終わり。 81 現在のイベントページの実行を終了して次のイベントフェイズに移行。 インターミッションであればマップイベント開始、 マップイベントであればアウターミッションなど。 0x0084 パイロット参入。 84 xx yy xxはパイロットID。yyはレベル。 0x0085 機体入手。 85 xx xxは機体ID。 0x0086 パイロット離脱。 86 xx xxはパイロットID。 SRAMから指定したパイロットを削除する。 0x0087 機体離脱。 87 xx xxは機体ID。 SRAMから指定した機体を削除する。 0x0088 強制乗り換え 88 xx yy xxはパイロットID、yyは機体ID。 指定したパイロットを指定した機体に乗せるコマンド。 ガンイージの様に同じ機体が複数ある場合は入手した順に乗り換える。 指定したパイロットや機体が存在しない場合は無効となりキャンセルされる。 0x0089 自軍にユニット(パイロット搭乗済みの機体)が参入。 89 xx yy zz