AE(Adobe After Effects)是一款設計師常用的動效軟體,而循環動畫是設計中常見的一種元素。在AE中,循環動畫表達式可以幫助設計師實現自動循環播放,極大提高了效率。本文將從不同角度詳細講解AE循環動畫表達式的使用。
一、如何添加循環動畫表達式
在AE中添加循環動畫表達式很簡單,只需要選擇需要循環的動畫屬性,然後單擊滑鼠右鍵,選擇「表達式」>「循環表達式」,即可添加循環表達式。對於同一個屬性,也可以通過選中多個圖層,然後對這些圖層同時添加循環表達式。
下面是一個簡單的例子,通過添加循環表達式,實現了一個無限旋轉的形狀層:
//循環表達式
xRotation = 360; //旋轉一周
loopTime = 2; //兩秒為一個循環
loopDuration = thisLayer.outPoint - thisLayer.inPoint; //一個循環的時間等於圖層的總時間
cycles = Math.floor(loopTime / loopDuration) + 1; //計算需要循環的次數
value + xRotation * loops*time / loopDuration
二、循環動畫表達式在哪
在AE中,循環動畫表達式可以應用在幾乎所有的動畫屬性上,例如位置、旋轉、縮放等,甚至包括某些效果的屬性。通過添加循環表達式,可以讓這些屬性自動循環播放,避免了手動複製粘貼的操作,提高了效率。
三、AE無限循環表達式
在AE中,有一個特殊的循環表達式–無限循環表達式(loopOut)。這個表達式可以讓屬性在圖層的結束點自動循環回到開始點,從而實現無線循環。
舉個例子,下面是一個簡單的平移動畫,通過加入循環表達式和無限循環表達式,實現了循環播放:
//循環表達式
loopDuration = 3; //每個循環的時間為3秒
loopCount = 2; //循環2次
valueAtTime(time % loopDuration); //通過取模計算每個循環的值
//無限循環表達式
loopOut(type="cycle");
四、快捷鍵
在AE中,還有一些快捷鍵可以幫助設計師快速添加循環表達式,提高效率。例如在添加循環表達式時,可以使用快捷鍵「alt+click」直接添加循環表達式。在編輯表達式時,可以使用快捷鍵「ctrl+alt+F」打開表達式編輯器。
五、循環動畫表達式loopIn
除了loopOut,AE還提供了另一個循環表達式–loopIn,它可以讓屬性在圖層的開始點自動循環回到結束點,從而實現不同的循環方式。通過使用這兩個表達式的組合,可以創造出更加豐富的循環動畫效果。
下面是一個例子,通過loopIn和loopOut組合,實現了一個在整個合成中不停滾動的文字:
//循環表達式
loopTime = 2; //兩秒為一個循環
loopDuration = thisLayer.outPoint - thisLayer.inPoint;
cycles = Math.floor(loopTime / loopDuration) + 1;
//滾動文字,從頂部出現,到底部消失
start = [0, 0 - text.sourceRectAtTime().height];
end = [0, thisComp.height + text.sourceRectAtTime().height];
t = loops*time % loopDuration;
linear(t, 0, loopTime, start, end); //線性插值
//循環播放
loopOut(type="cycle");
loopIn(type="cycle");
六、循環動畫表達式添加了不動
循環動畫表達式添加了不動時,可能會出現一些問題。例如,下面是一個旋轉動畫,循環播放了三次後停止。但是當添加了hold表達式時,圖層卻變成了一直保持在最後一個狀態,而不是停在循環的最後一幀。
//循環表達式
xRotation = 360; //旋轉一周
loopTime = 2; //兩秒為一個循環
loopDuration = thisLayer.outPoint - thisLayer.inPoint;
cycles = Math.floor(loopTime / loopDuration) + 1;
//保持最後狀態
loopOut(type="cycle");
holdTime = loopDuration*(cycles-1);
if (time >= thisLayer.outPoint - holdTime) {
valueAtTime(thisLayer.outPoint - holdTime);
} else {
value + xRotation * loops*time / loopDuration;
}
為了解決這個問題,可以使用hold表達式,在循環播放結束時,讓圖層停在最後一個狀態,而不是一直保持在該狀態。例如:
//保持最後狀態
xRotation = 360; //旋轉一周
loopTime = 2; //兩秒為一個循環
loopDuration = thisLayer.outPoint - thisLayer.inPoint;
cycles = Math.floor(loopTime / loopDuration) + 1;
loopOut(type="cycle");
holdTime = loopDuration*(cycles-1);
if (time >= thisLayer.outPoint - holdTime) {
valueAtTime(thisLayer.outPoint - holdTime);
} else {
value + xRotation * loops*time / loopDuration;
}
七、循環表達式小結
循環動畫表達式是AE中常用的一種表達式,它可以幫助設計師實現自動循環播放,提高效率。AE中有多種循環表達式,包括loopOut、loopIn和無限循環表達式。在使用循環表達式時,可以使用一些快捷鍵來提高效率,同時注意一些常見問題,例如添加了hold表達式的問題。掌握循環動畫表達式的使用,可以讓設計師更加方便快捷地實現動畫效果,提高工作效率。
原創文章,作者:NQROP,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/330440.html