螺紋選取工具
按住螺紋按鈕, 再移到要取用的特性(屬性)文字上, 放開滑鼠左鍵即取得該特性的expression表達式
這表示Opacity(不透明度)的將取用transform.rotation的值, 因為都是同一個圖層(物件)中的特性, 直接輸入rotation也起作用.
opacity跟隨rotation變化
如果您抓取的是同個comp中的不同圖層的特性, 如下, 記得先選取要被取代的文字(藍底白字).
thisComp.layer("Yellow Solid 1").transform.opacity
thisComp : 表示目前所在Comp
layer("Yellow Solid 1") : 此Comp中的名為Yellow Solid 1的圖層.
transform.opacity : 表示Yellow Solid 1的 transform群組特性中的opacity特性.
若您改成這樣也可 thisComp.layer("Yellow Solid 1").opacity
layer("Yellow Solid 1") : 此Comp中的名為Yellow Solid 1的圖層.
transform.opacity : 表示Yellow Solid 1的 transform群組特性中的opacity特性.
若您改成這樣也可 thisComp.layer("Yellow Solid 1").opacity
Vectors, Arrays, Dimensions 與 Indexing
當你用螺紋從position連到rotation後, 會得到兩行程式碼(根據版本會有不同).
因為position必須用到x,y座標值, 所以不管程式幾行, 最後一行都必須求出 2維數值,上例用
[temp,temp]表示. 這二個或多個數值資料的組合稱為vector(向量)或array(陣列) .
Vector vs Array
Vector向量是數值的組合, 2個值是2維向量,如
[3,4]
3個值是3維向量,如
[3,4,5]
Array陣列是多個資料的組合,如
ralph=[10, thisLayer, "bob"]
ralph變數裡面就有整數值 10 , 圖層 thisLayer , 字串 "bob". 順便一提, 正常用法是不會將不同型態值放在同一陣列內.
說白了Vector也是一個Array, 只是意義不同.
Indexing(索引)
有如在一個陣列內取得某個資料, 如
position[0]
從圖層的position特性取得位置0, 也就是第一個資料, Javascript的陣列從0開始, 所以0表示第一個.
position是xyz座標值, 所以第1個也等於x座標值,
position[1] 等於y座標值
建立陣列
建立一個3維空間向量給變數myVector
myVector = [10,20,30]
myVector[1] 得到20
Dimensions維度
陣列內的數值數目等於它的維度, 如上方的myVector 是3維. 一般圖層的position是2維, 但若轉成3D圖層就是3維position. 圖層的rotation與opacity是1維,也稱純量(scalar).
修改陣列內的元件
例如 positio特性可寫成
[position[0], position[1]];
這是將position的第1及第2個值取出來, 再放入 position特性內, 結果等於直接寫 position , 這用意是說可以取用或修改陣列內的某個元件, 如下
top_of_layer=0;
[anchorPoint[0], top_of_layer];
若將以上寫入圖層anchor point(錨點)特性中, x軸不會變, 因為是取用自已anchorPoint的x值, 但是y軸會往上移到0位置.
上面範例是2維, 當轉成3維圖層, 若你沒補上第三個z值, AE會自動判斷z為0
下面例子假設你複製comp內最上方第1個圖層的position到某個圖層位置, 並修改y值,
ralph=thisComp.layer(1); //將comp內第1個圖層指定給變數ralph, 切記 layer(1) != layer[1]
[ralph.position[0], ralph.position[1]-100];
若2個圖層都轉成3D, 移動第1個圖層時, 發現第2個只跟隨第1個的xy值, 因為z軸不受expression制約. (加上camera後做圖層移動,camera不要放在最上方第一個位置)
了解陣列很重要
例如
position = 6;
AE會警告這是錯誤, 因為position必定是2維或3維, 不能給1維數值.
position=[320,240];
以上正確!
以下是一些圖層常用的特性(參數)資料表
圖層特性 | 維度 | 單位 | 範圍 | 一般範圍 |
anchorPoint | 2* [x, y, (z)] | pixels | ±無限 | 0–圖層寬高 |
position | 2* [x, y, (z)] | pixels | ±無限 | 0–comp寬高 |
scale | 2* [width, height, (depth)] | percentage | ±無限 | ±100 |
rotation | 1 | degrees | ±無限 | 0–360度 |
opacity | 1 | percentage | 0–100 | 0–100 |
orientation (只有3D) | 3 [x, y, z] | degrees | ±無限 | 0-360度 |
audioLevels | 2 [left, right] | decibels | -192–24 | -48–12 |
ambient | 1 | percentage | 0–100 | 0–100 |
diffuse | 1 | percentage | 0–100 | 0–100 |
specular | 1 | percentage | 0–100 | 0–100 |
shininess | 1 | percentage | 0-100 | 0-100 |
* 當圖層是3D時,就是3維 |
AE Expressions教學-1
AE Expressions教學-3
可不可以請問一下ralph變數是指什麼??
回覆刪除ralph只是一個變數名稱...也不一定用ralph,用其他英文字也可.
回覆刪除原文中就這麼寫的,所以也這樣用.