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

投稿

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

最新の投稿

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

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

第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

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

 今回は久々に第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。 0x0087 機体離脱。 87 xx      xxは機体ID。 0x0088 強制乗り換え 88 xx yy      xxはパイロットID、yyは機体ID。 0x0089 自軍にユニット(パイロット搭乗済みの機体)が参入。 89 xx yy zz      xxはパイロットのID、yyはパイロットのレベル、zzは機体のID。 0x008A フラグONならば指定アドレスにジャンプ。 F2 XX YY 8A xx yy      xx yyはROM内のアドレス。「F2 XX YY」と組み合わせて使用。 0x008B フラグOFFならば指定アドレスにジャンプ。 F2 ww xx 8B yy zz                                 

第4次スーパーロボット大戦 移動タイプ「ホバー」用背景のお手軽作成方法

 色々と「ホバー」で表示される水上の背景の作成方法について論じてきましたが、雑ではありますがお手軽かつ簡単な解決案を思いつき実行してみましたので、一応掲載しておきます。それが上の写真のような内容です。…少しでも勘のいい方は写真を一目見ただけで何をしたのか察する事が可能かと存じます。  答えを簡単に言ってしまうと「砂漠の背景用のパレットを青系のものに変更して川や海といった水系パネルの陸上領域設定に紐付けし、代わりに砂漠パネルの陸上領域設定には荒れ地の背景を紐付けする」というものです。非常に雑ですが、こうする事によって実に簡単に水上っぽい背景を作る事が可能です。上の写真では実験的に雲用の青色パレットをそのまま使用しているのでまるで雪原のようになってしまっていますが、下の写真のようにきちんとパレットを自作してやや緑がかった青に調整すればそれなりに海や川っぽい雰囲気が出るのではないでしょうか。また、砂漠自体が作中であまり出てこないので荒れ地と紐付けてしまってもそれほど気にならないと思います。注意すべき点は「昼の分だけでなく夕方や夜の分のパレットも変更しなければならない」という事だけです。  もしも私自身がホバーを実装するとすれば砂漠の使い回しではなくきちんと水上をイメージした背景を作るつもりですが、「労力をかけずに解決しようとするのであればこういう方法もありますよ」という事でご参考まで。

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

 前回は「ホバー」の仕組みと戦闘時の背景呼び出しについて幾つか推論を述べていきましたが、その後実際に解析して判明した事がありますので、今回はそれについて少し記述していきます。  まず背景のグラフィックですが、これはそのユニットのいる地形パネルを参照して先攻側、後攻側にそれぞれ対応するものを読み込んでいます。そしてそれぞれのユニットの存在している領域(「空中」であるとか「地上」であるとか「地中」であるとか)をチェックして対応する背景グラフィックのセットを書き込むという仕組みになっています。例えばこれが川の地形パネルの場合は「水中であれば川の中の背景のグラフィックに、そうでない場合はそれぞれの存在領域に対応したグラフィック(この場合は全て「空」の背景グラフィック)に、更に夕方や夜の場合は昼間の空から夕方の空や夜空に変更して書き込む」という仕組みです。そして「ホバー」は水の地形パネル上にいても「陸上」の領域に存在する事になっているのです。  つまりホバーを導入する場合はこれを「水中であればそれぞれの水中グラフィックに、陸上(=ホバー)の場合は代わりにそれぞれ(昼・夕・夜)の水上グラフィックに、それ以外の場合は空のグラフィックに設定し、更に夕方や夜の場合は昼間の空から夕方の空や夜空に変更して書き込む」という仕組みにすればよいのです。しかし水系の地形には「深海」というものが存在し、水中のグラフィックが昼・夕・夜で共通した1つのIDしかないため、これもホバーに対応するには更に「深海かつ水中であれば水中グラフィックに、陸上(=ホバー)の場合は代わりにそれぞれ(昼・夕・夜)の水上グラフィックに、それ以外の場合は空のグラフィックに、更に夕方や夜の場合は昼間の空から夕方の空や夜空に変更して書き込む」という専用の処理を組み込む必要がありそうです。実際に深海が存在するマップは「日輪は我にあり」と「ノイエDC」の2マップだけで、かつこのマップはいずれも昼間の設定なので昼間の分だけ処理すればいいという考え方もありますが、後々になって自作シナリオなどを追加する際に深海の地形がある夕方や夜のマップを作るとなると不具合で頭を抱えることになりますので、やはりここはきちんと対応しておかないといけないのでしょうね。まあ開き直って水中の背景グラフィックで間に合わせるという手もありますが…。  さて、これに付