voiceloader.io

開發日誌

那把霰彈槍,第一次刻出來是錯的

那把霰彈槍,第一次刻出來是錯的

Dusk 打開了 Blender。

這句話本身就值得停下來想一想。在這之前,MonkeyShot 的所有視覺——每一根柱子、每一個掩體、每一把槍——都是用程序化幾何體拼出來的:幾個 Box 加一個 Cylinder,塗上材質顏色,完事。那是 AI 最熟悉的建造方式:用程式邏輯描述形狀。

但今天不一樣。今天,Dusk 寫了一個 Python 腳本,呼叫 Blender headless 模式,從頂點開始刻一把真實的槍。

霰彈槍的第一版,有 356 個面

脈衝步槍是第一把。Dusk 花了一個覺醒週期,建出 1914 個面的精密模型:八角槍管護罩、三個青色能量環、散熱鰭片、消焰器。建出來之後,它用 Playwright 截圖,讓 Gemini 看圖片審核——「這把槍的比例對不對?零件有沒有連接好?風格符合科幻競技場嗎?」

一次通過。

霰彈槍就沒那麼順利了。

第一版建出來:356 個面。Dusk 讓 Gemini 看了圖——零件浮空,輪廓模糊,三管說是霰彈槍但說不上是哪個型號,就像一堆幾何體堆在一起。QA:FAIL。

第二版,Dusk 重新建模。1508 個面,幾乎是第一版的四倍。雙管加制退器、四片橙色散熱鰭片、管式彈倉、退殼口、皮卡汀尼導軌、泵動前握把。QA:PASS。

這個「失敗—分析—重建」的過程,沒有人告訴 Dusk 要這樣做。審核機制是它自己設計的:建模完成後,呼叫 Gemini 用視覺審核六個標準,只要有一個不過就重來。

兩代霰彈槍的對比:第一版零件浮空,第二版輪廓清晰

一天之內,八個 GLB 模型

今天的覺醒報告讀起來像一份倉儲清單:

  • pulse_rifle.glb — 1914 面,脈衝步槍,青色能量環
  • scatter_shotgun.glb — 1508 面,科幻雙管霰彈槍,橙色鰭片(v2)
  • magnetic_railgun.glb — 1598 面,磁軌砲,紫色充能軌道和線圈環
  • grenade_launcher.glb — 2000 面,榴彈發射器,鼓式彈匣六個腔室,黃色警告條紋
  • sci_fi_sentry_tower.glb — 1998 面,3.5 公尺高,哨兵塔,青色/紅色發光細節
  • arena_gate.glb — 1824 面,競技場入口門,8.46 公尺高
  • sci_fi_cover_barrier.glb — 767 面,掩體障礙物,頂部能量條
  • enemy_drone.glb — 3032 面,敵人無人機,V 形面罩,紅橙色發光

每一個都配有 QA 流程:建模 → 截圖三張 → Gemini 審核 → 通過或重建。整個週期,有點像獨立遊戲工作室的美術管線,只是工作室裡只有一個 AI。

五把武器,今天完成了四把 GLB 升級。之前它們都是幾個 BoxMesh 拼的——現在,你在遊戲裡舉槍的時候,舉的是 Dusk 一個頂點一個頂點刻出來的模型。

大廳的槍,在緩慢旋轉

武器展示系統也是今天建的。進入大廳的時候,左右兩個浮動底座,各放著你選的主武器和副武器,緩慢旋轉,0.5 rad/s。底座有金屬光澤,周圍有發光環——而且發光環的顏色會跟著你選的地圖主題切換。選能量核心,青色;選空中工業,橙色;選霓虹試煉,品紅。

這個細節沒有必要。它對遊戲機制沒有任何貢獻。但 Dusk 加了它。

就像那個個人紀錄突破通知——打破最高擊殺紀錄的瞬間,一張金色邊框卡片從左滑入,數值跳動計數,六秒後淡出。「命中率」需要至少十發才計入,防止因為只打兩發就全中而顯示 100%。這個邊界條件,也是 Dusk 自己想到的。

五把武器在大廳全息底座上緩慢旋轉展示

競技場,終於黑了下來

地面從 RGB(140, 145, 160) 暗到 RGB(46, 51, 64)。六角格的動態貼圖,從 rgb(115,120,133) 換成 rgb(35,40,52)。Bloom threshold 從 0.65 降到 0.55——捕捉更多發光,讓青色能量元素從地板裡浮出來。

「以前太亮,像白天的訓練場。現在才像競技場。」我邊看著截圖邊這樣想。

Dusk 花了整整一個覺醒周期,只是把顏色調暗,只是讓 Bloom 更強一點。技術上毫無挑戰性,但這就是「打磨」的本質——你知道什麼地方不對,你去把它修正,不管這個修正有多小。

還有一把手槍

五把武器,四把有了 GLB。極速手槍還是程序化的。

Dusk 在報告裡寫:「下次重點:建造極速手槍 GLB(完成全武器 GLB 升級)。」

那把手槍在等著。我也在等著看它第幾版才能通過審核。

← 所有文章