AE表達式基礎(chǔ)知識_第1頁
AE表達式基礎(chǔ)知識_第2頁
AE表達式基礎(chǔ)知識_第3頁
AE表達式基礎(chǔ)知識_第4頁
AE表達式基礎(chǔ)知識_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上關(guān)于表達式                   當(dāng)您想創(chuàng)建和鏈接復(fù)雜的動畫,但想避免手動創(chuàng)建數(shù)十乃至數(shù)百個關(guān)鍵幀時,請嘗試使用表達式。表達式是一小段軟件,它很像腳本,它的計算結(jié)果為某一特定時間點單個圖層屬性的單個值。腳本告知應(yīng)用程序執(zhí)行 某種操作,而表達式說明屬性是 什么內(nèi)容。通過表達式,您可創(chuàng)建圖層屬性之間的關(guān)系,以及使用某一屬性的關(guān)鍵幀來動態(tài)制作其他圖層的動畫。例如,您可使用關(guān)聯(lián)器鏈接路徑屬性,以便蒙版能夠從筆刷筆觸或者形狀圖

2、層對象中獲取其路徑。表達式語言基于標(biāo)準(zhǔn)的 JavaScript 語言,但您不必了解 JavaScript 就能使用表達式。您可以創(chuàng)建表達式,方法是使用關(guān)聯(lián)器或者復(fù)制簡單示例并修改示例以滿足您的需求。注意:           示例表達式的兩個來源是表達式采樣器模板項目(“文件”>“瀏覽模板項目”)以及“行為”類別中的動畫預(yù)設(shè)(“動畫”>“瀏覽預(yù)設(shè)”)。動畫預(yù)設(shè)可以包括表達式,甚至還可以完全由表達式組成。使用表達式而非關(guān)鍵幀的動畫預(yù)設(shè)有時稱為行為。在向某一屬性添加表達式后,可以繼續(xù)為該屬性添加或編輯關(guān)鍵幀。表達式可

3、以采用某一屬性值(由其關(guān)鍵幀確定)并使用該值作為生成新的修改值的輸入。例如,除了已設(shè)置關(guān)鍵幀的運動外,圖層的旋轉(zhuǎn)屬性的以下表達式還會將旋轉(zhuǎn)屬性的值增大 90 度:?value + 90某些方法(例如 wiggle)直接作用于已設(shè)置關(guān)鍵幀的屬性值。(請參閱屬性特性和方法(表達式引用)。)圖層的位置屬性的以下表達式會保留圖層的已設(shè)置關(guān)鍵幀的運動并使其稍微擺動一點:?wiggle(10, 10)注意:           使用 wiggle 表達式通常比使用搖擺器更快速且更容易。當(dāng)您制作文本動畫時,您

4、可以使用表達式選擇器來指定您想要動畫屬性對每個文本字符產(chǎn)生多大程度的影響。您可以向動畫組添加一個或多個表達式選擇器,且該動畫組可以包含一個或多個屬性。添加、編輯和移除表達式                  您可以通過手動鍵入表達式或通過使用“表達式語言”菜單自己輸入整個表達式;您也可以使用關(guān)聯(lián)器創(chuàng)建表達式或者從某個示例或其他屬性中粘貼表達式。您可以在“時間軸”面板中使用表達式完成您的所有工作,但有時將關(guān)聯(lián)器拖動到“效果控件”面板的屬性中更為方便。您在表達式字段(時間圖表中一個可調(diào)整大

5、小的文本字段)中輸入和編輯表達式。表達式字段顯示在圖層條模式中的屬性旁;表達式字段顯示在圖表編輯器模式中的圖表編輯器的底部。您可以在文本編輯器中編寫表達式,然后將其復(fù)制到表達式字段中。當(dāng)您向圖層屬性添加表達式時,默認(rèn)表達式將顯示在表達式字段中。默認(rèn)表達式實際上不執(zhí)行任何操作,它會將屬性值設(shè)置為其本身,這使您能輕松地自行微調(diào)表達式。圖層條模式下“時間軸”面板中的表達式界面A. “啟用表達式”開關(guān) B. “顯示后表達式圖表”按鈕 C. 關(guān)聯(lián)器 D. “表達式語言”菜單 E. “表達式”字段當(dāng)您在編輯表達式時,各種預(yù)覽均已掛起;一個紅色條顯示在等待您退出文本編輯模式的面板的底部。包含表達式的屬性的值

