TIMMAD

标题: 三角函数与表达式控制的渐入应用 [打印本页]

作者: sil09    时间: 2013-12-11 17:45
标题: 三角函数与表达式控制的渐入应用
本帖最后由 sil09 于 2013-12-13 17:11 编辑

其实这贴的灵感来源还是假人大大的
小技巧11—逐字翻落效果

http://www.timmad.com/forum.php?mod=viewthread&tid=1471&fromuid=786

然后突发奇想能不能用三角函数与表达式控制结合搞出这种效果,于是有了下图:

翻落字.gif

操作步骤:

1.新建文字对象与空白对象,并打开3D开关。
1.jpg

2.移动文字的锚点到适当位置,并为X旋转添加如图表达式(具体会在后面介绍)。
2.png

3.为空白对象添加角度控制效果,展开属性,在如2图的输入状态下,按住下面红圈里的按钮,拖到Angle属性,就会引用Angle属性,出现“thisComp.layer("表达式控制").effect("Angle Control")("Angle")”这一串奇怪的东西。
3.png

4.为空白对象的角度控制效果设定关键帧从90度到0度
4.jpg

5.预览得到满意效果后,预合成空白对象与文字,复制六层,并将时间错开。
5.jpg

表达式解析:
value + Math.cos(time*5*3.1415)*thisComp.layer("表达式控制").effect("Angle Control")("Angle")


value
初始值,可自行调节,我就将其设为0。

Math.cos()
cos的函数,其实sin也是可以的,不过取cos是为了其在time=0时初始值为1(即余弦函数最大值)

(time*5*3.1415)
time,即其为随时间变化的函数。
由于三角函数一个周期为2π,所以如果输入tiem*2*3.1415(AE不支持无理数π)则其完整周期为1秒。要改变其频率只需改编中间的数字,若为5,则其完整周期为2/5秒。

*thisComp.layer("表达式控制").effect("Angle Control")("Angle")
由于三角函数变化区间在1~-1,几乎看不出来,因而要乘上一个系数,将null object上的表达式控制函数引用过来。
给空白对象打上表达式控制特效,打上两个关键帧并设置柔滑曲线,从90到0,然后将其乘到三角函数后面。
其摆动角度就会如下图所示变化:



简而言之,只要利用三角函数乘上表达式控制,并设置好关键帧,就可以模拟弹簧般能量耗散的过程。
与K帧相比,这个方法虽然有些麻烦,但效果更加自然,而且可读性与可修改性更佳。



另外一个例子:

ewt.gif

操作有点复杂,就不一步步说了,但有几个注意点:

1.这个例子中,运动共分为三部分,分别为牌子的上下运动、牌子围绕连接点(下点)的转动、牌子围绕悬挂点(上点)的摆动,这三个运动均应用了三角函数与表达式控制。

2.绳子是由beam效果生成,建立一上一下两个null object,使牌子跟随下方的null object运动,并且将两个null object的位置函数引用到beam的开始与结束点。

3.其实最头疼的问题还是父子层关系与位置函数的引用,因为一设置父子层关系,其子层的位置函数就会变化,最后我只好弄了一个预合成。上下运动、牌子围绕连接点(下点)的转动放在预合成里;牌子围绕悬挂点(上点)的摆动则直接作用于预合成上。(如果有更好的解决办法欢迎指出。。)

4.还有一个需要注意的问题就是运动的协调性,即牌子围绕连接点(下点)的转动与牌子围绕悬挂点(上点)的摆动一定要协调,我通过调节(time*2*3.1415/2)((time+0.4)*2*3.1415/2),使其运动提前0.4秒。

5.很重要的一点就是,每一个变化都需要调节曲线,不然动作会很死板。

更多细节可以参考工程文件(CS5)
链接: http://pan.baidu.com/s/1EKhnk 密码: s931

结语:
渣新第一次写教程,有不清楚的地方或者可以改进的地方欢迎指出。
表达式看起来非常麻烦,但其实有时候用起来还是蛮方便的。


作者: 罪与暗    时间: 2013-12-12 07:09
我滴妈……
据说有个什么弹性表达式?
难道这个比那个更加先进???

作者: 纸片人    时间: 2013-12-12 08:23
教程好评  第二个效果不错  很有弹性~~
作者: sil09    时间: 2013-12-12 12:28
罪与暗 发表于 2013-12-12 07:09
我滴妈……
据说有个什么弹性表达式?
难道这个比那个更加先进???

弹性表达式? 那是啥。。求介绍。。
作者: zhu.sama    时间: 2013-12-12 23:39
完全看不懂,我还以为是广告= =
作者: sil09    时间: 2013-12-12 23:46
zhu.sama 发表于 2013-12-12 23:39
完全看不懂,我还以为是广告= =

额。一步一步截图操作会比较好吗。。
作者: 罪与暗    时间: 2013-12-13 07:09
sil09 发表于 2013-12-12 12:28
弹性表达式? 那是啥。。求介绍。。

俺也只是听说……
表达式什么的太深奥了。
作者: 紫竹    时间: 2014-2-6 13:49
看到表达式我就跪了
作者: lesliehuang    时间: 2023-5-4 22:32
使牌子跟随下方的null object运动,并且将两个幸运飞艇直播澳洲幸运20走势图福彩双色球结果的位置函数引用到beam的开始与结束点。





欢迎光临 TIMMAD (http://timmad.com/) Powered by Discuz! X2.5