Bodymovin是一款能夠?qū)E動(dòng)畫導(dǎo)出為Web動(dòng)畫的插件。它將AE中的動(dòng)畫轉(zhuǎn)換為JSON格式,以便在Web上使用。然而,許多用戶發(fā)現(xiàn)導(dǎo)出的JSON文件在Web上播放時(shí)掉幀或者產(chǎn)生其他問題。
在大多數(shù)情況下,導(dǎo)出的JSON文件掉幀是由于文件大小和復(fù)雜度引起的。當(dāng)您的AE動(dòng)畫非常復(fù)雜并且包含大量圖層時(shí),Bodymovin可能會(huì)導(dǎo)出龐大的JSON文件。這種情況下,Web瀏覽器可能會(huì)需要更多時(shí)間來解析文件,從而導(dǎo)致動(dòng)畫掉幀或無法播放等問題。
解決這個(gè)問題的一種方法是盡量減少AE動(dòng)畫中的圖層數(shù)量。您可以使用預(yù)合成將多個(gè)圖層合并為單個(gè)圖層,從而減少JSON文件的大小。此外,為了減少文件大小,您可以將圖像壓縮為JPG或PNG等格式,這樣可以減少文件大小,同時(shí)保持高品質(zhì)。
// 減少AE圖層數(shù)量的代碼示例 var preComp = app.project.items.addComp("preComp", 1920, 1080, 1, 5, 30); var layer1 = preComp.layers.addSolid([1.0, 0, 0], "Layer 1", 1920, 1080, 1, 5); var layer2 = preComp.layers.addSolid([0, 1.0, 0], "Layer 2", 1920, 1080, 1, 5); layer1.moveAfter(layer2);
如果您的AE動(dòng)畫仍然非常復(fù)雜,您可以通過使用Lottie進(jìn)行進(jìn)一步的優(yōu)化。Lottie是Bodymovin的一種應(yīng)用,可幫助您更好地管理和優(yōu)化JSON文件。
// Lottie的基本使用示例 var icon = bodymovin.loadAnimation({ container: document.getElementById('icon'), renderer: 'svg', loop: true, autoplay: true, path: 'data.json' // 指定JSON文件路徑 })
總之,減少AE圖層數(shù)量并將圖像壓縮為合適的大小是減少掉幀的有效方法。同時(shí),Lottie也是一個(gè)非常實(shí)用的工具,可幫助您進(jìn)一步優(yōu)化JSON文件的性能。