header_v0.7.0

如何利用一个变量来精确控制多个变量

2年前发布

原创文章 / UI / 教程
惊叹号设计 原创,如需商业用途或转载请与惊叹号设计联系,谢谢配合。

最少关键帧原则 这个原则是我在平时工作中总结出来的,“最少关键帧原则”。就是说在能完成同一动画效果的前提下,我总是乐意用尽量少关键帧去实现。就好

 

    最少关键帧原则

           这个原则是我在平时工作中总结出来的,“最少关键帧原则”。就是说在能完成同一动画效果的前提下,我总是乐意用尽量少关键帧去实现。就好比上一篇文章提到的,利用表达式去剔除“多余的”关键帧,尽量由一个变量来主导其他变量。这样做不仅后期修改起来得心应手,节奏上容易把控,而且整个文档也非常简练,看着心情愉快,效率自然更高。

     

    linear表达式介绍&用法

           子父链接,表达式属性之间的链接都可以实现由一个变量去控制多个的变量。说到链接,不得不提到表达式“linear”,它的存在为我争取了更多刷站酷的时间,哈哈,就是说自从用“linear”,一口气做了5个需求,不费劲,谁用谁知道啊!

         

           同样,我们先来看看官方是如何定义“linear”的:

    插值方法(节选)

    linear(t, value1, value2)

    返回类型:数值或数组。

    参数 t 通常是 time 或 value,但它也可以采用其他值。如果 t 是 time,则值之间的插值会在持续时间内发生。如果 t 是 value,则表达式会将一系列值映射到新系列值。

     

    同样我们可以在表达式库中调用它:

     

     

           通过官方简单介绍你能明白“linear”是个什么东西了吗?如果你懂了,本教程到此结束。至少我当时查看的时候,以为adobe的中文版帮助文档是直接拿英文版Google翻译的。硬是没看懂啊!?

           

            经过九九八十一天发酵,我懂了!

         

            其实它一点都不复杂,顺着往下看相信大家都能学会。

         

            我们主要来看看这个语句,linear(t, tMin, tMax, value1, value2)。上文官方定义中提到,如果 t 是 value,则表达式会将一系列值映射到新系列值。而我们恰好就要利用这个映射功能,还记得我们的标题吗?“‘精确’控制多个变量”。

           

            同样拿一个小实例来帮助我们分析。

    有A,B两个圆,先对A圈的X轴方向上做位移关键帧动画,A圈从128运动到670,如下图:

     

接着我们点开B圆的X位置属性(右键单独尺寸),点开表达式窗口,将其关联到A圆的X轴,如下图:

 

     

    紧接着,我们定义一个“Ax”并且让 Ax=thisComp.layer("A圆").transform.xPosition;(注意“;”相当于句号,不要忘记了)。然后再调用“linear”表达式,并改变里面的参数,具体如下图:

    Ax=thisComp.layer("A").transform.xPosition;

    linear(Ax,128,670,128,420)

     

 

仔细观察“linear”后头括号中的数字,然后我们来感受一下“linear”的效果:

 

     

    看到这里我想大家都懂了吧,是不是so easy。什么!?还不明白!

    稍微改一下再看看:

     

    Ax=thisComp.layer("A").transform.xPosition;

    linear(Ax,128,300,128,620)

     

     

    (我有先把A圆的位移动画改成了128到300哦,如果不改的话,大家可以想象一下是怎么样的一种情景。)

           通过上面的实例,我们不难看出“linear”的“映射”是怎么工作的。简单的解释“linear(Ax,128,300,128,620)”,当Ax从128到300变化时,映射出128到620的值;即Ax=128时输出128,Ax=300时输出620,输出的对应值就作用到了B圆的X轴属性上了。而我们又把A圆的x轴位置属性定义给了“Ax”,所以就相当于把A圆的x轴映射给了B圆的X轴,至于具体的变化范围,就看你括号里的参数怎么定义了。

     

           需要注意的是映射的对象不是一对一,可以一对多;也不必需要X轴映射X轴,你可以X轴映射Y轴,甚至X轴映射透明度,缩放,旋转等等。具体怎么个射法还是得看你的tiwei,是体力,不是,是能力。总之“linear”会让你动画中的元素关系更加密切,而不是孤立的个体。

     

            就是这么简单实用,即学即用的映射技巧,你学会了吗?

     

    简单示范&思路分享

           上面实例中A圆是主导对象,由他的运动来影响B圆的运动。在很多情况下我需要选对主导对象,因为是由主导对象发起动画,一般关键帧也是打在它身上。所以要根据具体情况来分析,选对主导对象对你后面的工作影响重大。一般我都是选跟手指操作的关系最密切的对象作为主导。

           下面简单示范和分析一下我做的一些小实例,由于篇幅原因我不对细节做具体分析,方法也因人而异,旨在分享哈。

     

     

     

    例1

    思路:banner的高度去映射背景图的缩放;

        例2:

        思路:侧边栏的X轴去映射首页的缩放&圆角&灰度;

         

         

         

        例3:

        思路:顶层的Y轴映射自己的缩放&圆角,同时映射第2,3层的y轴&缩放&圆角;

         

         

         

        例4:

        思路:蓝圆映射多边形的大小;绿圆映射多边形的圆度;黄圆映射背景颜色等等;

         

         

         

        例5:

        思路:旋钮的旋转映射数字从0变化到10&背景颜色&刻度条等等;

         

         

         

        例6:

        思路:第一个圆的缩放映射其他圆的缩放&投影&脚标的缩放等等;

         

         

         

        实例到此结束~

        希望能给大家一下小小的启发哈~

        最后

        大家想知道这个抽风圆点怎么实现吗?可是篇幅太长了,请听下回分解吧。

        谢谢观看

      983

        文章信息

        意见反馈
        没有新消息

        提示文案

        提示文案

        提示失败
        提示成功