← ブログ2026-10-05

HD アートの制作工程

顔グラフィック、背景、マップ、ユニット、アイコン、戦闘アニメ、枠とタイトル。HD パックに使う元のデータ、素材ごとの制作方法、ゲームでの表示の仕組みを紹介します。

HD アートパックは、必要に応じて導入できます。パックを使わない場合は原作のグラフィックで表示され、導入後もゲーム中いつでも切り替えられます。この記事では、素材の種類ごとに制作工程を紹介します。比較画像は、特に記載がなければ左が原作のドットをそのまま拡大したもの、右が HD です。

制作では、次の 3 点を共通の方針にしています。

  • 原作の構図に合わせる。 生成や拡大の後に、原作の輪郭・位置・大きさを基準に位置合わせを行い、ピクセル単位で確認します。
  • 表示部分を置き換える。 ゲームの処理、セーブ、判定は共通で、グラフィックを切り替えながら遊べます。
  • ROM から作れる素材は実行時に生成する。 ウインドウ枠、BANPRESTO ロゴ、GAME OVER の文字は、プレイヤーが使用する ROM から生成するため、HD パックには収録していません。

ゲームで表示する 4 つの方法

完成した素材は、用途に応じて次の方法で表示します。

方法 仕組み 主な用途
一枚絵として描画 原作の描画処理は小さなタイルに分けて絵を描きます。ホスト側で絵を識別し、タイルの描画を抑えて、同じタイミング・重なり順で HD の一枚絵を描きます 顔グラフィック、インターミッション背景、戦術マップ、タイトル、ユニットと戦闘のスプライト
テクスチャ置き換え RT64 レンダラーのテクスチャハッシュを使って差し替えます。ハッシュはゲームを動かさずに ROM から算出できます 世界地図の地表、宇宙の物体、会話ウインドウと HUD の枠、マップのユニットアイコン、戦闘の地面
ネイティブモデル 原作の 3D 表示リストを識別し、その描画を作成したモデルに置き換えます 世界地図の艦船、ランドマーク、地点マーカー
ネイティブ文字 画像に描き込まれた文字を、表示言語に合わせて組版します タイトルメニュー、章タイトル、プロローグ、エンディング、スタッフロール

原作の大きな絵は、何十枚もの小さなテクスチャで構成されています。個別に差し替えると境界にずれが出るため、こうした素材は一枚絵として描画し、継ぎ目を避けています。

顔グラフィック

顔グラフィック:原作と HD

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

顔グラフィック 8 枚の比較

さらに 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 枚。一枚絵として描画します。

インターミッション背景

インターミッション背景:原作と HD

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

インターミッション背景 4 枚の比較

ほかの 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

中央アジア(カスピ海周辺)。左が原作、右が 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 で撮影した後、同じ瞬間のまま原作表示に切り替えて比較したものです。

艦船(1):原作と HD

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

艦船(2):原作と HD

ピースミリオン、ミデア、アウドムラ、アルビオン、アーガマ、ネェル・アーガマ、ラー・カイラム

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

ランドマーク:原作と HD

上:アクシズ。下:フィフス・ルナとその名前の表示。左が原作、右が HD

  • ランドマーク:アクシズとフィフス・ルナも同じ方法で作成しました。艦船 13 隻と合わせて 15 モデルです。

地点マーカー:原作と HD

地点を示す黄色いひし形。左が原作、右が HD

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

戦術マップ

戦術マップ:原作と HD

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

原作、HD の下地、パレット番号マップ

左から原作、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)と、それぞれに対応するパレット番号マップ。一枚絵として描画します。

ユニットグラフィック

ユニットグラフィック:原作と HD

左:原作 96×96 右:HD

ユニットグラフィック 8 体の比較

さらに 8 体。各組とも左が原作、右が HD

  • 原作のデータ:ユニットのポーズは 332 種類あり、多くは 96×96 または 128×128 です。
  • 拡大方法:通義千問 Pro で描き直しを試したところ、一部のユニットが著作権フィルターで拒否され、生成できたものも細部が変わりました。そこでローカルの拡大モデルを 14 種類比較し、4x-UltraSharpV2 と 4x-PixelPerfectV4 の出力を半分ずつ混ぜる方法を採用しました。2 段階で 16 倍に拡大してから、8 倍のマスターに縮小します。透明度は別にモデルを通して輪郭を整えています。
  • 完成データ:配布版は原作の 6 倍(長辺 1024 ピクセル以内)です。戦闘前の確認画面、ユニット能力画面で使用し、戦闘アニメでも原作のスプライトをフレームごとに置き換えます。左右反転で格納された 134 ポーズは、頂点データから反転方向を判定し、原作と同じ向きで表示しています。