6、顯示為紅色或粉紅色類型。開始使用表達式的一種好方法是使用關(guān)聯(lián)器創(chuàng)建簡單表達式,然后使用簡單數(shù)學(xué)運算(例如下表中所列的運算)調(diào)整表達式的行為:符號函數(shù)+加-減/除*乘*-1執(zhí)行與原來相反的操作,例如逆時針,而非順時針例如,可以通過在表達式結(jié)尾鍵入 *2 將結(jié)果增大一倍;也可以通過在表達式結(jié)尾鍵入 /2 將結(jié)果減小一半。在編制適合編輯的表達式時,可以結(jié)合這些簡單的運算以及更多運算。例如,可以將 /360*100 添加到表達式結(jié)尾以將其范圍從 0-360 更改到 0-100。如果您要將 360 度刻度盤的值轉(zhuǎn)換為按百分比計算的滑塊,此更改將很有幫助?!皶r間軸”面板中的“表達式語言”菜單包含可在表達式

7、中使用的特定于 After Effects 的語言元素。此菜單有助于確定有效元素及其正確語法;可使用其作為可用元素的參考。當(dāng)您從菜單中選擇任何對象、屬性或方法時,After Effects 會在表達式字段中的插入點將其自動插入。如果選中表達式字段中的文本,新表達式文本將替換所選文本。如果插入點不在表達式字段中,新表達式文本將替換該字段中的所有文本。“表達式語言”菜單列出了參數(shù)和默認(rèn)值。此約定使您能夠輕松記得在編寫表達式時可以控制哪些元素。例如,在語言菜單中,“屬性”類別的擺動方法顯示為 wiggle(freq, amp, octaves=1, amp_mult=.5, t=time)。五個參數(shù)

8、在 wiggle 后面的圓括號中列出。最后三個參數(shù)中的 = 表示使用這些參數(shù)是可選的。如果您沒有為其指定任何值,則它們將分別默認(rèn)為 1、.5 以及當(dāng)前時間。注意:           您必須將“表達式語言”菜單編寫的參數(shù)名稱替換為實際值。Paul Tuersley 在 AE Enhancer 論壇上提供了一個可向所選屬性自動添加 wiggle、smooth 和 loop 表達式的腳本。使用此腳本是初學(xué)者體驗表達式的一種好方法。Jeff Almasol 提供了一個可自動處理表達式并進行指

9、定更改的腳本。例如,腳本可用于自動移除或啟用已停用表達式。有關(guān)更多信息,請訪問 Jeff Almasol 的 redefinery 網(wǎng)站。添加、禁用或移除表達式                  · 要向某屬性添加表達式,請在“時間軸”面板中選擇該屬性并選擇“動畫”>“添加表達式”或者按 Alt+Shift+= (Windows) 或 Option+Shift+= (Mac OS);或者按住 Alt 鍵并單擊 (Windows) 或按住 Option 鍵并單擊 (Mac

10、 OS)“時間軸”面板或“效果控件”面板中屬性名稱旁的秒表按鈕 。· 要暫時禁用表達式,請單擊“啟用表達式”開關(guān) 。當(dāng)表達式處于禁用狀態(tài)時,此開關(guān)中會顯示一條斜杠 。· 要從某屬性中移除表達式,請在“時間軸”面板中選擇該屬性并選擇“動畫”>“移除表達式”,或者按住 Alt 鍵并單擊 (Windows) 或按住 Option 鍵并單擊 (Mac OS)“時間軸”面板或“效果控件”面板中屬性名稱旁的秒表按鈕。使用關(guān)聯(lián)器編輯表達式               

11、60;  如果不熟悉 JavaScript 或 After Effects 表達式語言,您仍可以通過使用關(guān)聯(lián)器來利用表達式的功能。您可將關(guān)聯(lián)器  從一個屬性輕松拖動到另一屬性以將這些屬性與一個表達式相關(guān)聯(lián),而表達式文本是在表達式字段中的插入點輸入的。如果選中表達式字段中的文本,新表達式文本將替換所選文本。如果插入點不在表達式字段中,新表達式文本將替換該字段中的所有文本。將關(guān)聯(lián)器拖動到屬性以創(chuàng)建指向該屬性值的鏈接??梢詫㈥P(guān)聯(lián)器拖動到屬性的名稱或值。如果拖動到屬性的名稱,則生成的表達式會將所有值作為一個整體顯示。例如,如果您將關(guān)聯(lián)器拖動到位置屬性的名稱,則會

