sil09 发表于 2013-12-11 17:45:29

三角函数与表达式控制的渐入应用

本帖最后由 sil09 于 2013-12-13 17:11 编辑

其实这贴的灵感来源还是假人大大的
小技巧11—逐字翻落效果
http://www.timmad.com/forum.php?mod=viewthread&tid=1471&fromuid=786

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



操作步骤:

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


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


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


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


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


表达式解析:
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,然后将其乘到三角函数后面。
其摆动角度就会如下图所示变化:
http://www.timmad.com/data/attachment/forum/201312/07/201700116aub9hw91h7ykb.png


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


另外一个例子:



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

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:17

我滴妈……
据说有个什么弹性表达式?
难道这个比那个更加先进???

纸片人 发表于 2013-12-12 08:23:57

教程好评  第二个效果不错  很有弹性~~

sil09 发表于 2013-12-12 12:28:11

罪与暗 发表于 2013-12-12 07:09 static/image/common/back.gif
我滴妈……
据说有个什么弹性表达式?
难道这个比那个更加先进???

弹性表达式? 那是啥。。求介绍。。

zhu.sama 发表于 2013-12-12 23:39:45

完全看不懂,我还以为是广告= =

sil09 发表于 2013-12-12 23:46:50

zhu.sama 发表于 2013-12-12 23:39 static/image/common/back.gif
完全看不懂,我还以为是广告= =

额。一步一步截图操作会比较好吗。。

罪与暗 发表于 2013-12-13 07:09:05

sil09 发表于 2013-12-12 12:28 static/image/common/back.gif
弹性表达式? 那是啥。。求介绍。。

俺也只是听说……
表达式什么的太深奥了。

紫竹 发表于 2014-2-6 13:49:03

{:soso_e103:}看到表达式我就跪了

lesliehuang 发表于 2023-5-4 22:32:17

使牌子跟随下方的null object运动,并且将两个幸运飞艇直播,澳洲幸运20走势图,福彩双色球结果的位置函数引用到beam的开始与结束点。
页: [1]
查看完整版本: 三角函数与表达式控制的渐入应用