現(xiàn)如今,優(yōu)秀的界面動畫很能讓人產(chǎn)生深刻印象,甚至是帶來驚喜。它一方面表達(dá)了界面之間的交互過程,解釋說明如何使用應(yīng)用,另一方面也能正確引導(dǎo)用戶的注意力。在瀏覽關(guān)于動效的文章時,我發(fā)現(xiàn)幾乎所有的文章都只描述了特定的案例或者關(guān)于動畫的一般事實,但是我還沒有遇到過任何一篇文章能夠清晰的描述所有關(guān)于界面動畫的使用規(guī)范。在這篇文章中我不會寫任何新的知識,我只是想把所有的主要原則和規(guī)范做一個收集歸納,這樣就能便于其他設(shè)計師進(jìn)行快速決策了。
動畫的速度和持續(xù)時間
當(dāng)界面元素改變他們的狀態(tài)和位置時,動畫的持續(xù)時間應(yīng)該以用戶能注意到又不用等待為標(biāo)準(zhǔn)。
合適的動畫時長,既不要太快也不至于慢到讓用戶打哈欠。
大量的研究發(fā)現(xiàn)在界面中最優(yōu)的時間是200-500ms。這個數(shù)字是根據(jù)人類大腦的特殊性得出來的。任何小于100ms的動畫是人類很難感知到的,而其他大于1秒的動畫又會讓用戶覺得有些延遲,不夠流暢。
動畫的持續(xù)時間是使得界面流暢的關(guān)鍵
在手機(jī)上,谷歌設(shè)計規(guī)范同樣建議動畫的持續(xù)時間在200-300ms為宜。在平板電腦上,這個時間會稍微長30%,大約在400-450ms。原因很簡單,在更大的屏幕上,元素變化的位置路徑會更長?;诖?,在可穿戴設(shè)備中,持續(xù)時間又要縮短30%了,大約在150-200ms,因為小屏幕上元素變化的位置路徑會更短。
設(shè)備的大小會影響動畫的持續(xù)時間
在網(wǎng)頁上又會是另外一種方式。由于我們習(xí)慣于在瀏覽器中快速打開網(wǎng)頁,所以我們也希望在不同的狀態(tài)之間能夠快速切換。所以,在網(wǎng)頁上的動畫應(yīng)該要比在手機(jī)上持續(xù)時間少2倍多,在150-200ms之間。一旦超過這個時間區(qū)間,用戶就會覺得網(wǎng)頁是不流暢的,或者覺得是不是網(wǎng)絡(luò)有了問題。
但是,如果你是在頁面中創(chuàng)建一些裝飾性的動畫或者目的是為了吸引用戶的注意力,此時就應(yīng)該拋棄這些規(guī)范,時間你可以做的更長一些。
大界面中的動畫就一定是慢的嗎?并不一定。
還需要記住的一點就是,無論在什么平臺,動畫的持續(xù)時間不僅跟它的移動距離有關(guān),還跟它本身的大小有關(guān)系。小的元素或者變化不大的動畫應(yīng)該要移動的更快,而大的元素或者復(fù)雜的元素持續(xù)時間稍長一些看起來會更好。
在大小相同的對象中,移動距離最短的物體應(yīng)該最先停止。小的對象與大的對象相比較,小對象移動速度顯得更慢,因為會產(chǎn)生更大的偏移量。
動畫的持續(xù)時間取決于物體的大小和移動的距離
當(dāng)對象發(fā)生碰撞時,根據(jù)物理原則,碰撞的能量必須在碰撞對象之間平均分布。而如果在界面中只能看到碰撞體的一部分回彈,往往會顯得不夠自然。因此,最好避免回彈效果,只在一些特殊情況下才用到它。
避免使用彈跳效果,因為它會分散注意力。
物體的運(yùn)動軌跡應(yīng)該是清晰銳利的,所以盡量不要使用動態(tài)模糊(在AE中做動畫效果除外)。即使是在現(xiàn)在最新的設(shè)備上也很難重現(xiàn)這些效果,不能把這種動態(tài)模糊的動畫效果應(yīng)用到界面中。
動畫中盡量不要使用動態(tài)模糊
列表項的出現(xiàn)應(yīng)該只允許有一個短暫的延遲。每一個新列表項的出現(xiàn)間隔應(yīng)該在20-25ms之間。元素出現(xiàn)太慢的話,會讓用戶感到很不爽。
列表項出現(xiàn)的動畫應(yīng)該在20-25ms之間。
緩動
緩動可以讓物體運(yùn)動的更加自然。這是動畫的基本原理之一,在?Ollie Johnston 和 Frank Thomas所寫的《 The Illusion of Life: Disney Animation》書中有詳細(xì)的解釋。
為了讓動畫看起來不會覺得太過機(jī)械,物體的運(yùn)動應(yīng)該會同時伴有一些加速度,就像現(xiàn)實世界中的運(yùn)動一樣,不會有絕對勻速的運(yùn)動形式。
緩動的物體會比較線性運(yùn)動的物體看起來更加自然
線性運(yùn)動
不受任何物理因素影響的運(yùn)動叫做勻速運(yùn)動,這種動畫在用戶眼中看來是非常的機(jī)械和不真實的。
所有的APP動畫都會用到動畫曲線。我將試著去解釋如何閱讀它們并說明它們的含義。下面的例子中,運(yùn)動就是勻速的,可以看到對象在相同的時間間隔中移動了相同的位置。
線性曲線
線性動畫在什么時候會用到?舉個例子,對象僅改變它的顏色和透明度的時候會用到。一般來說,當(dāng)一個對象不改變它的位置而只是改變狀態(tài)時,可以嘗試用線性動畫來改變狀態(tài)。
緩入或者說加速曲線
我們可以在曲線上看到,在相同時間內(nèi),位置的變化會越來越大。這就說明一個物體是在進(jìn)行加速運(yùn)動。
加速運(yùn)動曲線
這種曲線一般應(yīng)用在對象移出界面時,這些可能是系統(tǒng)通知,也可能只是界面中的卡片設(shè)計。但是記住,這種動畫曲線只是會用在物體移出界面時,而反過來就不適用了。
加速曲線應(yīng)用在物體移出界面時
動畫曲線有助于表達(dá)正確的情緒。在下面的例子中,物體動畫的持續(xù)時間和位移大小都是相同的,但你會發(fā)現(xiàn)即使是曲線上一些微小的變化也會讓你看動畫的感受不同。
當(dāng)然,通過改變曲線,可以讓物體的運(yùn)動顯得更加真實自然。
相同的持續(xù)時間和相同的位移變化,但是會有不同的感受
緩出或者說減速曲線
與緩入恰恰相反,物體的運(yùn)動在開始時位移變化很大,但是后面會越來越小直到最后完全停止。
減速曲線
這種類型的運(yùn)動曲線通常是用在物體進(jìn)入界面中時——快速進(jìn)入屏幕然后再慢慢停下來,在不同卡片或?qū)ο髲钠聊煌膺M(jìn)入界面時可以應(yīng)用上。