12、顯示如下表達式:?thisComp.layer("Layer 1").transform.position如果將關(guān)聯(lián)器拖動到位置屬性的某個組件值(例如 y 值),則會顯示如下表達式,其中屬性的 x 和 y 坐標(biāo)均已鏈接到位置屬性的 y 值:?temp = thisComp.layer("Layer 1").transform.position1; ?temp, temp如果將關(guān)聯(lián)器拖動到的圖層、蒙版或效果在其本地上下文中不具有唯一名稱,則 After Effects 會對其重命名。例如,如果您在同一圖層上具有兩個或更多個名為“Mask”的蒙版,且您將關(guān)聯(lián)

13、器拖動到其中之一,則 After Effects 會將其重命名為“Mask 2”。關(guān)聯(lián)器創(chuàng)建的表達式的格式由“以簡明英語編寫表達式拾取”首選項(“編輯”>“首選項”>“常規(guī)”(Windows) 或者“After Effects”>“首選項”>“常規(guī)”(Mac OS))確定。默認(rèn)情況下,關(guān)聯(lián)器創(chuàng)建簡明英語表達式,這些表達式使用顯示在“時間軸”面板中的屬性名稱。因為這些名稱被編碼到應(yīng)用程序中且未曾更改,所以這些表達式在 After Effects 以其他語言運行時可以運行。您可更改的任何屬性名稱均括在雙引號中且在任何語言中均保持一致。如果您不打算跨語言共享您的項目,則可取消

14、選擇此首選項。此首選項不會影響效果名稱或效果屬性。以下是使用簡明英語的一個示例:?thisComp.layer("Layer 1").transform.position以下是未使用簡明英語的同一表達式:?thisComp.layer("Layer 1")("Transform")("Position")注意:           因為默認(rèn)情況是使用簡明英語,所以本文檔在多數(shù)示例和插圖中使用簡明英語。o 將關(guān)聯(lián)器拖動到“時間軸”面板或“效果控件”

15、面板中的其他屬性。o 根據(jù)需要,修改表達式字段中的默認(rèn)表達式。注意:           如果您使用關(guān)聯(lián)器創(chuàng)建表達式以引用圖層,且該圖層與同一合成中的另一圖層名稱相同,則目標(biāo)圖層的名稱會更改。新的圖層名稱是結(jié)尾有一數(shù)字的舊的圖層名稱。此更改是確保表達式清楚引用合成中的單個圖層所必需的。手動編輯表達式                  o 單擊表達式字段以進入文本編輯模式。注意:      

16、;     在您進入文本編輯模式后,會選中整個表達式。要添加到表達式,請在表達式中單擊以放置插入點;否則,您將替換整個表達式。o 在表達式字段中鍵入和編輯文本,可以選擇使用“表達式語言”菜單。要查看多行表達式的更多部分,請拖動表達式字段的底部或頂部以調(diào)整其大小。o 要退出文本編輯模式并激活表達式,請執(zhí)行下列操作之一:§ 按數(shù)字小鍵盤上的 Enter 鍵。§ 在表達式字段外部單擊。示例:使用表達式語言參考編寫表達式                  

17、;跟隨此示例一起學(xué)習(xí)如何使用 After Effects 表達式語言參考編寫表達式。此示例中創(chuàng)建的表達式將 Solid 2(實底 2)的位置屬性與 Solid 1(實底 1)的位置屬性相鏈接,Solid 2(實底 2)的移動與 Solid 1(實底 1)的移動偏移量為 2 秒。o 創(chuàng)建兩個實底圖層:實底 1 和實底 2。o 使用關(guān)鍵幀對實底 1 的位置屬性值進行動畫制作。(請參閱關(guān)于動畫、關(guān)鍵幀和表達式。)o 選擇實底 2 的位置屬性并選擇“動畫”>“添加表達式”或者按住 Alt 鍵并單擊 (Windows) 或按住 Option 鍵并單擊該屬性的秒表  按鈕。默認(rèn)情

18、況下將顯示以下表達式:?transform.positiono 直接在 transform.position 上鍵入以下內(nèi)容:?thisCompo 元素 thisComp 是一個全局屬性,其值是一個表示當(dāng)前合成的合成對象。要確定表達式中的 thisComp,請查看 thisComp 返回值,該值位于 全局對象、屬性和方法(表達式參考)。請注意,thisComp 返回的是合成對象。接下來,查看 Comp 屬性和方法(表達式參考)以查看哪些屬性和方法可用于 Comp 對象。一種選項是 layer(index)

19、。圓括號內(nèi)的索引或數(shù)字指定您要使用的圖層。在此示例中,我們假定實底 1 是您的合成中的第一個圖層。要從活動合成中的第一個圖層中檢索值,請在表達式結(jié)尾鍵入 .layer(1),從而得到以下內(nèi)容:?thisComp.layer(1)o 此外,查看表達式元素參考以檢查 layer(index) 返回的是圖層對象。查看 圖層常規(guī)屬性和方法(表達式參考),并找出要使用的元素。例如,如果您要獲得圖層的位置屬性的值,請在表達式結(jié)尾鍵入 .position 以得到以下內(nèi)容:?thisComp.layer(1).positiono 從圖層常規(guī)屬性和方法(表達式參

20、考)中,可看到“位置”屬性返回性質(zhì)。查找性質(zhì)屬性和方法(表達式參考)并了解可向表達式添加一個時間因素。要添加特定時間,例如當(dāng)前時間外加 2 秒,請在表達式結(jié)尾鍵入 .valueAtTime(time+2) 以得到以下內(nèi)容:?thisComp.layer(1).position.valueAtTime(time+2)o 從性質(zhì)屬性和方法(表達式參考),了解 valueAtTime 方法返回的是數(shù)字或數(shù)列。當(dāng)表達式返回數(shù)目、數(shù)組或布爾值(True 或 False)時,您無法再向該表達式添加屬性或方法(但如果需要,可以添加算術(shù)運算符,例如 +、-、*

21、 和 /)。顯示表達式和表達式圖表                在圖表編輯器模式下,單個表達式字段在圖表編輯器底部顯示為可調(diào)整大小的框并且僅為所選屬性顯示該表達式。要同時顯示多個表達式字段,“時間軸”面板必須采用圖層條模式。要在圖層條模式和圖表編輯器模式之間切換,請按 Shift+F3 鍵。· 要僅顯示表達式的屬性,請選擇一個或多個圖層,然后按 EE。· 要在圖表編輯器中顯示表達式字段,請從圖表編輯器底部的“選擇圖表類型和選項” 菜單

22、中選擇“顯示表達式編輯器”。在向?qū)傩蕴砑有碌谋磉_式后,將顯示表達式編輯器,而不管此設(shè)置如何。要調(diào)整表達式字段的大小,請向上或向下拖動其底邊緣。· 要了解表達式如何更改值或速度圖表,請在圖表編輯器中顯示值或速度圖表時,單擊“顯示后表達式圖表”按鈕 。暗淡的彩色圖表顯示應(yīng)用表達式之前的值或速度,明亮的彩色圖表顯示應(yīng)用表達式之后的值或速度。為位置屬性打開圖表疊加還會更改“合成”面板中顯示的運動路徑,以便您能夠查看受表達式影響的路徑。您可以使用“時間軸”面板中的搜索字段來搜索表達式以及屬性的其他組件。如果搜索字符串顯示在表達式中,則屬性及其包含的屬性組和圖層將顯示在篩選的搜索結(jié)果集

23、中。為源文本編寫表達式                文本圖層的源文本屬性由表達式解釋為 JavaScript 字符串。您可以使用關(guān)聯(lián)器從其他文本圖層中檢索源文本;然而,只會使用目標(biāo)圖層的第一個字符的樣式。有關(guān) JavaScript 字符串對象的更多信息,請參閱 JavaScript 參考資源??梢栽谧址磉_式中使用“”開始一個新的文本行。例如,要將原始文本從一個圖層復(fù)制到同一圖層上,并在新行中用全部大寫的字符重復(fù)原始文本,請使用以下表達式:?text.sourceText + "&

24、quot; + text.sourceText.toUpperCase()向合成添加文本圖層并向其源文本屬性添加表達式可能是檢查其他圖層的屬性值的一種非常好的方法。例如,源文本屬性的以下表達式以圖層堆積順序報告下一個圖層的不透明度屬性的名稱和值:?thisComp.layer(index + 1).name + "Opacity = " + thisComp.layer(index + 1).opacity.value以下示例在設(shè)置其“視頻”開關(guān)的當(dāng)前時間以堆積順序報告用作最高圖像圖層源的素材項目的名稱。?source_footage_name = ""

25、 ?for (i = 1; i <_ if="if" continue="continue" index="index" time="time" thiscomp.numlayers="thiscomp.numlayers" my_layer="thisComp.layer(i);" i="=" _="_" my_layer.active="my_layer.active" my_layer.hasvideo=

26、"my_layer.hasvideo" >= my_layer.inPoint &amp;&amp; time &lt; my_layer.outPoint) ?try ?source_footage_name = my_; ?catch(err1) ?source_footage_name = my_ ? ?break; ? ? ?source_footage_name</_>向表達式添加注釋           &#

27、160;      如果您編寫復(fù)雜的表達式,并打算供您或其他人稍后使用,則應(yīng)添加說明表達式的作用及其組件如何工作的注釋。· 在注釋開頭鍵入 /。將忽略 / 和行尾之間的任何文本。例如:?/這是注釋。有關(guān)這種注釋類型的示例,請參閱表達式示例:根據(jù)距離攝像機的距離,對 3D 圖層進行淡化不透明度處理。· 在注釋開頭鍵入 /* 并在注釋結(jié)尾鍵入 */。將忽略 /* 和 */ 之間的任何文本。例如:?/*這是多行注釋。*有關(guān)這種注釋類型的示例,

28、請參閱保存并重新使用表達式。保存和重用表達式                在您編寫完表達式后,可以通過將其復(fù)制并粘貼到文本編輯應(yīng)用程序或者通過將其保存在動畫預(yù)設(shè)或模板項目中來保存表達式以供日后使用。然而,因為表達式的編寫涉及項目中的其他圖層且可能會使用特定圖層名稱,所以有時必須修改表達式才能在項目之間傳遞表達式。您可以使用正常的 JavaScript 函數(shù)語法在表達式中定義自己的函數(shù)。在此示例中,定義了一個計算兩個值的平均值的函數(shù),且最后一行使用以下函數(shù):?function average(a

29、, b) ? ?return (a + b) / 2; ? ?average(position, thisComp.layer(1).position);注意:           您必須在其中使用每個函數(shù)的每個表達式中確切定義該函數(shù)。沒有可以添加到的函數(shù)的全局庫。如果要保存表達式以便在其他項目中使用,則應(yīng)向表達式添加注釋。(請參閱為表達式添加示例。)您還應(yīng)使用變量以便能夠在一個位置更改值而無需在多個位置更改值。例如,此表達式開頭有一個說明表達式用途的多行注釋并且在聲明并初始化變量后有一個說明變量用途的簡短注釋:?/* ?T

30、his expression on a Source Text property reports the name ?of a layer and the value of its Opacity property. */ ? ?var myLayerIndex = 1; / layer to inspect, initialized to 1, for top layer? ? ?thisComp.layer(myLayerIndex).name + ": Opacity = " + ?thisComp.layer(myLayerIndex).opacity.value您

31、可以保存包括表達式的動畫預(yù)設(shè)并在其他項目中重用動畫預(yù)設(shè),前提是表達式不引用其他項目中不存在的屬性。當(dāng)您保存其中的屬性具有表達式但沒有關(guān)鍵幀的預(yù)設(shè)時,只會保存表達式。如果該屬性具有一個或多個關(guān)鍵幀,則保存的預(yù)設(shè)包含表達式以及所有關(guān)鍵幀值。您可以從圖層屬性復(fù)制表達式,可以包含也可以不包含該屬性的關(guān)鍵幀。· 要將表達式和關(guān)鍵幀從一個屬性復(fù)制到其他屬性,請在“時間軸”面板中選擇源圖層屬性,復(fù)制該圖層屬性,選擇目標(biāo)圖層屬性,然后粘貼。· 要將表達式從一個屬性復(fù)制到其他屬性且不復(fù)制關(guān)鍵幀,請選擇源屬性,選擇“編輯”>“僅復(fù)制表達式”,選擇目標(biāo)屬性,然后粘貼。當(dāng)您要同時復(fù)制多個表達

32、式并將其粘貼到一個或多個新圖層上時,或者當(dāng)您要復(fù)制一個表達式并將其粘貼到多個圖層上時,復(fù)制不含關(guān)鍵幀的表達式非常有用。注意:           正如粘貼關(guān)鍵幀和其他項一樣,您通??梢詫⑵湔迟N到目標(biāo)圖層,并且依賴 After Effects 確定哪個屬性應(yīng)該是粘貼操作的目標(biāo)。例如,這適用于將位置屬性從一個圖層復(fù)制到其他圖層,但如果要將表達式從位置屬性粘貼到縮放屬性,則您必須自己選擇目標(biāo)屬性。Paul Tuersley 提供了 pt_ExpressEdit 腳本,用于管理和編輯表達式。表達式控制效果    

33、              使用表達式控制效果,可通過使用表達式將屬性鏈接到控制,來添加一個可用于處理一個或多個屬性值的控制。單個控制可同時影響多個屬性。表達式控制效果的名稱指示其提供的屬性控制類型:角度控制、復(fù)選框控制、顏色控制、圖層控制、點控制、滑塊控制。After Effects CS5.5 和更高版本也提供了 3D 點控制。如果您從“動畫預(yù)設(shè)”>“形狀”>“背景”類別中應(yīng)用動畫預(yù)設(shè),則可以在“效果控件”面板中看到自定義的動畫形狀控制效果。此自定義效果是特別為這些動畫預(yù)設(shè)創(chuàng)建的專用表達式

34、控制效果。您可以將此效果復(fù)制并粘貼到其他圖層,也可以將其另存為動畫預(yù)設(shè)本身以便能夠在其他位置應(yīng)用。可以采用應(yīng)用其他效果(例如將效果從“效果和預(yù)設(shè)”面板拖動到圖層上)的同樣方式將表達式控制效果應(yīng)用到圖層。您可以將表達式控制效果應(yīng)用于任何圖層;但是,將其應(yīng)用于空圖層(您只需將其用作控制圖層)會非常有用。然后,可將表達式添加到其他圖層上的屬性以便從該控制中獲取輸入。例如,您可以將滑塊控制效果添加到空圖層 (Null 1) 中,然后將此表達式應(yīng)用于多個圖層的位置屬性:?position+0,10*(index-1)*thisComp.layer("Null 1").effect(&

35、quot;Slider Control")("Slider")在此示例中,當(dāng)您拖動滑塊時,具有此表達式的每個圖層都會移動。具有較高索引號(“時間軸”面板中朝向底部的圖層)的圖層的偏移量為 10 像素間隔,多于具有較低索引號的圖層。您可以在空圖層上為滑塊設(shè)置關(guān)鍵幀,且所有其他圖層會相應(yīng)地進行動態(tài)化。重命名表達式控制效果的每個實例以表明其用途通常非常有用。例如,將顏色控制效果的實例重命名為天空顏色便于說明效果所控制的內(nèi)容。您可以像重命名其他任何效果一樣重命名表達式控制效果的每個實例:在“時間軸”面板或“效果控件”面板中選擇它,并按主鍵盤上的 Enter 鍵 (Wind

36、ows) 或 Return 鍵 (Mac OS)。要修改控制的范圍,請右鍵單擊 (Windows) 或按 Control 鍵并單擊 (Mac OS) 帶下劃線的控制屬性值,然后從上下文菜單中選擇“編輯值”。將表達式轉(zhuǎn)換為關(guān)鍵幀                在某些情況下,將表達式轉(zhuǎn)換為關(guān)鍵幀非常有用。例如,如果要凍結(jié)表達式中的值,您可將表達式轉(zhuǎn)換為關(guān)鍵幀,然后相應(yīng)地調(diào)整關(guān)鍵幀;或者,如果計算表達式需要很長時間,您可將其轉(zhuǎn)換為關(guān)鍵幀,以便表達式能夠更快速地渲染。當(dāng)您將表達式轉(zhuǎn)換為關(guān)鍵幀時,Afte

