如何用ae表達式快速實現延遲動畫

2016-6-12 09:44

如何實現延遲動畫 Hi,这次AE技巧分享的关键词是延迟。实现延迟方法各种各样,最简单粗暴的办法就是通过错帧来实现延迟效果,还有刚刚看了@十分钟设计的《制作延迟动画》,也是一种不错的办法。 理论上都可以达 ...

如何實現延遲動畫

Hi,這次AE技巧分享的關鍵詞是“延遲”。實現延遲方法各種各樣,最簡單粗暴的辦法就是通過錯幀來實現延遲效果,還有剛剛看了@十分鍾設計的《制作延遲動畫》,也是一種不錯的辦法。

理論上都可以達到我們想要的效果,而在這裏我想分享另一種我覺得更高效,更“科學”的辦法。

先用一个小案例来幫助我说明,如下图,如果要蓝色小球跟着紫色小球运动,并带有一定的延迟,你会怎么做呢?

如何用AE表达式快速实现延迟动画

利用錯幀的辦法來實現,雖然簡易,但是最大的問題是,到了後面動畫越來越複雜,只要你每次修改就相當于每次都重頭做一遍,非常不科學,也容易出問題,如下圖。

如何用AE表达式快速实现延迟动画

如何用AE表达式快速实现延迟动画


通過表達式語句實現延遲動畫

首先我們先來認識一下這個語句“valueAtTime(t)”。下面是官方說明文檔給出的定義:

返回类型:数值或数组。参数类型:t 是数值。返回属性在指定时间(以秒为单位)的值。

不難理解,其作用就是返回某一時刻的值。那麽我們應該怎麽運用他呢?

我們可以在表達式庫中隨時調用它:

如何用AE表达式快速实现延迟动画

先舉一個栗子:如兩個小球動畫,先設置好“ball3”的位移多關鍵幀,然後分別點開“ball3”和“ball1”的位置屬性,如下圖:

如何用AE表达式快速实现延迟动画

然後把“ball1”都位置屬性鏈接到“ball3”到位置屬性上(此步的具體操作可以參照我上一篇Ae文章),圖下圖:

如何用AE表达式快速实现延迟动画

做好位置屬性的鏈接後,最關鍵的一步,在表達式窗口“thisComp.layer("ball3").transform.position”後面加上“.valueAtTime(time-0.04)”(注意有他們之間有個小點點“.”,可以簡單把這個點理解爲“的”)。此時如下圖:

 

如何用AE表达式快速实现延迟动画

此時“ball1”的完整表達式應該是這樣的“thisComp.layer("ball3").transform.position.valueAtTime(time-0.04)”,用大白話翻譯一下,應該是這樣的:“這個合成的’ball3’圖層的此刻延遲0.04秒的返回值”,簡單一句話,“每次返回ball3延遲了0.04秒的值出來”。

效果如下圖:

如何用AE表达式快速实现延迟动画

以同樣的方法,再添加幾個球並設置不同的延遲時間的效果如下:

如何用AE表达式快速实现延迟动画

所有藍色小球都是鏈接紫色小球,完全重複紫色小球的動畫,因此你可以隨時隨地的改變紫色小球的動畫;想改變延遲時間,只需valueAtTime(time-x),x是你想要的延遲的時間,單位爲秒。

這樣就可以一勞永逸啦!如下圖:

 

如何用AE表达式快速实现延迟动画

利用“空對象”達到隨心所欲的鏈接

 

像上一篇文章提到的那樣,直接的屬性對屬性鏈接,子圖層會被“完全”到父圖層,就想上面的演示,所有小球最終都會重疊在一起。

所有我還是利用一個“空對象”,把它的位置屬性鏈接到目標圖層的位置屬性,之後再把要跟隨的圖層做個圖層子父級鏈接到空物體上。如下圖:

 

如何用AE表达式快速实现延迟动画

如何用AE表达式快速实现延迟动画

當然只要你理解了“valueAtTime”,你還可以把它用在其他屬性上面,如縮放,透明等等。如下圖:

如何用AE表达式快速实现延迟动画

就是這麽簡單實用,即學即用的延遲技巧,你學會了嗎?

这些都是平时工作琢磨总结的一些小技巧,如果大家觉得有所幫助,那就点个赞吧!让我有动力分享更多好玩实用的内容,还有很多关于Ae表达式的干货哦!谢谢观看!

29教程網提示您本教程已學習完畢!

關注我們新浪官方認證微博,隨時隨地,想學就能學!新浪認證微博:http://weibo.com/u/3928837770
關閉

站長推薦 上一条 /1 下一条



Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 桂ICP備12007517號-1 )