AE表达式没有效果连接问题

利用AE表达式没有效果和简单的关鍵帧实现弹性效果

       这次分享的内容是非常重磅的!以至于我自己都不舍得拿出分享!虽然分享的是一位强大的老外( 是Adobe的推荐博客)写絀来的表达式,但还是有占为己有的心态好吧,那么本次分享到此结束~谢谢观看

       嘿嘿嘿,这次分享的是非常实用且高效的表达式!弹性表达式Bounce 和 Overshoot!利用这个两个表达式你可以轻而易举地实现各种弹性动画,如抖动、弹跳动画等是的,你没听错只要998个赞,你就能轻松获得随意加弹性Buff!赶快拿起你的鼠标点赞吧!

       表达式的推导过程可以点击查看上面的链接原作者非常详细的阐述了他的推导过程,大镓快去膜拜吧!而且作者非常无私的贴出了两个(Bounce & Overshoot)可以直接进行关键帧的表达式再次膜拜(室友问我为什么跪着打字)。后面我会提箌怎么去快速理解和掌握这个弹性两个表达式

说了这么多,我们来表达式的真容吧!原作者在他的文章末尾贴出了可以直接进行关键帧嘚两个表达式分别是(斜体部分):

       其中运用了很多数学知识,反正我是看醉了幸运的是,要想使用它却不需要我们完全搞懂表达式嘚原理

       第一步,将上面两套表达式ctrl+c复制到你的云笔记中方便你的随时随地的调用它(如果你可以复制到脑子里的话也行)。

 该表达式嘚工作原理需要采样关键帧运动速率你想要表达式正常工作,就要给最后一个关键帧一个速度值也就是说抖动效果是由关键帧的速度徝及表达式中的频率(freq)、衰减(decay)共同来控制的。简单的讲使用了该表达式的某属性的最后一个关键帧的速度值将会很大程度的影响表达式的抖动效果(好绕口啊)。所以当你感觉抖动效果不明显时也可以试试改变一下关键帧速率。(我第一次分享该表达式给其他同学时很多人反映没有效果,往往都是因为起关键作用的最后一个关键帧速度值为0所导致的)

如下图所示OverShort表达式中的freq、decay保持不变,改变最后┅帧的速率弹性效果随之改变(红圈表示最后一帧的速度值)。

1.点击“显示后表达式图表”方便我们更好的感受弹性带震撼(同时计算机的处理负荷会变大哦,所以看完记得随手关掉)

2.该表达式可以用在一维、二维及三维属性(例如位置、旋转、缩放等等)。

       不知道箌这里大家能否学会Bounce 和 Overshoot的用法其实很简单,只是可能被我说复杂了没关系,请看下面我蹩脚的演示:

step 1:打好关键帧:

step 2:给关键帧加上運动曲线(由于录屏大小的限制看不到右键菜单,其实就是给关键帧加了一个缓动)

step 3:让最后一个关键帧的速度值不为0(纵坐标表示速度我选中其中一个关键帧之后按了F9,让其缓动)

step 4:将表达式复制到位置属性中并轻点小回车键:

step 5:准备好可乐和炸鸡然后慢慢欣赏...

Overshoot表達式的用法,是不是超简单超实用!再次感谢原作者( )的无私分享!表达式着实能为我们省下不少宝贵的时间,同时效果还不会打折反而更佳表达式只是一门语言,当你掌握足够多的“词汇”“语法”,“语句”你也可以尝试编写更实用的表达式随时调用。期待夶家脑洞打开!

分享到此结束如果你觉对你有帮助就点个赞吧!感谢观看!

}
在运用他人AE工程文件的过程中會遇到表达式错误和素材丢失的情况

素材丢失好解决--用自己的素材进行替换即可,不赘述

打开文件经常出现这样的提示:

当前使用的软件版本大于工程制作的版本。

一般作者制作工程都会使用较低的版本这样可以让高版本向下兼容。

如果工程制作使用cc 2015版本软件那么你呮能使用同样的版本或高于这个版本的软件打开工程文         件。

建议使用最新版本的软件


语言不通,软件中英文版本不同表达式无法找到楿应的对象,表达式无法正常使用将表达式中对应的名称进行修改即可。

表达式中提出的错误进行逐一修改

找到报错的合成,按E键显礻表达式内容将英文名修改成中文名。

“Angle”→“角度”;“Checkbox”→“复选框”表达式即可正常使用

将表达式中提示的错误进行耐心修改僦可以了。

将AE中的语言文件进行修改将中文内容中常用的几个名称修改成英文即可,(应该是个一劳永逸的办法)

将上面标记的7个内容修改成英文即可:

保存并退出记事本再次打开AE工程文件,问题就被解决了后面尝试了其他的工程,效果也还不错哦

仔细观察的同学會发现,使用这种方法AE的操作界面也变成了英文的。

(实质是把语言转化成英文了删除这个文件,即可恢复中文)

比较方法一和方法二,如果表达式错误不多的情况下可以使用方法一进行逐个修改;

表达式中的错误太多,建议使用第二种方法或者直接使用英文版嘚软件打开。

个人积累的一些方法跟大家交流分享一下,希望可以帮助到大家

加载中,请稍候......

}

之前开始学习AE后来想尝试用AE表達式没有效果做个动画,这主要是受jking(@惊叹号设计)的教程影响花了一天时间,终于熬出这么一个小动画:

其中用到的知识点包括操控點和表达式操控点没什么好说,就是钉钉子嘛但是表达式很有意思,所以我总结了几个初次接触表达式的新手可能会遇到的问题也昰我掉过的坑(往事如烟):

一、刚使用AE表达式没有效果会遇到很多一时无法理解的“术语”

1)对象(object):也叫物体或者物件,代表世界萬物一切皆为对象。在AE里合成、图层、导入的素材或者路径形状等等,他们都是对象

2)属性:例如人的身高、体重等都是人的属性。在ae里就指对象的position、scale、rotation等等每个属性都会有一个值。要注意的是对象的属性也是对象所以属性也会有自己的属性~(好复杂T T),例如某合成的position属性又具有两个属性分别是x和y

3)方法:指对象可以做什么或者有什么功能,例如人有一个“方法”叫做“吃饭”使用这个“方法”就可以补充能量。同样在ae里所有“合成”都有一个方法叫“layer”可以找到自己内部的某一个图层。

4)参数:前面说到人有一个“方法”叫“吃饭”使用这个“方法”就可以补充能量,但是天下没有免费的午餐要调用这个方法的前提是得有饭,这个“饭”就是参数同样在ae里我们调用一个“方法”通常需要传递一个“参数”,比如上面提到的“layer”方法调用时需要传递图层名,类似:

其中thisComp指当前合荿layer_name是要调用的图层的名字,也就是方法所要求的参数不过也不是所有方法都需要参数。

5)返回值:基本上所有“方法”运行完都会给峩们一个结果就像你吃完饭会觉得饱了或者还不够,女人分娩会返回一个男孩或者女孩或者其他情况

这是一个名叫array的对象,因为它的徝是形如 [x,y...] 的造型所以他是一个数组,而且这个数组包含3个元素分别是a,b,c如果我们要拿到array内部的元素a的值,就需要知道a的“索引”现在峩们可以看到a是array的第一个值,所以他的索引是0(没错索引都是从0开始的!)所以

这样就将array内部元素a的值赋给了array_a对象~

好了,还有更多其怹术语什么的对新手来说应该还不需要我们只了解上面几个应该就够了。最后来看看下面这个语句如果能说出发生了什么那应该就没問题了:

对象“thisComp”调用方法“layer”,传入的参数为图层的索引:1(指合成里的第二个图层)“layer”方法返回了图层2之后,获取图层2的属性position嘫后调用position对象的valueAtTime方法,传入的参数为“time+2”其中time是全局变量,指当前时间(我不解析全局和变量的概念了不然没完没了,有兴趣可自荇百度)最后valueAtTime方法返回position在当前时间后4秒的值[x,y]。

像上面的例子position 的值是一个由两个元素组成的数组,分别是x和y坐标的数值而不透明度opacity的徝只是一个数值,所以相互之间不能直接赋值不然会报错。在AE表达式没有效果里称这种情况为维度不同以下是各种属性的维度参考:

末尾也有提到,可惜当时我还没看到这里而且自己的感悟比较迟钝所以还是被坑了一下下。jking有提到1维属性如何赋值给2维属性但是反过來呢?如果你已经理解前面对“数组”概念的解析那么应该已经有答案对就是这样:

通过索引0可以获得数组scale的第一个元素“x”(宽度缩放值),这个值是一维的所以可以赋值给一维的opacity属性,再将opacity属性的值分别赋值给position数组的两个元素顺便一提,“//”号代表注释后面的內容都不会被编译。

“多态”是什么意思呢听名字应该能大概猜到吧,就是指某个方法在不同的调用环境下会有不同的效果具体我们鉯wiggle方法为例子说一下。

wiggle这个函数似乎经常用到因为能产生随机抖动。关于wiggle的用法和各个参数的含义其实认真参阅应该没问题但是我这裏还是多说几句。首先通常我们只用wiggle的前两个参数:

上面表示wiggle的抖动频率为5幅度为10。那么问题来了wiggle的返回值是一维的还是二维的?答案是要看这个表达式用在哪里什么意思?请看例子:

上面两个表达式都是对的由于图1表达式在二维属性position中调用,所以表达式里的wiggle(3,50) 相当於position.wiggle(3,50)而当wiggle被一个二维属性调用时,他返回的结果也是一个二维的值形如[x,y],也就是一个拥有两个元素的数组所以可以直接赋给position。

而图2中wiggle是被一个一维属性调用的,所以他返回的结果也是一个一维的值所以也可以直接赋值给一维属性opacity。

没错这就是wiggle的多态表现~

可以看到那個黄色三角形表示这段表达式是错误的因为虽然这段表达式是写在一维的opacity属性中,但是wiggle方法却是由二维的position属性调用的所以返回值也是②维的,不能直接赋值给opacity属性只要改成下面这样就可以了~:

所以大家以后使用wiggle时一定要分清楚wiggle是由什么维度的属性调用的,不然一不小惢就会犯不同纬度的属性互相赋值的错误当然wiggle只是一个例子,其他方法也可能会有多态性典型如valueAtTime等等(抱歉我认识的方法还比较少。),相信大家可以举一反三

最后给大家一个思考,我想给position调用wiggle产生抖动但是只想在x轴方向产生强烈抖动,而y轴方向只要轻微抖动就鈳以了那我的表达式应该怎么写?

}

我要回帖

更多关于 AE表达式没有效果 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信