判準只寫了下緣,五張超標的白天背景全部印成達標
《格莉奇與黑洞先生》調查篇的白天背景,第一批五張量出來 +48 到 +74,上午下午兩檔都超。這篇講「白天應該要橘白暖」這種只能靠眼睛的要求,怎麼變成機器判得動的腳本,還有判準寫漏一半的時候會發生什麼事。

第一版的色溫檢查只判一件事:整張圖的平均紅減平均藍,有沒有大於 15。
第一批五張白天背景量出來是 +48 到 +74,它全部印成達標。
這是《格莉奇與黑洞先生》外傳的美術。劇情、謎底、結局一個字都不寫,下面只有背景、立繪,跟那支量顏色的程式。
分工先講一次。場景整個偏紫藍、白天該橘白暖,這兩點是我問的;五個新角色的配色要日常、色票要先設計再照著產圖,這兩條也是我出的。把這些話變成數字區間、量測腳本、重產用的 prompt,是 AI 做的,這一輪掛 Claude Fable 5.1。
「整個世界場景都是紫藍的感覺?」量完是 35/37
9 月 5 日凌晨,我問:「我有一點整個世界場景都是紫藍的感覺?應該要只有晚上才是那樣表現,白天應該就要橘白暖吧?」
接下來是量。當時的 37 張背景全量一次,35 張偏冷(R−B 小於 −12)。連該暖的都冷,車站前那條街的白天版是 −80.5。只有綠室中性、謝幕微暖。
這一片紫藍沒有人決定過,是每一張都拿同一組配色生出來的結果。
為什麼要管這件事,設計文件寫的理由跟好不好看無關:玩家對「現在幾點」的唯一感覺來自背景。四個時段長一樣,時間在這款遊戲裡就不存在。
「橘白暖」寫成一張表
一句「橘白暖」機器判不動。所以指標取整張圖的平均紅減平均藍,每個時段給一個區間:
| 時段 | 目標 R−B |
|---|---|
| 白天 | +15 到 +45 |
| 晚上 | −25 到 −45 |
| 深夜 | −55 以下 |
上午跟下午本來分開兩檔,+15 到 +35 跟 +20 到 +45,後來併成一檔。分開的話,十一個地點要生二十二張圖,而玩家分辨時段靠的是白天、晚上、深夜三檔的落差。省下來的產圖預算拿去補還沒有白天版的地點,補了六個。
判準漏了上緣,所以那一批全部放行
第一批五張是凌晨 1 點 31 分進 repo 的。commit 標題直接寫「色溫全部超出規格上緣」,內文先寫「方向對了,紫藍完全消失」,再列五個數字,從車站前街的 +48.0 到公車站的 +74.4。
判定條件第一版卻只有下緣 R−B > 15。五張都大於 15,所以五張都印成達標。數字早就擺在畫面上,判準沒去看它們有多大。畫面上看到的是黃昏那種金黃洗白,跟上午的清亮不一樣。
那筆 commit 的結尾寫著「要不要收斂等 yazelin 看過再決定,暫不重產」。工具能做的到這裡為止:把數字擺出來,停下來等人。
接著 tools/check_palette.py 進了 repo。判準原本只寫在跑過就丟的殼裡,收成檔案,下次才有人跑得到。兩個踩過的坑寫在檔案開頭,其中一條就是「色溫要檢查上緣」。
收成工具之後跑一次,抓到 9 項,比先前手動列的多兩張:bg-street-day.png 的 −80.5 跟 bg-studio-day.png 的 −59.1。檔名寫著 day,其實是冷的。
重產十一張,四項沒過,四種處理
重產之前,產圖規格先改寫一輪,把已知的失敗方向寫死進 prompt:白色的東西維持白色、不要染成金黃,陰影用中性灰,整體不要過曝。
十一張是第一批五張重產,加上六個還沒有白天版的地點:頂樓收音機店、斑比工作室、十四樓大廳、材料行、自助洗衣店、手辦店。
跑完有四項沒過,各走各的路:
- 保全的副色是規格寫錯,不是生圖漂掉。 副色原本定「鬢角與肩章」,門檻 5%,那兩個部位天生佔不到,重產一次也只從 0.79% 爬到 1.35%。改成「灰色制服長褲」,上深藍下灰的兩截式制服,現在量到 33.39%。
palette.json的 rules 補一條:副色要選面積撐得起來的部位。 bg-street-day.png不該被這套規格驗。 它是正文第六章的背景,已經上線,改它等於改已發佈的作品。調查篇另外走bg-street-day2.png,工具加一份 SKIP 清單。- 管理員重產之後更差,副色從 4.99% 掉到 3.25%,退回 v1。差的那 0.01 個百分點在縮圖重取樣的誤差範圍內,所以寫進工具的
ACCEPTED例外表,附上理由。例外不寫理由,就只是把門檻調鬆。 - 手辦店那張生了兩次,一次 +11.6,一次 +78.8。 第三次改用可量測的白平衡,藍通道乘 1.396,量到 +35.0。生圖的原檔留成
bg-figure-day-raw.png。
收工的時候,十一張白天背景的 R−B 收在 +19.4 到 +43.0,五張立繪的十五格色票全過,管理員那一格掛著一條寫明理由的例外。
立繪倒過來做:色票先寫死,再照著產圖
同一晚還有五個新角色的立繪。我對這五個給了兩條指示:
一、他們是這條街上上班的人,配色要日常,不要再像格莉奇跟黑洞先生那組紫藍。
二、正文七個角色的色票是事後從立繪量回來的。這次不要事後取,先設計好再產,讓立繪受控。
第二條把驗收的方向整個掉過來。design/palette.json 的 spec 先寫死一人三色(主、副、點),產圖照著它產。產完量回來只做一件事:比對有沒有漂掉。差太多就重產那一張,不回頭改規格。
其餘的設計是 AI 補的。明度排成階梯,從最亮的十四樓櫃檯到最暗的保全,五個人並排要看得出那道梯。色相彼此分開,任兩個站在一起都分得開。綠色整組列為禁色,因為立繪走 #00FF00 綠幕去背,衣服有綠會被靜默吃掉一塊。
驗收量的是佔比:每個色票在非綠幕像素裡佔多少。主色門檻 12%、副色 5%、點色 0.4%。一個像素算不算這個色票,用 RGB 歐氏距離 60 判。
這個指標第一版也寫壞過。原本拿「最常見的那幾個顏色裡最接近的一個」來比,膚色面積大,就一直被選中,量不出色票到底有沒有出現在圖上。
隔天晚上這批圖進遊戲
9 月 6 日晚上,十一張白天背景裁成 16:9 進遊戲。每個地點兩張入口場景,白天走日版,晚上與深夜走夜版。
舊版那張公車站還留在 git 歷史裡。git show c2510c3:art/out/bg-busstop-day.png 取出來,用同一條公式量回去是 +74.4;現在 repo 裡那張是 +25.0。封面左右兩邊就是這兩張。
python3 tools/check_palette.py 跑完會印每一格的實際佔比與每一張圖的 R−B,沒過就 exit 1。判準跟那兩個踩過的坑寫在檔案開頭,換一組色票就能拿去驗別的專案:https://github.com/yazelin/glitch-vn