HD アートパックは、必要に応じて導入できます。パックを使わない場合は原作のグラフィックで表示され、導入後もゲーム中いつでも切り替えられます。この記事では、素材の種類ごとに制作工程を紹介します。比較画像は、特に記載がなければ左が原作のドットをそのまま拡大したもの、右が HD です。
制作では、次の 3 点を共通の方針にしています。
- 原作の構図に合わせる。 生成や拡大の後に、原作の輪郭・位置・大きさを基準に位置合わせを行い、ピクセル単位で確認します。
- 表示部分を置き換える。 ゲームの処理、セーブ、判定は共通で、グラフィックを切り替えながら遊べます。
- ROM から作れる素材は実行時に生成する。 ウインドウ枠、BANPRESTO ロゴ、GAME OVER の文字は、プレイヤーが使用する ROM から生成するため、HD パックには収録していません。
ゲームで表示する 4 つの方法
完成した素材は、用途に応じて次の方法で表示します。
| 方法 | 仕組み | 主な用途 |
|---|---|---|
| 一枚絵として描画 | 原作の描画処理は小さなタイルに分けて絵を描きます。ホスト側で絵を識別し、タイルの描画を抑えて、同じタイミング・重なり順で HD の一枚絵を描きます | 顔グラフィック、インターミッション背景、戦術マップ、タイトル、ユニットと戦闘のスプライト |
| テクスチャ置き換え | RT64 レンダラーのテクスチャハッシュを使って差し替えます。ハッシュはゲームを動かさずに ROM から算出できます | 世界地図の地表、宇宙の物体、会話ウインドウと HUD の枠、マップのユニットアイコン、戦闘の地面 |
| ネイティブモデル | 原作の 3D 表示リストを識別し、その描画を作成したモデルに置き換えます | 世界地図の艦船、ランドマーク、地点マーカー |
| ネイティブ文字 | 画像に描き込まれた文字を、表示言語に合わせて組版します | タイトルメニュー、章タイトル、プロローグ、エンディング、スタッフロール |
原作の大きな絵は、何十枚もの小さなテクスチャで構成されています。個別に差し替えると境界にずれが出るため、こうした素材は一枚絵として描画し、継ぎ目を避けています。
顔グラフィック

左:原作 96×96 右:HD 768×768

さらに 8 枚。各組とも左が原作、右が HD
- 原作のデータ:約 96×96、64 色の顔グラフィックが 300 枚あります。
- 生成:Alibaba Cloud の通義千問(qwen-image-3.0)を使いました。灰色の背景に、ドットを 6 倍に拡大した 4 枚を 2×2 で並べ、1 回のリクエストにまとめています。75 回の費用は約 15 元でした。グリーンバックではモデルが各マスを拡大してしまい、3×3 では 1 マスが小さすぎたため、どちらも採用していません。
- 位置合わせ:生成結果では各マスが 3〜10% 拡縮され、最大 7 ピクセルのずれが生じました。32 ピクセルのブロックごとに最小二乗法でアフィン変換を求め、位置を合わせたうえで、原作の 8 倍のマスターに再サンプリングしています。
- 切り抜き:輪郭は原作から ±1.5 原作ピクセル以内に収めています。モデルが枠の端まで描かなかった 130 枚(300 枚中)は、端の色を枠まで延長しました。原作の輪郭との重なりを示す IoU の中央値は 0.991 です。
- 輪郭の処理:初期の切り抜きでは透明部分を黒で埋めていましたが、レンダラーが透明度を色に乗算せずにバイリニア補間するため、輪郭に黒い縁が出ました。透明部分を最寄りの不透明色で埋め、色と透明度を別々に縮小することで解消しています。
- 完成データ:768×768 が 304 枚。一枚絵として描画します。
インターミッション背景

上:全体。左が原作 320×240、右が 16:9 に拡張した HD。下:同じ場所を 5 倍に拡大(左が原作、右が HD)

