<video id="fjjjb"></video><noframes id="fjjjb"><dl id="fjjjb"></dl>
<dl id="fjjjb"></dl>
<dl id="fjjjb"><delect id="fjjjb"></delect></dl><i id="fjjjb"><delect id="fjjjb"></delect></i> <dl id="fjjjb"><delect id="fjjjb"></delect></dl>
<dl id="fjjjb"><i id="fjjjb"></i></dl>
<dl id="fjjjb"></dl><dl id="fjjjb"></dl>
<video id="fjjjb"><dl id="fjjjb"><delect id="fjjjb"></delect></dl></video>
<video id="fjjjb"></video><i id="fjjjb"><i id="fjjjb"><delect id="fjjjb"></delect></i></i>
<dl id="fjjjb"></dl>
<video id="fjjjb"><i id="fjjjb"><font id="fjjjb"></font></i></video><dl id="fjjjb"><delect id="fjjjb"></delect></dl><dl id="fjjjb"><delect id="fjjjb"><meter id="fjjjb"></meter></delect></dl>
<dl id="fjjjb"><delect id="fjjjb"><meter id="fjjjb"></meter></delect></dl><dl id="fjjjb"></dl><dl id="fjjjb"></dl><dl id="fjjjb"></dl><i id="fjjjb"><delect id="fjjjb"></delect></i><video id="fjjjb"></video><dl id="fjjjb"></dl>
<dl id="fjjjb"></dl><i id="fjjjb"></i><dl id="fjjjb"><i id="fjjjb"></i></dl><video id="fjjjb"></video><noframes id="fjjjb"><dl id="fjjjb"></dl>
當前位置: 首頁 > 影視后期 > ae教程

AE表達式教程

  • 2016-01-12
  • 作者/來源:chinaliumiao/01123.net.cn
  • 己被圍觀
  • 被點評
第一章 – 表達式的語言1.1表達式控制面板學習表達式需要從表達式的操作界面開始,在AE里新建一個合成你就能看到如下界面:點擊Position左邊的碼表你可以得到如下結果:仔細觀察



第一章 – 表達式的語言

1.3 數組 Arrays

數組 Arrays 簡介:

數組是具有相同的數據類型且按一定次序排列的一組變量的集合體,構成一個數組的這些變量稱為數組元素。AE的表達式大量的使用了JS的數組,我也不太希望讓大家學習這么復雜的數學知識,但是沒辦法,想了解表達式就要了解數組。不過,我盡量以最簡單的方式給大家描述。最簡單的數組就是一維數字,你可以把它想成一列數據;下一個就是二維數組,你可以把他它理解為像Excel表格的數據,有橫有豎。數組可以有無限的維度,但是到了三維數組就變得比較難形象化了,你可以把他們想成一個立體的正方體的數據。不過,比較幸運的是,AE中我們大部分面對的是一維數組。

如何獲取數組中的數據:

JS通過Index(索引)獲取數組中的數據,索引從0開始。所以對于一維數組索引從0開始至數組中一共有多少數據。例如,如果我們的數組是上圖的一維數組,通過索引0我們可以獲得123.9這個數據,通過5我們可以獲得498.2。多維數組通過多維索引獲得其中的數據,但是我們不會涉及到那么復雜的問題。

這里有一個比較值得注意的地方,AE中有很多屬性是二維數組(位置,縮放),但是這些數據以一維數組的形式存儲。比如,一個圖層的位移是(124.9,235.8),我們通過0可以獲得X的數據是124.9,通過1可以獲得Y的數據235.8。

數組的語法:

當我們需要從數組中獲取數據的時候,我們把索引放在方括號里面“[ ]”。所以如果希望獲得一個圖層的X位置的數據,我們可以通過position[0]獲得,當然Y的位置是通過position[1]獲得。這里大家可以記住在AE中所有的X的索引都是0,Y的所有都是1,對于3D層Z軸就是2。

