<strike id="cy2gs"><menu id="cy2gs"></menu></strike>
  • <del id="cy2gs"><dfn id="cy2gs"></dfn></del>
  • 18種常用AE表達式解析

    2020-8-27    濤濤

    很多朋友面對AE表達式望而生畏,不過再難的東西都會有它最本質的規則,如果你理解了基本的原理和常用的表達式命令,這也許會提高你的工作效率。我通過自己對AE表達式的理解,嘗試用最簡單的語言解釋一些看似復雜的操作,如果此篇文章能給你帶來一些啟發,不勝榮幸~

    首先什么是表達式呢?

    表達式就是AE內部基于JS編程語言開發的編輯工具,可以理解為簡單的編程,不過沒有編程那么復雜。其次表達式只能添加在可以編輯的關建幀的屬性上,不可以添加在其他地方;表達式的使用根據實際情況來決定,如果關鍵幀可以更好的實現你想要的效果,使用關鍵幀就可以啦,表達式大部分情況下是可以更節約時間,提高工作效率的。

    接下來看一下如何添加表達式

    超實用!18種常用AE表達式解析

    表達式工具

    A.表達式開關 B.表達式圖表 C.表達式關聯器 D.表達式語言菜單

    超實用!18種常用AE表達式解析

    由于AE里不同的屬性的參數不同,常用的我們可以分為:數值(旋轉/不透明度)、數組(位置/縮放)、布爾值(true代表真、false代表假/0代表假、1代表真)這三種形式來進行書寫表達式。對于表達式AE也有很多內置的函數命令,直接可以在表達式語言菜單里面進行調用。

    接下來一起看看常用的表達式有哪些吧!

    1. time表達式

    原理:

    time表示時間,以秒為單位,time*n =時間(秒數)*n (若應用于旋轉屬性,則n表示角度)

    舉例:

    若在旋轉屬性上設置time表達式為time*60,則圖層將通過1秒的時間旋轉60度,2秒時旋轉到120度以此類推(數值為正數時順時針旋轉,為負數時逆時針旋轉)

    注意事項:

    time只能賦予一維屬性的數據。(位置屬性可進行單獨尺寸的分離,從而可單獨設置X或Y上的time)

    超實用!18種常用AE表達式解析

    2. 抖動/擺動表達式

    wiggle(freq, amp, octaves = 1, amp_mult = 0.5, t = time)

    原理:

    freq=頻率(設置每秒抖動的頻率);amp=振幅(每次抖動的幅度);octaves=振幅幅度(在每次振幅的基礎上還會進行一定的震幅幅度,很少用);amp_mult=頻率倍頻(默認數值即可,數值越接近0,細節越少;越接近1,細節越多);t=持續時間(抖動時間為合成時間,一般無需修改);一般只寫前兩個數值即可

    舉例:

    若在一維屬性中,為位置屬性添加wiggle(10,20),則表示圖層每秒抖動10次,每次隨機波動的幅度為20;若在二維屬性中,為縮放添加n=wiggle(1,10);[n[0],n[0]],則表示圖層的縮放XY在每秒抖動10次,每次隨機波動的幅度為20;若在二維屬性中,想單獨在單維度進行抖動,需要將屬性設置為單獨尺寸后添加wiggle(10,20),表示圖層的縮放X軸在每秒抖動10次,每次隨機波動的幅度為20。

    注意事項:

    可直接在現有屬性上運行,包括任何關鍵幀

    超實用!18種常用AE表達式解析

    超實用!18種常用AE表達式解析

    3. index表達式(索引表達式)

    原理:

    為每間隔多少數值來產生多少變化

    舉例:

    若為圖層1的旋轉屬性添加表達式index*5 ,則第一個圖層會旋轉5度,之后按Ctrl+D去復制多個圖層時,第2個圖層將旋轉10度,以此類推;若想第一層圖形不產生旋轉保持正常形態,復制后的圖形以5度遞增,表達式可寫為(index-1)*5

    超實用!18種常用AE表達式解析

    4. value表達式

    原理:

    在當前時間輸出當前屬性值

    舉例:

    若對位置屬性添加表達式為value+100,則位置會在關鍵幀數值的基礎上對X軸向右偏移100(正數向右側,負數像左側);若想控制Y軸的位置屬性,則可對位置屬性進行單獨尺寸的分割,從而可單獨控制Y軸(正數向下,負數向上)

    注意事項:

    更多的使用場景是結合其他表達式一起應用

    超實用!18種常用AE表達式解析

    5. random表達式(隨機表達式)

    原理:

    random(x,y)在數值x到y之間隨機進行抽取,最小值為x,最大值為y

    舉例:

    若為數字源文本添加表達式random(20),則數據會隨機改變,最大值不會超過20;

    若為數字源文本添加表達式random(10,100),則數據會在10<數值<100之間隨機改變; 若為數字源文本添加表達式seedRandom(5, timeless = false),random(50),則數據會在50以內隨機改變(前面的5是種子數,如一張畫面中需要多個相同區間的數值做隨機變化,就要為他們添加不同的種子數,防止兩者隨機變化雷同),若希望數字隨機變化為整數則應添加表達式為Math.round(random(2,50)),表示在2和50之間隨機改變無小數

    注意事項:

    隨機表達式不僅局限于數據上的使用,其他屬性也可以應用,若數值為整數Math的M要大寫

    超實用!18種常用AE表達式解析

    6. loopOut表達式(循環表達式)

    原理:

    • loopOut(type=”類型”,numkeyframes=0)對一組動作進行循環
    • loopOut(type=”pingpong”,numkeyframes=0)是類似像乒乓球一樣的來回循環;
    • loopOut(type=”cycle”,numkeyframes=0)是周而復始的循環;
    • loopOut(type=”continue”)延續屬性變化的最后速度,
    • loopOut(type=”offset”,numkeyframes=0)是重復指定的時間段進行循環;
    • numkeyframes=0是循環的次數,0為無限循環,1是最后兩個關鍵幀無限循環,2是最后三個關鍵幀無限循環,

    以此類推

    舉例:

    如下圖gif

    超實用!18種常用AE表達式解析

    超實用!18種常用AE表達式解析

    7. timeRemap表達式(抽幀)

    原理:

    timeRemap*n,n以幀為單位

    舉例:

    將圖層設置為timeRemap*10,代表每隔10幀就抽掉1幀畫面,(根據要抽取的速率決定)

    注意事項:

    使用timeRemap表達式之前要啟用時間重映射,否則無法使用此表達式

    超實用!18種常用AE表達式解析

    8. linear表達式(線性表達式)

    原理:

    • linear(t, tMin, tMax, value1, value2)表示linear(time, 開始變化的時間, 結束變化的時間, 開始變化時的數值, 結束變化的數值);
    • linear(t, value1, value2)表示當time在0到1之間時,從value1變化到value2;
    • ease(t, tMin, tMax, value1, value2)的含義與linear一樣, 區別是在tMin和tMax點處,進行緩入緩出,使數據更加平滑;
    • easeIn(t, tMin, tMax, value1, value2)與linear的含義一樣, 區別是在tMin處,進行緩入,使數據更加平滑;
    • easeOut(t, tMin, tMax, value1, value2)與linear的含義一樣, 區別是在tMax點處,進行緩出,使數據更加平滑

    舉例:

    見下圖均以(time,0,3,131,1000)為例,若為數字的源文本屬性添加此表達式可以制作出倒計時的效果n=linear(time, 0, 3, 3, 0)表示從0-3秒數字從3到0,希望數字為整體需添加Math.floor()

    注意事項:

    倒計時的用法比較常用,整數M要大寫

    超實用!18種常用AE表達式解析

    超實用!18種常用AE表達式解析

    9. Other Math(角度弧度)

    原理:

    degreesToRadians(degrees) 角度轉為弧度(degrees度的變量或表達式)radiansToDegrees(radians)弧度轉為角度(radians弧度的變量或表達式)

    舉例:

    常用語數學中的一些計算sin,cos,tan,sec,csc,cot等

    超實用!18種常用AE表達式解析

    10. layer表達式

    原理:

    layer(index)中index 是數值,按照編號檢索圖層;layer(name)中name 是一個字符串,按照名稱檢索圖層(若沒有圖層名稱,則根據源名稱);layer(otherLayer, relIndex)中otherLayer 表示圖層對象,relIndex 表示數值,檢索屬于圖層對象的數值圖層

    舉例:

    • layer(index)—thisComp.layer(1).position;
    • layer(name)—thisComp.layer(“形狀圖層1”);
    • layer(otherLayer, relIndex)—thisComp.layer(thisLayer, 1).active 將返回 true

    超實用!18種常用AE表達式解析

    11. marker表達式

    原理:

    marker.key(index)中index 是數值;marker.key(name)中name 是一個字符串

    舉例:

    thisComp.marker.key(1).time表示返回第一個合成標記的時間;thisComp.marker.key(“我叫注釋名稱”).time表示返回具有名稱”我叫注釋名稱”的合成標記的時間

    超實用!18種常用AE表達式解析

    12. comp(合成屬性和方法)width與height表達式

    原理:

    width表示返回合成寬度;height表示返回合成高度

    舉例:

    [thisComp.width/2, thisComp.height/2]表示寬度和高度為合成的一半也就是居中的位置

    超實用!18種常用AE表達式解析

    13. param表達式

    原理:

    param(name)中name表示字符串;param(index)表示數值

    舉例:

    effect(“高斯模糊”).param(“模糊度”)效果控制點始終位于圖層空間中

    超實用!18種常用AE表達式解析

    14. 彈性表達式

    原理:

    復制粘貼表達式使用就可以,amp表示振幅,freq表示頻率,decay表示衰減(根據不同需求做不同的調整)

    舉例:

    n = 0; if (numKeys > 0){

    n = nearestKey(time).index;

    if (key(n).time > time){n–;}}

    if (n == 0){t = 0;}else{

    t = time – key(n).time;}

    if (n > 0){

    v = velocityAtTime(key(n).time – thisComp.frameDuration/10);

    amp = .03;

    freq = 2.5;

    decay = 4.0;

    value + v*amp*Math.sin(freq*t*2*Math.PI)/Math.exp(decay*t);

    }else{value;}

    上述內容復制粘貼使用即可

    注意:motion2腳本也帶此功能,方法不唯一

    超實用!18種常用AE表達式解析

    超實用!18種常用AE表達式解析

    15. 反彈表達式

    原理:

    k表示反彈最終結果,a表示反彈阻力,b表示反彈變化時間

    舉例:

    k=500; a=8; b=30; x=k*(1-Math.exp(-a*time)*Math.cos(b*time));[x,x](根據不同情況調節kab的數值即可)

    超實用!18種常用AE表達式解析

    16. 數字遞增表達式

    原理:

    StartNumber表示開始時的數值,EndNumber表示結束時的數值,StartTime表示開始的時間,EndTime表示結束的時間,和前面的linear表達式相對應

    舉例:

    StartNumber=1;

    EndNumber=20;

    StartTime=0;

    EndTime=3;

    t=linear(time,StartTime,EndTime,StartNumber,EndNumber);Math.floor(t)

    超實用!18種常用AE表達式解析

    17. 擠壓與伸展

    原理:

    spd表示擠壓拉伸的速度,maxDev表示擠壓拉伸的大小,decay表示衰減

    舉例:

    spd =20;maxDev =10;

    decay = 1;

    t = time – inPoint;

    offset = maxDev*Math.sin(t*spd)/Math.exp(t*decay);

    scaleX = scale[0] + offset;scaleY = scale[1] – offset;

    [scaleX,scaleY]

    超實用!18種常用AE表達式解析

    超實用!18種常用AE表達式解析

    18. 運動拖尾

    原理:

    delay表示要延遲的幀數

    舉例:

    為位置屬性添加表達式delay = 0.5;

    d = delay*thisComp.frameDuration*(index – 1);

    thisComp.layer(1).position.valueAtTime(time – d);

    如想要實現不透明度拖尾需為不透明度屬性添加表達式opacityFactor =.80;

    Math.pow(opacityFactor,index – 1)*100(調整好一個圖層后復制多個)

    超實用!18種常用AE表達式解析

    超實用!18種常用AE表達式解析

    文章來源:優設    作者:凌旬 

    藍藍設計www.skdbbs.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務



    日歷

    鏈接

    個人資料

    藍藍設計的小編 http://www.skdbbs.com

    存檔

    主站蜘蛛池模板: 久久精品国产91久久麻豆自制 | 性欧洲精品videos| 久久久久99精品成人片三人毛片 | 国产精品一久久香蕉国产线看 | 久久99精品久久久久婷婷| 国产99久久九九精品无码| 国产精品视频色拍拍| 亚洲精品无码久久毛片| 91精品视频在线| 国产韩国精品一区二区三区久久| 永久免费精品视频| 国内精品伊人久久久久AV影院 | 国产精品成熟老女人视频| 四虎国产精品成人| 四虎国产精品永久在线| 国产精品热久久无码av| 精品国产综合成人亚洲区| 四虎国产精品永久在线| 精品乱子伦一区二区三区高清免费播放 | 精品亚洲一区二区三区在线观看| 亚洲精品tv久久久久| 精品熟女少妇aⅴ免费久久| 老司机69精品成免费视频| 亚洲精品免费在线观看| 国产精品成人A区在线观看| 蜜臀久久99精品久久久久久小说| 精品国内片67194| 97久久精品无码一区二区天美| 亚洲国产综合精品一区在线播放| 无码人妻精品一区二区三18禁| 国产精品素人搭讪在线播放| 久久国产免费观看精品3| 中文字幕av日韩精品一区二区| 欧美精品888| 国产精品久久久久久影院 | 亚洲精品国产高清不卡在线| 精品国产一区二区三区2021| 国产精品哟女在线观看| 国产色婷婷精品综合在线| 国产欧美精品专区一区二区| 97精品人妻一区二区三区香蕉|