zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Java获取输入
    [转载]Eclipse快捷键 10个最有用的快捷键
    运算符优先级
    Error:Cannot build artifact 'seckill:war' because it is included into a circular dependency (artifact 'seckill:war', artifact 'seckill:war exploded')
    spring boot 扫描不到controller情形一
    注解控制事物方法
    <转载>标签接口
    生成二维码(QRcode(for java version)生成二维码)
    Linux 常见命令
    【C#】File.WriteAllText 类的使用(实现自定义日志记录)
  • 原文地址:https://www.cnblogs.com/wwhhgg/p/12704216.html
Copyright © 2011-2022 走看看