ほかの 4 枚(4:3 の部分)。各組とも左が原作、右が HD
- 原作のデータ:320×240 が 8 枚あり、それぞれ明るいパレットと暗いパレットを使います。
- 生成と色調整:通義千問 qwen-image-3.0-pro で描き直し、1920×1440 で位置を合わせました。暗い版は、ROM の 2 つのパレットから求めた 17³ の色変換テーブルを使い、明るい版から計算しています。誤差は 1.2〜2.6 階調で、色を単純に 0.75 倍した場合の 3〜23 階調より小さくなりました。
- ワイド化:その後、Alibaba Cloud の通義万相(wanx2.1-imageedit)で左右を描き足し、2560×1440 に拡張しました。
- 完成データ:16 枚と星空 1 枚。一枚絵として描画します。
ストーリーの世界地図

左:原作のヨーロッパ(地中海周辺) 右:HD

中央アジア(カスピ海周辺)。左が原作、右が HD

宇宙エリアの地球と月。各組とも左が原作、右が HD
- 原作のデータ:64×64 の 4 ビット地表テクスチャで、地球全体、ヨーロッパ、中央アジア、北米、宇宙に分かれています。
- 生成:通義千問で何度か試したものの求める仕上がりにならず、4 つの地表はすべて OpenAI の画像モデル(Codex 経由)で描き直しました。まず地域全体を下地として描き、次に 3:2 の窓ごとに細部を描きます。合成時は各窓の端から遠いピクセルほど重みを大きくし、海岸線は原作の陸と海の境界に合わせて切り抜きました。
- 修正した点:タイルの行間隔を、本来の 600 ではなく 611 として計算していたために継ぎ目が生じ、修正しました。海岸沿いに出た紫色の縁も、別途取り除いています。
- 近景:ストーリー中に地点へ寄ると、原作の 1 ピクセルが画面上の 19〜30 ピクセルになります。よく使う 19 か所には、近景用の画像を別途描きました。
- 完成データ:512×512(原作の 8 倍)のテクスチャが 213 枚あり、テクスチャ置き換えで表示します。宇宙は通義千問で 27 枚を制作し、星空は一枚絵として描画します。
世界地図の艦船、ランドマーク、マーカー
世界地図を移動する艦船、宇宙のランドマーク、地点を示す黄色いひし形は、原作ではいずれも簡素な 3D モデルです。HD では、それぞれ作成したモデルに置き換えています。以下は 0.3.5 のプレイ画面で、HD で撮影した後、同じ瞬間のまま原作表示に切り替えて比較したものです。

各組とも左が原作、右が HD。左から右、上から下へ:グラン・ガラン、ゴラオン、ガンドール、ラビアンローズ、バルジ、リーブラ

ピースミリオン、ミデア、アウドムラ、アルビオン、アーガマ、ネェル・アーガマ、ラー・カイラム
- 艦船:13 隻を公式設定に基づき、Blender のスクリプトでモデリングしました。面数は 8 千〜2 万あまりです(原作は 4〜330 面)。航跡はシェーダーで光の帯として描いています。
- 名前の表示:リーブラやバルジなどの名前は、表示言語に合わせて組版します。上の画像は日本語表示です。

上:アクシズ。下:フィフス・ルナとその名前の表示。左が原作、右が HD
- ランドマーク:アクシズとフィフス・ルナも同じ方法で作成しました。艦船 13 隻と合わせて 15 モデルです。

地点を示す黄色いひし形。左が原作、右が HD
- 地点マーカー:原作の双四角錐をもとに角を丸め、金色の反射材質を設定しました。周囲の点線の輪はシェーダーで描いています。
- アンチエイリアス:これらのモデルはシーン全体と一緒に 4 倍のマルチサンプリング(MSAA)で描画し、輪郭のギザギザを抑えています。
- 収録データ:いずれもネイティブモデルを使用し、原作のモデルデータは HD パックに収録していません。
戦術マップ

