@凌旬 授权发布

https://www.zcool.com.cn/article/ZMTE3MDM2OA==.html

-------------------------------------------

感谢大家对黑马家族的支持,今天给大家推荐一篇关于AE表达式的文章,18种常用AE表达式解析,希望对你有所帮助!

 正文

很多朋友面对AE表达式望而生畏,不过再难的东西都会有它最本质的规则,如果你理解了基本的原理和常用的表达式命令,这也许会提高你的工作效率。我通过自己对AE表达式的理解,尝试用最简单的语言解释一些看似复杂的操作,如果此篇文章能给你带来一些启发,不胜荣幸~首先什么是表达式呢?表达式就是AE内部基于JS编程语言开发的编辑工具,可以理解为简单的编程,不过没有编程那么复杂。其次表达式只能添加在可以编辑的关键帧的属性上,不可以添加在其他地方;表达式的使用根据实际情况来决定,如果关键帧可以更好的实现你想要的效果,使用关键帧就可以啦,表达式大部分情况下是可以更节约时间,提高工作效率的。接下来看一下如何添加表达式表达式工具A. 表达式开关B. 表达式图表C. 表达式关联器D. 表达式语言菜单由于AE里不同的属性的参数不同,常用的我们可以分为:数值(旋转/不透明度)、数组(位置/缩放)、布尔值(true代表“真”、false代表“假”/0代表“假”、1代表“真”)这三种形式来进行书写表达式。对于表达式AE也有很多内置的函数命令,直接可以在表达式语言菜单里面进行调用。接下来一起看看常用的表达式有哪些吧!1. time表达式原理:time表示时间,以秒为单位,time*n =时间(秒数)*n (若应用于旋转属性,则n表示角度)。举例:若在旋转属性上设置time表达式为time*60,则图层将通过1秒的时间旋转60度,2秒时旋转到120度以此类推(数值为正数时顺时针旋转,为负数时逆时针旋转)。注意事项:time只能赋予一维属性的数据。(位置属性可进行单独尺寸的分离,从而可单独设置X或Y上的time)。2. 抖动/摆动表达式wiggle(freq, amp, octaves = 1, amp_mult = 0.5, t = time)原理:freq=频率(设置每秒抖动的频率);amp=振幅(每次抖动的幅度);octaves=振幅幅度(在每次振幅的基础上还会进行一定的震幅幅度,很少用);amp_mult=频率倍频(默认数值即可,数值越接近0,细节越少;越接近1,细节越多);t=持续时间(抖动时间为合成时间,一般无需修改);一般只写前两个数值即可。举例:若在一维属性中,为位置属性添加wiggle(10,20),则表示图层每秒抖动10次,每次随机波动的幅度为20;若在二维属性中,为缩放添加n=wiggle(1,10);[n[0],n[0]],则表示图层的缩放XY在每秒抖动10次,每次随机波动的幅度为20;若在二维属性中,想单独在单维度进行抖动,需要将属性设置为单独尺寸后添加wiggle(10,20),表示图层的缩放X轴在每秒抖动10次,每次随机波动的幅度为20。注意事项:可直接在现有属性上运行,包括任何关键帧。3. index表达式(索引表达式)原理:为每间隔多少数值来产生多少变化。举例:若为图层1的旋转属性添加表达式index*5 ,则第一个图层会旋转5度,之后按Ctrl+D去复制多个图层时,第2个图层将旋转10度,以此类推;若想第一层图形不产生旋转保持正常形态,复制后的图形以5度递增,表达式可写为(index-1)*5。4. value表达式原理:在当前时间输出当前属性值。举例:若对位置属性添加表达式为value+100,则位置会在关键帧数值的基础上对X轴向右偏移100(正数向右侧,负数像左侧);若想控制Y轴的位置属性,则可对位置属性进行单独尺寸的分割,从而可单独控制Y轴(正数向下,负数向上)。注意事项:更多的使用场景是结合其他表达式一起应用。5. random表达式(随机表达式)原理:random(x,y)在数值x到y之间随机进行抽取,最小值为x,最大值为y。举例:若为数字源文本添加表达式random(20),则数据会随机改变,最大值不会超过20;若为数字源文本添加表达式random(10,100),则数据会在10若为数字源文本添加表达式seedRandom(5, timeless = false),random(50),则数据会在50以内随机改变(前面的5是种子数,如一张画面中需要多个相同区间的数值做随机变化,就要为他们添加不同的种子数,防止两者随机变化雷同),若希望数字随机变化为整数则应添加表达式为Math.round(random(2,50)),表示在2和50之间随机改变无小数。注意事项:随机表达式不仅局限于数据上的使用,其他属性也可以应用,若数值为整数Math的M要大写。6. loopOut表达式(循环表达式)原理:loopOut(type="类型",numkeyframes=0)对一组动作进行循环loopOut(type="pingpong",numkeyframes=0)是类似像乒乓球一样的来回循环;loopOut(type="cycle",numkeyframes=0)是周而复始的循环;loopOut(type="continue")延续属性变化的最后速度,loopOut(type="offset",numkeyframes=0)是重复指定的时间段进行循环;numkeyframes=0是循环的次数,0为无限循环,1是最后两个关键帧无限循环,2是最后三个关键帧无限循环,以此类推。举例:如下图gif7. timeRemap表达式(抽帧)原理:timeRemap*n,n以帧为单位。举例:将图层设置为timeRemap*10,代表每隔10帧就抽掉1帧画面,(根据要抽取的速率决定)。注意事项:使用timeRemap表达式之前要启用时间重映射,否则无法使用此表达式。8. linear表达式(线性表达式)原理:linear(t, tMin, tMax, value1, value2)表示linear(time, 开始变化的时间, 结束变化的时间, 开始变化时的数值, 结束变化的数值);linear(t, value1, value2)表示当time在0到1之间时,从value1变化到value2;ease(t, tMin, tMax, value1, value2)的含义与linear一样,区别是在tMin和tMax点处,进行缓入缓出,使数据更加平滑;easeIn(t, tMin, tMax, value1, value2)与linear的含义一样,区别是在tMin处,进行缓入,使数据更加平滑;easeOut(t, tMin, tMax, value1, value2)与linear的含义一样,区别是在tMax点处,进行缓出,使数据更加平滑。举例:见下图均以(time,0,3,131,1000)为例,若为数字的源文本属性添加此表达式可以制作出倒计时的效果n=linear(time, 0, 3, 3, 0)表示从0-3秒数字从3到0,希望数字为整体需添加Math.floor()。注意事项:倒计时的用法比较常用,整数M要大写。9. Other Math(角度弧度)原理:degreesToRadians(degrees) 角度转为弧度(degrees度的变量或表达式)radiansToDegrees(radians)弧度转为角度(radians弧度的变量或表达式)。举例:常用语数学中的一些计算sin,cos,tan,sec,csc,cot等。10. layer表达式原理:layer(index)中index 是数值,按照编号检索图层;layer(name)中name 是一个字符串,按照名称检索图层(若没有图层名称,则根据源名称);layer(otherLayer, relIndex)中otherLayer 表示图层对象,relIndex 表示数值,检索属于图层对象的数值图层。举例:layer(index)---thisComp.layer(1).position;layer(name)---thisComp.layer("形状图层1");layer(otherLayer, relIndex)---thisComp.layer(thisLayer, 1).active 将返回 true。11. marker表达式原理:marker.key(index)中index 是数值;marker.key(name)中name 是一个字符串。举例:thisComp.marker.key(1).time表示返回第一个合成标记的时间;thisComp.marker.key("我叫注释名称").time表示返回具有名称"我叫注释名称"的合成标记的时间。12. comp(合成属性和方法)width与height表达式原理:width表示返回合成宽度;height表示返回合成高度。举例:[thisComp.width/2, thisComp.height/2]表示宽度和高度为合成的一半也就是居中的位置。13. param表达式原理:param(name)中name表示字符串;param(index)表示数值。举例:effect("高斯模糊").param("模糊度")效果控制点始终位于图层空间中。14. 弹性表达式原理:复制粘贴表达式使用就可以,amp表示振幅,freq表示频率,decay表示衰减(根据不同需求做不同的调整)。举例:n = 0;if (numKeys > 0){n = nearestKey(time).index;if (key(n).time > time){n--;}}if (n == 0){t = 0;}else{t = time - key(n).time;}if (n > 0){v = velocityAtTime(key(n).time - thisComp.frameDuration/10);amp = .03;freq = 2.5;decay = 4.0;value + v*amp*Math.sin(freq*t*2*Math.PI)/Math.exp(decay*t);}else{value;}上述内容复制粘贴使用即可。注意:motion2脚本也带此功能,方法不唯一。15. 反弹表达式原理:k表示反弹最终结果,a表示反弹阻力,b表示反弹变化时间。举例:k=500; a=8; b=30; x=k*(1-Math.exp(-a*time)*Math.cos(b*time));[x,x](根据不同情况调节kab的数值即可)。16. 数字递增表达式原理:StartNumber表示开始时的数值,EndNumber表示结束时的数值,StartTime表示开始的时间,EndTime表示结束的时间,和前面的linear表达式相对应。举例:StartNumber=1;EndNumber=20;StartTime=0;EndTime=3;t=linear(time,StartTime,EndTime,StartNumber,EndNumber);Math.floor(t)17. 挤压与伸展原理:spd表示挤压拉伸的速度,maxDev表示挤压拉伸的大小,decay表示衰减。举例:spd =20;maxDev =10;decay = 1;t = time - inPoint;offset = maxDev*Math.sin(t*spd)/Math.exp(t*decay); scaleX = scale[0] + offset;scaleY = scale[1] - offset;[scaleX,scaleY]18. 运动拖尾原理:delay表示要延迟的帧数。举例:为位置属性添加表达式delay = 0.5;d = delay*thisComp.frameDuration*(index - 1);thisComp.layer(1).position.valueAtTime(time - d);如想要实现不透明度拖尾需为不透明度属性添加表达式opacityFactor =.80;Math.pow(opacityFactor,index - 1)*100(调整好一个图层后复制多个)感谢你的阅读支持 · 欢迎留言互动-------------------------------------------声明:本文内容及言论仅代表其作者之意,并不反映任何黑马家族之意见及观点精品高阶课程推荐多一点行动  ·  多一分设想

