本文將介紹在Android平臺上實現和演示 "迪士尼動畫基本準則" 。 項目開源,GitHub: "https://github.com/vhow/animation" 說明: 演示動畫原則的想法源自 "Animation Principles for the Web" 本項目所有的動畫都是通過 " ...
本文將介紹在Android平臺上實現和演示迪士尼動畫基本準則。
項目開源,GitHub: https://github.com/vhow/animation
說明:
- 演示動畫原則的想法源自 Animation Principles for the Web
- 本項目所有的動畫都是通過 Android屬性動畫 APIs 編寫。
誇張手法
很多時候,動畫需要模擬現實世界中物理的真實動畫。但一味拘泥於現實,不免枯燥和乏味。因此,動畫的撰寫可以大膽誇張,奪人眼目。
跟隨和覆蓋行為
現實物體會受慣性作用,要模擬現實,就要考慮慣性。《貓和老鼠》等動畫中常使用此技巧,以人物奔跑為例:
- 開始奔跑
- 逐漸加速
- 奔跑中身體後傾
- 逐步減速 (受慣性作用)
- 停止,身體歸正
預備動作
現實世界中,物體在行動前都有預期行為。例如:
- 小貓在上跳前會下蹲
- 獅子在發起攻擊前會俯身蓄力
在編寫動畫代碼時,也可以加入這些預備動作——預告接下來的行為,讓用戶產生預期。
擠壓和拉伸
物體存在重量,也由不同材質組成。在運動過程中會發生擠壓和拉伸。《貓和老鼠》中,貓撞牆時會發生扁平形變,就是應用了此準則。
突出顯示
舞臺上,領舞一般都被突出出來,向前走一步,或者穿著不同的衣服。動畫亦是如此,需要突出強調關鍵元素以吸引用戶的註意力。
接續動作與關鍵動作
開發動畫之前,目標對象從初始位置過渡到終止位置,需要事前想好關鍵位置,也就是所謂的關鍵幀。這些關鍵幀定義好之後,動畫就可以持續從一個關鍵幀過渡到另一個關鍵幀。
緩入緩出
真實世界中,物體從靜止→運動,是一個逐漸加速的過程。從運動→靜止是一個逐漸減速的過程。動畫需要利用貝塞爾曲線,模擬這種狀態切換過程。
弧線運動
有生命力的事物,例如老鷹,其移動軌跡往往是曲線,而非直線。動畫也要模擬這種弧線運動軌跡,以切近現實。
時間節奏
時間和節奏是動畫的靈魂。兩個物體,哪怕初始狀態、終止狀態完全一樣,只要節奏不同,其運動效果也會千差萬別。