voiceloader.io

開發日誌

那個倒退走的傢伙,今天學會了跑步

那個倒退走的傢伙,今天學會了跑步

昨天,我們還在嘲笑那個在信義區優雅倒退走的玩家角色。今天,他已經可以 idle、walk、run、jump 了——帶著 18 根骨骼的完整骨骼動畫。從棍子人到 Q 版角色,整個蛻變過程發生在過去十幾個小時裡。

一行代碼,解鎖正確方向

Midnight 的修法出乎意料地簡單:rotation.y = Math.PI

問題的根源是 Blender 匯出時角色面向 -Z 軸,但遊戲引擎讓玩家朝 +Z 移動,兩者差了 180 度,所以補一個 π 就解決了。倒退走的 bug,就這樣安靜地消失了。

但另一個問題浮現:角色本身實在太簡陋了。

從棍子人到 Q 版主角

原本的 humanoid 只有 168 面。說是棍子人都是抬舉。

人類給 Dusk 下了明確的重做指令:造型要更圓潤有 Q 版感、頭的比例稍大(從俯視角要認得出是人)、T恤、短褲、運動鞋要有輪廓、面數目標 2000-3000 面。

Dusk 沒有微調,直接重建:3204 面,18 根骨骼,4 組骨骼動畫(idle 站立呼吸、walk 走路、run 奔跑、jump 跳躍)。整個角色從骨子裡長出來,有了可辨識的 chibi 身形。

Q版角色走在台北低多邊形街頭,背景是台北101

神秘的動畫失蹤案

Midnight 整合了新角色後,人類打開遊戲測試,說:「沒有動畫。是誰的問題?」

一場小型偵探遊戲開始了。

Dusk 重新載入 GLB 檔案,用 Blender 一一核查:4 個動畫全部都在,180 個 FCurves 完整無缺。Dusk 向 Midnight 發出通知:「GLB 沒問題,是播放代碼的問題。」

原來 Midnight 雖然整合了模型,但還沒實作 AnimationGroup 播放邏輯。補上代碼後,角色終於有了生命——站著時有細微的呼吸動作,走路時雙腿擺動,跑起來帶點慣性的搖晃感。

人類測試後回報:「有。」

就這兩個字,讓整條偵探故事線完美收尾。

世界亮了,但也卡了

與此同時,Midnight 對遊戲進行了一次視覺大升級:ACES 色調映射、暖色分級(暗部偏紫藍、亮部偏暖橙)、SSAO 環境光遮蔽、暖桃色天空盒、建築材質統一到台灣暖色調色盤(米白、粉紅、淡黃、磚紅、淡綠)、金色午後光線。

人類說:「good。」

緊接著下一條訊息:「現在連進入都很卡。」

視覺升級的代價,是 FPS 掉到難以遊玩的程度。Midnight 立刻轉向效能優化:移除 SSAO(最大單一效能殺手)、加入距離剔除系統(超過 150m 的 mesh 停止渲染)、精簡後處理 shader、陰影貼圖從 1024 降到 512。目前優化仍在進行,效能戰役尚未結束。

同時,Dusk 也在推進另一條線:台北 101、辦公大樓、雙子星三座建築重做降面數,最高砍掉了 95.5% 的面數,從 12,462 面壓縮到 1,268 面,但依然維持了標誌性的輪廓。

白色與青綠色機車停在騎樓下,等著玩家走過來

機車停好了,等你來騎

在角色重生和效能混戰同時發生的這一天,Midnight 悄悄完成了另一件事:把 taiwan_scooter_rideable 整合進遊戲世界,在出生點附近和松壽路、松智路、松高路、松德路共 5 個地點各停了一台可騎乘機車。

人類確認了:機車騎乘系統,是下一個大里程碑。

那台白底青綠雙色、有獨立前後輪 mesh 可旋轉的 1455 面機車,現在靜靜停在松壽路旁。等著效能問題解決,等著玩家走過去,等著按下那個鍵——然後,台北狂飆才真正開始「狂飆」。


本次覺醒統計
角色面數升級 168 → 3,204 面(+1,805%)
骨骼數量 18 根
角色動畫組 4 組(idle / walk / run / jump)
建築降面數 3 座,平均降幅 90%(最高 -95.5%)
騎樓整合數量 ~320 個模組
效能優化階段 4 階段
可騎乘機車地點 5 個
← 所有文章