2014-09-30 35 views
1

我正在用cocos2d-x制作大量的精灵表。字符和效果太多,并且每个字符都使用一系列帧。 apk文件大于400mb。所以我必须压缩这些图像。如何压缩精灵表单?

实际上,一个序列中的每个帧与其他序列只有一点差异。所以我想知道是否有工具来压缩一系列帧,而不是将它们放入精灵表中? (电枢动画可以帮助,但效果不能被视为电枢。)

例如,有一个效果,包括10个PNG文件,每个文件的大小是1MB。如果我使用TexturePacker将它们制作成精灵表,我将有一个8mb的大png文件和一个100kb的plist文件。总大小为8.1mb。但如果我可以使用帧之间的差异压缩它们,也许我会得到一个1MB的png文件和100kb的9个文件,用于在加载期间再现其他9个png文件。这种方法只需要1.9mb的磁盘空间。如果我可以将它们转换为pvrtc格式,运行时所需的内存也可以减少。

顺便说一下,我现在试图在游戏加载期间将.bmp转换为.pvr。有没有可以转换为pvr的库?

谢谢! :)

+1

既然你已经使用了TP只是改变其输出格式pvr.ccz,你会得到没有质量损失加载速度快,消耗更少的内存最小的文件。双赢共赢。加载时间转换是毫无意义的,但它只会加剧用户。 – LearnCocos2D 2014-09-30 09:25:12

+0

你说得对,@ LearnCocos2D。但是我们的apk文件在磁盘上太胖了,因此我们只得到了A级。我的老板想把它评为S.所以我想减小磁盘的大小。 – wayne 2014-10-08 02:44:15

回答

1

如果你有很多纹理转换为pvr,我建议你从www.imgtec.com获得PowerVR工具。它带有GUI和CLI变体。 PVRTexToolCLI为我完成了这项工作,我编写了一个大规模的转换工作。免费下载,免费使用,您必须在他们的网站上注册。

我刚测试过它将多种格式转换为pvr(包括bmp和png)。

在你去那里(大量的批量工作)之前,我建议你尝试一些变体。 PVR(通常)在磁盘上很胖,加载速度快,并且与RAM中的其他格式相当...... RAM的要求基本上取决于像素数量以及您为每个像素编码的位数。你可以用pvr获得一些有趣的磁盘大小,具体取决于你使用的输出格式和位数......但它可能是有损的,你可能会看到可见的文物。因此,在决定全力以赴之前,先试用有限的样本。

即使在任何转换之前,我会首先考虑的是您的动画。由于您使用的是TP,因此它可以检测纹理上的单个帧的重复帧和别名N帧。例如,我的设计团队为我提供了5张图片的所有“步行/立场”动画,但是有8张! plist包含缺失纹理的框架别名。在我所有的立场中,第8帧与第2帧相同,所以纹理仅包含第2帧,但是plist人为地生成了第2帧,它裁剪了第2帧的图像。

我想要看的另一个地方是使用16位。这将有利于软件包的大小,运行时的内存需求以及加载速度。例如,使用RGBA565表示不具透明度的纹理,或使用RGBA5551表示动画。再次尝试几次以确保您可以接受渲染。

玩得开心:)

+0

谢谢!我曾尝试使用PowerVR工具。如果我想将其他格式转换为PVR,这非常有用。但是,我对TP的输出结果仍然不满意。所以我想在很大程度上减少磁盘的大小。我仍然试图压缩这个精灵表,并且可能在用户第一次运行游戏时解压缩它们。 – wayne 2014-10-08 02:57:55