GIMP插件AnimStack制作GIF教程(二)——作用范围,Roll标签,雪花效果

Published: 2015-08-25

Tags: AnimStack gimp

本文总阅读量

上一篇文章演示了一个hello world, 算是了解了下animstack的机制,接下来,将继续深入的学习,最后能借助插件,完成一些CoolCool的效果

还拿这个GIF做演示

gimp制作gif图

1, fg标签及作用范围

我们已经知道,在最顶层的图层名称后加上[fg]标签就可以实现全部图层都覆盖, 那么如果仅仅想影响部分图层呢, 来看一下下面的标签属性例子, 过程在(一)中都详细介绍了,直接上效果图

[fg:3] 只影响三个图层

gimp制作gif图

值的注意的是,gif的播放顺序是从下到上,[fg]标签是从上到下

在每三个图层下面添加一个[fg:3]层就可以实现颜色的变换了

gimp制作gif图

gimp制作gif图

上图就是文字的轮播效果,你可能会有疑问,这个是作用一定范围的,如果我想实现每一帧都是不同颜色,如果用[fg:1]也是能实现的,但是这样工作量很大,图层一多,手动完成这是不现实的,有一个标签或许能帮助你——roll标签,自己设定几个颜色,然后每一个帧按照顺序分配你指定的颜色


2, roll标签及作用范围与起始

[roll:0]

首先, 新建三个文字曾并设置他们为不同的颜色, 将三个文字层点击锁定,点击"图层-Group-Pack Linked Layers", 将图层组移动到最下方, 修改图层组的名字为[roll:0]

gimp制作gif图 gimp制作gif图 gimp制作gif图 gimp制作gif图

这样,我们就做出了一个每个帧交替变化的效果

gimp制作gif图

  • 值的注意的是, 图层包裹在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

gimp制作gif图

如下的截图,第一个是一个比较"正常"的背景, 上面有雪花, 第二个是雪花在下面, 因为我们做这个飘雪的思路是背景上有许多的雪花, 这样需要我们有多张背景, 然后再解决雪花的排列问题

gimp制作gif图 gimp制作gif图

手动点击背景图层复制简直是反人类,插件提供了生成的功能, 在背景层名字后添加[*25]就可以了

先按下Ctrl+Z恢复, 我们还得加点料, 在雪花图层上加上[copy:0] [-move:0:5], 现在的情况就像这样

gimp制作gif图

点击插件开始运行, 短暂的等候, 生成我们的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标签可以有多个

gimp制作gif图

雪花动了呢, 接下来需要想一个问题, 上面的数字5我们设置成8如何呢, 测试会发现, 已经溢出到图片外面去了, 我们想让雪花"循环", 从顶部再出来, 要怎么办

move标签已经不适合我们了, offset标签可以解决我们的问题, 把雪花的标签换成[copy:0] [-offset:0:8], 有必要简单的说下offset, 根据我的测试观察, 是在当前图层的大小内进行循环, 雪花图层很小, 所以就会在如下图片辅助线内的距离循环, 效果如下

gimp制作gif图 gimp制作gif图

解决办法有2个

  • 使用系统工具, 鼠标点选雪花图层, 点击"图层-图层到图像大小"
  • 标签修改为[copy:0] [!resize] [-offset:0:8], 这个resize, 它需要以"!"开头, 无论它放在effect标签前面还是后面, 它的优先级都高于effect标签

这样, 我们就得到了一个循环的雪花

gimp制作gif图

然而, 雪花还是太粗糙, 雪花应该是左右摇摆着下来的, 所以还需改进, 上面我们提到[-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, 雪花摆动了

gimp制作gif图

接下来还有两个步骤了, 一个是随即起始位置, 一个是多雪花

起始位置我们使用[!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不能用的问题, 刚刚在公司试验了一下, 因为忘记了扩大雪花图层, 竟然一下子能用了, 作者在教程中可没有提及, 算是一个小坑, 不过也有可能是对于插件标签理解不够, 没能灵活运用...

好了, 多雪花也做出来了, 看一下效果吧

gimp制作gif图

本文根据Animstack出品的视频教程书写: