TIMMAD

 找回密码
 立即注册
快捷导航
搜索
查看: 6754|回复: 8
打印 上一主题 下一主题

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

[复制链接]

3

主题

0

好友

363

积分

高级基佬

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 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

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

翻落字.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

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

回复

使用道具 举报

52

主题

1

好友

1576

积分

酷炫基佬

Rank: 4

沙发
发表于 2013-12-12 07:09:17 |只看该作者
我滴妈……
据说有个什么弹性表达式?
难道这个比那个更加先进???
回复

使用道具 举报

67

主题

10

好友

5125

积分

D组

板凳
发表于 2013-12-12 08:23:57 |只看该作者
教程好评  第二个效果不错  很有弹性~~
回复

使用道具 举报

3

主题

0

好友

363

积分

高级基佬

Rank: 3Rank: 3

地板
发表于 2013-12-12 12:28:11 |只看该作者
罪与暗 发表于 2013-12-12 07:09
我滴妈……
据说有个什么弹性表达式?
难道这个比那个更加先进???

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

使用道具 举报

119

主题

5

好友

4867

积分

鹳狸猿

Rank: 9Rank: 9Rank: 9

5#
发表于 2013-12-12 23:39:45 |只看该作者
完全看不懂,我还以为是广告= =
回复

使用道具 举报

3

主题

0

好友

363

积分

高级基佬

Rank: 3Rank: 3

6#
发表于 2013-12-12 23:46:50 |只看该作者
zhu.sama 发表于 2013-12-12 23:39
完全看不懂,我还以为是广告= =

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

使用道具 举报

52

主题

1

好友

1576

积分

酷炫基佬

Rank: 4

7#
发表于 2013-12-13 07:09:05 |只看该作者
sil09 发表于 2013-12-12 12:28
弹性表达式? 那是啥。。求介绍。。

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

使用道具 举报

12

主题

0

好友

1771

积分

鹳狸猿

Rank: 9Rank: 9Rank: 9

8#
发表于 2014-2-6 13:49:03 |只看该作者
看到表达式我就跪了
回复

使用道具 举报

0

主题

0

好友

183

积分

进阶基佬

Rank: 2

9#
发表于 2023-5-4 22:32:17 |只看该作者
使牌子跟随下方的null object运动,并且将两个幸运飞艇直播澳洲幸运20走势图福彩双色球结果的位置函数引用到beam的开始与结束点。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|Archiver| Tim M@D论坛   

GMT+8, 2024-5-2 17:33 , Processed in 0.089548 second(s), 21 queries .

Powered by Discuz! X2.5 Licensed

© www.timmad.com Lelo

回顶部