「只要功夫深 不用关键帧」将不定期更新一些AE表达式和脚本的奇技淫巧,希望能给大家带来一些启发。

AE里的图层,都有一个自己的唯一编号,在表达式里我们可以访问并利用这些图层序号,在某些场景下能提高效率。

图层名称左边的就是图层序号,从1开始,在表达式里用"index"即可访问当前图层的序号。

最简单的例子,我们可以利用它自动排列。

新建一个文本图层,把它放到合成的上方,先给他的“源文本”属性添加表达式:

"行数" + index;

这样它是第几个图层就是第几行。

然后对它的“位置”属性添加表达式:

//图层序号从1开始,但是计算的时候从0开始比较符合逻辑,所以可以先修正一下
var indexFixed = index - 1;
//每一行之间的距离,可以根据实际情况估算
var offset = 100;
//每一行在y轴上偏移量为(图层序号-1)* 行距,x轴不变
var x=value[0];
var y=value[1] + offset*indexFixed;
value = [x,y]

这样只要对图层进行复制(选中图层,快捷键CTRL + D / Command + D),它就会自动排列了。

也可以在别的属性上叠加效果,例如在“缩放”属性上添加:

//图层顺序每增加1,图层减小5%
var temp = 100 - 5*index;
value = [temp,temp];

效果如下:

其实我个人平时用的最多的是在“旋转”属性上。新建一个矩形形状图层,矩形移到正上方,保持图层的固定点在合成中心,然后为“旋转”添加:

var indexFixed = index - 1;
//图层顺序每增加1,图层旋转30度
value = indexFixed*30;

做仪表盘之类的元素很方便:

把这些图层预合成,再弄几个不同粗细及数量的,把这些预合成作为元素再组合,做那种科技风格的仪表刻度很方便。

当然如果你数学过关,也可以只在一个合成里完成。以常见的表盘为例,每5度一个小刻度,每30度一个大刻度,还是以刚才的小矩形为例,我们先把“旋转”设为图层顺序每增加1,图层旋转5度:

var indexFixed = index - 1;
//图层顺序每增加1,图层旋转5度
value = indexFixed*5;

然后对矩形的“变换” - “缩放”属性(不是图层的“变换” - “缩放”属性哦)添加:

var temp = 100;
//若该图层的旋转角度为30,则矩形缩放变为200%
//'%'是取余运算符,transform.rotation%30的值为0就意味着这一层的旋转角度可以被30整除,即旋转了30度
if(transform.rotation%30 == 0) temp = 200;
value = [temp,temp];

如图:

如果我们在旋转的同时改变位移,可以做一些螺旋的东西。还是以刚才的小矩形为例,去掉矩形的“缩放”属性上的表达式,我们在矩形的“变换” - “位置”属性上(不是图层的“变换” - “位置”属性哦)添加:

var indexFixed = index - 1;
//图层顺序每增加1,矩形下移一个像素
value = value + [0,indexFixed];

效果如下:

前面我们都在用AE画图,下面我们来做回本职工作吧。利用图层序号做动画,基本思路就是先做好单个元素的动画,然后设定好规则复制,就会产生一些有意思的效果。

举个简单例子,还是之前的矩形,我们给矩形的“变换” - “旋转”(再一次。。不是图层的旋转)添加:

ease(time,inPoint,1,0,360);

恩其实就是让他在从图层开始时间到1秒内转一圈。当然用关键帧也可以,为了装逼我用表达式完成(逃

然后如法复制,效果如下:

好像看起来有点平淡?那我们再让它稍微酷炫一点:

还是之前的矩形,我们给矩形的“变换” - “缩放”属性添加:

(不好意思我又要装逼了

//一个简单的弹性缩放动画,矩形从无到有“弹”出来,并会根据图层顺序自动时间偏移
//时间偏移量,序号每加1,偏移0.01秒
var t = (index-1)/100;
//s1在图层开始到0.25秒内从0增加到150(随着图层序号增加时间偏移)
//s2从0.25到0.5秒内从110减少到100(随着图层序号增加时间偏移)
//这里其实150和110应该是衔接的,但是我实验了一下这个跳变更有弹性的感觉
var s1 = ease(time,inPoint + t,0.25 + t,0,150);
var s2 = ease(time,0.25+ t,0.5 + t,110,100);
//条件判断,在不同的时间区间设定不同的缩放变化
if(time <= (inPoint + t)) value = [100,0];
else if(time > (inPoint + t) && time <= 0.25 +t) value = [100,s1];
else if(time>(0.25 + t) && time <= 0.5 +t) value = [100,s2];
else value = [100,100];

还是老办法我们复制复制复制,效果如下:

还不过瘾?那我们再加入点3D效果吧:

在上一个矩形的基础上,我们打开3D图层开关,然后给矩形的“变换” - “位置”属性添加:

//图层顺序每增加1,矩形后移5个像素
var z1 = value[2] + index*5;
value = value + [0,0,z1];

复制吧少年!效果如下:

哈哈,不要被复杂的表达式吓到了,其实我们在单个元素上下足功夫,打开脑洞,就能做很多有意思的效果,最后举个例子,用的表达式就是最基础的图层序号应用做出来很魔幻的效果:

用这个思路,稍微调一下可以得到如下效果(看你脑洞了:

图层上下_「只要功夫深 不用关键帧」之图层序号的玩法相关推荐

  1. 背景宽高随文本变化_「只要功夫深 不用关键帧」之文本图层小技巧

    「只要功夫深 不用关键帧」将不定期更新一些AE表达式和脚本的奇技淫巧,希望能给大家带来一些启发. 上周有朋友遇到这么个问题: 对一段文字,不管文字长度如何变化,想让背景到文字的边距始终保持不变,在 A ...

  2. aris终端桌面_「最美应用」 Aris :这款神奇的桌面,助你化身神盾局特工

    你是不是经常遇到这样的情况:拿起手机想要打开某一个应用却半天也找不到,令你焦躁不已?想要发送电话号码或者图片给别人,复杂的操作步骤又让人十分头疼.哪怕是在手机上找个文件,也得翻来覆去的找半天? 这基本 ...

  3. 关于主机的思维导图_「停课不停学」思维导图—初中语文全部知识点总结,高清可打印...

    导读 思维导图的创始人东尼·博赞先生在读大学的时候,作为一名大一新生,在第一天上课时,好奇心就被略带傲慢的教授点燃了,因为他之前从来没见一个老师可以不用翻花名册点名,而且是第一次上课,全部是新生的情况 ...

  4. mysql锁与程序锁_「最美应用」应用锁:这个程序锁,不寻常...

    功能多,安全性强,这才是一款应用锁. 手机的安全性就不用小美多说了吧!谁也不希望自己的手机被任何人使用,就算是熟人,也会有不自在,尽管小美不能帮助你避开这些问题,但是小美却可以为你推荐一款超棒的应用锁 ...

  5. 不等待输入_「对方正在输入……」的提示,给聊天带来什么影响?

    看着微信对话界面的「对方正在输入-」,你是否急于知道对方的输入内容?大部分时候,虽然只有十几秒,但是却感觉过了数分钟.这个功能,究竟有没有起到即时反馈的作用呢? 从时间知觉的角度看,「对方正在输入-」 ...

  6. python列表框_「每日一练」Python列表框部件的运用

    原标题:「每日一练」Python列表框部件的运用 用Python就一定要用到界面操作,有一个好的用户界面,才会有好的用户体验,下边就开始创建我们的主窗口,并设置相应的列表框部件吧! 案例 创建主窗口, ...

  7. ccd相机好修吗_「CCD购买指南 」CCD废片大公开

    最近小红书上CCD大热,当我看到花几十块钱就能拥有一部相机的时候,贫民窟的我,激动的心,颤抖的手. 相信在看这篇笔记的你们也是这种心情. 千万别啊‼️‼️ 这样冲动容易被坑 花三分钟看完我的笔记,你会 ...

  8. python断点调试_「Python调试器」,快速定位各种疑难杂症!!!

    在很多的编辑器其实都带着「调试程序」的功能,比如写 c/c++ 的 codeblocks,写 Python 的 pycharm,这种图形界面的使用和显示都相当友好,简单方便易学,这个不是我这篇文章要讲 ...

  9. 多模态语义分析_「CV学霸开讲」卷积神经网络压缩、多模态的语义分析研究

    原标题:「CV学霸开讲」卷积神经网络压缩.多模态的语义分析研究 [新智元导读]2017年度百度奖学金10位候选人中,人大的陈师哲和北大的王云鹤所学专业主要集中在计算机视觉,本文将详细呈现CV学子的求学 ...

最新文章

  1. 重置 microsoft visual studio窗口
  2. ckedit 文本编辑器
  3. Jakarta EE:云原生Java的新平台
  4. 信息检索的评价指标(Precision、Recall、F-score、MAP、ROC、AUC)
  5. oracle600错误,Oracle 导入数据报600错误
  6. Xen虚拟机两大迁移方法详解
  7. 什么是python全栈开发_什么是python全栈
  8. PL/SQL程序设计(七)—— 触发器
  9. [快速入门]Spring Boot+springfox-swagger2 之RESTful API自动生成和测试
  10. 【题解】Luogu P2147 [SDOI2008]洞穴勘测
  11. python的objectproperty,python – ObjectProperty类的用法
  12. Java中的各种数据类型的转换
  13. 将Python文件打包成so文件
  14. 布谷鸟算法(C++实现)
  15. Nodejs KOA服务搭建打包
  16. 防火墙资源(jetio,comodo,outpost,pc tool,zonealarm pro
  17. aruino四轮蓝牙小车控制
  18. UNtubu16安装hive(一)
  19. 一个善意的谎言拯救一个团队 (又叫沙漠中的指南针)
  20. 【论文阅读】Slot-Gated Modeling for Joint Slot Filling and Intent Prediction

热门文章

  1. strace实现原理:ptrace系统调用
  2. __attribute__((unused)):可能不会用到,消除编译警告
  3. python安装mysqldb模块_python MysqlDb模块安装及其使用详解
  4. nodejs连接池连接mysql
  5. html的document操作
  6. linux音乐关机,在Deepin操作系统中关闭或者更改开机关机音乐的方法
  7. pythoncsv数据类型_python – 从CSV文件行中的值确定数据类型
  8. java输出 4 7什么意思_Java学习4_一些基础4_输入输出_16.5.7
  9. 红外遥控c语言,NEC协议红外遥控器
  10. android 微信支付过程,android 微信 支付 接入流程总结