【AE表達式】AE循環(huán)的表達式有哪些?該怎么使用?AE循環(huán)表達式使用教程

圖/文 雷鵬
AE循環(huán)表達式是在動畫和特效制作中廣泛使用的一種技術(shù),它能夠極大地減少工作量并提高效率。在動畫制作中,循環(huán)表達式可以應(yīng)用于植物、頭發(fā)、肢體搖擺、燈光閃爍等方面,通過循環(huán)的動態(tài)效果,使得這些元素在畫面中更加生動、自然。對于植物的動畫效果,可以使用循環(huán)表達式實現(xiàn)樹枝的擺動、葉子的飄動等,使得植物的動畫更加逼真。在頭發(fā)的動畫制作中,循環(huán)表達式可以應(yīng)用于頭發(fā)的飄動、晃動等,使頭發(fā)的動畫更加自然流暢。對于肢體的動畫效果,循環(huán)表達式可以用來控制肢體的擺動、晃動,增加肢體的活力和真實感。在燈光閃爍的效果制作中,循環(huán)表達式可以用來實現(xiàn)燈光的周期性閃爍,創(chuàng)造出各種閃爍的節(jié)奏和效果。此外,在MG動畫制作中,循環(huán)表達式也被廣泛應(yīng)用,用于創(chuàng)建循環(huán)的圖形、粒子效果以及其他復(fù)雜的動畫效果。
一、AE中4種循環(huán)表達式,分別是:
loopIn(type = "cycle", numKeyframes = 0)
loopOut(type = "cycle", numKeyframes = 0)
loopInDuration(type = "cycle", duration = 0)
loopOutDuration(type = "cycle", duration = 0)
二、?4種循環(huán)表達式的相同之處
1、type的4種不同的循環(huán)類型"cycle/pingpong/offset/continue”使用相同;
Cycle://從頭開始一直循環(huán)范圍內(nèi)的動畫幀。
Pingpong://類似乒乓球,來回循環(huán)范圍內(nèi)的動畫幀。
Offset://以上一次循環(huán)結(jié)束的狀態(tài)開始下一個循環(huán)。
Continue://一直持續(xù)循環(huán)結(jié)束時的狀態(tài)
2、循環(huán)類型的含義
類型一、無限循環(huán)【type = "cycle"】
“cycle”是個圓形的類型的循環(huán),就是對一組動作進行循環(huán)。
【loopIn】來舉例
loopIn(type = "cycle", numKeyframes = 0)
則關(guān)鍵幀開始向前到入點循環(huán)關(guān)鍵幀的動畫,如分別為a、b、c這三個關(guān)鍵幀。那么它的循環(huán)模式就是abc、abc、abc.......到關(guān)鍵幀結(jié)束點停止動畫。(反復(fù)循環(huán)到關(guān)鍵幀結(jié)束點)
【loopOut】來舉例? ? ??
loopOut(type = "cycle", numKeyframes = 0)
從關(guān)鍵幀結(jié)束點向后循環(huán)關(guān)鍵幀的動畫,如分別為a、b、c這三個關(guān)鍵幀。而它的循環(huán)模式則是關(guān)鍵幀結(jié)束點開始向后循環(huán) abc、abc、abc.......(反復(fù)循環(huán)到出點)
類型二、來回循環(huán)【type = "pingpong"】
【loopIn】來舉例
loopIn(type="pingpong",numkeyframes=0)
“pingpong”循環(huán),它的功能類似于乒乓球的來回反彈。
則關(guān)鍵幀開始向前到入點循環(huán)關(guān)鍵幀的動畫,如分別為a、b、c這三個關(guān)鍵幀。而它的循環(huán)模式則是關(guān)鍵幀開始向后循環(huán) abc、cba、abc......(反復(fù)循環(huán)到出點)
類型三、偏移循環(huán)【type="Offset"】
【loopIn】來舉例
loopIn(type="Offset",numkeyframes=0)
“Offset”根據(jù)關(guān)鍵幀的位置信息計算出后續(xù)動畫的偏移值,用于從而影響運動軌跡。(如:上梯子,做一個動作,可自動循環(huán)后面上梯子的動作)
則關(guān)鍵幀開始向前到入點循環(huán)關(guān)鍵幀的動畫,如分別為a、b、c這三個關(guān)鍵幀。而它的循環(huán)模式是abcdefg.....直至運動到合成畫面外不可見。
類型四、持續(xù)循環(huán)【type="continue"】
【loopIn】來舉例
loopIn(type="continue")
則關(guān)鍵幀開始向前到入點循環(huán)關(guān)鍵幀的動畫,如分別為1、2、3這三個關(guān)鍵幀。而它的循環(huán)模式是-3+n、-3、-2、-1、1、2、3直至運動到合成畫面外不可見。
三、In和Out的區(qū)別,numkeyframes和Duration區(qū)別
1、loopIn的含義:?
例:loopIn(type="cycle",numkeyframes=0)
【loopIn】:關(guān)鍵幀開始向前到入點循環(huán)關(guān)鍵幀的動畫
在時間軸中,選擇一個關(guān)鍵幀作為起始關(guān)鍵幀。
在該關(guān)鍵幀上應(yīng)用"loopIn"表達式。
這樣,該關(guān)鍵幀之前的關(guān)鍵幀將被復(fù)制并循環(huán)播放,形成一個無限循環(huán)的動畫效果。
需要注意的是,"loopIn"表達式還可以附加其他參數(shù)來自定義循環(huán)的方式。例如,你可以使用"loopIn(type = “pingpong”)"來實現(xiàn)來回循環(huán)播放。
2.loopOut的含義:
例:loopOut(type="cycle",numkeyframes=0)
【loopOut】:從關(guān)鍵幀結(jié)束點向后循環(huán)關(guān)鍵幀的動畫,
在時間軸中,將一個關(guān)鍵幀設(shè)置為終止關(guān)鍵幀。
在該關(guān)鍵幀上應(yīng)用"loopOut"表達式。
這樣,在該關(guān)鍵幀之后的關(guān)鍵幀將被復(fù)制并循環(huán)播放,從而形成一個無限循環(huán)的動畫效果。
需要注意的是,"loopOut"表達式可以根據(jù)需要進行進一步的調(diào)整,以支持不同的循環(huán)方式和方式。例如,你可以使用"loopOut(type = “pingpong”)"來實現(xiàn)來回循環(huán)播放。還有其他參數(shù)和選項可以用于定制循環(huán)的行為。
3、numkeyframes的含義:
例:loopOut(type="cycle",numkeyframes=0)
? ? ?numkeyframes表示循環(huán)哪些關(guān)鍵幀,=0表示循環(huán)所有關(guān)鍵幀。
● 在loopIn中,numkeyframes=1表示前2個關(guān)鍵幀,=2表示前3個關(guān)鍵幀,以此類推。
●?相反在loopOut中,numkeyframes=1表示最后2個關(guān)鍵幀,=2表示最后3個關(guān)鍵幀,以此類推。
在實際使用中,也可以不寫。默認的的值是0。
4.Duration的含義:
例:loopInDuration ( type = "cycle", duration = 0 )
duration = 0時候一切遵循以上Out和In的基本解釋。
duration = 1,這里分為兩種:
第一種、loopInDuration(type = "cycle", duration = 1)? ??
duration = 1表示循環(huán)該套動作的前1秒內(nèi)的動作。
解釋:在當(dāng)前關(guān)鍵幀開始循環(huán)播放,循環(huán)的類型為 “cycle”,循環(huán)的持續(xù)時間為 1 秒。
參數(shù)說明:
“type”:循環(huán)的類型。可選的值包括 “cycle”、“pingpong”、“continue” 等,默認為 “cycle”。
“duration”:循環(huán)的持續(xù)時間。單位可以是幀數(shù)或秒數(shù),默認為 1 秒。
第二種、loopInDuration(type = "cycle", duration = 1)? ??
duration = 1表示循環(huán)該套動作的最后1秒內(nèi)的動作。
解釋:在當(dāng)前關(guān)鍵幀結(jié)束后循環(huán)播放,循環(huán)的類型為 “cycle”,循環(huán)的持續(xù)時間為 1 秒。
參數(shù)說明:
“type”:循環(huán)的類型??蛇x的值包括 “cycle”、“pingpong”、“continue” 等,默認為 “cycle”。
“duration”:循環(huán)的持續(xù)時間。單位可以是幀數(shù)或秒數(shù),默認為 1 秒。
四、如何控制循環(huán)表達式的開始和結(jié)束時間
示例:
timeToStart = 2; // 循環(huán)開始時間 timeToStop = 10; // 循環(huán)結(jié)束時間 if ((time > timeToStart) && (time < timeToStop)) { ? ?loopOut(type="Offset",numkeyframes=0); // 在指定的時間范圍內(nèi)循環(huán)播放(Offset方式) } else { ? ?value; // 不在指定的時間范圍內(nèi),保持原始值 }
?這段代碼的邏輯是檢查當(dāng)前時間是否在指定的時間范圍內(nèi)。
如果在開始時間和結(jié)束時間之間,則應(yīng)用循環(huán)表達式?loopOut(type="Offset",numkeyframes=0)
?來循環(huán)播放關(guān)鍵幀(Offset方式)。
如果不在指定的時間范圍內(nèi),則保持原始值不做循環(huán)處理。代碼中的?time
?是 AE 的內(nèi)置全局變量,表示當(dāng)前時間。
可以根據(jù)需要修改?timeToStart
?和?timeToStop
?的值來定義你想要的循環(huán)開始和結(jié)束時間。
同時,也可以根據(jù)需要更改循環(huán)的類型和循環(huán)次數(shù)等參數(shù)。
? 五、AE循環(huán)表達式使用參照表
1、loopIn ( type = "cycle", numKeyframe = 0 )
loopIn(type =?
"cycle/pingpong/offset/continue"
, numKeyframes = 0)
loopIn:
//向前循環(huán)動畫幀
Type:
//循環(huán)的類型
Cycle:
//從頭開始一直循環(huán)范圍內(nèi)的動畫幀
Pingpong:
//向乒乓球一樣,來回循環(huán)范圍內(nèi)的動畫幀
Offset:
//以上個循環(huán)結(jié)束的狀態(tài)開始下一個循環(huán)
Continue:
//一直持續(xù)循環(huán)結(jié)束時的狀態(tài)
numKeyframes:
//確定循環(huán)的幀數(shù),為0時,默認循環(huán)所有的幀;Continue沒有第二個參數(shù)
2、loopOut ( type = "cycle", numKeyframe ? = 0 )?
loopOut(type =?
"cycle/pingpong/offset/continue"
, numKeyframes = 0)
loopout:
//向后循環(huán)動畫幀
Type:
//循環(huán)的類型
Cycle:
//從頭開始一直循環(huán)范圍內(nèi)的動畫幀
Pingpong:
//向乒乓球一樣,來回循環(huán)范圍內(nèi)的動畫幀
Offset:
//以上個循環(huán)結(jié)束的狀態(tài)開始下一個循環(huán)
Continue:
//一直持續(xù)循環(huán)結(jié)束時的狀態(tài)
numKeyframes:
//確定循環(huán)的幀數(shù),為0時,默認循環(huán)所有的幀;Continue沒有第二個參數(shù)
3、loopInDuration ( type = "cycle", duration = 0 )
loopInDuration(type =?
"cycle/pingpong/offset/continue"
, duration = 0)
loopIn:
//向前循環(huán)動畫時間
Type:
//循環(huán)的類型
Cycle:
//從頭開始一直循環(huán)范圍內(nèi)的動畫時間
Pingpong:
//向乒乓球一樣,來回循環(huán)范圍內(nèi)的動畫時間
Offset:
//以上個循環(huán)結(jié)束的狀態(tài)開始下一個循環(huán)
Continue:
//一直持續(xù)循環(huán)結(jié)束時的狀態(tài)
duration:
//確定循環(huán)的幀數(shù),為0時,默認循環(huán)從0開始到結(jié)束幀的所有的時間;Continue沒有第二個參數(shù)
4、loopOutDuration ( type = "cycle", duration = 0 )?
loopOutDuration(type =?
"cycle/pingpong/offset/continue"
, duration = 0)
loopout:
//向后循環(huán)動畫時間
Type:
//循環(huán)的類型
Cycle:
//從頭開始一直循環(huán)范圍內(nèi)的動畫時間
Pingpong:
//向乒乓球一樣,來回循環(huán)范圍內(nèi)的動畫時間
Offset:
//以上個循環(huán)結(jié)束的狀態(tài)開始下一個循環(huán)
Continue:
//一直持續(xù)循環(huán)結(jié)束時的狀態(tài)
duration:
//確定循環(huán)的幀數(shù),為0時,默認循環(huán)從0開始到結(jié)束幀的所有的時間;Continue沒有第二個參數(shù)【AE教程筆記】只需要幾步,秒摳人物!免費教你使用AE摳像摳圖keylight
原創(chuàng)整理教程,分享請注明出處?。?!
文章來源:https://www.lovezheteng.com/notes/aebj/315.html
關(guān)注微信平臺:lovephoto588;
個人網(wǎng)站:https://www.lovezheteng.com/;
新浪微博:愛折騰的攝影大叔?
【AE表達式】AE循環(huán)的表達式有哪些?該怎么使用?AE循環(huán)表達式使用教程的評論 (共 條)
