2010年12月29日 星期三

AE Expressions教學-1


中文教學主要是翻譯至JJ Gifford 網站, 內容較舊(AE 5.0), 所以做了些修改, 但expression及script部分沒什麼變化.

Expressions(表達式)介紹

After Effects的動畫元素大約有5種方式
  1. Brute Force(暴力):直接在圖層設定keyframe, 自由度最高,但遇到複雜動畫時也最辛苦.
  2. Pre-composing(合成):將多圖層合而為一, 轉成一個Comp屬性的圖層, 有如其他程式的群組關係.
  3. Parenting(父子關聯):圖層間建立父子連接關係, 對父物件所做的變形, 會作用到子物件.
  4. Expressions(表達式):依附在圖層的特性(property)中,是Realtime(即時的)且live(存在的), 不同時間產生不同反應, 也可以與現有的Keyframe合作.
  5. Script(腳本):不同於Expression必須依附在圖層特性中,Script可獨立存在, 以視窗等獨立介面呈現, 一次性執行完畢, 產生結果.
        
何時使用Expressions
  1. 不同圖層間的特性連接
        例如兩個圖層間以建立父子關聯,綠色方塊為父,黃色方塊為子,parenting時,黃色跟著綠色做變化;
        但有時只需要跟隨位置,所以不需建立父子關聯, 僅用expression取得綠色的position(位置)特性.

  2. 自動化
        例如底下只需讓一個特性Scale做變化,僅僅設定一個keyframe,再加上以時間做參數的expression.

  3. 特性加入一些亂數
        在原有的keyframe作用的情況下,利用expression讓原先值做變化,如底下的position加入wiggle晃動.


何時不需要使用Expression?


     有一句話"不要以為有了槌子,就把每樣東西當作釘子",這句話的意思是說不要以為expression很厲害,就一直用,應該是需要用的時候才用.



撰寫Expression

選擇要加入expression的特性後,


1.從選單中Animation>Add Expression,將特性轉成expression模式
2.Alt+左鍵點擊碼表圖示.

多出來的"=",點擊可開關expression功能, 特性數值成紅色表示啟用expression, "="旁邊的圖式稍後討論, 最右邊的 tansform.rotation 為expression程式碼.

  • 第1個圖形鈕用圖形顯示expression計算後的結果.
  • 第2個的螺旋圖按鈕,用於幫忙抓取此Composition(也稱Comp,是一個放圖層的容器; Comp中也可放入Comp屬性的圖層)中,所有可用的特性,並轉成expression程式碼,就不需要自己打字.
  • 第3個箭頭圖按鈕,提供expression中的函式庫.



什麼是Expression?


    在一個圖層特性中,最簡單的expression就是一個值(expression的分號可有可無),如
6;
    這可能沒啥作用,若是底下這樣可能還較有用.
rotation;
    當執行時,會得出圖層的rotation值,若將這rotation表達式用在opacity特性中,圖層旋轉時,不透明度opacity也會跟著變化.


    Expressions用JavaScript語法,網路上有很多資料可查詢.JavaScript功能相當齊全,例如opacity可做一些數學運算.
opacity*10;
    上式只是將圖層的opacity乘10,若opacity是100,則得出1000,若將這表達式用在rotation,則圖層旋轉1000度.



"="在哪裡呢?

    比如在position中加入expression, 直接輸入[100,100],將圖層移至座標 x=100,y=100 位置,也可以用語法
position=[100,100];
    但若只輸入100,會發生錯誤,所以只要數值格式正確,是不需要'='.


一個expression只能控制一個特性

    例如在position中加入expression,這個expression只能操作位置特性,如果想在裡面操作rotation辦不到的;若要操作rotation就在rotation特性中加入expression.

Expression可以多行程式碼

    之前都只看到一行, 然而幾百行都可以, 但是expression不是AE的Script, 行數越少越好, 總不能每移到不同時間, 幾百行的expression又執行一次, 盡量簡單.以下是rotation的expression範例.
offset=30;
ralph=rotation+offset;
ralph;
    offset是變數,程式碼中rotation是旋轉特性初始值,如果初始值為0,那加上30,所以ralph變數成為30,最後結果是30,圖層則旋轉30度,(拉黃色邊框調區塊大小)





AE Expressions教學-2


參考與引用:http://www.jjgifford.com/expressions/basics/index.html

沒有留言:

張貼留言

LinkWithin

Related Posts Plugin for WordPress, Blogger...