マップのユニットアイコン

マップのユニットアイコン:原作と HD

左:原作 16×16 右:HD 64×64

4 つの陣営色の比較

同じ HD アイコンの 4 つの陣営色

マップ上のアイコンは 16×16 です。ドット絵の質感を残しながら、輪郭を見やすくすることを目指しました。

  • 手順:MMPX で 2 倍 → 4x-PixelPerfectV4 → 32×32 に縮小し、原作の色番号に量子化(CIELAB で最も近い色を選択)→ 再び MMPX で 2 倍。64×64 の色番号画像を作ります。
  • 比較した方法:通義千問は元と異なる形を補ってしまい、滑らかに描き直す方法はドット絵の質感に合いませんでした。ディザリング、xBRZ(GPL)、Scale4x なども検討し、採用していません。
  • 陣営色と枚数:陣営色はパレットで決まるため、陣営ごとに画像を用意します。重複を除いて 1256 枚あり、テクスチャ置き換えで表示します。

戦闘アニメ

戦闘画面は複数の層で構成され、層ごとに描画方法が異なります。そのため、HD 化の処理も素材ごとに分けています。

戦闘画面:原作と 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

戦闘中のユニットを拡大。左が原作、右が HD

  • 上で紹介した 332 枚の HD グラフィックを、戦闘前の確認画面と共通で使用します。
  • 左右反転で格納された 134 ポーズには、すべての部品に反転の印が付いています。部品の頂点アドレスから反転側を判定し、原作と同じ向きで表示しています。
  • 被弾時の白い点滅には 2 つの方式があり、現在の HD 表示ではどちらも制約があります。パレットをその場で書き換える方式では HD 画像の色が変わらず、別のパレットに切り替える方式ではフレームを識別できないため、そのフレームは原作表示に戻ります。

ユニットの追加画像

ユニットのアトラスには、立ちポーズのほかに、残像、変形途中、色違い、ファンネルが飛び出す場面などの画像もあります。1 枚ずつポーズと位置を合わせて比較し、6 種類に分けて制作方法を決めました。

種類 数 方法
元のポーズと同じもの 6 HD グラフィックを使用
全体の色違い・発光 11 色変換テーブルで HD グラフィックの色を変更
残像・分解エフェクト 8 HD グラフィックから推定。水平方向のずれを 1 行ずつ求める
ポーズと飛び出すファンネル 2 HD グラフィックにファンネルを追加
部分的な変更(ポーズに一部を追加) 47 変更部分を OpenAI の画像モデルで描き、残りに HD グラフィックを使用
全体が異なる画像 15 OpenAI の画像モデルで描き直し

推定で作成した追加画像:原作と HD

HD グラフィックから推定した例:残像(ガンダムシュピーゲル)、色違い(マスターガンダムS)、ファンネルの飛び出し(νガンダム)。各組とも左が原作、右が HD

  • 推定:ピクセルごとに処理を分けます。ポーズと同じ部分は HD グラフィックを使い、同じ位置で色だけが変わる部分は色の比率や変換テーブルで調整します。ポーズにない新しいピクセルには原作の拡大画像を使い、何も描かれていない部分は透明にします。単色の発光には「ポーズの明るさ → 目標の色」の対応表を使います。
  • 色違いの調整:比率による色変換で細部がぼやけた 8 枚は、色変換テーブルに切り替えました。原作のフレームとポーズが重なる部分を調べ、ポーズの各色に最も多く対応する色を採用しています。

画像モデルで描き直した追加画像

左:原作のフレーム。中:画風の参考としてモデルに渡した、同じ配色の HD グラフィック。右:完成画像

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

カットイン

ローカルで拡大したカットイン:原作と HD

ローカルで拡大したユニットと大きな顔のアップ。左が原作、右が HD

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

小さな顔の拡大と描き直しの比較

左:原作。中:ローカルで拡大。右:描き直し。下の 5 人は、ローカル拡大で顔が崩れた例

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

アトラスの元画像と描き直した画像

アトラス内の元画像(左)と描き直した画像(右)

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

武器と小道具

小道具:原作と HD

武器と小道具。各組とも左が原作、右が HD

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

地面

戦闘の地面テクスチャ:原作と HD

戦闘の地面テクスチャ。左:原作 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

左:原作 右: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 枚ずつ構図と位置を調整しています。本プロジェクトは非公式のファン作品です。原作のキャラクターとアートの権利は、各権利者に帰属します。