· 6 MIN READ

十四秒的預算:開場的工程剋制

動畫工程

十四秒的預算:開場的工程剋制 封面插圖
圖 — 十四秒的預算:開場的工程剋制

一個 3D 開場從寫下第一行到被砍掉,最常見的死法不是做不出來,是做完之後用戶按了三次略過。十四秒要承擔「這是什麼網站」的全部第一印象,工程上它真正的規格書只有三個字:別擋路。

鏡頭的預算#

第一版運鏡是一條 Catmull-Rom,飛機和鏡頭都貼同一條曲線,鏡頭死死黏在飛機後腦勺。測出來的結果:像吊著桿的遙控車,每一顆轉彎都在暈。

改成兩條曲線之後問題立刻消失:飛機走自己的 planeCurve,鏡頭的曲線由飛機曲線取樣、沿切線往後 1.2m、往上 0.35m 生成。這個偏移讓鏡頭有了「拖曳感」——轉彎時離心力把視覺重心甩出去,飛機開始有重量。

第二個決定更反直覺:鏡頭不看飛機。lookAt 指向飛機前方 2m 的曲線點。看飛機的鏡頭會讓人一直找主體、找焦點,晕眩感全部來自這裡;看飛機前方的鏡頭讓觀眾和鏡頭一起「要飛過去」,飛機自然落在視野上方三分之一——剛好是構圖該在的位置。

速度的預算#

加速度曲線用 easeInOutCubic 是教科書答案,也是錯誤答案:收尾速度歸零,飛機像被無形的手按住。把末段 15% 換成慣性尾巴(速度衰減但不歸零,由降落滑行的位移吸收),同一組 keyframe 立刻從「動畫」變成「鏡頭」。

FOV 從 50 拉到 58 只發生在高速段,上限 62。全程開廣角的版本「更有速度感」,也像个遊戲錄屏——廣角是速度感的廉價替代品,窄鏡加背景速度線才是電影的做法。

模糊的預算#

運動模糊最貴的不是開銷,是錯誤的代價。背景糊是對的,主體糊是壞掉。用深度重建速度場、再拿飛機的 stencil 把主體模糊壓到 25%,兩步把「像壞掉了」的畫面救回「電影」。這一步沒有捷徑,也不該有。

收尾的預算#

開場結束的處理決定了「无缝」是否存在。降落後鏡頭必須停在首頁第一屏的視覺重心——這要求開場設計師和版面設計師是同一個人,或者至少共用一張構圖圖。光圈收束 0.5 秒,在同一幀內完成:卸載後處理、renderer.dispose()、取消動畫迴圈、清 texture 和 geometry、切 DOM、恢復滾動。任何一帧超過 50ms 的尾巴都會讓轉場「跳一下」,而那一下會蓋掉前面十一秒。

少做的清單#

以下每一項都是做過又刪掉的:SSAO(暗角加 contact shadow 紋理足夠)、 Lens flare 貼圖(程序化光斑用六邊形 ghost 就夠)、飛機的紙紋汙漬(泛黃就夠,髒了像道具)、第二段場景轉場(一個開場一個轉場,兩個就是貪心)。

十四秒的預算裡,每個「多加一點」都在借未來的信任,每個「少做一點」都還得起。克制的開場不是省錢,是把錢花在觀眾說不出但感受得到的地方——鏡頭的重量、主體的銳度、收尾的那一幀。