這里有一點要注意一下,定義一個數組也是用方括號“[ ]”,我們下面看一個例子:

myArray = [5,6,7,8];

通過上面這行代碼我們定義了一個叫“myArray”的數組,里面有四個數據,5,6,7,8。如果希望調取這個數組中的第一個數據,我們可以這樣獲得myArray[0],我們可以獲得5。定義和獲取都使用大括號,可能會有一些混淆,但是稍加留心我們應該可以很容易區分開,我們看一個例子:

newX = position[0] + 10;

newY = position[1] + 25;

[newX,newY]

我來為大家解讀一下上面的這個例子。第一行,我們通過position[0]獲得了X軸的位置,并給X軸加10,然后我們將這個結果存儲在了一個叫“newX”的變量中。第二行以此類推,newY變量里面存儲了加了25的Y值。最后一行我們定義了一個新的數組,將新的X值和Y值賦予這個數組,然后這個數組將新的X和Y賦予Position。大家可以看下圖,通過這個表達式我們將這個固態層的X移動了10,Y移動了25。

上面這個例子,還引出了一個比較重要的問題(與數組無關),大家可以思考一下,如果我預覽上面這個動畫,這個藍色的圖層會每一幀都被表達式驅動嗎(每一幀位移都發生變化)?為了解釋方便我們看一下如下這行例子:

opacity = opacity + 1;

好,如果我們把這個表達式賦予給這個圖層的透明屬性,那么每一幀透明度會增加1嗎?答案是不會的,上面的位移也不會發生變化。

因為,表達式沒有緩存機制。

AE的表達式沒有辦法知道上一幀它做了什么(只能說是99%正確,通過程序表達式可以知道它上一幀做了什么,但是這沒多大意義,而且比較浪費渲染資源),同時表達式也不能知道它下一幀的信息。

還有一點需要大家知道的是,表達式沒有全局變量。在編程中,全局變量被聲明后,可以在任何時候調用,就好像我們在Position里面定義了一個變量,應該在其它的參數的表達式中也可以調用,但是AE的表達式是不能這樣做的。表達式與表達式之間溝通的唯一方式是通過他們賦予的那個參數,比如位移,透明,縮放。

關于表達式的一些“限制”我們會在其它篇章進行闡述,這里大家記住這個原理就可以了。

數組的計算:

現在我們看一下簡單的數組數學,AE中的大部分數組計算都很簡單,咱們看一個例子:

a = [100,150];

b = [200,250];

a + b

這個計算的結果是[300,400],非常簡單。如果我們把這個表達式賦予位移,那么我們得到的就是X=300,Y=400,這個表達式我們還可以這樣寫:

a = [100,150];

b = [200,250];

[a[0] + b[0],a[1] + b[1]]

這么寫看起來很復雜,但是結果是一樣的。如果我們將兩個不同產長度的數組相加我們會獲得什么結果呢?比如:

a = [1,2,3];

b = [4,5];

a + b

這個表達式我們會獲得這樣的結果:[5,7,3]

數組的減法基本也是差不多,看下面例子,不再過多贅述,大家應該可以猜到結果。

a = [500,400];

b = [200,300];

a-b

但是乘法和除法就不一樣了,其實AE的表達式是不能做這種運算的,也用不到這么復雜。但是它知道如何將一個數組乘以一個數字,看下面的例子:

a = [100,150];

a*10

這個計算的結果是[1000,1500],除法的結果以此類推應該是[10,15]。

還有一個要注意的地方,AE知道10*[100,100]與[100,100]*10的結果是一樣的。但是你不能寫10/[100,100],AE不知道如何計算一個數字除以一個數組。


*CGahz.COM 收集整理,轉載請注明來自CG愛好者網(www.actu-friends.com)

分享到:

更多精彩內容

已有13條評論 發表評論

欧美亚洲另类丝袜综合 <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>