37、r Effects 會計算表達式,在每個幀創(chuàng)建一個關(guān)鍵幀,然后禁用該表達式。o 在“時間軸”面板中,選擇對其編寫表達式的屬性,然后選擇“動畫”>“關(guān)鍵幀輔助”>“將表達式轉(zhuǎn)換為關(guān)鍵幀”。表達式語言                  After Effects 表達式語言基于 JavaScript 1.2,具有擴展的內(nèi)置對象集。After Effects 僅使用核心標(biāo)準(zhǔn) JavaScript 1.2 語言,而不是 Web 瀏覽器特定的擴展項。After Effects 包含它

38、自己的一組擴展對象(例如圖層、合成、素材和攝像機),您可將這些對象用于獲得 After Effects 項目中的大部分值。雖然表達式語言基于腳本語言,但是腳本和表達式之間存在一個微妙但很重要的區(qū)別:腳本告知應(yīng)用程序執(zhí)行 某種操作,而表達式說明屬性是 什么內(nèi)容。有關(guān) JavaScript 的更多信息,請參閱 JavaScript 參考資源。創(chuàng)建表達式時,須牢記下列幾點:· 表達式的值是計算的最后一個語句的值。· JavaScript 是區(qū)分大小寫的語言。· 需要分號來分隔語句或行。· 將忽略單詞之間的空格,字符串中的空格除外。在 Jav

39、aScript 中,存儲在對象中的值稱為屬性。但是,After Effects 使用術(shù)語屬性來指代“時間軸”面板中定義的圖層組件。因此,After Effects 稱 JavaScript 屬性 (property) 為方法或?qū)傩?(attribute)。通常情況下,方法和屬性之間的區(qū)別是方法通常執(zhí)行某些操作來創(chuàng)建其輸出(返回)值,而屬性則簡單地引用現(xiàn)有值來確定其輸出(返回)值。您可以通過查找方法名稱后面的圓括號(括住方法的任何輸入?yún)?shù))輕松地將方法和屬性區(qū)分開來。對象是一個可包含其他對象、屬性和方法的項。例如,合成、圖層和素材項目都屬于對象。特別是,合成、圖層和素材項目都是全局對象,這意味著

40、可以在任何上下文中引用它們而無需引用一些更高級別的對象。訪問屬性和方法                  您可以使用表達式語言訪問圖層屬性 (property) 的屬性 (attribute) 和方法。要訪問值,請使用由句號 (.) 運算符分隔的一系列對象引用。要串聯(lián)跨圖層級別的對象引用(例如,要引用效果屬性、蒙版或文本動畫),您也可以使用圓括號。例如,要將圖層 A 中的不透明度屬性與圖層 B 中的高斯模糊效果的模糊度屬性相關(guān)聯(lián),請在表達式字段中為圖層 A 的不透明度屬性輸入以下表達式

