《AE教學》if / else 簡單語法介紹~

哈囉!又到了快樂的教學時光。

這次的內容要來介紹一個簡單的表達式語法:if / else。如果…否則…


首先是…

這邊用三顆球球來示範。

 

按下Ctrl+Alt+Shift+Y創一個空物件,並取名為ctrl:

它要用來控制球球們的不透明度。

 

在這個ctrl空物件上加入Checkbox Control效果:

 

先來介紹比較特別的checkbox~

拿red開刀,按住Alt點擊不透明度的小時鐘來開啟它的表達式控制:

 

輸入if ()後,在括弧中,利用父子關係的迴紋針,綁到剛才加入checkbox control上(這邊先改名為red):

 

這樣括弧中間就會出現指定的路徑:thisComp.layer(“ctrl”).effect(“red”)(“Checkbox”)

然後如上圖,在指定路徑後方輸入 ==1,然後在括弧後方輸入 100

==1的意思是checkbox打勾,反之,==0則是不打勾。

所以目前整串的意思為:如果ctrl圖層上的red效果的Checkbox ==1、打勾的話,Opacity的數值為100

接著加上else、否則:

else 0,否則為0。

所以如果checkbox==0、沒有打勾的話,opacity的數值就會是0。

 

如下圖:

我將勾勾取消,red的不透明度就變成0了,在畫面上也就消失了。

 

也可以將否則改成value:

 

這樣如果沒有打勾,就會是你自己設定的值:

例如我設定22,它就會是22,而不是指定的0。

 

更進階一點,還有 || 和  &&兩種。

例如上圖:

if (effect(“green”)(“Checkbox”)==1 || effect(“blue”)(“Checkbox”)==1) 0

else 1

就變成,如果green的checkbox打勾 或者 blue上的checkbox打勾,我red的checkbox就不會打勾,否則打勾。

這樣條件就不只一種,而是兩種,這兩種情況都會觸發語法效果。

 

那另一種&&,假設一樣的語法:

if (effect(“green”)(“Checkbox”)==1 && effect(“blue”)(“Checkbox”)==1) 0

else 1

就變成,如果green的checkbox打勾  blue上的checkbox打勾,我red的checkbox就不會打勾,否則打勾。

這樣條件就必須滿足上述兩種情形,才會觸發語法效果。

 

不過這種語法無法交互控制:

如上圖,這樣的語法會相互干擾,不會如期達成「只會有一個顏色球開啟」的效果。

這就需要另外方法來控制,有機會再說說~

 

不過我們知道checkbox的勾勾數值是0和1,也可以延伸應用在不透明度上:

如果打勾=1的話,那我後面承上100就等於100%,所以只要將原本的數值設為0,一旦打勾,就會變成100%。

這一樣也能有打勾就出現、沒打勾就消失的效果。

 

所以不只不透明度或是checkbox,也可以作用在其他地方:

這邊將球球的position都分開。

 

表達式如下:

如果blue球球的Y座標小於480的話,數值就為0(checkbox上就等於不打勾),否則維持原本的數值。

 

效果如下:

blue球球的Y做標小於480(上圖為479.7),checkbox就不會打勾、等於0,因此不透明度的0*100也還是0,球球就會消失啦~

 

這邊額外做一個簡單的小分享,關於黑頻閃爍的小方法:

加入slider control效果。

單純的隨機也有random語法:

不過我不太喜歡用random。

 

這邊我會用wiggle:

頻率為30,震幅則綁到slider上,這樣會比較好控制~

頻率也可以另外控制唷~

 

成品範例:

※藉由表達式控制讓作業速度更快。

 

 

那這次的教學就到這此為止了,我們下次見~

 

※此教學AE專案檔(CC 2019 & CC 2014)下載:


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

非經授權請勿轉載本網站原創內容,盜用必究

若想得到更多教學資訊,歡迎加入六指淵學生社團


《立即分享》
Loading Facebook Comments ...