Workflow

AI 生圖在遊戲美術的工作流:28 張像素插圖怎麼產

2026 年 5 月 4 日 約 10 分鐘閱讀 作者:Hao0321 Studio

之前在「為什麼我做了一個台灣版大富翁」一文裡提過,台灣富翁的 28 塊地產各有專屬的像素風小插圖(101 是大樓剪影、九份是階梯、阿里山是火車)。每張不到 500 bytes,但給玩家很強的記憶點。這篇把當時用 AI 生圖工具完成這 28 張小圖的完整流程拆開講 — prompt 怎麼寫、後處理怎麼做、為什麼最後選擇像素風而不是寫實風。

為什麼用 AI 生圖而不是手繪

獨立工作室最稀缺的是「美術時間」。28 張地產插圖,如果發包給插畫師,依台灣行情大約每張 800–2000 元,總價 2–6 萬,外加 1–2 週的溝通與修改週期。我用 AI 生圖工具把這個成本壓到:

代價是「藝術指導」全壓在自己身上 — AI 不會自己思考視覺風格的一致性,需要人去把關。但對「批量產低密度的素材」場景,這個 trade-off 完全值得。

選擇像素風的原因

一開始試過寫實風(「a photo of Taipei 101 at sunset」),結果發現幾個致命問題:

  1. 細節太多:1080p 寫實圖塞進 64×64 棋盤格根本看不清楚。
  2. 風格漂移:28 張寫實圖很難維持「同一個世界觀」,光線、顏色、構圖各自為政。
  3. 檔案太大:每張 200–500KB,28 張就 10MB+,瀏覽器遊戲不能容忍。

切換到像素風(pixel art)之後一次解決三個問題:

Prompt 工程實戰

初版 prompt(失敗範例):

"pixel art of Taipei 101 building"

產出來的是寫實感很重的「pixel art 風格但本質還是寫實」的圖。需要更明確的限制:

"16-bit pixel art, Taipei 101 skyscraper silhouette,
night sky, neon city lights, 32x32 sprite,
limited 8-color palette, NES-style, clean outlines,
no anti-aliasing, no gradients,
solid color blocks, retro game asset --ar 1:1"

關鍵詞解析:

關鍵詞作用
16-bit / NES-style把 AI 鎖到 SNES / NES 時代的美學
limited 8-color palette強制有限調色盤,避免漸層
32x32 sprite明確的解析度暗示
no anti-aliasing銳利邊緣,避免模糊
solid color blocks避免複雜紋理
silhouette強調剪影,符合縮圖辨識度

批次生成的 prompt 模板

28 張地產要保持風格一致,最重要的是「prompt 模板」固定,只變動「主體描述」。我用的模板:

STYLE_PREFIX = "16-bit pixel art, [SUBJECT], [SETTING],
limited 8-color palette, retro NES-style,
no anti-aliasing, solid color blocks, 32x32 sprite,
clean outlines, blue-purple-pink color scheme"

# 28 個地點各自填 [SUBJECT] 與 [SETTING]:
台北101: SUBJECT="Taipei 101 skyscraper silhouette",
         SETTING="night sky with neon city lights below"
九份:    SUBJECT="winding stone steps with red lanterns",
         SETTING="mountainside village at dusk"
阿里山:  SUBJECT="vintage steam train on a single track",
         SETTING="forested mountain pass with mist"
...

共用的 STYLE_PREFIX 確保 28 張看起來像「同一個畫家畫的」。實務上每個 SUBJECT 我會生 4 張變體(同 prompt 不同 seed),挑最好的一張,平均 1 個地點花 4 分鐘。

後處理(Post-processing)

AI 生出來的圖通常有幾個問題要修:

1. 解析度不準

就算寫了「32×32 sprite」,AI 生圖工具吐出來通常還是 1024×1024 或 512×512。需要用 nearest neighbor 演算法縮到 64×64 或 32×32。我用 Python + Pillow 批次處理:

from PIL import Image
import os

for fname in os.listdir('raw/'):
    img = Image.open(f'raw/{fname}')
    # 先用 box filter 壓到 128,保留結構
    img = img.resize((128, 128), Image.BOX)
    # 再用 nearest neighbor 壓到 32,保銳利
    img = img.resize((32, 32), Image.NEAREST)
    img.save(f'processed/{fname}', optimize=True)

2. 調色盤漂移

「8-color palette」常常被 AI 解讀成「以 8 色為主」但實際上有 200+ 色。需要強制 quantize:

img = img.quantize(colors=8, method=Image.MEDIANCUT, dither=Image.NONE)

quantize 後再轉回 RGB,最後輸出 PNG-8 indexed color。檔案從 50KB 壓到 500 bytes。

3. 透明背景

AI 預設生白色或深色背景。要把單一色背景改成透明:

img = img.convert("RGBA")
data = img.getdata()
new_data = [
    (255,255,255,0) if px[:3] == (255,255,255) else px
    for px in data
]
img.putdata(new_data)

這個簡化版只處理純白背景。實際上 AI 生的「白」常有 anti-alias 邊緣,需要 tolerance(abs(r-255) < 10 之類的判斷)。

4. 風格不一致的修補

28 張裡總會有 2–3 張完全跑調 — 顏色太亮、構圖偏離。這時候我手動用 Aseprite 微調:把違和的像素點掉、調幾個顏色、補一些線條。每張 5–10 分鐘搞定。

實際數據

項目數量 / 時間
初版 prompt 試錯1 小時
定稿 prompt 模板30 分鐘
28 張批次生成(每張 4 變體)1 小時
挑選 + 後處理30 分鐘
不滿意的手動修補(3 張)30 分鐘
總計3.5 小時
最終檔案總大小14.2 KB(28 張 PNG-8)

哪些任務 AI 生圖適合 / 不適合

用了一年下來盤點:

任務類型AI 生圖表現
大量低密度素材(icon、tile)★★★★★
背景圖、氣氛圖★★★★
角色立繪(單張)★★★(一致性差)
角色動畫(多 frame)★(極難維持一致性)
UI 元素(按鈕、邊框)★★(不如 CSS 寫死)
logo、品牌識別★(必須人工)

版權與商業使用考量

這是大家最關心的問題。我的政策是:

結語

AI 生圖在獨立遊戲開發的角色是「美術放大器」 — 不是取代美術,是讓一個有美學品味、有 prompt 工程能力的人,產出原本只有團隊才能產出的素材量。對 1 人工作室,這個工具讓「一款遊戲一張原創美術都用得起」變成可能。

下一篇我想寫「用 AI 寫 NPC 對話文本」的工作流。如果你有特定想看的 AI 工作流主題,歡迎寄信 lo246179268@gmail.com