
前陣子發現,在 After Effects 裡按住 Option 拖拉 precomp 圖層的邊緣,可以快速改它的長度。但仔細看,它其實只是幫圖層做了 Time Stretch:外面看起來變長了,打開 precomp,裡面還是原本的長度,keyframe 一格都沒動,有點廢...

Time Stretch 我十多年沒用過,畢竟要改速度,Time remap 好控制很多。不過「拉一下就改長度」這個手感很方便,所以想想好像可以改善這個功能,所以才想到做這個腳本。
RealCompStretch 會做什麼
選好 stretch 過的 precomp 圖層,執行腳本:
外面的圖層回到 100%,看起來的速度完全一樣
precomp 變成新的長度
裡面每一個 keyframe、圖層頭尾、marker 都搬到對應的位置,ease 曲線保留
裡面的 precomp 也一起改
precomp 裡面如果還有 precomp,會一路往下處理,每一層的 stretch 都維持原本的值,只有長度和 keyframe 真的變動。
影片和音訊素材沒有 keyframe 可以搬,這類圖層會改成調整它自己的 stretch,讓素材真的跟著變慢,跑完會列出是哪幾個。
共用的 precomp 會先問你
同一個 precomp 如果在專案其他地方也有用到,直接改的話,那些地方也會一起變慢。所以腳本會在動手之前先列出還有哪些 comp 在用,讓你選:
Duplicate first(預設):複製一份獨立的來處理,其他地方完全不動
Change everywhere:全部一起改,其他用到的圖層自動補上反向的 stretch,畫面維持不變
Cancel:取消
安裝與快捷鍵
把 RealCompStretch.jsx 放進 After Effects 的 Scripts 資料夾,重開 AE,就會出現在 File > Scripts。
我自己是綁 Control+R,所以流程變成:Option 拖拉把 precomp 拉到想要的長度,按一下快捷鍵,就秒改成確定的新長度。Mac 上可以在系統設定的「鍵盤 > 鍵盤快速鍵 > App 快速鍵」,幫 After Effects 加一個選單標題叫 RealCompStretch.jsx 的快捷鍵,附的說明書 PDF 裡有完整步驟。
免費、自由定價,可以用在商業案子上:
FAQ
Q:開著 Time Remap 的圖層可以用嗎?
目前會跳過。Time Remap 的曲線如果有變速或倒播,裡面的動畫沒辦法只靠搬 keyframe 換算回來,這一版先只處理 stretch。
Q:用到 wiggle、loopOut 這類表達式會怎樣?
表達式不會自動改寫,因為它們是照時間算的,不會跟著 keyframe 一起變慢。跑完會列出這些表達式,讓你自己檢查。
Q:Windows 可以用嗎?
腳本是純 ExtendScript,理論上可以,但目前只在 Mac 的 AE 2025、2026 測過。用 Windows 跑過的話拜託跟我說一聲。
Q:改壞了怎麼辦?
整個操作是一個 Undo 步驟,按一次 Cmd/Ctrl+Z 就全部還原。保險起見,執行前還是先存檔。
延伸閱讀
作者:陳柏尹(PoYin),動態設計師,專注於把 AI 接進日常設計與動態工作流。
#設計廢文 #AfterEffects #動態設計