这次的内容要来介绍一个简单的表达式语法: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)下载: