2011年1月9日 星期日

AE Expressions教學-2

螺紋選取工具

    按住螺紋按鈕, 再移到要取用的特性(屬性)文字上, 放開滑鼠左鍵即取得該特性的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


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

2 則留言:

  1. 可不可以請問一下ralph變數是指什麼??

    回覆刪除
  2. ralph只是一個變數名稱...也不一定用ralph,用其他英文字也可.
    原文中就這麼寫的,所以也這樣用.

    回覆刪除

LinkWithin

Related Posts Plugin for WordPress, Blogger...