




已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
表達(dá)式簡介在詳細(xì)講解表達(dá)式之前,我們先總體了解一下AE中元素之間的關(guān)系,據(jù)我所知在AE中主要有五種方法建立元素之間的關(guān)系:關(guān)鍵幀:即使元素間沒有必然的連接關(guān)系,你也可以通過設(shè)置關(guān)鍵幀來為它們建立聯(lián)系。這是最普通的一種連接關(guān)系,這種方法也是最靈活的,但是很不利于修改和調(diào)試。合并嵌套: 你可以將幾個(gè)圖層一起放置于一個(gè)新合成中,這很像其他應(yīng)用程序中的成組操作,一種將多層素材元素作為單獨(dú)素材處理設(shè)置的方法。父子連接: 不用嵌套為圖層建立層級關(guān)系的方法,在父子連接關(guān)系中任何應(yīng)用于父層級的變化都會立即影響子層級,而針對子層級的設(shè)置不會影響到父層級。動(dòng)力學(xué)腳本: 像表達(dá)式一樣,動(dòng)力學(xué)腳本是AE中內(nèi)置的簡單功能,動(dòng)力學(xué)腳本可以為當(dāng)前圖層創(chuàng)建基于另一個(gè)圖層或?qū)傩缘年P(guān)鍵幀。例如,你可以使用動(dòng)力學(xué)腳本令一個(gè)圖層模擬另一個(gè)圖層的位置變化。美中不足的是,使用動(dòng)力學(xué)腳本建立的元素間關(guān)系只是暫時(shí)的,僅當(dāng)腳本執(zhí)行時(shí)才會起作用,在后面的設(shè)調(diào)整中,針對一個(gè)圖層的改變不會反映在另一個(gè)圖連接層上,除非重新應(yīng)用動(dòng)力學(xué)腳本。表達(dá)式: 表達(dá)式很類似于動(dòng)力學(xué)腳本,不同的是表達(dá)式會保持始終使能,只要應(yīng)用表達(dá)式之后,任何關(guān)鍵幀都會永久保持與之的連接關(guān)系。在這幾種連接關(guān)系中,表達(dá)式的功能最強(qiáng)大,但是學(xué)習(xí)起來有一定的難度,需要一定的毅力。使用表達(dá)式的時(shí)機(jī)使用表達(dá)式為圖層建立動(dòng)態(tài)連接是一種非常方便高效的方法。從父層級中僅僅復(fù)制一個(gè)參數(shù). 有些時(shí)候,你只想從一個(gè)圖層中復(fù)制一個(gè)參數(shù),而不是一整套父子連接圖層關(guān)系。 例如, 兩個(gè)圖層建立了父子聯(lián)接, 利用父子聯(lián)接建立的圖層關(guān)系中子層級會繼承父層級的位置與旋轉(zhuǎn)屬性。而應(yīng)用表達(dá)式建立的圖層關(guān)系,子圖層只會繼承父層級的一個(gè)屬性,而其旋轉(zhuǎn)屬性由于未被聯(lián)接到旋轉(zhuǎn)屬性,所以該參數(shù)不會改變。通過使用表達(dá)式你不用設(shè)置任何關(guān)鍵幀就可以為參數(shù)設(shè)置動(dòng)畫。你可以使用表達(dá)式為存在的關(guān)鍵幀增加隨機(jī)性,這種方法非常巧妙,它保留了原始的關(guān)鍵幀設(shè)置。使用表達(dá)式建立的隨機(jī)性效果可以輕松的切換表達(dá)式的使能狀態(tài),不會影響原始關(guān)鍵幀。通常情況下使用其他方法可以實(shí)現(xiàn)的效果就不要使用表達(dá)式,AE具有強(qiáng)大的工具和功能來實(shí)現(xiàn)各種各樣的效果。例如,使用父子連接可以實(shí)現(xiàn)的效果就不需要再使用表達(dá)式。表達(dá)式功能的確很強(qiáng)大,但是它不是萬能的,而且精心書寫表達(dá)式后還要維護(hù)表達(dá)式。解析表達(dá)式簡單的說表達(dá)式就是為特定參數(shù)賦予特定值的一條或一組語句,最簡單的表達(dá)式就是一個(gè)數(shù)值:6; 當(dāng)然了,這種表達(dá)式的用處不是很大,常量通過調(diào)整參數(shù)的值來實(shí)現(xiàn)就可以了,像下面這種變量表達(dá)式用處會更大:rotation;當(dāng)執(zhí)行該語句時(shí),AE的表達(dá)式會自動(dòng)計(jì)算當(dāng)前圖層當(dāng)前時(shí)間的旋轉(zhuǎn)參數(shù)值,返回的值會賦予表達(dá)式連接的參數(shù)值。 如果表達(dá)式應(yīng)用于圖層的不透明度屬性,那么該圖層的不透明度屬性會隨著旋轉(zhuǎn)屬性同步變化,當(dāng)旋轉(zhuǎn)三十度的時(shí)候,圖層不透明度也會被設(shè)置為30%。AE中的表達(dá)式以Javascript語言為基礎(chǔ),Javascript包括一套豐富的語言工具來創(chuàng)建更復(fù)雜的表達(dá)式,當(dāng)然包括最基本的數(shù)學(xué)運(yùn)算:opacity*10;意思就是當(dāng)前圖層在當(dāng)前時(shí)間的不透明度參數(shù)乘以10,因?yàn)椴煌该鞫葏?shù)的值閾是0100,所以該表達(dá)式的之余就是01000,該值將賦予表達(dá)式連接的任何參數(shù)。 等號的位置也許你認(rèn)為表達(dá)式應(yīng)該是這種形式,“position=rotation”,AE中的表達(dá)式不需要使用等于號將其賦予參數(shù),為參數(shù)添加表達(dá)式的時(shí)候,直接將計(jì)算出來的結(jié)果賦予參數(shù)。當(dāng)然,你也可以在表達(dá)式中使用等于號,為參數(shù)賦變量值。表達(dá)式、參數(shù)值一一對應(yīng)一句表達(dá)式控制一個(gè)參數(shù),因?yàn)橐痪浔磉_(dá)式僅連接在一個(gè)參數(shù)上,它僅將值賦予該參數(shù)。例如,你不可以使用一句表達(dá)式來同時(shí)修改一個(gè)圖層的位置和旋轉(zhuǎn)值;你只有創(chuàng)建兩個(gè)區(qū)分開來的關(guān)鍵幀,一個(gè)連接到位置屬性上,另一個(gè)連接到旋轉(zhuǎn)屬性上。多行表達(dá)式表達(dá)式可以以多條語句的形式來組織書寫。當(dāng)表達(dá)式由多條語句組成的時(shí)候,最后一行語句所計(jì)算出來的值將賦予表達(dá)式連接的參數(shù),如下面的表達(dá)式:offset=30;ralph=rotation+offset;ralph;該表達(dá)式組將會使圖層的旋轉(zhuǎn)值設(shè)置為當(dāng)前時(shí)間的旋轉(zhuǎn)值加上30度。為參數(shù)加入表達(dá)式 有兩種方法為選擇的參數(shù)加入表達(dá)式,一種方法是在時(shí)間軸選擇參數(shù)后,從動(dòng)畫菜單中選擇增加表達(dá)式;另一種方法 是按住ALT鍵的同時(shí)鼠標(biāo)左鍵單擊參數(shù)左邊的馬表,快速為參數(shù)加入表達(dá)式。加入表達(dá)式后,你會發(fā)現(xiàn)時(shí)間軸發(fā)生了變化:首先,在參數(shù)名稱的左側(cè)多了一個(gè)帶有“=”的按鈕,單擊該按鈕來切換表達(dá)式的使能狀態(tài)。其次,參數(shù)值變?yōu)榧t色,表示該參數(shù)由表達(dá)式控制,手動(dòng)編輯該參數(shù)將失效。第三,在參數(shù)名稱的右邊增加了并排的三個(gè)圖標(biāo)(稍后討論)。最后,在時(shí)間軸中增加了一個(gè)表達(dá)式編輯區(qū)域,該區(qū)域可以通過下拉箭頭來改變顯示范圍。單擊第一個(gè)圖標(biāo)按鈕會在時(shí)間軸窗口中打開表達(dá)式的變化圖表,從中你可以觀察到參數(shù)值的變化曲線和參數(shù)變化的加速度。如果表達(dá)式影響到元素的運(yùn)動(dòng)路徑,那么合成窗口中顯示的路徑曲線也會發(fā)生變化。第二個(gè)圖標(biāo)按鈕是拾取線一個(gè)幫助你書寫表達(dá)式的工具,只需要簡單的將拾取線拖動(dòng)到另一個(gè)參數(shù)上面,就可以為當(dāng)前參數(shù)與拾取的參數(shù)建立動(dòng)態(tài)連接關(guān)系,在后面的教程中詳細(xì)講解拾取線的功能。第三個(gè)按鈕是表達(dá)式結(jié)構(gòu)下拉菜單,使用該菜單可以方便的參考AE的表達(dá)式語言,使用該菜單可以清晰的看到表達(dá)式所影響的屬性和元素。拾取線使用拾取線可以方便的建立參數(shù)間的連接表達(dá)式:例如,為圖層的不透明度添加表達(dá)式,然后拖動(dòng)拾取線到圖層旋轉(zhuǎn)參數(shù)上就會為不透明度與旋轉(zhuǎn)參數(shù)建立動(dòng)態(tài)連接,現(xiàn)在再為旋轉(zhuǎn)參數(shù)設(shè)置關(guān)鍵幀,會同步影響到不透明度屬性:如果你將拾取線拖動(dòng)到同一合成不同圖層的屬性參數(shù)上,那么AE就會創(chuàng)建一個(gè)稍微復(fù)雜一點(diǎn)的表達(dá)式,表明與哪一個(gè)圖層的屬性建立動(dòng)態(tài)連接:this_comp.layer(Solid 1).opacity這個(gè)表達(dá)式首先指明合成(this_comp),然后指明該合成中的圖層(solid1),最后指明該圖層被用于建立連接的屬性(opacity)。順便說一句,拾取線沒有什么特別神奇的地方,可以說它僅僅起到自動(dòng)將連接的屬性名稱及其所屬合成與圖層添加到表達(dá)式文本區(qū)。你也可以親自手寫表達(dá)式,但是這種方式遠(yuǎn)遠(yuǎn)不及拾取線方便準(zhǔn)確,特別是當(dāng)需要編寫較復(fù)雜的表達(dá)式時(shí),拾取線的高效快捷更是體現(xiàn)的淋漓盡致。向量、陣列、維數(shù)、索引 有時(shí)候你會發(fā)現(xiàn)通過拾取線創(chuàng)建的表達(dá)式看上去好象在重復(fù)參數(shù),例如,如果你將位置參數(shù)的拾取線拖動(dòng)到旋轉(zhuǎn)參數(shù)上,你就會得到如下表式:rotation, rotation;因?yàn)槲恢脤傩杂袃蓚€(gè)參數(shù)(X、Y坐標(biāo))而旋轉(zhuǎn)屬性只有一個(gè)參數(shù),建立連接關(guān)系后,表達(dá)式自動(dòng)將旋轉(zhuǎn)參數(shù)應(yīng)用兩次分別位置屬性的X、Y坐標(biāo)參數(shù)。由兩個(gè)或三個(gè)數(shù)值來描述屬性的參數(shù)組叫做向量或陣列,AE中很多的屬性參數(shù)是向量式的,包括位置、軸心點(diǎn)和縮放等屬性;與陣列對應(yīng)的用單個(gè)數(shù)值來描述屬性的參數(shù)叫做標(biāo)量式參數(shù)。向量與陣列:究竟向量和陣列之間有什么區(qū)別呢,你也許會注意到AE的幫助文件有時(shí)候互用這兩個(gè)單詞,簡單的說向量是既有大小又有方向的數(shù)字陣列,其運(yùn)算結(jié)果即要考慮到大小又要考慮到方向;陣列是一套獨(dú)立元素的組合,陣列中可以包含任何元素,可以是物體陣列,詞匯陣列或者是混合陣列:ralph=10, this_layer, bob;也許沒有人會知道上面的這種陣列會有什么用處,但是它確實(shí)是一個(gè)正確的陣列,當(dāng)然在AE中我們大部分時(shí)間內(nèi)遇到的是數(shù)字陣列(也叫向量)。所以,在接下來的描述中,當(dāng)談?wù)摰酵ㄓ玫母拍詈筒僮鲬?yīng)用時(shí),我們使用陣列來描述;當(dāng)涉及到特殊的數(shù)字陣列時(shí)我們用向量來描述。索引:對于陣列來說,你可以使用陣列名加上包含數(shù)字的中括號從陣列中提取需要的單一元素,例如:position0;這種表達(dá)方法叫做索引,注意在陣列中使用索引調(diào)用元素時(shí),必須從0開始計(jì)數(shù)第一個(gè)元素。所以,上面的表達(dá)式就返回位置屬性向量中的第一個(gè)參數(shù)x坐標(biāo),那么position1就返回位置屬性中的Y坐標(biāo),千萬不要搞混淆了,在AE中雖然所有的調(diào)整都是從1開始的,但是當(dāng)使用索引時(shí),必須從零開始計(jì)數(shù)。建立陣列:如果要建立陣列,可以將數(shù)值以逗號分隔開放入中括號中:my_vector=10,20,30;/該表達(dá)式的意思是將一個(gè)三維數(shù)組賦予變量my_vector,該數(shù)組中包含三個(gè)元素分別是10,20,30,維數(shù) :陣列中的元素個(gè)數(shù)代表陣列的維數(shù),例如上面的my_vector是一個(gè)三維數(shù)組,位置屬性是一個(gè)二維數(shù)組或三維數(shù)組(轉(zhuǎn)變?yōu)槿S圖層)。標(biāo)量式的屬性如旋轉(zhuǎn)和不透明度屬于一維數(shù)組(準(zhǔn)確說單一數(shù)字或者是標(biāo)量數(shù)值就是一維向量)。需要注意的是諸如位置、屬性這樣的多維數(shù)組或者是自定義的數(shù)組變量,不需要將他們的名字寫在方括號中,AE會將其識別為數(shù)組。當(dāng)要索引陣列或者是描述陣列時(shí),需要使用方括號。修改陣列中的一個(gè)元素 :可以用如下的方式來書寫位置表達(dá)式:position0, position1;將位置陣列中的兩個(gè)參數(shù)分別提出來后,再將他們放入同一個(gè)陣列中,看上去與僅僅書寫positon的結(jié)果相同,優(yōu)點(diǎn)是你可以使用這種結(jié)構(gòu)來修改陣列中的一個(gè)元素而不影響另外元素,例如:top_of_layer=0;anchor_point0, top_of_layer;在這個(gè)表達(dá)式中,陣列中的第一個(gè)元素是軸心點(diǎn)的X坐標(biāo)值,第二個(gè)元素是0,如果將該值賦予軸心點(diǎn)屬性,那么軸心點(diǎn)的X值將受AE的控制調(diào)整,而軸心點(diǎn)的Y值將始終為0。當(dāng)使用這種結(jié)構(gòu)時(shí)要特別注意,如果將圖層設(shè)置為3d圖層,就需要重新書寫表達(dá)式,將位置與軸心點(diǎn)Z軸考慮進(jìn)去。例如,如果仍然使用上面軸心點(diǎn)的例子,但是這次將軸心點(diǎn)所在的圖層設(shè)置為3D圖層,AE會自動(dòng)將丟失的Z軸坐標(biāo)設(shè)置為0,這當(dāng)然比出現(xiàn)程序錯(cuò)誤要強(qiáng)的多,但是所得到的結(jié)果未必是我們需要的,因?yàn)楸磉_(dá)式將忽略軸心點(diǎn)的Z軸坐標(biāo)的變化。再看另外一個(gè)例子,假如你將一個(gè)圖層的位置屬性復(fù)制到另外一個(gè)圖層上,并且將該參數(shù)的Y軸值減去100:ralph=this_comp.layer(1)ralph.position0, ralph.position1-100;如果這時(shí)將圖層設(shè)置為3D圖層,你會發(fā)現(xiàn)對控制圖層的Z軸所做的任何操作絲毫不會影響到受控圖層的Z軸,因?yàn)楸磉_(dá)式中沒有表明Z軸的坐標(biāo)值,AE會自動(dòng)將其設(shè)置為0。參數(shù)值范圍:當(dāng)使用表達(dá)式中的拾取線來建立參數(shù)之間的關(guān)系時(shí),AE會自動(dòng)糾正由于錯(cuò)誤的維數(shù)匹配導(dǎo)致的錯(cuò)誤,但是這種糾正之后的表達(dá)式并不意味著就是你所需要的,物理錯(cuò)誤是避免了,但是邏輯錯(cuò)誤仍然會影響你的創(chuàng)作。在這里特別強(qiáng)調(diào)一下,有時(shí)候你需要調(diào)整當(dāng)前參數(shù)值以匹配目標(biāo)參數(shù)。例如,在前面的例子中我們使用圖層的旋轉(zhuǎn)屬性來控制圖層的不透明度屬性,你會發(fā)現(xiàn)當(dāng)旋轉(zhuǎn)屬性達(dá)到100度時(shí),不透明度屬性就達(dá)到了上限,但是我們想要的效果是當(dāng)圖層完成一個(gè)周期的旋轉(zhuǎn)時(shí)其不透明度回到原來的值,我們就需要調(diào)整參數(shù)范圍以達(dá)到我們的需要??s放參數(shù)范圍值的方法很簡單,可以利用公式(當(dāng)前連接參數(shù)當(dāng)前連接參數(shù)范圍上限目標(biāo)連接參數(shù)目標(biāo)連接參數(shù)范圍上限),還是使用上面的例子來說明,我們需要將旋轉(zhuǎn)參數(shù)的范圍(0360)縮放到不透明度參數(shù)的范圍(0100),所以我們就需要為不透明度加上表達(dá)式:rotation / 360 * 100,從而就達(dá)到了我們需要的效果,不透明度在0360度范圍內(nèi)變化:用這個(gè)簡單的小技巧可以完成很多期望的效果。例如,使用一個(gè)輪胎的素材作為圖層,我們就可以利用該圖層的位置屬性來驅(qū)動(dòng)圖層的旋轉(zhuǎn)屬性,我們只需縮放位置屬性來為旋轉(zhuǎn)屬性建立正確的連接表達(dá)式,因?yàn)檩喬ッ啃D(zhuǎn)360度就會移動(dòng)一個(gè)周長的距離,所以我們應(yīng)該這樣書寫表達(dá)式:rotation=distance/circumference*360:插值方法:線性liner(),平滑ease()我們已經(jīng)學(xué)習(xí)了怎樣利用表達(dá)式來縮放參數(shù)值的范圍,只需要簡單的乘除運(yùn)算就可以了。例如將旋轉(zhuǎn)參數(shù)范圍(0360)縮放到不透明度參數(shù)范圍(0100),但是這不是唯一的方法,AE提供了一套內(nèi)置的插值算法進(jìn)行參數(shù)之間的轉(zhuǎn)換:linear(t, t_min, t_max, value1, value2)ease(t, t_min, t_max, value1, value2)ease_in(.), ease_out(.)這些語句看起來很復(fù)雜,因?yàn)檎Z句中包含很多參數(shù):t 當(dāng)前參數(shù),例如旋轉(zhuǎn)參數(shù),不透明度參數(shù)或者是你所選擇的其他變量,該參數(shù)必須是一維的,該參數(shù)為必選參數(shù)。t_min 當(dāng)前參數(shù)范圍的下限,該參數(shù)為可選參數(shù),如果參數(shù)范圍的下限或上限被忽略掉了,那么AE會將參數(shù)的范圍定義在01之間。t_max 當(dāng)前參數(shù)范圍的上限,該參數(shù)為可選參數(shù)。value1 目標(biāo)參數(shù)范圍下限,當(dāng)tt_min時(shí),表達(dá)式返回該值,該值可以是一維標(biāo)量也可以是二維向量,與value1的維數(shù)相同,該參數(shù)為 必選參數(shù)。value2 目標(biāo)參數(shù)范圍上限,當(dāng)tt_max時(shí),表達(dá)式返回該值,該值幾可以是一維標(biāo)量也可以是二維向量,但是如果該值與value1 的維數(shù)不同,AE會自動(dòng)以value1 值為標(biāo)準(zhǔn)進(jìn)行匹配,該參數(shù)為必選參數(shù)。通過下面的例子讓我們來了解一下該語句的含義:linear(time, 0, 5, 0, 360);通過上面的學(xué)習(xí),我們應(yīng)該將這個(gè)語句理解為,時(shí)間的變化范圍是0到5,目標(biāo)參數(shù)的范圍是0到360,整個(gè)變化過程是線性的。如果將該表達(dá)式應(yīng)用到圖層的旋轉(zhuǎn)屬性上,那么你會發(fā)現(xiàn)圖層在前5秒內(nèi)完成了一周的旋轉(zhuǎn)。應(yīng)用該表達(dá)式后,圖層在第五秒停止旋轉(zhuǎn),這就是與我們前面介紹的直接手寫公式time/5*360最大的區(qū)別,插值算法自動(dòng)在當(dāng)前參數(shù)與目標(biāo)參數(shù)之間采樣范圍極值。另外一個(gè)區(qū)別就是你可以設(shè)置不同的插值算法:ease(),ease_in()和ease_out()。這些插值算法與同名的關(guān)鍵幀插值算法(通過關(guān)鍵幀助手菜單設(shè)置)的作用相同。利用這些插值算法可以為數(shù)值轉(zhuǎn)換計(jì)算提供一個(gè)更自然的運(yùn)算過程,從而得到更流暢的變化效果,僅僅使用前面介紹的手寫公式是做不到這一點(diǎn)的。示例: 滾動(dòng)欄 現(xiàn)在讓我們使用這種簡單的方法來快速完成一個(gè)例子,我們將制作一個(gè)滾動(dòng)欄的動(dòng)畫。首先我們需要建立兩個(gè)圖層,一個(gè)文本區(qū)域圖層和一個(gè)滾動(dòng)欄圖層。我們要為文本圖層的軸心點(diǎn)加入表達(dá)式,因?yàn)檫@樣可以保證我們可以操縱圖層的位置屬性(當(dāng)圖層滾動(dòng)時(shí)位置屬性仍然不會改變)。記住一定要在一個(gè)方向上控制軸心點(diǎn)以得到正確的滾動(dòng)效果,在這個(gè)例子中我們將對軸心點(diǎn)做垂直方向的運(yùn)動(dòng)以使文本區(qū)在合成窗口中上下滾動(dòng)。為了使?jié)L動(dòng)的范圍最大,也就是文本區(qū)域全部實(shí)現(xiàn)滾動(dòng),我們將軸心點(diǎn)的Y值范圍設(shè)置為0到圖層的高度,也就是我們的目標(biāo)參數(shù)值為:value1=0;value2=height;至于當(dāng)前參數(shù)范圍,我們將其設(shè)置在合成窗口的高度之間,我們需要在頂部與底部空出幾行以得到更好的效果。假如合成窗口的尺寸為320240,那么就將當(dāng)前參數(shù)范圍設(shè)置在25至215之間,當(dāng)滾動(dòng)欄在Y軸上從25運(yùn)動(dòng)到215時(shí),文本區(qū)將開始滾動(dòng)。可以設(shè)置:t_min=20t_max=220當(dāng)然,當(dāng)前參數(shù)就是滾動(dòng)欄的Y軸坐標(biāo):t=this_comp.layer(Scroll).position1將幾條語句綜合起來,加以恰當(dāng)?shù)淖兞棵Q,我們就得到了下面的表達(dá)式:scroll_y=this_comp.layer(Scroll).position1;scrolled_amount=linear(scroll_y, 20, 220, 0, height);最后我們將scrolled_amount的值放到一個(gè)二維數(shù)組中,讓文本圖層的軸心點(diǎn)X軸坐標(biāo)保持不變,最終的表達(dá)式為:scroll_y=this_comp.layer(Scroll).position1;scrolled_amount=linear(scroll_y, 20, 220, 0, height);anchor_point0, scrolled_amount;/(只為滾動(dòng)欄Y軸的位置屬性設(shè)置關(guān)鍵幀):如果將該表達(dá)式應(yīng)用到3D圖層的旋轉(zhuǎn)屬性上,就可以制作出三維滾動(dòng)旋轉(zhuǎn)效果:緩存參考對象:相當(dāng)于臨時(shí)變量前面我們已經(jīng)講解了如何使用拾取線來建立簡單的表達(dá)式,有時(shí)候你不想也不能通過這種方式來建立表達(dá)式。例如,你不可以將拾取線拖動(dòng)到屏幕中不可見的參數(shù)上(圖層寬度或者是持續(xù)時(shí)間等)。在這種情況下,你就需要建立一個(gè)緩存參考對象,這要比使用拾取線復(fù)雜的多,因?yàn)槟阈枰斫庖恍㎎avascript的語法,剛接觸到這種方法時(shí)也許會感到很困難,一旦我們理解了一些術(shù)語后,我們就會感受到建立參考對象的方便之處。對象:簡單的說對象就是一個(gè)容器,每一個(gè)對象都可以包含其他的對象、屬性和方法。例如,AE中的一個(gè)合成就是一類物體,每一個(gè)合成中都可以包含有其他的對象,像圖層或者諸如持續(xù)時(shí)間和寬度等屬性。AE中的所有元素對于我們來說都是很熟悉的合成、圖層、不透明度等等,他們或者屬于對象或者屬于對象包含的物體。因?yàn)閷ο罂梢园渌膶ο?,所以說對象存在層級結(jié)構(gòu),位于最高層級上面的對象叫做全局對象。全局對象和非全局對象要標(biāo)識需要從中提取數(shù)據(jù)的屬性,必須首先標(biāo)定一個(gè)全局對象。全局對象在AE的表達(dá)式中不需要作出任何的特定說明具有唯一的指向作用,其他的對象均隸屬于全局對象。要想指向特定的非全局對象,必須首先在其前面加上所在的全局對象名稱。還沒有理解,沒關(guān)系,我們用街道地址來做一個(gè)比喻,如果要郵寄一封信件,僅將收信人地址寫成92號的話郵遞服務(wù)部門就會十分迷茫,因 為在全國可能有數(shù)十萬個(gè)92號的門牌,而你所說的究竟是哪一個(gè)呢?所以說你至少要在地址前面加上省份、城市、地區(qū)和街道,如果你在海外還需要注明國家,至于國家的上一級就沒什么說明的意義了任何國家均在地球上是人人皆知的,那么國家就是全局對象。因此,在AE中,在任何制作前你需要建立一個(gè)全局對象,就像你需要在信封上面注明收信人所在國家的地址一樣。AE中的全局對象包括:全局對象返回對象類型this_layer普通圖層,燈光圖層,攝影機(jī)圖層this_comp合成comp(name)合成footage(name)素材time數(shù)值value數(shù)值確定了全局對象后,我們就需要設(shè)置屬于該對象的次級物體、屬性或者是方法,但是你又怎么知道你所選擇的屬性或者是方法什么意思呢? 要查閱AE用戶手冊中的表達(dá)式部分來進(jìn)行參考設(shè)置。首先你需要明確對象的類型,例如,this_comp就會返回合成對象,然后你就可以在參考表格或用戶手冊中查找該類對象所包含的屬性、方法或者是次級物體。所以,設(shè)置完全局對象后,我們可以在當(dāng)前合成中選擇一個(gè)特殊圖層:this_comp.layer(Solid 1) 該表達(dá)式返回當(dāng)前合成中叫做“solid1”的圖層,如果我們僅僅需要一個(gè)圖層次級對象,那么到此就可以結(jié)束了,如果我們還需要該圖層的屬性或者是事件就需要在該語句后面加上相應(yīng)的參數(shù)。讓我們再來看一下語句的書寫方式,javascript語法規(guī)定全局對象與次級對象之間必須以點(diǎn)號分割,以說明物體之間的層次關(guān)系。另外,在整條語句中,除了引號中間圖層名稱之間可以加入空格外,其余地方不允許出現(xiàn)空格。如果你仍然感到這個(gè)語法十分麻煩,那么你還可以使用拾取線來幫助你,在表達(dá)式區(qū)域使用鼠標(biāo)選中需要物體的參數(shù)參考連接的部分使其高亮顯示,然后拖動(dòng)鼠標(biāo)到需要建立連接的參數(shù)上,AE將自動(dòng)插入正確的對象參考連接。除了我們前面列出的屬性外,圖層還包括下面的屬性和方法:圖層屬性或方法返回值維數(shù)單位width數(shù)值1像素height數(shù)值1像素start_time數(shù)值1秒in_point數(shù)值1秒out_point數(shù)值1秒has_video邏輯1邏輯值(真 假)has_audio邏輯1邏輯值(真 假)active邏輯1邏輯值(真 假)audio_active邏輯1邏輯值(真 假)audio_levels屬性2 左聲道, 右聲道分貝index數(shù)值1數(shù)值parent普通圖層,燈光圖層,攝影機(jī)圖層 source合成貨圖層 mask(index or name)遮罩 effect(index or name)效果 這個(gè)表格不是十分詳細(xì)??梢圆殚咥E的用戶手冊. 這里的表格僅僅證實(shí)圖層的屬性可以返回給不同對象, 甚至包括其他合成. 例如你可以建立下面的表達(dá)式:this_comp.layer(Nested Comp).source.layer(Solid 1).position默認(rèn)對象當(dāng)前圖層圖層參考語句看起來十分煩瑣,也不便于記憶,AE提供了默認(rèn)的對象以簡化最通用的參考對象:this_layer,如果不設(shè)置任何全局對象,AE會自動(dòng)理解為針對當(dāng)前圖層,并且所有的操作都從當(dāng)前圖層開始。這就是你可以只寫opacity而不必書寫his_layer.opacity的原因。即使你想選擇當(dāng)前合成中的另外的圖層, 你也不能寫成這種形式layer(Layer 1) 因?yàn)閳D層不是全局對象他們是屬于合成的次級對象, AE需要知道圖層所在的合成. 所以你需要在圖層前面加上合成名字:this_comp.layer(Layer 1)實(shí)例應(yīng)用:在第一部分的最后,我們將使用前面介紹的表達(dá)式基礎(chǔ)部分的知識來完成一個(gè)簡單的小例子。我們將重新使用輪胎的例子,使用移動(dòng)屬性來控制圖層的旋轉(zhuǎn)屬性。首先,讓我們整理一下制作思路,我們要給圖層的旋轉(zhuǎn)屬性加上表達(dá)式,并在表達(dá)式的最后以一個(gè)常量結(jié)束,所以首先要給旋轉(zhuǎn)參數(shù)加上一個(gè)表達(dá)式。接下來,我們需要給圖層的位置屬性設(shè)置關(guān)鍵幀,以位置屬性的變化驅(qū)動(dòng)旋轉(zhuǎn)屬性的變化,在我們的例子中,我們僅僅需要輪胎在X 軸上移動(dòng),所以我們只需要:position0真實(shí)的物理世界告訴我們,當(dāng)輪胎移動(dòng)一個(gè)周長的距離時(shí),它將完成一個(gè)周期(360)的旋轉(zhuǎn),在開始時(shí)我們會為設(shè)置計(jì)算公式而犯愁,還需要知道,輪胎的尺寸會影響到在一個(gè)旋轉(zhuǎn)周期內(nèi)其移動(dòng)的距離,所以我們需要了解輪胎的尺寸,圖層的寬度。假如輪胎的尺寸與圖層的尺寸相差無幾(在輪胎的周圍沒有空白的區(qū)域),我們可以使用圖層寬度來描述輪胎的直徑:width;但是我們不能直接使用圖層寬度,我們需要使用圖層寬度來計(jì)算出輪胎的周長,circumference=width*Math.PI; 如果輪胎的寬度是100個(gè)像素,他的周長將會是314個(gè)像素,但是如果我們改變圖層縮放屬性呢,再使用圖層的寬度來計(jì)算輪胎的周長所得到的結(jié)果就不會準(zhǔn)確,為了得到更準(zhǔn)確的計(jì)算結(jié)果,我們要利用圖層X軸向的縮放屬性來控制輪胎的周長:circumference=width*( scale0/100)*Math.PI;我們將圖層的X軸縮放屬性(scale0)除以100是因?yàn)榭s放屬性的返回值是百分比,接下來我們就需要定義圖層在X軸向移動(dòng)的變量,在我們的例子中我們要使圖層從X軸的零點(diǎn)開始移動(dòng),所以我們使用下面的表達(dá)式:distance=position0;最后我們寫出核心表達(dá)式:(distance/circumference)*360;綜合起來,我們需要給旋轉(zhuǎn)屬性賦予這樣的表達(dá)式:circumference=width*( scale0/100)*Math.PI;distance=position0;(distance/circumference)*360這時(shí)再觀看動(dòng)畫,會看到輪胎的移動(dòng)與旋轉(zhuǎn)已經(jīng)非常的自然了,絲毫沒有滑動(dòng)的痕跡,還是那句話我們可以使用手動(dòng)設(shè)置關(guān)鍵幀來實(shí)現(xiàn)同樣的效果,但是如果圖層作加速減速運(yùn)動(dòng)時(shí),表達(dá)式的優(yōu)勢更是體現(xiàn)的淋漓盡致??梢詫⑦@種方法應(yīng)用到單獨(dú)的文字動(dòng)畫中,也可以應(yīng)用到非正常運(yùn)動(dòng)的物體中,得到真實(shí)的效果。AE幾何學(xué)概述在表達(dá)式基礎(chǔ)部分的講解里,我們涉及到的大部分是一些代數(shù)的應(yīng)用,在AE的表達(dá)式中只需要應(yīng)用簡單的代數(shù)學(xué)知識就可以實(shí)現(xiàn)很多效果,但是如果在書寫表達(dá)式的時(shí)候融入幾何學(xué)知識,那么表達(dá)式的高效便捷將體現(xiàn)的更加淋漓盡致。簡單的說,幾何學(xué)就是研究圖形的空間關(guān)系的自然科學(xué)。在接下來的教程中我們將講解一些基本的幾何學(xué)公式和關(guān)系函數(shù)以及幾何學(xué)在AE表達(dá)式中的應(yīng)用。這部分教程結(jié)構(gòu)組織得非常嚴(yán)謹(jǐn),當(dāng)你完成這部分教程的學(xué)習(xí)時(shí),你就能基本掌握幾何學(xué)知識的實(shí)際應(yīng)用,例如建立位移屬性與角度屬性之間的關(guān)系,進(jìn)而生成和諧的運(yùn)動(dòng)狀態(tài)。矢量包含有自己的屬性,矢量既有大小也有方向。每個(gè)數(shù)字陣列定義一個(gè)矢量,數(shù)字陣列就是矢量。利用表達(dá)式制作一個(gè)淡入淡出效果,這是一個(gè)較常用且簡單的效果,但每次都要設(shè)置透明度的四個(gè)關(guān)鍵幀動(dòng)畫,還要輸入數(shù)值。如果多個(gè)鏡頭都要使用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 煤礦項(xiàng)目審查方案(3篇)
- 園藝小屋改造方案(3篇)
- DB23-T3017-2021-旅游氣候季節(jié)劃分-黑龍江省
- DB23-T2917-2021-紅皮云杉人工林修枝技術(shù)規(guī)程-黑龍江省
- 共青團(tuán)全委會管理制度
- 醫(yī)院輻射相關(guān)管理制度
- 公寓公用設(shè)備管理制度
- 醫(yī)院重要部門管理制度
- 地鐵維護(hù)維修管理制度
- 樓頂圍安裝方案(3篇)
- 2025年物聯(lián)網(wǎng)工程師考試試題及答案
- 宣城郎溪開創(chuàng)控股集團(tuán)有限公司下屬子公司招聘筆試題庫2025
- 2025年高爾夫教練職業(yè)資格考試試卷及答案
- 汽車掛靠合同終止協(xié)議書
- 抖音合作合同協(xié)議書
- 原材料采購應(yīng)急預(yù)案
- 長沙市直事業(yè)單位招聘工作人員考試真題2024
- 肥胖癥診療指南(2024年版)解讀
- 人工智能驅(qū)動(dòng)的動(dòng)態(tài)權(quán)限管理與訪問控制-洞察闡釋
- 材料力學(xué)(山東科技大學(xué))知到智慧樹期末考試答案題庫2025年山東科技大學(xué)
- 2024北京西城區(qū)六年級(下)期末數(shù)學(xué)試題及答案
評論
0/150
提交評論