2019-12-26 純純
動(dòng)效設(shè)計(jì),是 UI 設(shè)計(jì)當(dāng)中不可或缺的一環(huán)。大家對動(dòng)效的認(rèn)知也從最初認(rèn)為動(dòng)效只是為了美觀酷炫,到逐漸理解了動(dòng)效對于提升用戶體驗(yàn)和產(chǎn)品需求的重要作用。而導(dǎo)致這種認(rèn)知的轉(zhuǎn)變,相當(dāng)一部分原因是因?yàn)橛布阅艿陌l(fā)展和動(dòng)效輸出方式的優(yōu)化。
因?yàn)閯?dòng)效實(shí)現(xiàn)的過程就是設(shè)計(jì)師和開發(fā)之間互相博弈的過程。設(shè)計(jì)師可能通過 AE 或者其他工具做出炫酷的效果,和開發(fā)對接就懵了。要么無法實(shí)現(xiàn),要么極其復(fù)雜。畢竟開發(fā)工程師要通過代碼把動(dòng)效實(shí)現(xiàn)出來,設(shè)計(jì)師得用開發(fā)所能理解的語言來描述。就如同你能完美地解出一道數(shù)學(xué)題一樣,讓你把解題思路教給別人,你可能就沒那么順暢了。一方面取決于你的表述能力,而更重要的是對方的理解能力。過去所廣泛采用的通過動(dòng)效標(biāo)注輸出給開發(fā)的方式,都存在還原度的問題。很多時(shí)候還原度達(dá)到 80% 可能都算比較好的了。
而今天要說到的 Lottie 不僅可以 100% 還原動(dòng)效,而且無需動(dòng)效標(biāo)注。直接通過 AE 輸出動(dòng)效文件給開發(fā)。開發(fā)人員直接調(diào)用,然后完美還原。
Lottie 是 Airbnb 開源的一個(gè)動(dòng)畫渲染庫,同時(shí)支持 Android、iOS、React Native 平臺(tái)。Lottie 支持渲染播放 AE 動(dòng)畫。通過 AE 插件 bodymovie 導(dǎo)出 json 文件作為動(dòng)畫數(shù)據(jù)。
Lottie 可以應(yīng)用在 UI 設(shè)計(jì)的很多場景中。以下舉出幾個(gè)常用例子。
1. 動(dòng)態(tài)啟動(dòng)頁
2. 動(dòng)態(tài)圖標(biāo)/按鈕
3. 空頁面
以上僅列舉了部分常用案例,其實(shí) Lottie 的應(yīng)用場景遠(yuǎn)不止這些。在 APP 的多個(gè)模塊中都可以運(yùn)用,那么我們要如何將 Lottie 運(yùn)用在自己的工作項(xiàng)目中呢?那就要了解 Lottie 的原理了。
前面已經(jīng)提過 Lottie 是 Airbnb 開源的一個(gè)動(dòng)畫渲染庫。我們可以理解為它是一個(gè)多功能的視頻播放器,開發(fā)人員需要將這個(gè)播放器部署到相應(yīng)的環(huán)境中。然后設(shè)計(jì)人員提供視頻(動(dòng)效文件)給開發(fā)人員,讓開發(fā)人員按照要求播放視頻文件,即可完成動(dòng)效的應(yīng)用。
假設(shè)該按鈕動(dòng)效一共10幀,整個(gè)按鈕切換分為兩部分,第一部分:從菜單切換到關(guān)閉(1-10幀);第二部分:從關(guān)閉切換到菜單(10-1)。我們可以讓開發(fā)通過以下控制方式,完成我們想要的效果。
按鈕動(dòng)效默認(rèn)顯示第1幀(菜單狀態(tài)),點(diǎn)擊按鈕以后開始播放動(dòng)效,動(dòng)效播放到第10幀的時(shí)候停止,并停在第10幀(關(guān)閉狀態(tài))。當(dāng)按鈕為關(guān)閉狀態(tài)(第10幀)時(shí),點(diǎn)擊按鈕以后動(dòng)效從第10幀倒放到第1幀(關(guān)閉狀態(tài)),并停在第1幀(菜單狀態(tài))。
通過以上方式就完成了對一個(gè)動(dòng)效按鈕的控制。而日常工作中我們可以靈活地運(yùn)用多種控制方式。
首先動(dòng)效的觸發(fā),可以是一次交互事件,比如點(diǎn)擊、滑動(dòng);也可以是監(jiān)聽到了廣播,比如網(wǎng)絡(luò)異常等。而觸發(fā)以后的動(dòng)效控制也多種多樣,可以從開始播放到結(jié)束,也可以進(jìn)行倒放;可以循環(huán)播放某一段動(dòng)效;也可以從某一幀播放到另一幀,或者某一個(gè)時(shí)間點(diǎn)播放到另一個(gè)時(shí)間點(diǎn);更多的控制方式需要大家在工作中慢慢挖掘。
Lottie雖然能夠滿足多種場景需要,但是并非支持所有的 AE 效果。設(shè)計(jì)制作時(shí),需要考慮該效果是否支持。否則,會(huì)導(dǎo)致出錯(cuò)或者所用效果無法生效。
上圖為 Lottie 支持的主要 AE 屬性,此處有刪減掉部分不常用的屬性??梢源蜷_以下鏈接查看完整版http://airbnb.io/lottie/#/supported-features
需要注意的是文檔中雖然說支持漸變,但是會(huì)出錯(cuò),所以大家在使用矢量圖形時(shí),請勿使用漸變效果。關(guān)于漸變效果的修復(fù)后續(xù)文章會(huì)提到,官網(wǎng)以后也會(huì)修復(fù)相關(guān)問題,但是沒有確切時(shí)間。
通過上圖我們可以了解到,Lottie 支持的 AE 屬性基本包含以下幾類:
(原文章來源于:https://www.uisdc.com/lottie-dynamic-design-guide)
藍(lán)藍(lán)設(shè)計(jì)的小編 http://m.sillybuy.com