GIMP插件AnimStack制作GIF教程(五)——旋转

Published: 2015-10-13

Tags: AnimStack gimp

本文总阅读量

本篇将介绍AnimStack的旋转标签rotate ,在这里,我们设定每一帧的旋转角度是15度,总共需要24帧画面(15*24=360),先来看下最终效果

AnimStack教程


首先,使用[*24]来生成24个图层,再用[fg] [-rotate:15]生成变化角度的文字层,如下图

AnimStack教程

使用[fg] [-rotate:-15]生成的为顺时针的,我们运行脚本,GIF就生成出来了,这时可以使用"滤镜 - 动画 - 回放"来预览

AnimStack教程

虽然生成了,但是效果很不好,很模糊,如下对比可以看出

AnimStack教程

这是因为使用这种旋转的方法,旋转30度的帧是根据旋转15度的帧再次旋转15度生成的,也就是每次旋转都会丢失一些精度,这样最后生成的图片会非常模糊,下图为旋转1次和旋转23次的对比

AnimStack教程 AnimStack教程

为了解决这个问题,我们需要使用到插件的"non-cumulative mode"

修改标签为[angle=inc:-15] [.fg] [-rotate:angle]

定义一个angle变量,用来每次通过inc自增15度,将rotate的值设置为angle,最后,在行为标签fg的前面加一个"."来设置为"non-cumulative mode"

执行插件后,如下的效果比之前的好上一些了

AnimStack教程

还有一些问题,我们把背景调成透明的,在背景图层上"右键 - 添加Alpha到选区",然后按一下键盘上的DEL键就可以了

再次运行插件,生成GIF图

AnimStack教程

什么鬼!

原因是默认情况下,图片的交接方式为合并(combine)模式,另一种方式为替换(replace)模式

现在我使用的AnimStack版本为0.6,在0.3版本中,作者添加了可以设置是combine或者是replace的Tag,这在0.2版本中是没有的,类似于0.2中的delay设置时间

AnimStack教程

这样,就在图层后面批量的添加了replace

AnimStack教程

导出gif看下效果

AnimStack教程

上边的两个GIF背景都是透明的,只不过在网页上看不出来,下载本地打开应该就是这样的

AnimStack教程

细心观察,大家应该可以发现,去掉白色使用透明背景后,我们的字体明显粗糙了许多

没有办法,这是GIF自身的不足,它不支持局部透明,所以每一个图层要么透明,要么不透明

不过我们还是可以做点什么,正如你在网页上看到的GIF背景是白色的,我们依旧用白色作为它的背景,使用matte标签进行优化

在刚在的基础上,我们使用"图像 - flatten layer groups"对图层组进行合并,在最下面新建一个图层,填充白色并添加[matte]标签,matte标签也有一点点参数,不过默认基本上是最好的选择

AnimStack教程

运行插件

AnimStack教程

可以看到,起始matte是将文字包裹上一个白边,虽然在GIMP中预览,白色的边依旧有锯齿,但是在网页中,白色的锯齿会和网页的背景是一个颜色的,看起来就不明显了,这就是matte做的事情

导出GIF看看效果,对比一下,左边的是经过"non-cumulative mode"改良后的,右边是经过matte标签继续改良的

AnimStack教程 AnimStack教程


旋转搞定,今天就到这里啦~