用简单表达式创建动态效果

本教学为翻译教学,转载请注明来自aboutcg.net,以及注明翻译者

这是一篇源自Creative Cow论坛的教程,原始连接如下:

http://www.creativecow.net/show.php?forumid=1&page=/articles/al_khatib_talid/rose_expression/index.html

作者:Talid Al Khatib

翻译:CWWS (aboutcg.net)

点击这里下载最终效果预览

使用简单的表达式创建强大的动态效果

本文聚焦:

在这个教程里面,Talid Al Khatib证明了仅凭简单的表达式就可以创造强大的动态效果。在这里,我们创建一朵可以当作背景或动态元素的“玫瑰”。 Talid指出我们通常认为表达式只是作用于层属性(缩放,透明度,位置,定位点和旋转),但实际上,表达式也同样可以作用于特效,在我们的教程里,我们将在两个效果上面使用表达式(grid 和Hue/saturation).

这是数学的魔法……

大多数的人认为使用AE表达式需要专业的编程技能……那只对了一部分。但你会很惊讶,实际上一些你认为需要很复杂的步骤做出来的效果其实只是通过一行简单的表达式完成的。

Talid Al Khatib发现表达式:Math.sin(time)*n就是这些神奇的单行表达式中的一个。表示数字,在接下来的项目中,我们跟随着Talid来探索一下这个表达式的一些功能。

pic1

第一部分

让我们从建立一个320×240的项目窗口开始,把它命名为"comp1",导入两个大小为100×100 的蓝色的solids层(或除了白色以外的任何颜色),双击圆形的Mask工具给它们加上遮罩,使它们变成圆形的。对于一个Solid层的 position 参数首先使用以下表达式:

 

[160,Math.sin(time)*80+120]

 

 

这个表达式意味着我希望solid层的position[0](水平位置的数值)在整个composition中位置是160,然后我希望 solid层的position[1](垂直位置的数值)的大小在两个特定的数值之间,即在比composition垂直中心数值(即120)大80的数值或者比composition垂直中心数值(即120)小80的数值之间,(记住对于任何数字加sine或cosine函数所得到的值的大小在1或-1 之间),我们在这个值的基础上加上120使得Solid层的运动从composition的中心开始而不是从它的顶部开始。

现在我希望另外一个Solid层与前一个Solid层相对运动。那意味着前一个Solid层的位置比composition的中心高出80个像素,那现在这个Solid层的位置必须比composition的中心低80个像素,要使这个目的实现,只要把这个Solid垂直位置的数值由上一个 Solid层的80改为-80,然后我们的表达式如下:

 

[160,Math.sin(time)*-80+120]

 

现在我希望另外一个Solid层与前一个Solid层相对运动。那意味着前一个Solid层的位置比composition的中心高出80个像素,那现在这个Solid层的位置必须比composition的中心低80个像素,要使这个目的实现,只要把这个Solid垂直位置的数值由上一个 Solid层的80改为-80,然后我们的表达式如下:

 

[10,Math.sin(time)*250]

 

第三个Solid层会像一个手臂一样连接着两个圆。

pic2

第二部分

建立另一个叫做Comp2的composition,把Comp1拖到Comp2的时间线上并把它复制三次,现在你有四个层了。分别给它们的Rotation参数以下数值:-45, 0, 45, and 90,你会得到如下图所示的结果:

pic3

现在,建立第三个composition 叫做 Comp3,把Comp2拖到Comp3的时间线上并复制Comp2,把复制的层放大到180%并且把透明度降低为30%,(这样会使它看起来像是另外一个层的影子)

对于原始的Comp2层的rotation属性加入以下表达式:

 

Math.sin(time)*360

 

然后对于复制后的“影子”层的rotation属性加入以下表达式:

 

Math.sin(time)*-360

 

原始层会顺时针转动,而另一个“影子”层会逆时针转动,你会得到下面图片所显示的效果。

pic4

现在我们得到了我们需要的动画,我们还可以再给它增加一些趣味性,建立一个新的adjustment layer,让它处于时间线窗口的顶端(作为第一层),从"adjust" 特效组中给它添加Hue/saturation效果,在参数设置窗口选择colorize勾选框,把saturation提高到100%然后给 colorize Hue参数加入以下表达式:

 

Math.sin(time)*360

 

你可以按下Alt键并用鼠标点选colorize Hue参数左边的小闹钟图表来激活增加表达式功能,你可以看到compositions里元素的颜色在色轮范围内变化。

pic5

现在让我们建立一个新的Solid层,大小为composition的尺寸把它放在时间线的最底层,从“render“特效组里面加入一个grid特效,把border值设为1,给corner参数以下的表达式:

 

[Math.sin(time)*90+160,Math.sin(time)*90+120]

 

格子的尺寸的变化也变成了我们动画的一部分,见下图:

pic6

点击这里下载相关的项目文件

0回复用简单表达式创建动态效果"

留下信息

电子邮件地址不会被公开。 必填项已用*标注

验证问题,请选择下图中的 C...