ae万能弹性表达式_18种常用AE表达式解析【建议收藏】相关推荐

  1. ae万能弹性表达式_AE脚本精品表达式合集效果库 iExpressions 3.1.006【资源分享1453】...

    AE特效PR剪辑C4D影视后期 全世界只有不到1%的人关注了 你是个很特别的人 AE影视后期定期推送「AE+PR+C4D 影视特效合成 婚庆剪辑调色 电视广告包装 微电影制作 SpeedGrade达芬 ...

  2. Dataset:数据集集合(综合性)——机器学习、深度学习算法中常用数据集大集合(建议收藏,持续更新)

    Dataset:数据集集合(综合性)--机器学习.深度学习算法中常用数据集大集合(建议收藏,持续更新) 目录 常规数据集 各大方向分类数据集汇总 具体数据集分类 相关文章 DL:关于深度学习常用数据集 ...

  3. ae万能弹性表达式_外置常用ae插件 快速掌握AE软件的精髓

    ​相信经常用ae软件的小伙伴就知道,AE的强大之处就在于它的插件,它就像一个巨型的加工厂.所以,AE插件在AE软件的使用中是必不可少的. 鉴于AE插件的种类繁多,为了让影视后期爱好者在后续学习AE软件 ...

  4. 机器学习核心概念、常用术语整理(建议收藏)

    [转]机器学习核心概念完全解析(建议收藏) 原文链接:https://mp.weixin.qq.com/s/wEpmF1gdvsIimnvXrxKdRw AI干货知识库 刚接触机器学习框架 Tenso ...

  5. 我总结了五种常用聚类分析算法,推荐收藏

    大量数据中具有"相似"特征的数据点或样本划分为一个类别.聚类分析提供了样本集在非监督模式下的类别划分. 基本思想 物以类聚.人以群分 常用于数据探索或挖掘前期 没有先验经验做探索性 ...

  6. 正则匹表达式 — 匹配URL地址+常用正则整理(建议收藏,比较全)

    目录 URL正则匹配 标题一.校验数字的表达式 标题二.校验字符的表达式 标题三.特殊需求表达式 正则总结 待校验 仅供参考 URL正则匹配 /*在输入框中如何判断输入的是一个正确的网址,例如:用户输 ...

  7. [BAT][JAVA]定时任务之-Quartz使用篇(通过这个配置可以知道在做Quartz的时候需要的jar文件/Cron表达式使用语法/常用Cron表达式)

    Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简单或为运行十个,百个, ...

  8. 10 种常用的CSS框架,收藏一下

    文章目录 1.Bootstrap 2. Foundation 3. Materialize CSS 4. Semantic UI 5. Bulma 6. UIKit 7. PureCSS 8. Tai ...

  9. 如何提高同事的编码速度?这7种代码工具碉堡了(建议收藏)

    常言道:"工欲善其事,必先利其器."开发人员时常需要使用各种工具,来加快其代码的编写速度.就算在代码的测试环境,他们也会趋向使用各种脚本与工具.通过与业界许多经验丰富的开发和测试人 ...

  10. SQL常用脚本整理,建议收藏

    工作中有许多比较常用的SQL脚本,今天开始分几章分享给大家. 1.行转列的用法PIVOT CREATE table test (id int,name nvarchar(20),quarter int ...

最新文章

  1. 程序员福音-定时提醒bat
  2. JZOJ 5257. 小X的佛光
  3. 深度学习笔记 第四门课 卷积神经网络 第二周 深度卷积网络:实例探究
  4. log4j配置文件及nutch中的日志配置
  5. 【RIA Services】系统分析
  6. 【转】Oracle 执行动态语句
  7. beego模板语法循环html块,1.69 beego 模板语法指南 - Beego 中文文档
  8. Automated Feature Engineering Basics
  9. 【15】一切都是对象
  10. Java语言中的----条件循环
  11. css 设置input输入内缩进
  12. Linux的ssh登录命令,Linux SSH登录命令总结
  13. 韩国NF功放芯片在音频音响领域的应用
  14. 在VMware 16.2.2中安装Windows7
  15. mysql加速搜索_巧用MySQL AHI加速神器,让你的InnoDB查询飞起来!
  16. Module parse failed: Unexpected token (1:0) You may need an appropriate load
  17. springboot毕设项目电子竞技赛事管理系统f1v55(java+VUE+Mybatis+Maven+Mysql)
  18. 零基础可以学python么
  19. UVA11021 Tribles 概率
  20. 面试官:hold住了八股和算法,扫码登录应该怎么实现你总不会了吧

热门文章

  1. 推荐可永久保存文件的免费网络硬盘
  2. jQuery进度条加载插件
  3. 主流WebService框架
  4. xcode13创建mac控制台应用程序
  5. 【华为机试题 HJ72】百钱买百鸡问题
  6. 电脑硬盘怎么测试软件,如何通过软件检测电脑硬盘坏道?
  7. c++实现吃豆子游戏
  8. 软件工程 可行性分析与需求分析
  9. 【架构】高可用高并发系统设计原则
  10. 基于Python的坦克大战小游戏