Velocity中如何定义一个空的Map变量,然后循环地向其中添加元素?

Velocity中如何定义一个空的Map变量,然后循环地向其中添加元素?,第1张

首先你要明确,velocity主要是引用java中定义的变量,很少有自己定义的变量,或者自己只能简单的定义一些变量,例如map对象他只能定义一个变量,然后将java中定义的map对象绑定到velocity定义的变量上.velocity是不能定义完变量,然后向里面add元素的,因为没有add类方法.

velocity和speed还有valueAtTime,velocityAtTime(t),speedAtTime(t)的理论知识

velocity的意思就是速率, speed是速度

很神奇的是AE中速度和速率的计算方法是一样的(不知道在物理书中的解释是否一样)

velocity输出1D(也就是只有一个常量的数值)数值的时候 和speed的功能是一样的。

他们同时计算一个对象参数变化的速率,值得注意的是,他们只是做数字运算,而非物理中对速度的定义,

一个简单计算速率 速度 的AE公式是(AE公式,是我为了让你更容易理解为想出的适合AE作业的公式)

起始参数 = x1

结束参数=x2

时间入点=t1

时间出点=t2

(x1-x2)/(t1-t2)

为了方便我们运算,我们在任意一个solid scale 第一桢的地方设50%关键桢 CTI指向1秒种的地方设置 100%关键桢

再用另外一个solid连接这个scale并在结尾添加.velocity

那么第二个solid会发生什么事情呢?

是的,它在0秒到1秒的地方一直是50%,1秒之后就是0

结合刚才的公式 x1=50 x2=100 t1=0 t2=1 (50-100)/(0-1)=50

所以打了关键桢的图层的scale参数运动速率为50而1秒之后它根本就没有参数变化,那么它的速率自然是0了,有兴趣可以添加个wiggle试试看,会得出新的速率,甚至负数的速率。(我把这个试验交给你,并且开头所讲speed只能处理1d数值,velocity则可以处理多D多个常量的数组(Array),所以我把speed也交给你去试验了,提醒一下2D图层中的rotation和opacity都是1D数值)

那么valueAtTime(为什么我打字打得这么蹩脚,因为AE表达式规定,命令的第一个英语单词是完全小写第二 第三个英语单词首字母大写!记住!)

大家恐怕都很熟悉valueAtTime(t)的作用,比较流行的解释就是 返回(我喜欢把value看成返回,当然你也可以理解是提取)一个(时间)中的数值 例如 如果括号里是1,它会返回CTI在1秒的参数(提取也行),但它是不会动的,因为实际上括号里面指的是1秒那一桢,所以通常我们使用time来定义括号中的t,让valueAtTime可以随CTI的播放产生参数的变化,其实你大可以放心使用别的命令如wiggle定义这个他(不过需要注意的是wiggle添加到什么属性就会有该属性常量那么多的常量,也就是说添加到opacity是1D数值,添加到scale就是2D或者3D数值了,而这个括号中的t是1个常量的数字 表现时间的数值)

velocityAtTime,speedAtTime 你一定知道了吧?


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11373793.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存