41、:?thisComp.layer("Layer B").effect("Gaussian Blur")("Blurriness")從左到右讀取此表達式,可從較高級別進行,包含對象乃至特定屬性:· 使用的全局對象引用當(dāng)前合成:thisComp。· 該合成中的特定圖層對象由其名稱引用:layer("Layer B")。· 該圖層中的特定效果對象由其名稱引用:effect("Gaussian Blur")。· 該效果中的特定效果屬性由其名稱引用:("B

42、lurriness")。對于多維屬性的第 n 個組件(如效果控制點的 y 組件),請在結(jié)尾附加 n,如下所示:?thisComp.layer("Layer B").effect("Advanced Lightning")("Origin")1表達式的默認(rèn)對象是對其編寫表達式的屬性,隨后是包含該表達式的圖層;因此,您無需指定屬性。例如,對圖層的位置屬性編寫的擺動表達式可以是以下任何一個:?wiggle(5, 10) ?position.wiggle(5, 10)當(dāng)從對其編寫表達式的圖層和屬性外部檢

43、索圖層和屬性時,您確實需要包括圖層和屬性。例如,對圖層 B 的不透明度屬性編寫的表達式(將其鏈接到圖層 A 的旋轉(zhuǎn)屬性)將類似以下表達式:?thisComp.layer("Layer A").rotation要了解其工作原理的更多示例,請使用關(guān)聯(lián)器將一個圖層屬性與另一屬性相關(guān)聯(lián),并查看它創(chuàng)建的表達式。數(shù)組和多維屬性                數(shù)組是一類存儲一組有序數(shù)值的對象。數(shù)組表示為由逗號分隔且由括號括起的數(shù)值列表,如以下示例所示:?10, 23您可以將數(shù)組對象分配給變

44、量,從而輕松引用表達式的其他區(qū)域中的數(shù)組值。例如:?myArray = 10, 23數(shù)組對象的維度是數(shù)組中元素的數(shù)目。myArray 的維度是 2。After Effects 的不同屬性具有不同維度,具體取決于這些屬性具有的值參數(shù)的數(shù)目。在表達式語言中,屬性值是單個值(數(shù)值對象)或數(shù)組(數(shù)組對象)。下表提供了一些屬性及其維度的示例:維度屬性1旋轉(zhuǎn) °不透明度 %2縮放 x=寬度, y=高度位置 x, y錨點 x, y音頻水平 left, right3縮放 width, height, depth3D 位置 x, y, z3D 錨點 x, y, z方向 x, y, z4顏色

45、red, green, blue, alpha您可以使用括號和索引號訪問數(shù)組對象的各個元素,以便指出您需要的元素。數(shù)組對象中的元素會從 0 開始建立索引。使用前面的示例,myArray0 是 10,而 myArray1 是 23。以下兩個表達式是等效的:?myArray0, 5 ?10, 5位置屬性數(shù)組如下所示建立索引:· position0 是位置的 x 坐標(biāo)。· position1 是位置的 y 坐標(biāo)。· position2 是位置的 z 坐標(biāo)。顏色表示為四維數(shù)組 red,

46、0;green, blue, alpha。在顏色深度為 8 bpc 或 16 bpc 的項目中,顏色數(shù)組中的每個值都介于 0(黑色)到 1(白色)之間。例如,red 可以介于 0(無色)到 1(紅色)之間。因此,0,0,0,0 是黑色且透明,1,1,1,1 是白色且完全不透明。在顏色深度為 32 bpc 的項目中,允許小于 0 和大于 1 的值。如果您在數(shù)組對象中使用大于最高維度組件的索引的索引,則 After Effects 會返回錯誤。例如,myArray2 會引發(fā)錯誤,而position2 會返回位置的 z 坐標(biāo)。After Effect

47、s 表達式語言中的許多屬性和方法將數(shù)組對象當(dāng)作是參數(shù)或作為值返回它們。例如,thisLayer.position 是一個二維或三維的數(shù)組對象,具體取決于圖層是 2D 還是 3D 的。如果要編寫保留位置的動畫的 y 值而在 9 點修復(fù) x 值的表達式,您將使用以下內(nèi)容:?y = position1; ?9,y以下內(nèi)容更為簡明:?9, position1這是一個要點,因此我們來看看另一個示例。如果要將圖層 A 中的 x 位置值與圖層 B 中的 y 位置值相結(jié)合,您將使用以下內(nèi)容:?x = thisComp.layer("Layer A").position0;? ?y

48、 = thisComp.layer("Layer B").position1;? ?x,y您可以創(chuàng)建僅引用 2D 或 3D 屬性的數(shù)組中的一個值的表達式。默認(rèn)情況下,除非您另外指定,否則會使用第一個值。例如,如果您將關(guān)聯(lián)器從圖層 A 的旋轉(zhuǎn)屬性拖動到圖層 B 的縮放屬性,將顯示以下表達式:?thisComp.layer("Layer B").scale0默認(rèn)情況下,此表達式使用縮放屬性的第一個值,即寬度。如果您更喜歡使用高度值,請將關(guān)聯(lián)器直接拖動到第二個值而非屬性名稱,或者如下所示更改表達式:?thisComp.layer("Layer B").scale1相反,如果您將關(guān)聯(lián)器從圖層 B 的縮放屬性拖動到圖層 A 的旋轉(zhuǎn)屬性,則 After Effects 會自動創(chuàng)建一個變量,將一維旋轉(zhuǎn)屬性值分配給該變量,然后將該變量用于縮放屬性的兩個維度:?temp =

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論