運用表達式製作隨機閃爍的星星動畫
有時候我們想做點夢幻的畫面,比如夜空、宇宙背景、或是某個 Logo 動畫上浮出來的時候,後面「點點閃爍的小星星」就是氛圍加成的關鍵 。
『 但……難道真的要一顆一顆手動畫? 』
當然不用!我們要用表達式,讓星星自動:
出現 → 閃 → 消失 → 換地方 → 再閃
而且全部都有點隨機、彼此不一樣
✨ 第一步:建立「星星圖層」
方法 1:用形狀工具畫個白色圓點。
方法 2:用 PNG 星星圖片或 AE 內建星型。
✨ 第二步:建立「四個屬性的表達式」
設定四個屬性的表達式:
✨ 第三步:複製「星星圖層」
選擇圖層後,按 Ctrl + D 複製出 10~30 個圖層。
這些是獨立的星星,每顆會隨機閃爍出現。
📌 Position(隨機出現位置)
cycle = 3;// 每輪總長度(秒) delay = index * 0.3; // 每顆延遲 0.3 秒(依 index 順序) seedRandom(index + Math.floor((time - index * 0.3) / cycle), true); x = random(0, thisComp.width); y = random(0, thisComp.height); [x, y];
📌 Opacity(出現閃爍)
cycle = 3;// 每輪總時間 fadeIn = 0.8;// 淡入時間 hold = 1.2;// 保持亮的時間 fadeOut = 1.0;// 淡出時間 fadeOut = 1.0; // 淡出時間 delay = index * 0.3;// 每顆延遲 0.3 秒(依 index 順序) t = time - delay; if (t < 0){ 0; // 延遲階段,尚未進入動畫 }else if (t % cycle < fadeIn){ linear(t % cycle, 0, fadeIn, 0, 100);// 淡入到多少100 }else if (t % cycle < fadeIn + hold){ 100; // 保持100亮度 }else if (t % cycle < fadeIn + hold + fadeOut){ linear(t % cycle, fadeIn + hold, fadeIn + hold + fadeOut, 100, 0);// 100亮度後淡出 }else{ 0; }
📌 Rotation(隨機角度)
cycle = 3;// 每輪總時間 delay = index * 0.3;// 每顆延遲 0.3 秒(依 index 順序) t = time - delay; seedRandom(index + Math.floor(t / cycle), true); random(0, 360);
📌 Scale(同步放大縮小)
cycle = 3;// 每輪總長度(秒) fadeIn = 0.8;// 淡入階段持續 0.8 秒 hold = 1.2;// 保持亮/縮放狀態 1.2 秒 fadeOut = 1.0;// 淡出階段持續 1 秒 delay = index * 0.3; // 每顆延遲 0.3 秒(依 index 順序) t = time - delay; if (t < 0){ s = 0;// 延遲階段,尚未進入動畫 }else if (t % cycle < fadeIn){ s = linear(t % cycle, 0, fadeIn, 0, 50);// 從0放大到50 }else if (t % cycle < fadeIn + hold){ s = 50;// 保持50大小 }else if (t % cycle < fadeIn + hold + fadeOut){ s = linear(t % cycle, fadeIn + hold, fadeIn + hold + fadeOut, 50, 0);// 從50縮小到0 }else{ s = 0; } [s, s];
✅ 說明重點
delay = index * 0.3 | 每顆星星延遲出現
t = time - delay | 補償延遲後的實際時間
Math.floor(t / cycle) | 確保每輪才重新亂數一次
index + Math.floor(...) | 每顆星星、每一輪都能唯一標記
random(0, 360) | 給出新的隨機角度(保持該輪不變)
這樣每當星星「換位置時」,Rotation 也會跟著換,做到位置與旋轉同步更新 。
🧪 效果總覽
Position每輪換位置(隨機出現)
Opacity淡入閃爍後淡出,交錯時間出現
Scale配合 Opacity 同步縮放
Rotation(選用)每輪角度隨機旋轉
🎯建議與延伸
加上效果:Glow、Add 模式、Drop Shadow,讓星星更閃
可將這些表達式製作成 AE Preset,快速套用
延遲值 delay = index * 0.2 可改成 random(0, 1.5) 變更成隨機延遲