第 20 マップの市街地。左:原作のドットをそのまま拡大 右:HD の下地

左から原作、HD の下地、パレット番号マップ(原作のパレットで表示)。実行時に番号マップと現在のパレットを使って下地の色を変え、水の流れや夜の色調を再現します

スペースコロニーの 8 フレーム。左が原作、右が HD
HD 化で最も作業量が多かったのが戦術マップです。マップデータは 158 件あり、実際に使われるのは主なマップ 109 枚と派生 22 枚の計 131 枚です。
- 生成:原作の 4 倍にすると、多くのマップが通義千問の上限 2048×2048 を超えるため、下地はすべて OpenAI の画像モデルで描きました。全体の下地を 109 枚、細部を描く窓を 772 枚、派生マップ用に 50 枚制作しています。細部の窓はそれぞれ原作の 384×256 ピクセルに相当し、マス目に合わせて 1 マスずつ確認しました。合計は 900 枚を超えます。
- 水と光:原作では、水面や明かりをパレットの色の循環で動かし、夜戦ではパレット全体を切り替えます。この動きを保つため、水と境界は下地に描き込まず、4 倍のパレット番号マップを別に用意しました。原作の色番号だけを使い、MMPX でドットを拡大したものです。実行時にはシェーダーが現在のパレットと基準パレットの差から下地の色を調整し、水の流れ、明かりの点滅、夜の色調を反映します。
- コロニー:スペースコロニーの 8 フレームのアニメーションには、専用の連番画像を制作しました。
- 完成データ:下地 131 枚(第 20 マップは 1792×2048)と、それぞれに対応するパレット番号マップ。一枚絵として描画します。
ユニットグラフィック

左:原作 96×96 右:HD

さらに 8 体。各組とも左が原作、右が HD
- 原作のデータ:ユニットのポーズは 332 種類あり、多くは 96×96 または 128×128 です。
- 拡大方法:通義千問 Pro で描き直しを試したところ、一部のユニットが著作権フィルターで拒否され、生成できたものも細部が変わりました。そこでローカルの拡大モデルを 14 種類比較し、4x-UltraSharpV2 と 4x-PixelPerfectV4 の出力を半分ずつ混ぜる方法を採用しました。2 段階で 16 倍に拡大してから、8 倍のマスターに縮小します。透明度は別にモデルを通して輪郭を整えています。
- 完成データ:配布版は原作の 6 倍(長辺 1024 ピクセル以内)です。戦闘前の確認画面、ユニット能力画面で使用し、戦闘アニメでも原作のスプライトをフレームごとに置き換えます。左右反転で格納された 134 ポーズは、頂点データから反転方向を判定し、原作と同じ向きで表示しています。
マップのユニットアイコン
![]()
左:原作 16×16 右:HD 64×64
![]()
同じ HD アイコンの 4 つの陣営色
マップ上のアイコンは 16×16 です。ドット絵の質感を残しながら、輪郭を見やすくすることを目指しました。
- 手順:MMPX で 2 倍 → 4x-PixelPerfectV4 → 32×32 に縮小し、原作の色番号に量子化(CIELAB で最も近い色を選択)→ 再び MMPX で 2 倍。64×64 の色番号画像を作ります。
- 比較した方法:通義千問は元と異なる形を補ってしまい、滑らかに描き直す方法はドット絵の質感に合いませんでした。ディザリング、xBRZ(GPL)、Scale4x なども検討し、採用していません。
- 陣営色と枚数:陣営色はパレットで決まるため、陣営ごとに画像を用意します。重複を除いて 1256 枚あり、テクスチャ置き換えで表示します。
戦闘アニメ
戦闘画面は複数の層で構成され、層ごとに描画方法が異なります。そのため、HD 化の処理も素材ごとに分けています。

