Unity3D性能优化之美术资源制件规范

  • 一、场景模型制作规范:

  1. 同屏地表面数限制在3万面以内,要充分考虑锁定视角的因素,看不到的模型背面可以尽量简单化,离可行走区域远的建筑模型,都可以做成低模,因为是不会走近看的。
  2. 同屏地表drawcall限制50-70个(包含动态建筑),动态建筑可在地表制作测试完摆放效果正确后再单独输出,提交时不能出现在场景地表里面。
  3. 资源合并规则:区域贴图合并、区域网格合并、相同材质合并
  4. 尽量勿用unity自带的草对象,应该用刷地表的草纹理
  5. 场景大建筑和特效资源独立,不用放地表,由技术动态控制
  6. 过大的地表,例如超过150米(15000像素),可以通过切割地表方式输出,程序动态加载
  7. 刷怪的区域以及玩家战斗的区域尽量是平缓的,否则打怪放技能时效果不好控制,并且不宜放小建筑和动态建筑,影响性能。
  8. 场景模型和地表尽量少用透明贴图,同个场景的透明贴图尽量在一张纹理
  9. 不开启实时灯光,全部效果用后期烘焙的方式实现
  10. 每个场景需制作行走区域面片,除地表范围外,高度也必须和地面一致,最后加mesh碰撞体
  11. 纹理尺寸优先用256或512,最大1024,以1024的计算,一个场景纹理个数正常控制在两张以内
  • 二、角色模型制作规范

  • 注意问题:
  1. 骨骼数量过量导致的影响:每根骨骼都是一个独立的整体,当父骨骼运动时,会带动子骨骼运动,这个运动过程都是需要实时去计算的,而游戏内场景生物基本都处于运动状态下,导致骨骼的计算一直在持续进行,骨骼越多导致由计算引起的性能消耗更大。
  2. 模型面数过量导致的影响:每个模型的面都是独立的一个三角形,而每个三角形及其贴图区域都是需要渲染的,面数越多导致渲染的消耗越大。
  • 设置和明确数值:
  1. 主角1500面以下,小怪500-800面。
  2. 主角骨骼控制在40根以下,小怪尽量20根左右。
  3. 贴图控制在1024以下,也可以是512和256,看具体情况选择。
  4. 新手阶段,是几个职业的装备放一起。
  5. 高级阶段,一个职业的几套装备放一起。
  6. 主角贴图一般控制在四到五张左右
  • 以常规2.5D手机游戏同屏3万面的标准为例
  1. 挂机场景,小怪12个,角色10个,需要限制的面数标准为,普通怪物800,角色2000。
  2. 当在BOOS地图时,boos规格可放开一点,但都不能超过3000,这时支持角色13个。
  3. 在功能场景,同屏出现NPC比较少,在需要表现的效果时候,可以放开面数,但尽可能不超过2000,这时可支持同屏5个NPC, 10个角色。
  4. 以上只是一个通用计算,除了场景对象模型外,还有翅膀坐骑宠物,还有UI和特效等,由于会做屏蔽机制,只显示主角的,这些会占一小部分的消耗。我们在制作时,必须以这个标准,看需要的效果可以上下浮动,但挂机的小怪不能超过1000,同屏不大量出现或者剧情怪物以及坐骑、伙伴、宠物、翅膀等可以放开到1500,NPC不能超过2000,角色不能超过2500,boss不能超过3000。
  • 骨骼规格
  1. 对挂机小怪的限制也是最高的,不能做太多的效果表现,要用最简单的骨骼组成,25根骨骼是最佳配置,最多不能超过30根。
  2. 剧情怪和精英怪以及伙伴、宠物、坐骑、翅膀等,看效果可放开到40。
  3. NPC需要表现效果的,都不能超过40根。
  4. 主角加上飘带和头发等需要效果的骨骼,最大不能超过50根,可支持三条骨线,一条三根骨骼的飘带和两条骨线,一条三根骨骼的头发。
  5. Boss体型较大,需要做真实效果,可以放开到60根,但包括各种身上的附带物。
  • 三、动作制作规范:

  1. 主角:普攻技能动作,限制在20帧以下;非普攻技能,限制在30帧以下
  2. 非主角:待机和跑步限制在8到10帧,休闲可放开
  • 四、特效制作规范:

目前特效一般有两种模式,一种是发射粒子系统,一种是直接模型加u3d自带的动画系统。

总体而言就是控制绘制面积控制绘制批次控制制作动画的大小。下面是制作的时候应该注意问题:

  1. 首先要确定消耗的时间大部分是在第一取决于你的绘制面积,然后是粒子数目
  2. 不能用很多很透明的,面积很大的叠加,比如云的效果,即使你的粒子数目少,比如你的面积超级大,一个粒子就是一个屏幕大小,然后叠加了好几个,那么绘制压力会特别大
  3. 对于粒子发射mesh的,相当于一个mesh就是一个批次,所以对于这个要严格控制数量
  4. 对于一个技能特效没有严格的控制多少个粒子系统,毕竟这个跟时长有关系,但是还是尽量能精简。比如对于主角色同一时间最好控制在存在12以内存在的,有些复杂的可以往上加一些。
  5. 千万不能出现比如一个技能里面有30个粒子系统,很多粒子系统是因为alpha变为0看不到,而是要做到在那个时间点是0个粒子。因为alpha为0一样会进行绘制,只是看不到效果而已。
  6. 制作粒子系统的时候,由于粒子系统本来带有很多动画。比如,千万不要去k颜色的帧,因为粒子系统本身自带就有,这样会增加animator文件大小,初始化会多初始化很多数据。
  7. 如果是粒子系统自带的动画数据就用粒子系统自带的调,多k帧会增加初始化时间。
  •  设置和明确数值:
  1. 单个发射器的最大粒子数不得超出12个,一般8-9个即可;
  2. 极限20个粒子以内(仅限于特殊需要全屏或者整个特效只有10个粒子系统以内的,单个粒子最大数量可以接近极限)
  3. 禁止粒子系统发射复杂模型(用到的特效模型总顶点数不得超过300个顶点且注意模型在不给顶点透明的情况下,UV数不得超过1套);
  4. 粒子系统只准用默认自带的particle类shader
  5. 禁止使用超级粒子发射器,即粒子系统发射粒子系统
  6.  粒子系统scaling mode必须为Hierarchy
  7. Cast shadow .Receive shadows. light probes及reflection probes保持关闭
  8. 贴图尺寸128以内序列图256 能用小贴图的尽量用小贴图;贴图格式用png或者tga;贴图分辨率只能有16, 32,64 ,128等这种,不要有类似76X129这种奇怪的分辨率。
  9. 特效制作原则尽量用模型K动画去做能不用粒子系统的尽量不用粒子去表现(对于一次性爆炸的模型动画必须K Mesh Renderer Enabled的动画不能只靠color的透明度去控制彻底消失,切记)
  10. 一次性发射的粒子系统,最大粒子数量和爆发粒子数量要保持一致。

 

  1. 特效里的模型保证红框内的选项,一个特效模型只能用一个材质球;

  1. 导入model下的模型文件,属性面板要保证红框内的选项,animation和materials下去掉勾,不要导入动画和材质。Rig下如果没有使用到动画也去掉打勾。

  1.  摄像机参数,注意这个会影响特效大小,制作时一定要去掉勾选HDR

 

posted @ 2020-04-19 17:42  学习使我进步  阅读(4178)  评论(0编辑  收藏  举报