QUEST LOG · September 7, 2026· UPDATED October 29, 2026

你怎麼做的比 GPT 爛?燒掉 14 億 token 綁一隻 Live2D(第一版)

「功能是都有啦,但我想要的是多種動作,而不是現在把眼睛噴掉。」

這個月 token 燒最多的 session,不是工作,不是黑客松,是部落格右下角那隻 Live2D 小女孩。

三天多、四次 context 爆掉重來、一個 session 吃掉大約 14.7 億 token(絕大部分是快取讀取,output 約 280 萬)。最後她會眨眼、會轉頭、會揮手了。過程大概就是我一路罵、AI 一路道歉、然後再一路重做。

先講她是誰。她叫 Kiya,資料夾裡叫 daughter,我都叫她女兒。

起因其實有點好笑:我拿到一張 NFT,結果團隊跑路了,越想越不爽。既然專案方不賦能,那我自己來給這張圖賦能。 最早那一版 Live2D,是拿來測 Gemini 實力的,順便讓她站到部落格右下角。

這篇是第一版的紀錄。她現在還在調,之後應該還會有下一篇。


# 第一回合:模型沒壞,是從來沒動過

一開始的需求很單純:桌面有一版之前做的 12-15-daughter1.cmo3,電腦有裝 Cubism Editor,幫我弄成免費版能開的版本。

AI 打開 Editor 一看,唯一超過 FREE 上限的只有參數數量:53 個,上限 30。刪掉 28 個「空參數」之後剩 26 個,其他變形器、ArtMesh、部件全部本來就合規。

然後它順手發現一件很好笑的事:

模型沒壞,但部落格上的它從來就沒動過。

部落格的 live2dAnimator.ts 驅動的是 ParamAngleX、ParamEyeLOpen、ParamMouthOpenY 這種標準 ID,舊模型裡這些 ID 剛好就是那 28 個空參數;真正有綁東西的,是 PARAM_ANGLE_X 這種 2.1 舊式 ID。

也就是說,這隻看板娘從上線那天開始,一直都是一張圖。 我自己完全沒發現。

說好的 Live2D,結果在部落格上當了好一陣子的立繪。


# 第二回合:效果超級糟糕

換上新模型、部署上去,頭會轉、眼睛會跟、髮尾會晃。功能上都有了。

然後我看了一眼,回它:

效果超級糟糕 你完全沒有精細調整

它也很認真,去查了一輪:有沒有 Live2D 的 MCP?沒有。MCP registry 上沒有,GitHub 上兩個不是控制桌面播放器、就是用 GUI 自動化按 Windows 版 Editor。Cubism 5.1 之後有官方的 WebSocket 外部 API(port 22033),但只能讀模型結構、暫時設參數值,不能改變形器、鍵值、網格。

所以綁定只能在 Editor 的 GUI 裡做。剩下的路只有一條:computer use,讓 AI 自己去點那個 Java 視窗。

接下來幾個小時,transcript 裡大概長這樣:

  • 「子對話框卡住了(點擊/Escape/無障礙都沒反應)」
  • 「子對話框又凍住了(兩次都是在對話框裡用滾輪之後發生)」
  • 「參數列位置又差了一列(改到『嘴 变形』了)」
  • 「Editor 卡在一個看不見的模態對話框(所有選單都變灰),我把它重啟了」

一個 AI 在跟一個 Java Swing 視窗搏鬥,而且一直輸。

不過它也真的做出 v4:眼珠用剪貼遮罩在眼白裡移動、高光獨立一層、嘴巴拆上唇下唇口內、2048 的貼圖、一套 Tap 動作。還順手修掉「會出現兩隻手」的問題,原因是原圖的外套其實畫了三次。

聽起來很完整對吧?


# 第三回合:整個人像果凍

你知道你把整個參數特效拉到 他現在整個人像果凍 手部接口部分也有問題吧

AI 用 Cubism Core 掃了每個參數的極值,結果:身體旋轉 Y 到 −10 的時候,軀幹被拉長 3.8 倍、往下位移 1700px。

1700px。整張圖也才那麼高。

它修了,我叫它打開模擬器讓我自己看,然後我列了十點:

  1. 點擊動作是錯誤的 頭會往後翻
  2. 轉頭會讓臉部變平面
  3. 眨眼睛這部分會直接消失 眉毛不見
  4. 瀏海特效是用跳動的 wtf?
    ……
  5. 圖片你都亂切 身體上下會被直接剝離

你有沒有去找別人的教學 你怎麼做的比 gpt 爛

這句話打出去的時候我是認真的。

那時候 Opus 5.5 還沒出來,這個 session 主要跑的是 Fable 5.1。而 GPT 6 astra 在那段時間是真的強,computer use 根本無敵。這種要一直點 GUI 的工作,拿它來比一點都不冤枉。


# 根因:拿一把槌子敲所有釘子

