判準只寫了下緣,五張超標的白天背景全部印成達標

《格莉奇與黑洞先生》調查篇的白天背景,第一批五張量出來 +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:白色的東西維持白色、不要染成金黃,陰影用中性灰,整體不要過曝。

十一張是第一批五張重產,加上六個還沒有白天版的地點:頂樓收音機店、斑比工作室、十四樓大廳、材料行、自助洗衣店、手辦店。

跑完有四項沒過,各走各的路:

收工的時候,十一張白天背景的 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