tft每日頭條

 > 圖文

 > ae裡的wiggle表達式

ae裡的wiggle表達式

圖文 更新时间:2024-08-07 10:12:49

說明:AE一般指Adobe After Effects。

前面我們對對象(Object)有了一定的了解,而且我們還介紹了一個特定的對象:方法(Method)。方法(Method)可以對值的進行操作并且可以生成新值。但是,如果我們需要的方法(Method)不存在,而我們想要創建自己的方法,該怎麼辦?

創建一個函數 function

接下來我們介紹下一個關鍵字 function

// 創建一個 function: function nameFunction (){ // 你的 function 代碼 return result; // 返回一個結果 }; // 調用上面創建的 function: nameFunction(); // 使用 function 名稱調用

我們通過一個例子來看看這是如何工作的,創建一個橢圓形狀圖層,并将其放置在合成的左上角:

ae裡的wiggle表達式(17.AE表達式之function)1

接下來,我們打開圖層的位置屬性的表達式編輯器,并寫入:

function center(){ return [thisComp.width/2,thisComp.height/2]; }; center();

ae裡的wiggle表達式(17.AE表達式之function)2

我們看到,使用剛剛創建的這個自定義的函數,來将圖層移動到了合成的中心。

function 創建詳解

function nameFunction /* 要創建一個函數,我們首先需要寫該函數關鍵字 function,然後命名該函數。 在我們的示例中,我們給自定義函數命名為 center。 你可以根據需要為你函數命名,就像定義一個變量一樣,隻要你遵守我們提到的關于命名一個變量的規則。 這也适用于創建的任何新術語,但不要以數字開頭,也不要使用已經在表達式中存在的術語。 */ () /* 為函數命名後,需要在後面添加一個括号 ()。 */ {} /* 接下來,我們在花括号内來定義函數體,即,編寫函數要執行的操作。 請記住,當我們編寫表達式時,它可以完全寫在花括号之間; 創建函數時,就像創建一個可以通過快捷方式調用的表達式。 */ return /* 在花括号内,我們可以編寫一個函數,就像編寫一個獨立存在的表達式一樣。 需要注意的是,函數的結果需要使用關鍵字return返回,因此它将生成函數創建的新值。 沒有return返回内容,它就不會産生任何内容。 當表達式執行到達return時,函數将停止執行。 return關鍵字有一個特定規則,函數的結果需要在同一行上才能起作用。 在我們的示例中,我們隻有一條語句,因此我們直接在return關鍵字之後編寫語句。 我們需要一個數組值來生成位置值,所以在括号中我們将創建一個數組值來描述x和y坐标。 寬度和高度是組成的值,将寬度和高度的數值,除以2,得到每個維度的中間值。 */ 使用這個函數 function /* 一旦創建并定義了函數,就必須調用它,就像調用對象一樣。 創建了函數并不代表被使用了,在表達式中創建對象或函數後,還得需要去調用它。 要調用該函數,我們需要輸入要使用的函數的名稱,但請注意,函數名稱後需要加上括号。 在上述示例中,我們在表達式編輯器中輸入 center() 來調用了而這個函數, 這個 center() 函數通過計算返回給我們最終要轉到的位置的寬高值。 */

創建一個帶參數的函數 function

上面我們創建了一個可以自己進行工作的函數,那麼,如果我們需要讓函數按照我們特定的要求,對我們告訴他的一些數據進行處理,并返回給我們結果,要如何處理呢?

這就需要我們創建一個帶參數的函數 function :

// 創建一個帶參數 arguments 的函數 function: function nameFunction (arguments){ // 你的 function 代碼,并包含對參數 arguments 的處理 return result; // 返回一個結果 }; // 調用上面創建的 function,并帶上參數 arguments: nameFunction(arguments); // 使用 function 名稱調用

下面,我們嘗試創建一個函數,使用函數我們反轉圖層的x和y坐标,仍然在位置屬性的表達式編輯器中寫入表達式代碼。

初始狀态:

ae裡的wiggle表達式(17.AE表達式之function)3

初始位置是 [372,204]。

位置屬性中寫入,帶有1個參數的函數:

function invert (a){ return [a[1],a[0]]; }; invert(position);

ae裡的wiggle表達式(17.AE表達式之function)4

我們可以看到,當表達式寫入後,位置屬性數值改變成了 [204,372]。

在這裡,我們的函數本身是并不知道對哪個數據進行處理的,而是在調用這個函數時,我們通過傳遞參數的方式,将一個數據(這裡傳遞的是位置數據)告訴了我們自定義的函數 invert。

上面我們傳遞的參數是一個數組值,僅傳遞了1個參數,當然我們也可以将參數數據分開傳遞。

位置屬性中寫入,帶有2個參數的函數:

function invert (a,b){ return [b,a]; }; invert(position[0],position[1]);

ae裡的wiggle表達式(17.AE表達式之function)5

大家可以看到,效果是一樣的。

函數的參數

函數的參數是可以添加若幹個的,需要注意,多個參數之間要用英文逗号“,”進行分隔,就像這樣:

nameFunction (argument 1, argument 2,..., argument n)

以上是函數 function 的基礎使用方法,大家可以嘗試一下!

以上便是本節全部内容,如果你對AE表達式感興趣,請關注後續文章!

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved