提交需求
赛事与广告咨询合作,请填写需求表单,我们会在第一时间与您联系!
有人问:我想做一个分秒毫秒的变化(00:00:00:)可是ae自带的事00:00:00:00 如何通过表达式或者其他方式修改呢?
按照惯例,先看效果。
白色是我用表达式模拟的, 红色是用的ae自带的时间码做的。
如何把自带的时间码(00:00:00:00)变成(00:00:00),我目前没找到修改的方法,尝试了一下,根本无法获得这一组数字,没办法操作。
不过,很多人可能会想,直接用遮罩把前面的小时给减掉不就可以了么?
确实可以,这是最简单的办法了。
注意,画mask前记得先预合成,并且将全部属性移动到新合成,否则mask无效。具体请自行尝试。
下面我们来说说如何用表达式模拟。
1、 添加5个文本,新建一个空白图层,给空白图层添加 滑竿控制(表达式控制里-滑竿控制),如下图:
通过观察发现,自带的时间码是25帧(取决于合成的帧速率)等于1秒。
我们模拟的时候也就按照25帧一秒。
2、展开毫秒图层, 找到来源文字,按住alt单击给其添加表达式。
通过螺旋线到表达式,然后将其赋给变量ms,这样我们就获得了毫秒数。
滑竿控制是从0到任意数值, 如何让它在0-25之间重复,这里我们用到js中的取余运算(%)。
大概说一下取余运算,取余运算顾名思义就是取2个数的余数,如0%25=0 1%25=1 2%25=2 .... 25%25=0 26%25=1 ... 如果感兴趣可以自行搜索了解。
用刚才获得的毫秒数ms 模上25,这样就产生了一个在0-25之间循环的数。
3、展开秒图层,同上给其添加表达式,如下图:
上面我们获得了毫秒数,25毫秒等于1m,那么用毫秒数除于25就得到了秒数,这里通过parseInt()取整,因为除法会产生小数,这不是我们希望的。
然后给秒 模上 60 就产生了一个 0-60之间循环的秒。
4、展开分图层,添加表达式,如下图:
1分钟等于60秒, 在上面秒的基础上除于60就得到了分,给分模上 60 就产生了一个 0-60之间循环的分。
表达式中的if语句是用来补0的,当分、秒、毫秒小于10的时候前面补一个0。这个可以看我的另外一个教程。
最后,我们给滑块做个关键帧动画,比如我要做个一分钟的效果,1分钟=60秒 1秒=25帧, 一分钟=1500帧。 就做个从0-1500变换的动画。
当然你可以通过滑块关键帧动画控制数字变换的快慢。
附上附件,供参考。教程到此结束,欢迎交流。如有疑问,请在评论里描述清楚,我空了会回复。
大牛,别默默的看了,快登录帮我点评一下吧!:)
登录 立即注册