美文网首页
AE用wiggle表达式控制图层透明度

AE用wiggle表达式控制图层透明度

作者: Beel | 来源:发表于2019-03-11 16:52 被阅读0次

    用wiggle表达式控制图层的透明度,如:wiggle(10,100)代表图层每秒抖动10次,透明度的值为0-100范围的随机数。

    如果我想让图层的透明度只为0或100,即实现图层的随机出现和消失

    varwiggle_result=wiggle(10,50);

    if(wiggle_result>50)

    value=100;

    else

    value=0;

    //"var"、"value = "在Ae中可省略,功能无差别,但尽量写完整,养成好习惯。

    意思:

    声明一个名为wiggle_result的变量,并将当前属性(Opacity)的值以“10 Hz、50 单位”随机摆动的结果赋给wiggle_result。

    如果wiggle_result大于50:

    将100赋给当前属性的值;

    “可视化”演示:

    效果:

    表达式中的第一个参数(频率)并没有准确地在最终效果中生效,而准确的频率又与“图层随机的出现和消失”相悖,所以代码中的频率仅作为一种参考。

    制作上图时,我将黑色矩形的Opacity设为了50,原因是:

    灰色线表示Opacity原值,白色线表示由表达式运算出的Opacity当前值。在没有指定具体属性时,wiggle()函数会以当前属性(Opacity)的值进行计算,写完整就是:

    thisProperty.wiggle();

    所以我调整Opacity的值会对最终结果产生影响。

    要想让自己在今后看得明白,可以这么做:

    在透明属性上建立表达式:

    t=Math.sin(time*10)*100; //建立透明度的循环从-100到100;

    if(t>100) //判断循环,如果t>100的时候;

    {t=100} //t就等于100;

    else if(t<0) //t小于0的时候;

    {t=0} //t就等于0;

    else //其他的情况;

    {t} //就等于t本身的数值;

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    如果对于闪烁的频率不满意自己可以改 t=Math.sin(time*10)*100; 把(time*10)里面的10想再快一些就提高数值 ,比如20,30等,如果想闪烁的慢一些可以把10改小。

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    另外说明:上面写的表达式闪烁的时候是有渐变过度的,比较缓和,如果你想闪烁的时候生硬一些,就是透明度0直接到100,那你就把最后一句else {t} 里面的t改为 value,效果也不错;

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    不推荐使用wiggle或者random这种的表达式来实现闪烁效果,因为数值得不到有效的控制,并且这类代码是是随机取值,是不可控的,效果表现不好。好了希望可以帮助到你!

    相关文章

      网友评论

          本文标题:AE用wiggle表达式控制图层透明度

          本文链接:https://www.haomeiwen.com/subject/mevbpqtx.html