《全民飞机大战》高保真设计稿压缩秘

发表于2015-04-29
评论0 1.3k浏览

《全民飞机大战》高保真设计稿压缩秘笈

  手游时代来临,对于游戏制作有了新的需求。所以在制作上就要求最后的游戏更轻量化。那么对于游戏中用到的图片来说,如果要去做优化的话,希望图片的尺寸更小,图片占用的空间更小。以期在占用空间和性能上都控制在一个合理范围内。这里就从贴图尺寸和占用空间这两个方面来做一些探讨。
  下面一些例子仅仅是为了说明问题,并不是最优处理方式。本文是从特效制作上的一些经验来探讨,部分经验也试用于其他的美术图片。


第一部分、如何缩小图片的尺寸

  这个问题似乎不需要讨论。缩小尺寸人人都会。当然这里探讨的是如何在保持自身设计需求的前提下尽量的去缩小图片尺寸。
  这里要从设计需求和设计方式上两方面的去考虑。
  第一点,如果需求是希望屏幕有花瓣飘落这样的细碎的大面积的特效,制作方式首选粒子系统。那么在贴图的选择上,我们可以很小,最后也不影响最终效果。贴图大小32*32就可以满足制作需要。并且也能丰富表现。
  第二点,某些非粒子制作,并且有的特效范围较大。那么这时贴图的尺寸就不能太小,不然就太模糊。那么这种图片,通过制作时的一些取舍,也能将图片的尺寸做一些缩小。
  看下面这个例子:第一张图左右两边的图片看起来肉眼看不出差别。


但是看下面两张图,我分别点选左右的图,图片的有效像素是不同的。造成这种问题的原因是在图片的外围有肉眼看不见的像素存在。在这个例子中是由于辉光过大引起的。那么在其他素材的制作中也可能是看不见的细碎的像素引起,比如某些细小碎点。所以在制作时需要注意这种情况。如果贴图主体部分并不大,但是最后的尺寸较大,就要检查。



再看下面这张图。中间灰色的部分是256*256,整图是512*512.周围的细碎粒子超出了256一点点。那么对于这样的图,我们希望可以放到256尺寸以内。第一种方式是整体缩小到256以内。第二种是把周围超出的部分擦去。这样的话可以保持主体部分的大小和清晰度。究竟怎么处理,看实际贴图来定。对于下图这种类型的贴图,就可以舍弃周围的细碎部分来保证主体的清晰度。



当用到序列帧来制作的时候,如果这些图片分别倒入游戏,那么最后占用的资源,无论是内存还是空间,都会较大。比如这个例子。我们的战机路西法,一共十帧,单帧的尺寸是200*190,那么计算内存是按照256*256来的。十张的话如果分别导入就要十倍256*256的内存占用。但是拼在一起一共512*512,就节省很多内存了。



图软件TexturePackerGUI等,相关知识请自行搜索。

对于序列帧,当然越少越省资源,但是帧越多越流畅。这里如何取舍是个问题。究竟是少点帧,但是单帧图片大一点,倾向于清晰度;还是多点帧,单帧图片小一点,倾向于动画的流畅性,要根据实际需求来取舍。

如果特效或动画整体快速移动,则序列可以少一点(相对于固定点播放的动画,人会忽略整体快速移动序列本身的一些运动细节)

如果整体特效或动画属于快节奏,可以序列帧少一点(例如蝴蝶和蜜蜂的翅膀,蜜蜂翅膀就可以很少的帧表现,而不是快速播放多帧图片来表现翅膀的震动。而蝴蝶的翅膀由于运动偏缓慢,需要就要多些)

本身纹理不是很复杂的贴图,或者本身就有点模糊感觉的贴图,可以小一点,放大也能接受。如果纹理很细微复杂,则放大的损失更明显。

另外如果贴图到游戏里是有add叠加,则贴图放大损失较小。

对于一些很规整的圆形贴图,也可以考虑切割一半或者四分之一的方式来缩小贴图尺寸。当然只需要在游戏里再拼成完整的还原。

这里从我个人制作上来看,有时候也不能太纠结于某一个贴图的尺寸缩小,因为要考虑到贴图复用的问题。某些贴图尺寸太小,复用率就低了,后面有需要类似的贴图时还得添加一张新的。所以添加贴图时就要想下复用的问题,这也无形中会节省部分贴图。

对于手游,为了节省资源有时候也不要太纠结精度问题,有些地方适当的模糊也是可以接受的。

对于如何让贴图尺寸小一点就讨论到这里。下面说另外一种情况。


第二部分、同尺寸的贴图如何占用空间更小

这里通过一些对比,来探讨可以影响大小的情况。

(软件的不同版本可能数据会有区别)

Ae出图和ps另存对比

看这张图片,原图256*256,是直接从ae里处理合成导出的。



这三张图视觉上并无区别。但是从ae直接出的图比ps另存下会大。这个情况我做了一些测试,ps cs2一般是这样。所以习惯用ae处理贴图的同学在出图后可以用ps另存下看看哪个更小。另外ps另存png,交错方式选无,一般输出的图片更小一些。


彩色单色对比
  接下来看另外一张图,我把图片处理成单色,和白色,跟全色彩图对比。



可以看到色彩的丰富程度也是影响贴图大小的一个重要因素。那么对于一些贴图,如果对色彩细节要求不那么苛刻,可以考虑用纯白的贴图,到引擎里赋予颜色的方式,会节省很多大小。并且白色贴图的复用率更高。


贴图边缘的辉光



第一张是原图,第二张是抠去一些边缘的辉光并有一个小的羽化。第三张是抠去边缘辉光没有羽化。这三张图看起来在静态时区别也不大,尤其第二张和第三张之间。如果在运动时,可能更看不出区别。所以这张图的结论就是,对于贴图边缘的辉光,可适当减小甚至没有。尤其对于本身纹理清晰的贴图,这样处理比较合适。对于本身就是很模糊,边缘需要很大辉光的图这一条就略过。


色调分离



色调分离可以减少色阶,使得颜色减少,在视觉上差别不大的情况下可以很大程度的减少贴图大小。如图所示,效果明显。


黑底无通道和索引



通过这张图,可以看出,贴图如果不要通道,带黑底输出,可以减小容量大小。这里对于一些进入游戏只会用到add叠加的贴图,可以这么做。图片索引可以大幅度减少图片颜色,会让图片容量大幅度减少。对比图片发现,对于带通道的图直接索引,色彩丢失严重,但是对于不带通道的图,索引后几乎无损。

对于带通道的想节省大小而保持色彩,可以到# 这个网站上去处理。处理后大小了很多,也几乎保持原有色彩。tinypng也提供ps的安装插件。对于将png32位压缩成8位的软件还有一些,比如PNGoo等。



网站的使用方法



此方式对于图片有轻微损失,当然此损失在图片不放大的情况下肉眼是很难分辨的。另外建议压缩动态部分,比如战斗中的移动元素,对于静态的UI部分,可以选择不用此方式压缩以保证清晰度。这样玩家在面对静态的界面部分时看到的是高清画面,在战斗中由于关注点的转移,会忽略一些画面的精度。

对于手游,最终的效果要以手机上的实际表现为准。并且也要拿平板来测试最终效果。

上面影响贴图大小的因素在制作时有时需要几种综合考虑,大家根据实际情况来取舍。以上为本人的一些经验之谈,并不代表最优的方法。当我们需要去优化的时候,无论优化尺寸还是大小,那么以上的一些思路希望能有点帮助。谢谢。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引