溫逸嫻
(河北工程大學(xué) 教育技術(shù)中心,河北 邯鄲 056038)
使用Adobe After Effects軟件制作一些科技商務(wù)風(fēng)格的片頭時(shí),經(jīng)常需要制作一些粒子或線條在空間穿梭的鏡頭。想要制造出震撼大氣的開場,少不了對粒子線條路徑的設(shè)計(jì)。蜿蜒曲折的游走路徑,配合攝像機(jī)不同的觀察角度,能體現(xiàn)出科技商務(wù)迅猛流暢、復(fù)雜多變、靈感碰撞等風(fēng)格特點(diǎn)。為了突出LOGO或主題,很多制作者將光效粒子的路徑在最后匯聚成一點(diǎn),形成爆炸狀,從而烘托出主題。
在Adobe After Effects軟件中繪制三維曲線,不像想象中的那么簡單,往往需要在正視圖、頂視圖、右視圖及用戶視圖等各種視圖中不斷切換,不停地添加、刪除關(guān)鍵幀和調(diào)整曲線的斜率。如果想制作一些精確且復(fù)雜的路徑曲線,靠手動(dòng)添加關(guān)鍵幀和調(diào)節(jié)曲線手柄幾乎做不到。但利用After Effects中的表達(dá)式,結(jié)合一些數(shù)學(xué)公式,可以輕松快速地解決這類問題。
在實(shí)際工作中,制作動(dòng)畫往往需要添加許多關(guān)鍵幀。有些時(shí)候,手動(dòng)添加、修改和刪除關(guān)鍵幀非常方便靈活,有時(shí)則非常困難。比如模擬物體彈性碰撞的時(shí)候,依靠手動(dòng)設(shè)置關(guān)鍵幀,很難表現(xiàn)得完美流暢。但是給屬性添加一個(gè)彈性表達(dá)式,就能模擬得非常逼真。另外,在一些非常有規(guī)律的周期變化和非常隨機(jī)無規(guī)律的變化中,一些有相互控制驅(qū)動(dòng)關(guān)系的動(dòng)畫元素或?qū)傩灾羞\(yùn)用表達(dá)式進(jìn)行動(dòng)畫制作,可以事半功倍[1]。
After Effects表達(dá)式的突出特點(diǎn)和優(yōu)勢是功能強(qiáng)大且靈活。它可以讓制作者無需手動(dòng)添加關(guān)鍵幀便可生成動(dòng)效,也可以對設(shè)置好的關(guān)鍵幀進(jìn)行控制,如循環(huán)往復(fù)運(yùn)行下去。表達(dá)式可以在不同圖層的各種屬性之間建立聯(lián)系。使用表達(dá)式關(guān)聯(lián)器為圖層屬性創(chuàng)建連接時(shí),制作者不需要寫任何代碼,After Effects可以自動(dòng)生成表達(dá)式,從而大幅提高工作效率。制作復(fù)雜的動(dòng)畫時(shí),表達(dá)式可以通過編寫代碼快速地控制和完成動(dòng)畫,還可以將含有表達(dá)式的動(dòng)畫保存成預(yù)設(shè),讓其他工程文件調(diào)用。表達(dá)式還可以轉(zhuǎn)換為關(guān)鍵幀。這些關(guān)鍵幀可以進(jìn)一步編輯[2-4]。
編寫After Effects表達(dá)式,使用的是JavaScript語言,所以在書寫時(shí)一定要注意以下幾點(diǎn)語言規(guī)范:
(1)字母要區(qū)分大小寫;
(2)中文的標(biāo)點(diǎn)是不能識別的;
(3)句末用“;”結(jié)束;
(4)除了字符串中的空格外,其他的空格和換行將被忽略[2-3]。
After Effects表達(dá)式有以下幾個(gè)比較常用的函數(shù)。
(1)“time”函數(shù),就是時(shí)間函數(shù)。它的值就是當(dāng)前合成的時(shí)間,單位為秒。它可以提供一個(gè)持續(xù)變化的數(shù)值。在實(shí)際使用中經(jīng)常寫成“n*time”。n取一個(gè)常數(shù),可以增大或縮小函數(shù)值。
(2)“wiggle”函數(shù)。“wiggle”函數(shù)一般形式為 wiggle(freq,amp,octaves=1,amp_mult=.5,t=time)。Freq指的是頻率,amp指的是振幅。通常在使用wiggle函數(shù)時(shí),只需指定前兩個(gè)參數(shù)即可。它可以使屬性的值在參數(shù)范圍內(nèi)隨機(jī)變化。當(dāng)屬性是多維時(shí),函數(shù)對每個(gè)維度都同時(shí)有效。
(3)“value”函數(shù),是當(dāng)前屬性的數(shù)值。
(4)“Math.cos(value)”函數(shù),value是一個(gè)數(shù)值,這個(gè)函數(shù)返回value的余弦值。
(5)“Math.sin(value)”函數(shù),value是一個(gè)數(shù)值,這個(gè)函數(shù)返回value的正弦值[2-3]。
下面用一個(gè)粒子旋轉(zhuǎn)前進(jìn)的案例來分析用After effects表達(dá)式制作運(yùn)動(dòng)路徑的方法。
本案例制作一個(gè)光效粒子旋轉(zhuǎn)前進(jìn)的鏡頭。首先用After effects表達(dá)式制作出燈光運(yùn)動(dòng)的路徑,其次配合After effects的Particular和Deep Glow等插件制作出絢麗的粒子形態(tài),最后制作出粒子在燈光的帶動(dòng)下在鏡頭前舞動(dòng)出優(yōu)美曲線的鏡頭。這里重點(diǎn)分析用After effects表達(dá)式寫出路徑的過程,從數(shù)學(xué)公式開始分析,用After effects表達(dá)式的代碼編寫,并對曲線路徑做適當(dāng)變形擴(kuò)展。
2.2.1 基本思路分析
先在XY平面上建立一個(gè)圓形路徑,讓粒子旋轉(zhuǎn)起來,再給Z軸方向一個(gè)速度,這樣就形成了旋轉(zhuǎn)向前的路徑。
首先制作一個(gè)平面內(nèi)的圓形路徑,根據(jù)圓參數(shù)方程:
式中:θ是旋轉(zhuǎn)的角度,K是圓的半徑。
旋轉(zhuǎn)是一圈又一圈連續(xù)不斷進(jìn)行的,角度θ隨著時(shí)間不斷增長,所以在這里可以用時(shí)間來代替θ[5]。取K為一個(gè)常數(shù),這時(shí)可以把方程變形成式(2):
根據(jù)公式,改變旋轉(zhuǎn)速度,需要改變?nèi)呛瘮?shù)的周期T。調(diào)節(jié)起始位置,可以改變?nèi)呛瘮?shù)的相位參數(shù)φ,應(yīng)用到圓的公式中,可以寫成:
用b的大小來控制圓的半徑大小,用a來調(diào)整旋轉(zhuǎn)的速度,用c來表示旋轉(zhuǎn)起始的位置。
按照After effects表達(dá)式的規(guī)范,可以在圖層位置屬性上寫出表達(dá)式如下:
a=0.5;
b=100;
c=Math.PI/2;
x=Math.cos(a*time+c)*b;
y=Math.sin(a*time+c)*b;
[x,y,];
圖1 畫圓路徑前視圖
這時(shí),在Z軸上給予一個(gè)向前行進(jìn)的速度,就形成了旋轉(zhuǎn)向前行進(jìn)的路徑。具體的表達(dá)式如下:
a=0.5;
b=100;
c=Math.PI/2;
y=Math.sin(a*time+c)*b;
z=b*time;
[x,y,z];
該表達(dá)式應(yīng)用后的效果如圖2、圖3所示。
圖2 旋轉(zhuǎn)向前行進(jìn)的前視圖
圖3 旋轉(zhuǎn)向前行進(jìn)的右視圖
可以進(jìn)一步增加路徑的數(shù)量,比如四條路徑起始位置在圓周上均勻分布,每兩條路徑之間相隔只需要在每個(gè)位置屬性的表達(dá)式上改變參數(shù)c的值即可。第一個(gè)寫c=Math.PI*0,第二個(gè)寫成c=Math.PI/2,第三個(gè)寫成c=Math.PI,第四個(gè)寫成c=Math.PI*1.5。四個(gè)參數(shù)改完后形成的路徑如圖4、圖5所示。
圖4 增加路徑后的前視圖
圖5 增加路徑后的右視圖
2.2.2 擴(kuò)展分析
還可以繼續(xù)調(diào)整,比如把四條路徑的旋轉(zhuǎn)速度調(diào)成各不相同的,這只需要調(diào)節(jié)a的值即可。讓不同路徑上a參數(shù)的值彼此不同,比如讓a分別取0.5,1,2,4等,得到的路徑如圖6—圖10所示。
圖6 右視圖(a=0.5)
圖7 右視圖(a=1)
圖8 右視圖(a=2)
圖9 右視圖(a=4)
圖10 前視圖
可以把圓形旋轉(zhuǎn)改為橢圓形旋轉(zhuǎn),把X軸坐標(biāo)的參數(shù)b1改成與Y軸坐標(biāo)中的參數(shù)b2不同的值,也就是b1≠b2,得到的路徑如圖11、圖12所示。
圖11 橢圓形旋轉(zhuǎn)前視圖
圖12 橢圓形旋轉(zhuǎn)右視圖
還可調(diào)整圓半徑b,讓半徑越來越小。這樣,路徑就會從四周向中心相聚。為了讓b逐漸變小,得把b從一個(gè)常量轉(zhuǎn)變成一個(gè)變量,還需用到time這個(gè)變量。time的值隨時(shí)間增大,的值隨時(shí)間減小。為了避免time=0時(shí)做分母沒有意義,把time變成time+1。讓半徑r=[5]。根據(jù)這個(gè)思路,表達(dá)式編寫如下。結(jié)果如圖13、圖14所示。
使學(xué)生具有一定的思維能力,能遵循思維規(guī)律,運(yùn)用邏輯思維形式、思維方法,明確使用數(shù)學(xué)概念,正確恰當(dāng)?shù)倪\(yùn)用數(shù)學(xué)判斷,作出合乎邏輯的思維論證,運(yùn)用數(shù)學(xué)知識技能,作到不管是對概念的理解,數(shù)和式以及變式的運(yùn)算,以及圖形的劃法、做法、變形,命題的論證,必須做到因果分明、嚴(yán)謹(jǐn)推理、思維清晰、有理有據(jù)。
圖13 半徑變小后的前視圖
圖14 半徑變小后的右視圖
a=0.5;
b=500;
c=Math.PI/2;
d=time+1
x=Math.cos(a*time+c)*b/d;
y=Math.sin(a*time+c)*b/d;
z=b*time;
[x,y,z];
四條路徑的效果圖15、圖16所示。
圖15 四條路徑的前視圖
圖16 四條路徑的右視圖
還可以給路徑加點(diǎn)震顫的效果,此時(shí)需用到wiggle表達(dá)式。
a=0.5;
b=500;
c=Math.PI*0;
d=time+1
x=Math.cos(a*time+c)*b/d;
y=Math.sin(a*time+c)*b/d;
z=b*time;
[x,y,z]+wiggle(2,40)-value;
四條路徑的結(jié)果如圖17、圖18所示。
圖17 加震顫效果的四條路徑的前視圖
圖18 加震顫效果的四條路徑的右視圖
新建一個(gè)1 920×1 080的合成,再建一個(gè)點(diǎn)燈光,命名為Point light 1。然后按alt鍵,點(diǎn)擊燈光位置屬性(position)前面的碼表,在表達(dá)式編輯區(qū)書寫表達(dá)式如下:
[960,540,0]+[Math.cos(0.5*time+Math.PI*0)*500/(time+1),Math.sin(0.5*time+Math.PI*0)*500/(time+1),500*time]
這里為了書寫方便,直接把常量的參數(shù)代入到表達(dá)式中。在前面加上[960,540,0],是為了讓粒子繞圖像中心旋轉(zhuǎn)。然后選擇燈光層,按ctrl+D三次,復(fù)制三層,這樣共四盞燈光,名稱分別為Point Light 1,Point Light 2,Point Light 3,Point Light4。分別在Point Light 2,Point Light 3,Point Light4這三盞燈光的位置屬性上書寫表達(dá)式如下:
[960,540,0]+[Math.cos(0.5*time+Math.PI/2)*500/(time+1),Math.sin(0.5*time+Math.PI/2)*500/(time+1),500*time]
[960,540,0]+[Math.cos(0.5*time+Math.PI)*500/(time+1),Math.sin(0.5*time+Math.PI)*500/(time+1),500*time]
[960,540,0]+[Math.cos(0.5*time+Math.PI*3/2)*500/(time+1),Math.sin(0.5*time+Math.PI*3/2)*500/(time+1),500*time]
新建一個(gè)純色層,命名為P1。為該圖層添加particular粒子特效,選擇燈光發(fā)射,燈光名稱寫入Point Light,粒子就沿著燈光的位置路徑運(yùn)動(dòng)。再調(diào)節(jié)particular粒子的發(fā)射數(shù)量、速度、形態(tài)、大小、顏色、生命等,再添加粒子輔助系統(tǒng),調(diào)節(jié)輔助系統(tǒng)的參數(shù)。設(shè)置完成后,選擇P1圖層,按ctrl+D三次,復(fù)制三層,分別命名為P2,P3和P4。修改P2、P3、P4的particular參數(shù)。
新建一個(gè)調(diào)節(jié)圖層,為調(diào)節(jié)圖層添加Deep Glow特效,使畫面更加閃閃發(fā)光。最終效果如圖19所示。
圖19 加入特效的前視圖
改變攝像機(jī)的位置,可以得到如圖20、圖21所示的效果。
圖20 攝像機(jī)位1
圖21 攝像機(jī)位2
本文探討了用After effects軟件制作粒子運(yùn)動(dòng)路徑的便捷方法。使用After effects表達(dá)式結(jié)合數(shù)學(xué)公式的方法,可以把路徑用代碼的形式書寫出來,這樣可以輕松精確地繪制出路徑。通過調(diào)整各個(gè)參數(shù),可以方便地對路徑進(jìn)行調(diào)整,形成不同的效果。這種方式減少了大量的人工操作,節(jié)約了制作時(shí)間,并使動(dòng)畫優(yōu)雅流暢。