嗨咿,我是illumi,昨天講到用lottiefiles的既有動畫放到網頁上,今天來說說怎麼把各位動畫大師的大作,壓縮到最小放到網頁上!
方式一(官方推薦)
方式二
方式三:在 GitHub 倉庫下載 ZIP → 解壓 → 取得 /build/extension
裡的 .zxp
→ 使用 ZXP 安装器。
方式四(手動安裝):
bodymovin.zxp
放入 Adobe 的 CEP extensions 資料夾中(Windows 或 Mac 路徑不同)。.plist
加入 PlayerDebugMode=1
,以啟用插件。方式五:使用 Adobe 官方第三方插件手動安裝流程參考說明。
方式六:使用 Homebrew-adobe 安裝(macOS):打開終端機輸入下方指令
brew tap danielbayley/adobe
brew cask install lottie
安裝後注意事項:
Edit > Preferences > Scripting & Expressions…
打勾「Allow Scripts to Write Files and Access Network」。Adobe After Effects > Preferences
裡做相同設定。如果是沒學過AE的資深工程師們想要體驗,可以像我下面一樣(動畫師們請跳過):
在 AE 裡做一個動畫,常見的安全素材有:
✅ 可以用的:
❌ 不要用的:
AE 特效類別 | 常見效果 | Lottie 支援度 | 備註 |
---|---|---|---|
Generate(產生) | Fill、Stroke | ✅ 支援 | 建議用 AE 的 Shape Layer 內建填色/描邊,最穩定 |
Gradient Fill / Gradient Stroke | ⚠️ 部分支援 | 部分版本會轉換成多色漸層 path,不一定正確 | |
Ramp(漸層)、Cell Pattern | ❌ 不支援 | 轉 JSON 會失效 | |
Blur & Sharpen(模糊/銳利化) | Gaussian Blur、Fast Box Blur | ❌ 不支援 | 可用 AE keyframe 做透明度或 scale 模擬 |
Sharpen | ❌ 不支援 | — | |
Color Correction(顏色校正) | Hue/Saturation、Tint | ⚠️ 部分支援 | Tint 可轉換,Hue/Saturation 有些失效 |
Levels、Curves | ❌ 不支援 | — | |
Distort(扭曲/變形) | Transform(位置/旋轉/縮放) | ✅ 支援 | 層級屬性支援完整 |
Corner Pin、Mesh Warp | ❌ 不支援 | 會被忽略 | |
Roughen Edges | ❌ 不支援 | 常見失敗案例 | |
Perspective(透視) | Drop Shadow | ❌ 不支援 | 建議改用 AE Shape Layer 的陰影模擬 |
Bevel Alpha、Bevel Edges | ❌ 不支援 | — | |
Stylize(風格化) | Glow | ❌ 不支援 | 常見失敗案例 |
Mosaic、Posterize | ❌ 不支援 | — | |
Simulation(模擬) | CC Particle World、Particular | ❌ 不支援 | 粒子完全無法輸出 |
Time(時間) | Time Remap | ❌ 不支援 | 可用 keyframe 曲線模擬 |
Transition(轉場) | Linear Wipe | ❌ 不支援 | 建議用 Mask 動畫代替 |
Text(文字動畫器) | Source Text | ✅ 支援 | 基本文字、透明度、位置、旋轉都支援 |
Animator(Character Offset 等) | ⚠️ 部分支援 | 有些複雜屬性不支援 | |
3D(3D 特效/空間) | 3D Layer、Camera、Lights | ❌ 不支援 | Lottie 完全不處理 3D 資訊 |
Expressions(表達式) | wiggle、loopOut | ⚠️ 部分支援 | 簡單數值可 Bake 到 keyframe |
複雜 JS 表達式 | ❌ 不支援 | 需轉換成 keyframe 才能輸出 |
.json
檔,這就是 Lottie 動畫!在 網頁裡使用 Lottie:
Web 使用安裝方式:
npm 安裝:
npm install lottie-web
Bower 安裝:
bower install bodymovin
CDN 使用:可透過 jsDelivr 或 CDNJS 引入 lottie.js
。
簡易範例:
<script src="js/lottie.js" type="text/javascript"></script>
<script>
lottie.loadAnimation({
container: document.getElementById('lottie'), // 指定容器
renderer: 'svg',
loop: true,
autoplay: true,
path: 'animation.json' // Lottie JSON 路徑
});
</script>
前面提到 Bodymovin 不支援 PNG 與影片檔,所以如果你要做的是「透明的動態素材」,例如煙霧、火焰、實拍人物,就不能直接輸出成 Lottie。
那該怎麼辦呢?
答案就是 輸出透明影片(WebM ) 再放到網頁上!這會是下一篇的重點。