手机游戏美术资源怎样紧缩美术资源?

文/手游圈内人10月27日,GDC China 2015 中国游戏开发者大会在上海举行。会上,许多开发者为我们分享了大量的游戏开发心得与经验。在游戏设计专场上,创梦天地的两位资深开发者为我们带来了许多关于美术设计的干货。以下是其中一位开发者邵雷给我们带来的“关于次世代手游美术资源的优化”的主题内容。次世代,是日本流传过来的叫法,意思是下一个时代,未来的时代,常说的次世代科技,即指还未广泛应用的现金技术。后来这个名次变成了一个人们的习惯,将次世代变成一个名词,用来代表某类具备特定属性的游戏类型。随着科技的发展,手机硬件不断升级优化,使我们可以在移动端上实现次世代游戏的画面效果。虽然如此,我们还是受到一些硬件限制的瓶颈,我们不可能像之前制作主机游戏那样“肆意浪费、随心所欲”,必须要优化处理各种美术资源,以便在不同的平台,不同的硬件终端上有一个好的游戏体验。性能瓶颈有哪些?对于一个游戏来说,有两种主要的计算资源:CPU和GPU。它们会互相合作,来让我们的游戏可以在预期的帧率和分辨率下工作。CPU负责其中的帧率,GPU主要负责分辨率相关的一些东西。总结起来,主要的性能瓶颈在于:CPU:过多的Draw Calls复杂的脚本或者物理模拟GPU:填充率:图形处理单元美妙渲染的像素数量像素的复杂度:比如动态阴影,光照,复杂的shader等等几何体的复杂度:顶点数量GPU的显存宽带涉及的优化技术对于CPU来说,限制它的主要是游戏中的Draw Calls,那么什么是Draw Calls呢?Draw Calls是CPU调用底层图形接口,比如有上千个物体,每一个的渲染都需要去调用一次底层接口,而每一次的调用CPU都需要做很多工作,那么CPU必然不堪重负。但是对于GPU来说,图形处理的工作量是一样的,所以对Draw Calls的优化,主要就是为了尽量解放CPU在调用图形接口上的开销。上面说到过,我们需要绘制图像时,就一定需要调用Draw Calls。例如,一个场景有水有树,我们渲染水的时候,使用的是一个matenall以及一个shader,但渲染树的时候需要一个完全不同的matenall和shader,那么就需要CPU重新准备顶点数据、重新设置shader,而这种工作实际上是非常耗时的。如果场景中,每一个物体都使用不同的matenall、不同的纹理。那么就会产生太多的Draw Call,影响帧率,游戏性能就会下降。其它COY的性能瓶颈还有物理、布料模拟、粒子模拟等,都是计算量很大的操作。而对于GPU来说,它负责整个渲染流水线,它会从处理CPU传递过来的模型数据开始,进行Vetex Shader、Fragment Shader等一系列工作,最后输出屏幕上的每个像素。因此它的性能瓶颈可能和需要处理的顶点数目的、屏幕分辨率、显存等了解了上面基本内容后,下面涉及到的优化技术有:CPU优化减少Draw Call数量GPU优化顶点数优化像素优化带宽优化如何减少Draw Call数量?1批处理(Batching)最常见的就是通过批处理了。从名字上来解释,就是一块处理多个物体的意思,那么什么样的物体可以一起处理呢?***是使用同一个材质的物体。因此,对于同一材质的物体,它们之间的不同仅仅在于顶点数据的差别,即使用的网络不同而已。我们可以把这些顶点数据合并在一起,再一起发送给GPU,就可以完成一次批处理。Unity中含有两种批处理方式:一种是动态批处理,一种是静态批处理。对于动态批处理来说,好消息是一切处理都是自动的,不需要我们自己做任何操作,而且物体是可以移动的。但坏消息是,限制很多,可能一不小心我们就会破坏这种机制,导致unity无法批处理一些使用了相同材质的物体。对于静态批处理来说,好消息是自由度很高,限制很少,坏消息是可能会占用更多的内存,而且经过静态批处理后的所有物体都不可以再移动了。首先来说动态批处理。Unity进行动态批处理的条件是,物体使用同一材质并且满足一些特定条件。Unity总是在不知不觉中就为我们做了动态批处理。动态批处理虽然自动的令人感动,但是它对模型的要求很多。1、顶点熟悉的最大限制为900。2、物体都必须需要使用同一个缩放尺度(可以是(1,1,1)、(1,2,3)、(1.5、1.4、1.3)等等,但必须都一样)。但如果是非统一缩放(即每个维度的缩放尺度不一样)。例如(1,2,1)),那么如果所有的物体都是使用不同的非统一缩放也是可以批处理的。3、使用lightmap的物体不会动态批处理,多passes的shader会中断批处理,接受实时阴影的物体也不会批处理。动态批处理的条件这么多,因此unity提供了另一个方法,静态批处理。方法很坚定,只需要把物体的“Static Flag”勾选上。有一些小提示可以使用:1、尽可能选择静态批处理,但得时刻小心对内存的消耗2、如果无法进行静态批处理,而要使用动态批处理的话,那么小心上面提到的各种注意事项。例如:尽可能让这样的物体少并且尽可能让这些物体包涵少量的顶点属性。不要使用统一缩放,或者都使用不同的非统一缩放。3、对于游戏中的小道具,可以使用动态批处理。4、对于包含动画的这类物体,我们无法全部使用静态批处理,但其中如果有不动的部分,可以把这部分标识成“Static”。虽然批处理是个很好的方式,但很容易就打破它的规定。例如,场景中的物体都使用Diffuse材质,但它们可能会使用不同的纹理。因此,尽可能把多张小纹理合并到一张大纹理中是一个好主意。GPU的优化1顶点优化(1)优化Mesh,减少顶点数量。3D游戏制作都是由模型制作开始,而在建模的时候,有一条我们需要记住,尽可能减少模型中三角形的数目,一些对于模型没有影响,或是肉眼非常难察觉到区别的顶点都要尽可能去掉。(2)LOD技术LOD技术有点类似于Mipmap技术,不同的是,LOD是对模型建立了一个模型金字塔。根据摄像机距离对象的远近,选择使用不同精度的模型,它的好处是可以在适当的时候大量减少需要绘制的顶点数目。它的缺点同样是需要占用更多的内存,而且如果没有调整后距离的话,可能会造成模拟的突变。在unity中,可以通过LOD Group来实现LOD技术。(3)遮挡剔除(Occlusion culling)技术遮挡剔除是用来清除躲在其他物件后面看不到的物件,这代表资源不会浪费在计算那么像看不到的顶点上,进而提升性能。2像素优化(1)控制绘制顺序像素优化的重点在于减少overdraw。之前提过,overdraw指的就是一个像素被绘制了多次,关键在于控制绘制的顺序。Unity还提供了查看overdraw的视图,当然这里的视图只是提供了查看物体遮挡的层数关系,并不是真正的最终屏幕绘制的overdraw。也就是说,可以理解为它显示的是如果没有使用任何深度检验时的overdraw,这种视图是通过把所有对象都渲染成一个透明的轮廓,通过查看透明颜色的累计程度,来判断物体的遮挡。需要控制绘制顺序,主要原因是为了最大限度的避免overdraws,也就是同一个位置的像素可以需要被绘制多变。在PC上,资源无限,为了得到最准确的渲染结果,绘制顺序可能是从后往前绘制不透明物体,然后再绘制透明物体进行混合。但在移动平台上,这种会造成大量overdraw的方式显然是不合适的,我们应该尽量从前往后绘制。从前往后绘制之所以可以减少overdraw,都是因为深度检验的功劳。在unity中,哪些shader中被设置为“Geometry”队列的对象总是从前往后绘制的,而其它固定队列的物体,则都是从后往前绘制的。这意味着,我们可以尽量把物体的队列设置为“Geometry”。而且,我们还可以充分利用unity的队列来控制绘制顺序。(2)警惕透明物体的使用对于透明对象,由于它本身的特性决定如果要得到正确的渲染效果,就必须从后往前渲染,而且抛弃了深度检验。这意味着,透明物体几乎一定会造成overdraws。如果我们不注意这一点,在一些机器上可能会造成严重的性能损失。例如,对于GUI对象来说,它们大多被设置成了半透明,如果屏幕中GUI占据的比例太多,而主摄像机又没有进行调整而是投影整个屏幕,那么GUI就会造成屏幕大量的overdraws。因此,如果场景中有大量的透明对象,或者有很多层覆盖的多层透明对象(即使它们每个的面积都不大)。或者是透明的粒子效果,在移动设备上也会造成大量的overdraws,这是应该尽量避免的。对于上述的GUI这种情况,我们可以尽量减少窗口中的GUI所占的面积,如果实在无能为力,我们可以把GUI绘制和三位场景的绘制交给不同的摄像机。而其中负责三位场景的摄像机的视角范围尽量不要和GUI重叠。对于其他情况,只能说,尽可能少用。当然这样会对游戏的美观度产生一定影响,因此我们可以在代码中对激起的性能进行判断,例如首先关闭所有的耗费性能的功能,如果发现这个激起表现非常良好,再尝试开启一些特效功能。(3)尽量避免实时光照实时光照对于移动平台是个非常昂贵的操作。如果只有一个平行光还好,但如果场景中包含了太多光源并且使用了很多Passes的shader,那么很有可能会造成性能下降。而且在有些机器上,还要面临shader失效的风险。例如,一个场景里如果包含了三个逐像素的点光源,而且使用了逐像素的shader,那么很可能将Draw Calls提高了三倍,同时也会增加overdraws,这是因为,对于逐像素的光源来说,被这些光源照亮的物体要被再渲染一次。更糟糕的是,无论是动态批处理还是静态批处理,对于这种逐像素的pass都无法进行批处理,也就是说,它们会中断批处理。3带宽优化(1)使用Texture Atlas使用Texture Atlas可以帮助减少Draw Calls,而这些纹理的大小同样是一个需要考虑的问题。在这之前要提到一个问题就是,所有纹理的长宽比最好是正方形,而且长度值最好是2的整数幂,这是因为很多优化策略只有在这种时候才可以发挥最大的效用。(2)关于Generate Mip MapsGenerate Mip Maps会为同一张纹理创建出很多不同大小的小纹理,构成一个纹理金字塔,而在游戏中,可以根据距离物体的远近,来动态选择使用哪一个纹理。这是因为,在距离物体很远的时候,就算我们使用了非常精细的纹理,但肉眼也是分辨不出来的,这种时候完全可以使用更小、更模糊的纹理来代替,而这可以节省大量访问的像素的数目。但它的缺点是,由于需要为每个纹理简历一个图像金字塔,因此它会需要占用更多的内存。(3)优化纹理尺寸大小、压缩格式纹理尺寸大小:纹理尺寸大小通过MaxSize设置,它决定了纹理的长宽值,如果我们使用的纹理本身超过了这个最大值,unity会对其进行缩小来满足这个条件。这里特别说明一点,所有纹理的长宽比最好是正方形,而且长度值最好是2的整数幂,例如64、128等。这是因为有很多优化策略只有在这种时候才可以发挥最大的效用。压缩格式:压缩格式通过Format设置,Format负责纹理使用的压缩格式。通常选择这种自动模式就可以了。Unity会负责根据不同的平台来选择合适的压缩模式。对于GUI类型的纹理,我们可以根据对画质的要求来选择是否进行压缩。我们还可以根据不同的激起来选择使用不同的分辨率的纹理,以便让游戏在某些老机器上也可以运行。例如在安卓平台上,我们的压缩模式会采用RGB Compresses ETC 4 Bits。在ios平台上,我们采用的压缩模式是RGB Compresses PVRTC4 Bits。手游圈内人(syqnr0) 
 文章为作者独立观点,不代表微头条立场
的最新文章
虽然说科技公司每年都会整出一些玩笑,但是很多玩笑的背后仍然是科技创新的支持,比如谷歌的智能机器人,今年的AlphaGo在围棋上的表现让全世界人刮目相看。松山洋从未想过要开一家游戏制作工作室,在上世纪90年代大学毕业后,他进入了制造业,从事混凝土的制造与生产,甚至还参与了大阪巨蛋体育馆的建设。在电子游戏界,随着关于心理健康问题的讨论变得越来越热烈,许多玩家、粉丝、开发者和记者都有了相似的发现。不同之处在于,现在,他们有求助的地方了。我们按捺很久的一句话是:无下限讨好?丝是互联网变坏的根源。在得?丝得天下的逐利逻辑下,中国的互联网环境已经变得异常无趣,平庸,聒噪,丑陋乃至无耻。最近经常收到国内外猎头的来信联络,问我是否对他们手头的美术总监的职位感兴趣,我一般都先要求看JD,后来问的多了,看到基本上写的 JD 都千篇一律,没有什么新的东西。一律要求使用规范简体汉字和微软、索尼以及Valve、三星、HTC相比,身为游戏硬件和软件大厂的任天堂似乎对于虚拟现实领域并不那么感冒乔丹?凯西(Jordan Casey)年仅16岁,还没有到回馈社会的年龄,但他已经在这么做了。早在13岁那年从投资手法、布局、结果来看,相比于马云“30亿以下的项目绝不投”的霸气范儿,马化腾其实更符合“战略投资人”这任何游戏产品想要获得良好的推广效果,都离不开宣传。如何选择宣传手段,如何让产品理念/形象更加的深入人心,这是说起“创新”,对于国内游戏行业----特别是手游行业----来说,更多时候只是当个噱头用。资本的逐利天性、渠道的数据7月12日,猎聘发布了《2016年二季度就业报告》,旨在为高校毕业生、职场人及行业分析人士提供择业及业务参考《天下》手游国际化,老外魔性试玩视频引爆YouTube,网易旗下的尖端手游已经不在仅仅局限于国内市场,在精品化的道路上已经逐步开始跨出国门走向世界了。2013年的时候,一款成功的手机游戏可以有至少两年以上的生命周期,而2015年普遍的游戏不超过6个月,所以在2015年,这种市场的变化甚至于环境的恶化让我们必须寻求改变。最近,一段在Facebook发布的视频火了,视频中的父亲被网友评为“年度最佳老爸”。互联网公司工作的日常,也是我们真实的写照,这里有你有我也有他,有梦想,也有欢乐唐家三少成为作家榜发榜十届以来,首位年度收入过亿的作家,成为“作家榜亿元俱乐部”首位作家。手游圈内人携手巅峰手游,特为各家游戏带来免费展示资源,助阵年底KPI冲刺。在这里,巅峰手游可免费为游戏量身定做游戏引导视频!工作这几年,每年都会有朋友离开北京,每次朋友跟我告别的时候总是让我有很多感慨,问自己什么时候回去。随着《列王》的全球大火,各大游戏厂商相继推出了各类SLG产品,appstore畅销榜TOP50内就占据4-5款。据悉,蜀门手游将由原班人马制作,延续经典,还原一个原汁原味的蜀门世界。秉承着8000万玩家的期待,《蜀门》手游预计将在今年与大家见面。3月9日下午,来自艾瑞资本投资副总裁马可元、皇玩科技CEO罗圣博、国金投资合伙人李天燕、中投中财游戏产业基金董事总经理姜祖望、爱扑网络COO郭谦在游戏领袖峰会就《国际游戏企业的泛娱乐之路》这一主题交流了自己的见解。手游圈内人携手巅峰手游,特为各家游戏带来免费展示资源,助阵年底KPI冲刺。在这里,巅峰手游可免费为游戏量身定做游戏引导视频!同时可免费投放到手游圈内人及巅峰手游高大上的合作伙伴处。悄悄而来的次元世界正在洗礼着娱乐文化产业,精准垂直的细分市场越来越符合消费者的需求。又到了一年一度回顾并表彰业内推动应用经济再冲新高的领先应用发行商的时候了。今天要揭晓的是 2015 年度热门应用发行商榜单。新年伊始,Colin领军的腾讯游戏《王者荣耀》流水表现出色,《穿越火线》手游版的日活跃用户数(DAU)突破千万大关,均受到玩家一致好评。近日,咪咕游戏发布2016年1月游戏数据报告,报告显示,1月收入TOP3题材分别为消除、跑酷与,棋牌收入贡献分别达到22&、17%、14%。射击、动作格斗、角色扮演等题材的收入占比也较高。春节刚过,相信不少人回到工作单位后,被同事问到的第一个问题就是:你妈逼你搞对象了吗?最近的一期《怪话》就是以这个为主题,街头采访笑料百出。为了让广大程序猿兄弟们感受一下这样的忧桑,我们专门整理了一下。故事是这样的…我们算是国内第一批做VR游戏的团队了, 基本上都是一路踩着坑过来的, 也从侧面说明了目前VR游戏的不成熟。如果要给游戏改编电影定义一个标签,用失败一词或许再适合不过。伴随着近年来移动游戏的兴起、IP概念的大红大紫,我们 迎来了一个全新的影游互动时代。今日,Adways Inc正式宣布投资新加坡游戏研发公司--Daylight Studios, Pte. Ltd.,同时将与其全资子公司Quest Drop, Pte. Ltd. ,达成合作关系。日,马克?扎克伯格在清华大学经济管理学院用中文发表演讲,谈了自己创办Facebook过程中的收获,浓缩起来就是:使命、用心、向前看。他们一个是擅于资本运作的行业翘楚,英雄互娱的CEO应书岭;一个是在互联网征战多年的互联网老兵,触控科技CEO陈昊芝。文章开头,先说一个身边的真实案例:某游戏厂商投放经理出于信赖,将百万级预算拨给某大广告平台(CPA结算),结果注册是有了,但是付费却烂的一塌糊涂。二次元手游----最火的文化+最火的变现方式:二次元行业, 2015年成为各方资本、媒体、企业的新宠。这个世界到底怎么了!?众所周知,近十年来智能手机的热潮带动了很多新技术的演变,其中切切实实就包括了游戏娱乐的全新方式。在过去的几个月里,我们频繁听到互联网企业缩招裁员的消息。照往年情况来看,每年的“金九银十”正是人才招聘旺季。在9、10月的时候,应届毕业生找工作、社会人员跳槽,汇集成年度人才招聘的一个高峰季节。无论去年你是怅然若失,还是踌躇满志,新年都会是一个新的开始,怀念过去的辉煌,感慨未来的灿烂,以下三段视频将点燃你寒冷冬日里灼热的七分钟。他们可能会在你睡觉的时候扯你的头发,趁你不注意的时候把你心爱的收藏品拿出来把玩一下,甚至在你正在休息打盹、玩游戏、跟朋友聊天的时候, 他们会在你身旁闹翻天...二?一六年的猴年新春即将来临,对于游戏行业来说,过去的一年可谓是百花齐放的一年,从IP热到泛娱乐战略的风靡,移动互联网产业在中国蓬勃发展,腾讯、网易、盛大、巨人等多家大厂也相继推出了自家的旗舰产品,传统端游公司的转型已经悄然开始。一年春节到,犹记得那些年苍老师、泷泽老师出没在互联网公司年会现场吗?今年也是黄金与钞票齐飞,美女共裸男一色,又壕又污又萌的年会你见过吗?作为成都游戏产业的核心聚集地,高新区已聚集游戏企业400余家,全年实现销售收入82.4亿元,同比增幅35.97%。与此同时,成都游戏产业抱团“出海”以及资本人才“西进”,将成为今年成都游戏产业持续发展的驱动力。与整个手游产业的寒冬之声不同,盛大游戏在2016年首月即迎来“开门红”。在1月最后一个星期Data Eye:2015年中国移动游戏行业年度报告手游圈内人携手巅峰手游,特为各家游戏带来免费展示资源,助阵年底KPI冲刺。在这里,巅峰手游可免费为游戏量身定做游戏引导视频!同时可免费投放到手游圈内人及巅峰手游高大上的合作伙伴处。这周是被张小龙刷屏的一周,毛玻璃让朋友圈有新玩法,阿里财报好看却无明显上涨,朝鲜仅有7200人是可以连上互联网,以及VR持续走热等事。1月31日晚,由厦门市动漫游戏产业协会及飞鱼科技联合主办,厦门国际动漫节组委会支持,COCOS引擎、爱特众创、IndieACE、IndiePlay、igda等共同协办的Global Game Jam2016暨金海豚游戏开发大赛作为行业的引领者,盛大游戏曾开创过中国游戏行业的多个第一,现在,这家公司又一次走在了行业的前列。syqnr0手游圈内人信息平台热门文章最新文章syqnr0手游圈内人信息平台基于cocos2dx的2D手游美术资源制作技术选型(2)--动作编辑器选择 - 宏波.王 - 博客园
Powered by:
模板提供:
& & Cocostudio是cocos2dx官方提供的游戏制作工具,其中包含了动作编辑器,其编辑好的动画导出的文件有三种:Atlastexture,json的AtalasTexture描述文件和plist动画描述文件,可以使用LibExtension Amature加载和播放。
& & 但Cocostduio的动作编辑器也有一些不足的地方:
& & 1. Cocostduio的崩溃率较高,很容易造成编辑过程中的数据丢失
& & 2. Cocostudio的动作编辑方式对美术来说学习成本大,使用上也多不方便,美术对此非常抗拒
& & 3. Cocostudio的动作编辑只支持骨骼动画,但其导出的文件预览和二次编辑要么不可用,要么便使用
& & 4. 对Flash动画的导入结果冗余度较大---会变为按帧采样的帧动画,资源体积膨胀迅速
& & 5. 没有3D渲染插件,3D模型动画渲染成2D动画需要手工操作
& & 基于这些要素的考虑,我们最终决定使用 Flash编辑动画 + 自制3ds max渲染插件进行动作编辑的方式进行动画制作。Flash制作的动画,目前已有成熟的开源组件Dragon Bones可,也有SuperAnim这样的swf转骨骼动画工具可以使用:
& & Dragon Bones 的优点在于:
& & 1.基于Flash ,学习曲线平滑,而且大部分美术都懂Flash制作,Flash编辑功能丰富,易于使用,美术制作效率可以比Cocostduio高出数倍
& & 2.Dragon Bones是完整的开源组件,从编辑器到cocos2dx加载解析部分都是自己定制和修改的,这保证了项目风险控制和美术流程的可持续改进
& & 3.Dragon Bones导出的动画是骨骼动画,它的冗余度低,动画资源体积小,从而最终app占用的磁盘和内存空间都可以大幅节省,其渲染效率也会高于帧动画(纹理切换次数有数量有的减少)
& & Dragon Bones的最大缺点就是它的库本身比较大,在加载方面也有一些小的工作要做。
& &同样的SuperAnim也有除Dragon Bones 第2点之外的其它优点,同时它的库较小,仅仅4个文件,在通过较小的修改之后,就可以集成到Cocos2dx里使用。唯一的遗憾是SuperAnim的swf转换工具并未开源,存在有小工具无人维护的风险。在经过一些动画制作和导出之后,我们最终还是选择了Dragon Bones做为动画编辑器。而放弃了Cocostduio.
& & &作为补充,我们同时使用Max Script实现了一个渲染插件,用来从3ds max里渲染导出序列帧动画,如下图所示:
max渲染插件的基本功能包括:
1.渲染指定集合的模型
2.渲染指定帧集合的动画
3.支持多种格式的图片输入格式,提供自动按帧数命名
4.支持可选的1~8方向自动旋转相机进行动画渲染输出(如一般卡牌的单方向渲染和45角斜角的8方向输出)
阅读(...) 评论()今日: 0|主题: 163|排名: 9&
社团成员贡献的游戏美术素材资源下载!游戏特效、游戏建模、角色动作、游戏ui!
【神奇宝贝绿宝石】【火爆新区】【上线送vip5,钻石5000,金币百
【神奇宝贝绿宝石】【火爆新区】【上线送vip5,钻石5000,金币百
【神奇宝贝绿宝石】【火爆新区】【上线送vip5,钻石5000,金币百
【神奇宝贝绿宝石】【火爆新区】【上线送vip5,钻石5000,金币百
【线路选择】:【双线】
【游戏名称】:【BT星辰变】
【宣传简介】新服刚开,赶紧加
宝强不哭-刀剑无双
【双线】【林峻傲剑】【强力法宝】【文字游戏】
良心网页文字游戏【林峻傲剑】 新区
【领先优势】全网唯一有能力开启《跨服战》的技术团队!
【福利设置】上线Vip10 钻
《三国英雄传》 离线挂机页游,超变新游全面开启!
日下午3点火爆开启7
--------------------------------------------------------------------------------
江湖之圣火外传!10.7
【介绍】BOSS秒刷,副本无限,战场天天开,定制免费终级免费。
《勇士挂机(最新版)》安卓及IOS无需越狱也可玩107次
【领先优势】全网唯一有能力开
Powered by手机游戏怎样压缩美术资源?
我们是手机游戏菜鸟级制作者,现在做的游戏实在太大了,其中的美术资源包括动画,如何合理的压缩整合?从哪些方面方面入手?
不知道题主的游戏是什么引擎开发的,仅从思路回答一下吧。首先是去重,去重的方法很多,可挖掘的也很深,最简单的是去掉重复出现的图,用缩放,其次能循环的切割成小图,翻转使用等等在没有重复的情况下压缩从三个方面入手,量、质、技法只要是压缩,必然有损失,在损失程度可接受之内可以依据以下优先级尝试技法是最优先考虑的,比如说人物动作动画,用骨骼动画代替序列帧动画,可以节省至少1/10的k数,骨骼动画制作的巧妙不比序列帧动画差量的压缩比较直观,你去掉多少内容,就压缩多少美术。比如序列帧中的抽帧,代价就是动画不如之前流畅,但只要你掌握好了动画的重点和节奏,很多帧都是可以删除的,抽帧作的比较好的例子是COC,打开资源包就可以发现,只留下了最关键的画面,人物动作仍然很到位。质的压缩应该是最后一步,2d压jpg和png等等,3d减面数。压缩画质建议在可接受范围内,并且要有一个优先级,比如先压缩背景,后压缩人物;先压缩出现率低的,后压缩出现率高的;美术引擎不同具体的实施方法有很多,还可以多解压缩一些知名游戏的美术包来学习
既然楼主已经说自己是菜鸟的话,我就不说高深的了1 先从整理资源开始吧,规划好美术资源的目录是非常重要的,很多目录规划不好的后期没法去整理资源,自己都不知道哪些资源是没用的可以删掉的,说不定整理出来就差不多满足要求了2 每种资源要有规划,要对游戏的资源量的占比要有所了解,比如场景占多少百分比,人物占多少,特效占多少。加起来大致有多少。然后是制作过程中3 帧动画的帧数控制,新手做游戏都会希望效果非凡,于是帧数量就失控了4 特效要炫要华丽,结果都是整屏的,不带缩放的大图然后是优化5 帧动画能否用骨骼动画替代6 特效能否用粒子系统替代7 场景是要切块来拼呢,还是降低图片质量呢5 6 7 最好一开始就和程序商量好本人程序
其实大家都被题主的问题以及第一名的回复误导了。第一名的回复其实并不是压缩资源,而是通过使用各种方法,删减无用资源、并最大化利用有效资源罢了。虽然这确实是部分有效整合资源的手段,但与题主提出的问题差距甚远。如果单以压缩美术资源的角度,我所了解的手段有如下三种:1、使用网络上提供的普通压缩工具(压缩效率不高)。2、针对项目开发专门的压缩工具(可提高压缩比例,但需要有一名常年钻研各种工具的专门人仕)。3、修改资源中美术图片的后缀名。美术的后缀名有jpg、png、bmp等等。目前大部分游戏的图片资源均是以png格式来进行处理的,主要是因为体积小、无损压缩等优点。4、转化音频格式。音频压缩方式有mp3、wav、ogg、wma、ra等等,其中ogg最省资源,但有时会出现播放时无音,特别是当声音播放时间过短的时候。以综合性能考量(压缩比、音质、硬件支持等)来说ogg&mp3&wav&wma。回到话题,楼主所要寻求的应该有两点,1是外在表现上减少***包大小,降低玩家下载时的抵触度。2是内在表现上降低内存使用,提升游戏流畅度,防止因内存过载使游戏崩溃。这边需要说明的是实际上压缩并不能减少程序在内存运行中使用的资源。大家都知道ZIP等压缩软件的使用原理。同理在程序调用已进行压缩处理的资源时,是需要把它解压出来再放到内存中运行的,压缩工具并没有真正有效解决根本问题。如何从根源上解决呢,我要在第一名的回复基础上提出我的意见:1、尽量减少让美术以整张图片的方式切图。程序员都知道、在使用美术切图时,程序会使用特有工具,将资源整合放入的图片中,以方便程序调用资源。图片越大,两张图片间隔的缝隙也越大,再加上图片本身大小,极其浪费资源。目前基本上只有在游戏大厅等有限的界面,为了追求GUI的表现而使用整张图片作为背景。2、重复利用小块资源(16X16或8X8),让程序以拼图的方式表现美术效果。这样虽然加大了程序的工作量,但可以节省大量的美术资源。当然,这种方式是需要取舍的。另外也可以让程序专门设计一套工具(如九宫格)的方式来节省码字时间。另外图片数量是有其上限的,所以拼图不能过小。3、在动态特效的表现上,尽量使用程序实现的方式,避免过多使用美术资源(如帧动画等表现方式)。可以参考使用粒子效果。其他的节省资源的方式与李达的回复基本相同,有几点要提醒。1、缩放多用于单一颜色的图片资源,否则会使图片模糊,产生锯齿。2、其他循环、切割、翻转均需程序实现,10K以下资源无须使用该效果,好钢用在刀刃上。3、骨骼动画在特效表现上确实节j省资源,但要明确的是,骨骼本身资源需求就很大。4、在必须使用帧动画时,尽量不要超过8帧、容量不要超过1M。否则建议重新拟定特效表现方式,尽量以最优性价比的方式设计动态效果。
不知道题主的游戏有多大,我抛个砖。。。1. 去年和几个同学用Cocos2d-x做了个小游戏,用到的一个软件叫TexturePacker,题主可以上谷歌百度一下。2. 另外现在工作的公司也是用Cocos,做得是一款网络卡牌游戏,一部分图片资源放在服务器上的,大部分还是在本地,不过只发IOS版,也就不太在意这些。
首先美术资源 占用空间
包括三个方面
即外部存储 体现在游戏包大小
体现在游戏运行时占用的内存空间大小
gpu 纹理存储空间
体现在 游戏运行时 通过opengl 申请的纹理空间大小
下面额外补充一些 其它技巧,从上面三个角度分析存储空间使用情况, 这些处理对图片都是质量有损的, 所以需要 检查处理后的实际效果。
传统png 图片是无损压缩的 ,但是你可以google一下 lossy png
就会出来若干程序 可以对png 数据进行有损压缩
可以节省大量的 外部存储空间,但是对内存 显存使用没有帮助。
使用某些格式例如 rgb888
rgb4444来 编码图片,节约外部存储
以及显存空间
android上使用etc1格式
ios上使用 pvr 格式
pc 上使用dxt 处理图片, 可以降低 外部存储
美术能做的:1 把图做小,比如RPG Maker里面的资源,这张才80k,总共50张场景才2.8M大小;35k35k2 切图拼图以便减少重复,比如拼出来的动画拼出来的动画汗,不支持gif,动画动不了汗,不支持gif,动画动不了程序能做的:1 图片压缩打包,去掉图片文件中多余信息,合并调色板;2 替换调色板,形成黑色,白色,红色等不同颜色的同一物体;其他等等。。。
拼接是必须的,要点技巧。剩下核心还是图片压缩:先用这个工具:PNGOUTWin再用这个两个加起来,压缩效果还不错。
我在自己写的引擎里是这么干的:有时用etc1格式, 有时用jpg ,其实jpglib 是内部支持4通道数据的,所以你把一张带透明通道的png转成4通道的jpg, 其实是不会有太大的画质损失的.
已有帐号?
无法登录?
社交帐号登录

参考资料

 

随机推荐