上一篇文章演示了一个hello world, 算是了解了下animstack的机制,接下来,将继续深入的学习,最后能借助插件,完成一些CoolCool的效果
还拿这个GIF做演示
1, fg标签及作用范围
我们已经知道,在最顶层的图层名称后加上[fg]
标签就可以实现全部图层都覆盖, 那么如果仅仅想影响部分图层呢, 来看一下下面的标签属性例子, 过程在(一)中都详细介绍了,直接上效果图
[fg:3]
只影响三个图层
值的注意的是,gif的播放顺序是从下到上,[fg]标签是从上到下
在每三个图层下面添加一个[fg:3]
层就可以实现颜色的变换了
上图就是文字的轮播效果,你可能会有疑问,这个是作用一定范围的,如果我想实现每一帧都是不同颜色,如果用[fg:1]
也是能实现的,但是这样工作量很大,图层一多,手动完成这是不现实的,有一个标签或许能帮助你——roll标签,自己设定几个颜色,然后每一个帧按照顺序分配你指定的颜色
2, roll标签及作用范围与起始
[roll:0]
首先, 新建三个文字曾并设置他们为不同的颜色, 将三个文字层点击锁定,点击"图层-Group-Pack Linked Layers", 将图层组移动到最下方, 修改图层组的名字为[roll:0]
这样,我们就做出了一个每个帧交替变化的效果
- 值的注意的是, 图层包裹在roll图层组的
[fg]
标签将被忽略 - 使用
[roll:-1]
将使文字层出现在图层的下方(当然, 这样做需要你的原动画图层是透明的才可以看到效果) - roll图层组要放在最下面, 处理方向为从下到上
- roll标签也是有作用范围的, 使用
[roll:0:4]
, 将只处理下面4个图层 - 第二个参数总是作用范围,
[roll:0:0]
, 设置为0表示作用于全部图层 - roll第三个参数表示图层组的起始位置偏移, 比如图层组中的文字颜色顺序从下到上为"红绿蓝", 那么处理时第一个图层分配为红色, 如果使用
[roll:0:0:1]
, 则分配时以绿为起始层开始分配
3, 雪花效果
这个是一个背景,我们来实现一个飘雪的效果, 雪花我用的是这个http://www.easyicon.net/1185697-snow_flake_icon.html
如下的截图,第一个是一个比较"正常"的背景, 上面有雪花, 第二个是雪花在下面, 因为我们做这个飘雪的思路是背景上有许多的雪花, 这样需要我们有多张背景, 然后再解决雪花的排列问题
手动点击背景图层复制简直是反人类,插件提供了生成的功能, 在背景层名字后添加[*25]
就可以了
先按下Ctrl+Z恢复, 我们还得加点料, 在雪花图层上加上[copy:0] [-move:0:5]
, 现在的情况就像这样
点击插件开始运行, 短暂的等候, 生成我们的GIF, 插件的流程就是先根据[*25]
生成25张背景, 雪花层copy到这个基础之上, copy类似于bg的的命令, 只不过可以选择这个雪花是放在背景的上面还是下面, 0则为上面, 非0为放在下面, 这里使用[copy:0]
, [-move:0:5]
的意思是说雪花, "-"你要向下移动, "+"则要向上移动, 0代表左右偏移, 5代表5像素, 也就是说生成的每个雪花向下移动5个像素
值得注意的是, move是effect类型标签, 效果作用于copy出来的一系列图层, 你可能已经发现了这里有不同类型的标签, 是的, copy是action类型标签, 与move是不同的, 一个图层中, action标签只能出现一次, 而effect标签可以有多个
雪花动了呢, 接下来需要想一个问题, 上面的数字5我们设置成8如何呢, 测试会发现, 已经溢出到图片外面去了, 我们想让雪花"循环", 从顶部再出来, 要怎么办
move标签已经不适合我们了, offset标签可以解决我们的问题, 把雪花的标签换成[copy:0] [-offset:0:8]
, 有必要简单的说下offset, 根据我的测试观察, 是在当前图层的大小内进行循环, 雪花图层很小, 所以就会在如下图片辅助线内的距离循环, 效果如下
解决办法有2个
- 使用系统工具, 鼠标点选雪花图层, 点击"图层-图层到图像大小"
- 标签修改为
[copy:0] [!resize] [-offset:0:8]
, 这个resize, 它需要以"!"开头, 无论它放在effect标签前面还是后面, 它的优先级都高于effect标签
这样, 我们就得到了一个循环的雪花
然而, 雪花还是太粗糙, 雪花应该是左右摇摆着下来的, 所以还需改进, 上面我们提到[-offset:0:8]
其中第二个就是用来左右的, 它需要一个变量, 就姑且用x吧, 现在的标签组合是这样的[copy:0] [!resize] [-offset:x:8]
, 我们需要用generator来生成x, [x=osc:4:25] [!resize] [copy:0] [-offset:x:8]
, 这个osc就是一个生成器, 4是振幅, 25是周期
重新生成, OK, 雪花摆动了
接下来还有两个步骤了, 一个是随即起始位置, 一个是多雪花
起始位置我们使用[!scatter]
标签, 请注意它一定要放在[!resize]
之前, 否则不能正常工作
现在的标签组看来是这样的[x=osc:4:25] [!scatter] [!resize] [copy:0] [-offset:x:8]
最后, 制作多个雪花, 只需在最后加上数量即可[x=osc:4:25] [!scatter] [!resize] [copy:0] [-offset:x:8] [*6]
!!!!!!请注意, 之前说的offset单个雪花循环需要把图层大小放大到图像大小, 但是在制作多个雪花时需要的是原雪花图层大小!!!!!!
如果你跟着上面的步骤操作, 现在你的雪花图层大小应该是和图像大小相同的, 点击"图层-自动剪裁图层"恢复原来的雪花图层大小, 昨天这里纠结了好久, 本来打算发email请教作者scatter不能用的问题, 刚刚在公司试验了一下, 因为忘记了扩大雪花图层, 竟然一下子能用了, 作者在教程中可没有提及, 算是一个小坑, 不过也有可能是对于插件标签理解不够, 没能灵活运用...
好了, 多雪花也做出来了, 看一下效果吧
本文根据Animstack出品的视频教程书写: