DAY 258

GPT Astra 畫不動遊戲素材

SLIDES · 6
Day 258 GPT Astra 畫不動遊戲素材 — 投影片 1Day 258 GPT Astra 畫不動遊戲素材 — 投影片 2Day 258 GPT Astra 畫不動遊戲素材 — 投影片 3Day 258 GPT Astra 畫不動遊戲素材 — 投影片 4Day 258 GPT Astra 畫不動遊戲素材 — 投影片 5Day 258 GPT Astra 畫不動遊戲素材 — 投影片 6
1 / 6

這幾週在做的東西,是一套視覺化的 agent 管理介面——我一直覺得使用者介面的終點不應該是現在 ChatGPT 或 Claude 那種聊天視窗,應該要更像遊戲場景,看得到 agent 在哪、在做什麼、跟什麼在互動。之前做過一版,自己看了不滿意,只好再重來。

前幾週社群一直在吹 GPT Astra 有多神,說連 3D 建模軟體 Blender 都被它征服了,那 2D 素材對它來說應該綽綽有餘。抱著這個期待,昨天實際丟了一批需求進去,結果比我以為的差非常多。這篇分享:我到底想畫什麼、Astra 卡在哪、以及為什麼那些圖一眼看過去就覺得「怪」——問題不在畫工,是在角度和配色沒有一致性。

我要的是小朋友齊打交那種素材

小時候玩「小朋友齊打交」(Little Fighter,經典 2D 格鬥遊戲)的人應該還記得那種畫風:人物有正面、側面、背影,一組動作用一張 sprite sheet 帶起來——sprite sheet 就是把同一角色的各種動作跟方向排在同一張大圖上,程式依索引切出來播。

我這套介面要的就是這種素材。每一個 agent 是一個角色,房間是它們工作的場景,家具、道具、狀態都要能出現在畫面裡。單純叫 Astra「畫一個穿連帽外套的角色,正面站姿」——這種它畫得出來。畫一組跑步、揮拳、坐下的分解動作,也可以。

加上物件跟方向就一團亂

麻煩的是我要的不是單一動作。我要「這個角色從側面拿起一個馬克杯」「同一個角色從背後打開一個抽屜」「從斜前方推一台推車」——人物、物件、方向三個一起上。

一組跑下來,馬克杯有時候是馬克杯、有時候變玻璃杯;同一個抽屜正面畫的跟側面畫的長得不一樣;推車的輪子從側面看是圓的,換成斜前方就變成橢圓——不是透視變形的那種橢圓,是它自己重畫過的另一種橢圓。截圖擺在一起你就知道我在講什麼,慘不忍睹。

「怪」到底怪在哪

看到這批圖第一個反應是「不對,但講不出來哪裡不對」。這時候要做的事其實是把「怪」講清楚——你人看得出來怪,但如果講不出來是什麼怪,就沒辦法丟回去給模型改。

講清楚了大概是兩件事:角度不統一配色各畫各的

每件家具都各自一個視角

每一件家具、每一個道具,Astra 都用自己覺得順的角度畫。桌子這張是從桌面斜俯 30 度看下去;下一張同一張桌子從正側面畫;再下一張又變成完全俯視。人物如果站在桌子旁邊,桌子的角度跟人物看的方向對不上,整個場景就會斷掉。

小朋友齊打交那個年代的美術是先訂好一個世界的視角(那款遊戲是側視、帶一點 Z 軸縱深,beat 'em up 的視角),所有素材照這個視角畫。這件事對人來說是常識,但模型每次生成都是獨立事件,它沒有「上一張是什麼視角」的記憶。

配色也各畫各的

第二層是顏色。同一個房間裡的木頭家具,這張偏橘紅、那張偏冷灰、下一張又拉到深咖啡;主角的連帽外套在正面圖是灰藍,側面圖不知為什麼變成灰綠。看單張沒問題,擺在同一個畫面裡就是各說各話。

正確的做法我想是反過來——先訂一組整體的色票(palette,幾個主色跟輔助色湊出來的一套顏色),再開始畫。就跟訂視角一樣,這是「先有規則、再動筆」的順序。

沒有 skill 就別再喊 AGI

跑完這一輪最直接的感想是:不要再吹 AGI 了。

Astra 在單張、單一動作、沒有跨圖一致性要求的任務下,畫得很好。但只要任務多了一層「這一張要跟上一張對得起來」的要求,它就開始各畫各的——它沒有「上下文」,也沒有「這個世界的規則」。這是很典型的「有能力沒有 skill(把能力串成解一類問題的做法)」的表現。

我猜他們在特定訓練資料上跑得很漂亮的部分——像 Blender 那種有大量教學可以學、又有明確 API 的東西——確實不錯。但一離開這種訓練資料很密集的場景,需要跨生成保持一致的任務,離 AGI 差得非常遠。

AI 不知道上一張畫了什麼,也不知道下一張要跟誰配——這件事還是得人先訂好。

延伸閱讀
看完整 258 篇 →