After Effects 表達式自動化動畫教學:用程式碼讓動態設計事半功倍
做動態設計做到後來,你會發現最花時間的不是創意發想,而是那些重複性的微調工作。調關鍵影格、對齊時間軸、手動設定每一個圖層的動畫參數⋯⋯有時候一個五秒的動畫要花兩小時在這些瑣事上。學會 AE 表達式之後,我的工作效率至少提升了三倍,真的不誇張。
為什麼要學 AE 表達式
AE 表達式本質上就是 JavaScript(嚴格來說是基於 ExtendScript 的 JavaScript 子集),它可以用程式碼來控制圖層的任何屬性:位置、旋轉、縮放、透明度、顏色,甚至是效果的參數。
最大的好處是自動化。想像你有 50 個文字圖層,每個都要有一個從下往上飄進來的動畫,而且每個之間要延遲 0.1 秒。如果手動設關鍵影格,你會瘋掉。但用表達式,三行程式碼就搞定。
另一個好處是動態連結。你可以讓一個圖層的動畫根據另一個圖層的狀態自動改變。這在做複雜的 Motion Graphics 時特別有用,改一個地方其他地方就會跟著調整。之前寫過的AE 表達式入門教學有更基礎的說明,這篇會著重在進階的自動化技巧。
表達式基礎:語法與常用函數
要在 AE 裡寫表達式,按住 Alt 鍵點擊任何屬性旁邊的碼表圖示就可以了。跳出一個文字框,你就可以開始寫程式。
幾個最基本的概念:value 代表屬性原本的值,time 是目前的時間(秒),index 是圖層的索引編號。這三個變數大概佔了 80% 的表達式使用場景。
常用的函數包括:Math.sin() 和 Math.cos() 做週期性運動、linear() 和 ease() 做數值映射、random() 產生隨機值。如果你有寫過任何程式語言,上手會很快。
必學表達式:wiggle 與 loopOut
wiggle() 大概是 AE 裡面最多人用的表達式了。它會讓屬性在原本的值周圍隨機晃動,製造出有機的、手繪感的效果。語法是 wiggle(frequency, amplitude),frequency 是每秒晃動的次數,amplitude 是晃動的幅度。
比如在位置屬性上寫 wiggle(3, 15),圖層就會每秒晃動三次,幅度是 15 像素。這在做相機震動、手持感、或是漂浮效果的時候超好用。
loopOut() 則是讓關鍵影格動畫無限循環。你只要設定好一段動畫的頭尾關鍵影格,然後在表達式裡加上 loopOut("cycle"),動畫就會一直重複播放。其他選項還有 "pingpong"(來回)跟 "offset"(偏移累加),各有不同的效果。
時間驅動動畫:用 time 創造律動感
用 time 變數可以創造出跟時間掛鉤的動畫效果。最經典的應用是做旋轉:time * 90 就是每秒旋轉 90 度,完全不需要設關鍵影格。
更有趣的是結合三角函數做週期運動。在 Y 位置上寫 value + Math.sin(time * 3) * 50,圖層就會像呼吸一樣上下浮動。再加上 Math.cos 控制 X 位置,就能做出圓形或橢圓形的軌道運動。
我最常用的一個技巧是「彈跳效果」。寫一個結合衰減跟正弦函數的表達式,讓物件落下之後像彈力球一樣彈幾下才停住。這比手動調貝茲曲線簡單太多了。
屬性連結:讓多個圖層同步動作
表達式最強大的功能之一就是跨圖層連結。你可以用 thisComp.layer("圖層名稱") 去取得其他圖層的屬性值,然後拿來計算。
實用場景一:做一排文字的波浪動畫。每個字母圖層的 Y 位置寫 value + Math.sin(time * 4 - index * 0.5) * 30,利用 index 產生延遲,整排文字就會像波浪一樣起伏。
實用場景二:讓一組圖層跟著控制圖層動。建一個 Null 圖層當控制器,其他圖層的屬性都連結到這個控制器。這樣你只要動控制器,整組動畫就會跟著變。
實用場景三:做倒數計時器或進度條。用表達式讀取 slider 的值,然後映射到文字或是形狀圖層的屬性上。客戶要改數字的時候,拉一下滑桿就好。
實戰案例:五個常用自動化動畫
案例一:自動淡入錯開動畫。在透明度上寫一個根據 index 延遲的表達式,50 個圖層一次搞定,每個自動錯開 0.1 秒淡入。
案例二:呼吸燈效果。透明度用 (Math.sin(time * 2) + 1) / 2 * 100,數值會在 0 到 100 之間平滑變化。
案例三:跟隨路徑的粒子。用 createPath() 搭配 pointOnPath() 讓多個粒子沿著同一條路徑移動,但各自有不同的速度跟偏移。
案例四:自適應字幕條。字幕條的寬度根據文字長度自動調整,用 sourceRectAtTime() 取得文字的寬度,再映射到形狀圖層的 size 上。
案例五:音頻驅動動畫。用 audioLevels 取得音樂的振幅,映射到元素的大小或位置上,做出跟音樂節拍同步的視覺效果。這招在做Lottie 動畫的時候也很好用。
效能優化與除錯技巧
表達式太複雜會拖慢預覽速度。幾個優化建議:盡量避免在表達式裡做太多圖層查詢(thisComp.layer() 很吃效能)、把常用的計算結果存進變數、用 posterizeTime() 降低表達式的計算頻率。
除錯的話,AE 會在表達式有錯誤的時候顯示紅色警告。常見的錯誤包括:屬性維度不匹配(位置是二維陣列,不能直接跟數字相加)、圖層名稱打錯、以及忘記分號。
進階的除錯技巧是用 try...catch 包住表達式,這樣就算出錯也不會讓整個合成掛掉。如果你對更多 AE 的 AI 輔助工作流有興趣,也推薦看看AI 輔助動態設計工作流跟Spline 3D 網頁動畫教學,把不同工具結合起來用效果更好。表達式學起來可能有點門檻,但一旦上手了,你會發現自己再也回不去手動設關鍵影格的日子了。
繼續閱讀
After Effects 2026 新功能完整介紹:向量工作流與 3D Substance 材質
After Effects 2026 帶來了哪些新功能?向量工作流升級、免費 3D 材質庫、可變字體動畫——一次看完所有更新。
相關文章
After Effects 2026 新功能完整介紹:向量工作流與 3D Substance 材質
After Effects 2026 帶來了哪些新功能?向量工作流升級、免費 3D 材質庫、可變字體動畫——一次看完所有更新。
After Effects Shape Layer 動畫教學:用形狀圖層打造專業 MG 動態設計
想做出那種流暢又有質感的 Motion Graphics 動畫嗎?Shape Layer 是 After Effects 裡最強大也最被低估的功能之一。這篇教學帶你從零開始,用形狀圖層打造專業級的 MG 動態設計。
你可能也喜歡
探索其他領域的精選好文