0.3.5 のプレイ画面(ゴッドガンダム対マスターガンダム、港)。各組とも左が原作、右が HD。上:ユニット、海、建物を HD 化。下:技のエフェクトには原作の素材を使用
戦闘画面の構成
| 層 | 原作の描き方 | HD での扱い |
|---|---|---|
| 空、星空 | 32×32 の小さなスプライトを敷き詰め、320×240 ごとに繰り返し | 原作の素材を使用 |
| 地面 | 3 ブロック×3 列の 3D モデル。テクスチャはレンダラー経由 | テクスチャ 1419 枚を 4 倍に置き換え |
| ユニット | アトラスの部品を部品表に従って重ね、1 フレームを構成 | フレームごとに HD グラフィックへ置き換え |
| ユニットの追加画像(残像、変形、色違い) | 同上 | 推定または描き直し。196 フレーム |
| カットイン | 同上 | ローカルで拡大し、顔が小さいものは描き直し。308 フレーム(重複を除いて 208) |
| 武器、小道具 | 同上 | ローカルで拡大。431 フレーム(重複を除いて 394) |
| 技のエフェクト、爆発、スピード線 | スプライトとパレットアニメーション | 原作の素材を使用 |
| HP ウインドウ、会話ウインドウの枠 | 小さなテクスチャ片を組み合わせて描画 | プログラムで描き直し(後述の「枠」) |
ユニット、追加画像、カットイン、小道具は、原作では共通の仕組みで描かれます。アトラスの小さな部品を部品表に従って重ねて 1 フレームを構成し、各部品の四角形をノードの行列に応じて移動・拡大縮小します。HD では「場面、アトラス、パレット、フレーム番号」の組み合わせを識別し、部品の描画をまとめて抑えたうえで、同じ位置・変形で HD の一枚絵を描きます。
ユニット

戦闘中のユニットを拡大。左が原作、右が HD
- 上で紹介した 332 枚の HD グラフィックを、戦闘前の確認画面と共通で使用します。
- 左右反転で格納された 134 ポーズには、すべての部品に反転の印が付いています。部品の頂点アドレスから反転側を判定し、原作と同じ向きで表示しています。
- 被弾時の白い点滅には 2 つの方式があり、現在の HD 表示ではどちらも制約があります。パレットをその場で書き換える方式では HD 画像の色が変わらず、別のパレットに切り替える方式ではフレームを識別できないため、そのフレームは原作表示に戻ります。
ユニットの追加画像
ユニットのアトラスには、立ちポーズのほかに、残像、変形途中、色違い、ファンネルが飛び出す場面などの画像もあります。1 枚ずつポーズと位置を合わせて比較し、6 種類に分けて制作方法を決めました。
| 種類 | 数 | 方法 |
|---|---|---|
| 元のポーズと同じもの | 6 | HD グラフィックを使用 |
| 全体の色違い・発光 | 11 | 色変換テーブルで HD グラフィックの色を変更 |
| 残像・分解エフェクト | 8 | HD グラフィックから推定。水平方向のずれを 1 行ずつ求める |
| ポーズと飛び出すファンネル | 2 | HD グラフィックにファンネルを追加 |
| 部分的な変更(ポーズに一部を追加) | 47 | 変更部分を OpenAI の画像モデルで描き、残りに HD グラフィックを使用 |
| 全体が異なる画像 | 15 | OpenAI の画像モデルで描き直し |

HD グラフィックから推定した例:残像(ガンダムシュピーゲル)、色違い(マスターガンダムS)、ファンネルの飛び出し(νガンダム)。各組とも左が原作、右が HD
- 推定:ピクセルごとに処理を分けます。ポーズと同じ部分は HD グラフィックを使い、同じ位置で色だけが変わる部分は色の比率や変換テーブルで調整します。ポーズにない新しいピクセルには原作の拡大画像を使い、何も描かれていない部分は透明にします。単色の発光には「ポーズの明るさ → 目標の色」の対応表を使います。
- 色違いの調整:比率による色変換で細部がぼやけた 8 枚は、色変換テーブルに切り替えました。原作のフレームとポーズが重なる部分を調べ、ポーズの各色に最も多く対応する色を採用しています。

左:原作のフレーム。中:画風の参考としてモデルに渡した、同じ配色の HD グラフィック。右:完成画像
- 描き直し:62 枚を OpenAI の画像モデルで制作しました。入力は原作の画像、同じ配色の HD グラフィック、画像ごとのプロンプトです。生成後に原作フレームの輪郭に合わせて位置調整と切り抜きを行い、8 倍のマスターにします。部分的な変更では、マスク画像の灰色部分に HD グラフィック、赤色部分に生成画像を使い、境界を原作の 1 ピクセル分ぼかして合成します。
- 複数フレームのアニメーション:1 フレームを描き直し、残りのフレームはその画像から推定します。
カットイン

ローカルで拡大したユニットと大きな顔のアップ。左が原作、右が HD
- 対象:55 のカットイン場面、308 フレーム(重複を除いて 208)です。部品表に従って各フレームを描き出し、部品の範囲で切り抜いて、ユニットグラフィックと同じ手順でローカル拡大します。
- 小さな顔の処理:顔が原作で 6〜20 ピクセルしかない場面では、拡大モデルが補った細部が原作と合わず、顔が崩れました。

左:原作。中:ローカルで拡大。右:描き直し。下の 5 人は、ローカル拡大で顔が崩れた例
- 元画像からの再構成:カットインの各フレームは、アトラス内の一枚絵から部品を切り出して構成されています。スクロールや人物が集まる演出も、同じ画像の位置を変えたものです。そこで元となる 10 枚の画像を OpenAI の画像モデルで描き直し、位置調整と切り抜きを行って 8 倍のアトラスに戻しました。その後、原作の部品表に従い、重ね順と左右反転を反映して 36 フレームを再構成しています。

アトラス内の元画像(左)と描き直した画像(右)
- 目の部品:あるフレームには、別の場所から切り出した目の部品が 5 つ(それぞれ 15×7 ピクセル)重ねられています。再構成時にはこれらをいったん外し、目を別途描き足しました。大きな顔のアップはローカル拡大でも原作に合うため、その結果を使用しています。
武器と小道具

武器と小道具。各組とも左が原作、右が HD
アトラス内でポーズ、追加画像、カットインに当てはまらない素材は、小道具として扱います。ライフル、ビームサーベル、盾、拳など、289 場面、431 フレーム(重複を除いて 394)です。同じ手順で拡大し、カットインと共通のパックに収録しています。
地面

戦闘の地面テクスチャ。左:原作 64×64 右:HD 256×256
- 対象:3D の地面モデル 424 個、テクスチャ 1419 枚です。
- ハッシュの算出:テクスチャの置き換えには、レンダラーが各テクスチャに付けるハッシュが必要です。ゲームを動かさずに求めるため、表示リストがテクスチャを 4 KB のテクスチャメモリに読み込む過程を再現しています。奇数行のワード順の入れ替えやパレットを 4 重に複製する処理などを含め、RT64 と同じ方法でハッシュを計算します。試作時に実際のプレイから取得した 16 個のハッシュは、すべて一致しました。
- 拡大:テクスチャの繰り返し方に合わせて外側を 16 ピクセル拡張してから 4 倍に拡大し、並べたときの継ぎ目を抑えました。草や砂利などの細かな模様は、拡大後にやや筆で描いたような質感になります。現在のパックでは、この仕上がりを採用しています。
配布サイズと現在の対応範囲
- 配布サイズ:戦闘専用の一枚絵は原作の 5 倍で収録しています。戦闘中の表示倍率はユニットが 80〜110%、カットインが約 129% です。標準の 4 倍の内部解像度では、原作の 1 ピクセルが画面上の約 3.2〜5.2 ピクセルになるため、配布版は 5 倍としました。8 倍のマスターも保管しています。
- 原作の素材を使う部分:空と星空、技のエフェクト、爆発、スピード線、前述の一部の被弾フレームです。技のエフェクトなどはパレットアニメーションで色を変えるため、固定の HD 画像に置き換えるだけでは動きを再現できません。
枠、タイトル、ストーリー画面

