王少豪
摘要:After Effects(AE)作為一款專業(yè)的影視后期制作軟件,在圖片、視頻以及音頻的合成包裝上有其獨特的技術處理。通過自帶與第三方的濾鏡插件,可以快速制作出震撼的二維、三維影視級動畫效果。本文從表達式腳本的方向對AE進行研究,在不影響動畫效果的前提下,將某些冗余復雜的有一定規(guī)律的特效制作過程簡化,避免創(chuàng)建幾十甚至上百個關鍵幀動畫,以達到節(jié)省時間,提高工作效率的目的。
關鍵詞: AE; 特效; 表達式
中圖分類號:TP393? ? ? ? 文獻標識碼:A? ? ? ? 文章編號:1009-3044(2018)31-0212-02
計算機腳本是編程設計人員利用一系列的指令來告知應用程序如何操作的語言。在AE中,我們同樣可以使用腳本指令來進行某些復雜或者重復的特效設置。但與普通腳本不同的是,腳本通常需要告知程序應該進行何種詳細操作;而AE僅需要算出某個特定時間段的圖層屬性,使用者并不需要掌握精深的程序設計語言,通過一個在“時間線”面板上的基于JavaScript的一種擴展語言ExtendScript所設計的“表達式”功能,利用表達式中已經(jīng)存有的語言進行創(chuàng)建、復制或者關聯(lián),再根據(jù)實際情況修改數(shù)值,就可以輕松地為圖層特效創(chuàng)建相應的屬性聯(lián)系,從而生成華麗的特效。本文將從具體實例出發(fā),對表達式進行研究。
1表達式簡介
整個表達式功能一般分為五個部分:啟用表達式開關、顯示表達式動畫曲線、表達式關聯(lián)器、表達式語言菜單以及表達式輸入框。如圖1所示:
在AE中,如果對腳本語言比較熟悉,可以直接在表達式輸入框中輸入表達式,也可使用表達式語言菜單中存有的常用語言來進行編寫,還能利用表達式關聯(lián)器對已經(jīng)有的某種屬性的表達式規(guī)律進行復制關聯(lián)。此外,如果用戶對表達式的運算比較熟悉,可以結合一定的數(shù)學運算來進行特效的調(diào)整。如在表達式的末尾添加*3,則表達式的數(shù)值將變?yōu)樵瓉淼?倍;或者在表達式的末尾添加/100*50,則是將原取值為0~100的范圍區(qū)間縮小為0~50。
2表達式使用方法
為動畫圖層屬性添加表達式的方法主要有三種,在選中“時間線”面板中動畫參數(shù)屬性的大前提下:
①通過“Animation”下層的“Add Expression”菜單命令添加表達式。同樣,可以使用這種方法將其刪除。
②使用快捷鍵“ALT+SHIFT+=”打開表達式。
③同時按住“alt”與該屬性前的“秒表”符號。
除了新加表達式內(nèi)容之外,也可以通過“表達式關聯(lián)器”上的拖拽按鈕將其他的動畫屬性以參數(shù)值的形式賦予到新的表達式中。例如,如將合成中的某一圖層屬性與“圖層1”的透明度相關聯(lián),則會得到以下關系式:
thisComp.layer("圖層1").transform.opacity
其中,thisComp為全局對象,layer("圖層1")為次級對象,opacity為相關屬性
3表達式的實例研究
針對不同類型的特效需要設置不同的表達式腳本,接下來,將從火焰光影、滾動車輪、預警水溫計等實例對表達式設置進行詳細設置。
3.1火焰動態(tài)光影特效制作
為了追求逼真的火焰動畫效果,常常需要制作出周圍環(huán)境的光影搖曳效果。如果是常規(guī)的做法,我們需要設置一個光影層,并根據(jù)火光的強弱制作相對煩瑣的關鍵幀光影閃爍動畫效果,這種做法費時費力,最后的效果往往也不盡人意。
針對這種情況,采用表達式制作光影仿真的效果:
表達式的應用需要與各種圖層以及屬性操作相結合。首先,為制作一個火焰光影將會產(chǎn)生的一個大概范圍,通過建立一個模仿光影的黃色固態(tài)層,并使用鋼筆工具繪制出范圍遮罩。其次作為火焰光影,需要將其置于火焰動畫的下層并更改層模式為Soft Light模式。最后,為固態(tài)層的不透明度屬性添加一個隨機函數(shù)表達式random(50,100),表示透明度將在50%—100%之間隨機性變化,使光影能模仿火光有隨機性的透明度改變,有效代替了復雜操作。
3.2滾動車輪制作
對于一些重復性的運動,也可以使用表達式來進行制作。設計表達式制作車輪運動帶動汽車行駛的動畫。具體思路如下:
分別建立前后車輪以及車身與陰影的合成,為使汽車行駛的動畫更加協(xié)調(diào),通過新建一個“空對象層”并設置父層的方式使其建立聯(lián)系,通過設置“空對象層”的位置移動來控制汽車的移動。同時選中“前車輪”圖層,對其旋轉屬性添加表達式,由距離除以周長算出車輪需要旋轉的圈數(shù),具體如下:
距離=thisComp.layer("空對象").transform.position[0];
周長=width*Math.PI;
(距離/周長)*360
“后車輪”圖層的旋轉屬性表達式只需要設置跟隨“前車輪”圖層旋轉即可,具體如下:
thisComp.layer("前車輪").transform.rotation
通過簡單的幾個表達式語句即可輕松制作完這樣的運動特效。
3.3預警水溫計特效制作
不同特效需要不同的表達式設計,制作一個能自帶文字顯示的水溫計特效,且文字的顏色隨溫度的提升將有所不同, 40度以下以綠色顯示,超過40度則顏色逐漸趨于暖色,100度的水溫時文字以紅色顯示,以此達到預警的效果。以下為制作該特效的合成流程圖:
其中,“溫度計樣式”合成為制作好的水溫計圖像;“溫度計”合成為關鍵表達式制作合成;“水溫顯示”則是加上攝像機與三維燈光效果的最終合成。
不同于簡單的火焰光影特效,對于本特效而言,關鍵表達式主要有三部分組成。
①溫度計的指示條制作。使用鋼筆工具繪制好shape溫度指示圖形,添加修剪路徑特效,并對其end屬性添加隨機抖動表達式wiggle(1,100),使溫度指示有隨機的升降變化,且最大幅度為100。
②建立文字顯示與溫度指示條之間的聯(lián)系。激活文字層的“源文本”表達式屬性,并將其鏈接到溫度指示條修剪濾鏡特效的end屬性上,自動生成表達式使兩者相互關聯(lián)。但由于關聯(lián)后的溫度顯示包含有小數(shù)點后多位,因此在原表達式的基礎上添加Math.round(vaule)語句,使獲得的數(shù)值四舍五入。具體表達式如下:
Math.round(thisComp.layer("形狀圖層 1").content("修剪路徑 1").end)
③為使數(shù)字有顏色的警示,因此為文本層添加一個色相飽和度濾鏡特效,并勾選彩色化選項,使文本顏色可以通過數(shù)值表示,調(diào)整著色亮度與飽和度,接著為色相添加表達式。使用linear語句為數(shù)值與色相建立線性聯(lián)系,并使其在數(shù)值顯示40時賦予色相值為100(綠色),數(shù)值顯示100時色相值為0(紅色)。具體表達式如下:
temp=linear((thisComp.layer("形狀圖層 1").content("修剪路徑 1").end),0,100,0,100)
if(temp>40)
{linear(temp,40,100,100,0);
}else
{100;}
通過以上這些關鍵表達式的操作設置,可以輕松完成所需要的特效,配合其他的濾鏡美化以及燈光與三維效果,增加實例的擬真度。
本文從實例出發(fā),探討了AE特效制作中表達式語句的一些應用,在特效制作的過程中結合表達式語言對制作過程進行簡化,無疑可以節(jié)省制作成本與時間,創(chuàng)作出更好的視頻效果。
參考文獻:
[1] 黎紅,梁廣榮.AE表達式在片頭應用中的研究[J]. 長春師范學院學報,2013(6).
[2] 王青.After Effects影視特效與電視欄目包裝實例精粹[M]. 清華大學出版社 , 2016? .