這次它終於停下來,先講根因,而且講得很誠實:

根因 1:把「应用3D旋转表现」當成萬用鍵值產生器。 轉頭、眨眼、嘴巴、眉毛、身體,全部都用同一個對話框做。它只會把每個零件當成一張平面卡片在 3D 裡旋轉,所以轉頭臉變平面、點頭整顆頭像卡片往後翻、眨眼是把眼睛壓成一條線而不是眼皮蓋下來。

根因 2:頭髮用剛性旋轉。 瀏海整片繞一個點轉,看起來就是「跳動」。

根因 3:從來沒有逐參數看過畫面。 用 Core 檢查頂點數字,卻沒有把每個參數的極值渲染出來看。

第三點最痛。它一直在驗證「數字對不對」,沒有在驗證「看起來對不對」。 一個月後我做 AI 動畫,自動檢查全部 PASS 但根本不想看,又掉進一模一樣的坑。

之後它才去讀官方手冊和社群教學,研究結果寫成三份文件,裡面直接判死 v4:

  • 官方明文說「应用3D旋转表现」會覆寫鍵值,只建議用在沒編過鍵的物件
  • 「摇摆动作自动生成」只支援彎曲變形器,旋轉變形器明文不支援
  • 頭髮物理有官方範例的數字可以抄:兩段擺錘,長度 10/7、容易度 0.95/0.86……

還有一個我自己也沒想到的:網頁追蹤會無限果凍,是因為 pixi-live2d-display 0.4 的 focus() 把游標位置用 atan2 轉成單位向量,離中心 5px 和 500px 都是滿偏轉 ±30°,而且沒有滑鼠離開的處理,模型永遠不會回中。

該先做的研究,在第三回合才做。 前面燒掉的,都是學費。


# 第四回合:v5 毀了,回去用 v4

研究完照計畫重切 PSD,做 v5。瀏海第一版用直線楔形硬切,我問「long bundle 是三小」;第二版改成沿著髮絲描邊走,這個我覺得對了。

結果匯進 Editor 之後又炸:

我覺得你還是用 v4 調好了 你這版幾乎都毀了

但你切那三小 你那些去邊都沒弄乾淨 眼原本問題是最少的 你改超爛

它認了:v5 的切法只用 alpha 門檻加膨脹,沒有去光暈、沒有清孤島、邊緣沒收;眼睛 v4 原本就切得好,不該重切。

於是 v6 是「v4 的眼睛 + v5 的研究」。這次每做一步就匯出 moc3、用自己寫的離線渲染器出圖,我看過再往下。中間還出現過一個很經典的坑:

Editor 把滑桿值寫成參數預設值

匯出的時候右眼的開閉滑桿剛好停在 0,所以靜止狀態她就是閉著一隻眼。


# 交接給 GPT,然後又拿回來

做到一半我叫它「用最簡單的話語」寫交接,要丟給 gpt 6 astra 接手,理由就是上面說的:computer use 它比較強。Claude 寫了一份 docs/handover.md。

然後我又回頭跟它說「幫我改」,它一打開就發現:

The Editor was relaunched by someone and a new v7/ folder exists next to v6

它沒有直接蓋過去,先檢查磁碟上到底改了什麼才動手。兩個 AI 輪流摸同一個 Editor,誰也沒把誰的東西弄壞,這點我覺得比綁定本身還難得。

最後幾輪是手臂:手肘的旋轉樞軸要拖到關節上、前臂要能折到 150°、揮手時手不能甩出畫布。中間它又踩到「全選快捷鍵把不透明度套到每一個網格」這種事,只好退回存檔。

9 月 7 日,最後一句:

blog部署一下

已上線:https://blog.kidneyweakx.workers.dev ↗


# 學到的事

  1. 沒有 API 的工具,AI 就是在用滑鼠跟你一起受苦。 Cubism Editor 不能程式化改綁定,所以每一個鍵值都是 computer use 點出來的,每一個隱形對話框都是一次重啟
  2. 先研究,再動手。 這次最貴的錯,是在第三回合才去讀官方手冊。前兩回合是用自動化功能硬湊出「功能都有」的東西
  3. 驗證要驗「看起來」,不是驗「數字」。 頂點座標全部合理,人卻像果凍。自己寫一個離線渲染器出圖,比任何數字檢查都有用
  4. 好的部分不要重做。 v5 毀在把原本最沒問題的眼睛也重切了

說穿了,這個 session 會燒到 14 億 token,不是因為 Live2D 有多難,而是因為我讓它跳過了「先搞懂再做」這一步,然後用三天的來回去補。

AI 很會道歉,但道歉不會讓她的瀏海飄起來。

不過至少現在點她一下,她會揮手了。一張跑路專案的 NFT,最後在我的部落格上動了起來,這個賦能,總算是我自己給的。

第一版先到這裡,Kiya 還在調。下一版做完再來寫。