左:原作 右:HD

タイトル画面の炎(16 枚のうち 2 枚)。各組とも左が原作、右が HD
- 会話ウインドウと HUD の枠:会話ウインドウの枠 13 片、戦闘 HUD の枠 17 片を、原作のデザインに沿ってプログラムで描き直しました。16 ピクセルから 64 ピクセルに拡大し、テクスチャ置き換えで表示します。
- ウインドウ枠、BANPRESTO、GAME OVER:AI は使わず、実行時にプレイヤーの ROM から生成するため、HD パックには収録していません。枠は端を丸めたアンチエイリアス付きの線で描きます。原作の色番号を保つことで、枠に沿って光が流れる演出にも対応しています。
- タイトルロゴと炎:通義千問で制作し、配色を固定しました。炎は継ぎ目なくループする 16 枚の画像に分けています。
- 画像内の文字:タイトルメニュー、章タイトル 133 枚、プロローグ、エンディング、スタッフロールでは、画像に描き込まれた日本語を、表示言語に合わせたネイティブ文字に置き換えています。
容量
0.3.5 の HD パックは、圧縮時 505 MB、展開時約 540 MB、6795 ファイルです。容量の大きい素材は、戦術マップ(246 MB)とテクスチャ置き換え用の PNG(161 MB)です。
- 一枚絵は JPEG(品質 92)で保存し、透明度が必要な素材には透明度だけを収めた PNG を別途用意します。パレット番号マップ、アニメーションのフレーム、置き換え用テクスチャは PNG を使用します。RT64 が読み込める形式は PNG と DDS です。
- ユニットグラフィックは、画面上で最大でも 1000 ピクセル程度の表示になるため、8 倍から 6 倍に縮小しました。
- BC7 のテクスチャ圧縮は、世界地図の近景にブロック状の崩れが出たため採用していません。抜き取りで測定した画質(PSNR)は、ユニットグラフィック 44 dB、顔グラフィック 42 dB、マップ 41 dB です。
使用したツールと制作方法
素材に応じて、画像生成 AI、ローカルの拡大モデル、モデリング、プログラムによる生成を使い分けています。
- Alibaba Cloud 通義千問の画像モデル(qwen-image-3.0 / 3.0-pro):顔グラフィック、インターミッション背景、宇宙の物体、タイトルロゴと炎。
- Alibaba Cloud 通義万相(wanx2.1-imageedit):インターミッション背景を 16:9 に拡張。
- OpenAI の画像モデル(Codex 経由):ストーリーの世界地図、戦術マップの下地、一部の戦闘カットインとユニットの追加画像。
- ローカルの拡大モデルとドット拡大(4x-UltraSharpV2、4x-PixelPerfectV4、MMPX):ユニットグラフィック、マップのユニットアイコン、戦闘のカットインと小道具、戦闘の地面テクスチャ、戦術マップのパレット番号マップ。原作のドットから直接拡大しています。
- モデリング・プログラム生成・組版:艦船、ランドマーク、地点マーカーのモデルは Blender でモデリング。会話ウインドウと HUD の枠はプログラムで描画し、ウインドウ枠とロゴは実行時に ROM から生成します。文字はすべてネイティブ組版です。これらの素材には画像生成 AI を使っていません。
生成・拡大した画像は、原作の画面を参照しながら、1 枚ずつ構図と位置を調整しています。本プロジェクトは非公式のファン作品です。原作のキャラクターとアートの権利は、各権利者に帰属します。