本篇将介绍AnimStack的旋转标签rotate
,在这里,我们设定每一帧的旋转角度是15度,总共需要24帧画面(15*24=360),先来看下最终效果
首先,使用[*24]
来生成24个图层,再用[fg] [-rotate:15]
生成变化角度的文字层,如下图
使用[fg] [-rotate:-15]
生成的为顺时针的,我们运行脚本,GIF就生成出来了,这时可以使用"滤镜 - 动画 - 回放"来预览
虽然生成了,但是效果很不好,很模糊,如下对比可以看出
这是因为使用这种旋转的方法,旋转30度的帧是根据旋转15度的帧再次旋转15度生成的,也就是每次旋转都会丢失一些精度,这样最后生成的图片会非常模糊,下图为旋转1次和旋转23次的对比
为了解决这个问题,我们需要使用到插件的"non-cumulative mode"
修改标签为[angle=inc:-15] [.fg] [-rotate:angle]
定义一个angle变量,用来每次通过inc自增15度,将rotate的值设置为angle,最后,在行为标签fg的前面加一个"."来设置为"non-cumulative mode"
执行插件后,如下的效果比之前的好上一些了
还有一些问题,我们把背景调成透明的,在背景图层上"右键 - 添加Alpha到选区",然后按一下键盘上的DEL键就可以了
再次运行插件,生成GIF图
什么鬼!
原因是默认情况下,图片的交接方式为合并(combine)模式,另一种方式为替换(replace)模式
现在我使用的AnimStack版本为0.6,在0.3版本中,作者添加了可以设置是combine或者是replace的Tag,这在0.2版本中是没有的,类似于0.2中的delay设置时间
这样,就在图层后面批量的添加了replace
导出gif看下效果
上边的两个GIF背景都是透明的,只不过在网页上看不出来,下载本地打开应该就是这样的
细心观察,大家应该可以发现,去掉白色使用透明背景后,我们的字体明显粗糙了许多
没有办法,这是GIF自身的不足,它不支持局部透明,所以每一个图层要么透明,要么不透明
不过我们还是可以做点什么,正如你在网页上看到的GIF背景是白色的,我们依旧用白色作为它的背景,使用matte标签进行优化
在刚在的基础上,我们使用"图像 - flatten layer groups"对图层组进行合并,在最下面新建一个图层,填充白色并添加[matte]
标签,matte标签也有一点点参数,不过默认基本上是最好的选择
运行插件
可以看到,起始matte是将文字包裹上一个白边,虽然在GIMP中预览,白色的边依旧有锯齿,但是在网页中,白色的锯齿会和网页的背景是一个颜色的,看起来就不明显了,这就是matte做的事情
导出GIF看看效果,对比一下,左边的是经过"non-cumulative mode"改良后的,右边是经过matte标签继续改良的
旋转搞定,今天就到这里啦~