unity 休闲游戏 动效规范说明
1 控制粒子数量如果特效中的粒子数量过多,在特效释放时就可能会造成卡顿,所以需要将粒子数量控制在合理的数量范围之内。一般在手游项目中,单个特效的粒子数量不超过100个,复杂的特效也争取控制在150~200个。单个粒子系统的最大粒子数不要设置为默认的1000,需要多少设置多少,一般为0~30。
2.去除阴影选项
2.1.模型体取消阴影选项
如果“粒子系统/模型网格体”启用了“阴影”选项,那么在游戏运行时会对它进行实时的光照渲染,从而造成不必要的性能损耗。
如果它们并不需要受光照影响的话,则建议取消“阴影”选项。模型和粒子系统的“阴影”选项设置位置略有不同,以下分别进行讲解。
首先选择模型体,然后在Inspector(检测视图)中查看该物体的属性,找到MeshRenderer(网格渲染)组件中的阴影设置项,如图
然后把Cast Shadows(投射阴影)修改为Off,接着把下一个属性ReceiveShadows(接收阴影)后面的选项勾取消。
2.2.粒子系统取消阴影选项
选择粒子系统后,在Inspector(检测视图)中查看粒子的属性设置。在Renderer(渲染)组件中找到粒子系统的阴影设置项,如图。
http://pic1.zhimg.com/v2-046edb4d1af8ca4cfa53f4fb904fc3ec_r.jpg
然后同样把Cast Shadows(投射阴影)修改为Off,把下一个属性ReceiveShadows(接收阴影)后面的选项勾取消。
3.避免使用灯光系统
制作特效时,尽量不要使用灯光系统。虽然使用灯光可以产生很棒的实时光照效果,但是对性能的损耗也很大。
一般游戏场景中的光照阴影信息都是通过Unity烘焙的Lightmaps(光照贴图)实现的,并不是直接使用实时灯光。
游戏中的光晕/光斑/光线 等效果都可以由粒子系统制作表现。
4 尽量避免使用粒子碰撞/尽量不使用物理系统
Unity中含有2D/3D物理系统,将模型体转换为Rigidbody(刚体)或者Cloth(布料)可以进行实时的物理碰撞解算。
但是这种实时解算会造成较大的性能损耗,所以建议尽量避免使用物理系统,以节省不必要的开销。
如果不能避免的话,也需要尽量减少碰撞体的面数或者使用较少面数的模型体来代替复杂(高面数)模型体。
5.尽量减少使用Sub Emitters(子发射器)
6 优化层级数量
特效层级一般控制在8~10层以内,特殊效果可以适当增加(作用在UI上应更少些),如图
7 子层级数量控制
如非必要,不要有过多向下层级
8. 优化模型面数
8.1 部分模型顶点数较多,可酌情优化,并去掉相同的冗余资源。
8.2模型的法线和切线建议选择Calculate方式。
http://pic4.zhimg.com/v2-d17a6f080aaf46aaf277615efb500287_r.jpg
8.3 部分模型开启了可读写,需要确认是否必要。
http://pic3.zhimg.com/v2-829a31b30756f41e1efa9b266f3c943a_r.jpg
8.4 Optimize Mesh建议开启。
http://pic3.zhimg.com/v2-c34075d075dfbf531531ea693f8ac73e_r.jpg
9 关闭模型阴影
如需在特效预制体中使用从3ds Max导入的模型时,需要在Unity中关闭生成和接受阴影,如图
http://pic1.zhimg.com/v2-2bef96ecbde22293cb0b16f95b302224_r.jpg
10 修改动画帧数 30 (建议)
10.1 创建动画文件时,需把默认60帧改为30帧
http://pic1.zhimg.com/v2-50431cf3071c3a3a1f52be90b0817340_r.jpg
10.2 Optimize Game Object建议开启,可优化骨骼层级,减少矩阵运算。
http://pic3.zhimg.com/v2-89cc2b9faf18ac2866ad8eba360ebdea_r.jpg
11 优化动画组件
动画信息不能创建在最高层级,可在最高层级之下创建空挂点,在空挂点上增加动画组件。
http://pic3.zhimg.com/v2-4df4a45aefca7f3abdd44b786f504072_r.jpg
注意: 尽量不要是用旧的动画系统
12 检查坐标位置
最高层级必须归零,如需局部偏移、旋转、缩放,可在第二层级进行坐标偏移、旋转等操作,如图
http://pic2.zhimg.com/v2-04aefe7c36d54d2c218a868f0e2e7711_r.jpg
13 贴图尺寸及应用
13.1.修改贴图尺寸
贴图尺寸的要求一般是够用就好,在显示效果差不多的情况下尽量使用较小尺寸的贴图。
如果对纹理细节要求较高,那么建议使用贴图比例为1∶1的正方形(不强制),使用不等边贴图制作特效时会对纹理清晰度造成一定的损失(引擎算法决定)。
13.2 尽量一图多用
一图多用有助于减少文件内存,减少Draw call(Unity每次在准备数据并通知GPU渲染的过程),也有助于资源优化。合并纹理、统一调用可以大幅度减少贴图及材质球数量,在游戏中即使是不同特效之间也可以共用部分材质,如图
http://pic3.zhimg.com/v2-d5bc8f31a527583c8d9ad5c381bac9e2_r.jpg
13.3 Mip Maps
UI特效需要关闭mip maps, (具体看情况确认)
有些图片看起来像是UI图片,或尺寸较低,或是纯色图,但开启了Mip Map,需要确认是否必要。
http://pic3.zhimg.com/v2-4c301869141dd4c46f6d7351efe5abd6_r.jpg
13.4.减少重复贴图
13.5 部分对称的图片可用镜像方式优化。
http://pic2.zhimg.com/v2-fff698edbc4d00fdce61334d4cac01dd_r.jpg
13.6 有些图片填充率较低,建议去掉空白区域。
http://pic3.zhimg.com/v2-62fe005bc8f09c6add28112548e13a22_r.jpg
14 将不需要移动的物体标记为Static
http://pic3.zhimg.com/v2-682b758066d1d6b45b943ea78f8d0cae_r.jpg
勾选Static(静态修饰符)后模型将被Unity处理为静止状态,若对象需要移动,则一定不要勾选该项。
15 尽量避免使用高能耗材质
在特效制作中,有时为了完成更丰富、更绚丽的效果,可能会添加一些高级Shader(着色器),例如扭曲、溶解,这些Shader(着色器)往往需要用到显卡的部分功能,会造成较大的性能损耗。为了避免这种情况,除了需要程序的优化(TA)外,在制作特效时也需要注意尽量避免使用这些高能耗Shader(着色器)。
16 尽量使用8位通道图片代替16位通道图片
17 sprite renderer 会打断ui合并的处理, 更换成image
18 部分特效的Over Draw较高,建议优化。
比如使用序列帧的方式替换粒子,减少像素的叠加
http://pic2.zhimg.com/v2-5befef2886d4e463f7d0446677ef3661_r.jpg
19 粒子如果不使用Trails模块的话, 就不要给Trail Material 赋值,或有额外的消耗
页:
[1]