查看原文
其他

Unity 项目设计与管理(上)

2016-06-22 Unity官方 Unity官方平台
不论是对于Unity初学者还是极有经验的开发者来说,项目设计与管理都是迟早需要接触并掌握的知识点。本文将由Unity技术支持工程师田彪,为大家详细全面地介绍Unity项目设计与管理的系统知识。全文分为五大块,今天先为大家介绍上篇策划及美术部分的内容。
 

在制作游戏时,游戏内容各型各色,但使用Unity设计游戏项目通常大致包括以下几部分:

  • 项目简述

  • 策划文案

  • 美术资源

  • 程序逻辑

  • 性能优化

 我们会详细介绍游戏制作过程中的每一步工作,便于Unity开发者以及潜在的开发者对Unity游戏开发有更深的认识,帮助开发者在开发过程中少走弯路。 
项目简述
想要制作成功的游戏,前期调研工作必不可少,作为开发者,需要了解玩家的喜好,聆听玩家的声音。在游戏完全推向玩家那一刻,该游戏就不再属于项目组,而属于该游戏的受众。游戏项目在启动具体内容开发时,需要确立以下几点:


项目方向

市场上存在各种类型的游戏,为了避免游戏过于同质化,项目组的相关负责人需要确定,该项目是定位于何种类型,是RPG还是FPS又或者是Sport类。


时间计划

任何项目组制作的游戏最终都需要推向市场,只有得到玩家的支持,游戏才能走得更远。项目启动初期,必定会存在游戏开发的大致时间计划,是8个月还是1年,又或者是18个月 ?


人员配置

游戏项目开发必定存在经费预算,预算包括研发预算和推广预算两部分,项目组的人员配置通常取决于游戏复杂度和项目经费预算。在游戏总体内容固定前提下,人员数量与开发时间大致成反比,但是如果组内人员管理不善,也会存在不协调。所以在项目人员总数确定的情况下,还需明确项目组内具体分配,策划,美术,程序各多少人。


游戏大纲游戏大纲可以让所有项目组开发成员在没有接触游戏前能对将要开发的游戏有一个大致认识,同时也能激发项目组成员的想象力,对游戏内容提出更好的建议。游戏大纲是目前手游开发过程中被大多项目组忽略的重要一步。          
策划文案
“兵马未动,粮草先行~~”,优秀的策划文案是项目良好的开端。文案的内容相同,而排版不同,其效果必定也不同。设计文档应该逻辑清晰,排版干净,简单易懂,最好是图文并茂。比如可以是这样的 


也可以是这样的(>_<) 


美术资源

美术是游戏的脸,玩家对游戏的第一印象是美术风格,美术直接决定了玩家是否会在游戏中停留超过十分钟。美术人员在制作相关美术资源时,具体涉及到以下几个部分。


标准 - Standard
预先制定完整的美术标准后,在整个项目开发中,美术资源反复修改的频率降低了,美术人员所做的无用工作定然也大大降低。美术资源的标准规范大致涵盖以下几点:
  • 材质数量

  • 模型三角面

  • 纹理尺寸

  • 粒子数量

  • 动画帧频


标准 - Standard模型 - Model

当美术人员把模型文件导入Unity编辑器时,若导入设置的各选项设置合理,对游戏性能有着良性影响,导入时需要注意以下事项。




  • 若勾选上图中”Read/Write Enabled”将会使该模型在内存中存在一份拷贝,用于在脚本中对模型进行修改。若该模型不会在脚本中进行修改,则不勾选。

  • Optimize Mesh 必须勾选,便于引擎底层对Mesh进行优化处理。

  • Normals & Tangents 中的Normals选项若设置为非Import项,可以降低Memory,并减少ipa/apk包体容量。      




着色器 - Shader
Unity引擎在导入Shader到编辑器时,不会对Shader进行编译,而是在开发者发布到具体平台时再编译Shader。在Shader的查看面板可以查询具体信息,如下所示:




  • 如果当前Shader为固定管线模式,点击上图中的Show generated code 按钮,可以查看对应的Vertex/fragment模式代码。

  • 点击上图中的Compile and show code可以生成对应的汇编代码或者GLSL代码。

  • 在工程文件夹的Library/ShaderCache文件下,可以查看所有的Shader缓存文件。

  • Shader性能分心工具 — AMD GPU ShaderAnalyzer / PVRShaderEditor。 


贴图 - Texture



Unity支持目前主流的各种图片格式,包括PSD,TGA,PNG,GIF,BMP,JPG,TIFF,PICT等。引擎在导入图片时,会生成引擎自身所使用的贴图数据,在图片导入设置中,需要合理设置各选项。




  • 若勾选上图中”Read/Write Enabled”将会使该贴图在内存中存在一份拷贝,用于在脚本中对其进行修改。若该贴图不会在脚本中进行修改,则不勾选。

  • 若图片尺寸不是2的指数,其所占用内存的大小略大于原始尺寸,并且GPU对其进行读取的速度也有可能会略微偏慢。

  • 若勾选Generate Mip Maps,改贴图所占用内存会变大33%,但对整体性能有很大提升。     

                      在编辑器的Scene窗口下,选择Mipmaps可查看各贴图是否存在精度过剩,若有贴图精度过剩,可通过缩减对应贴图尺寸以节省空间。


光照 - Lighting

Unity 5使用了全新的光照系统,更优的光照算法,有助于美术人员制作优美的场景,但是使用光照时,除了考虑到场景精美度时,还需要考虑到玩家设备的兼容性。




  • 移动平台推荐使用Baked或 Mixed,避免使用RealTime模式的关照。

  • Render Mode 不推荐使用Important。

  • 使用Baked模式时,在菜单Window->Lighting的Object标签页,可通过设置Scale In Lightmap的值,以变更lightmap中有多少像素值用于该GameObject的光照计算。     


动画 - Animation/Animator

Unity目前支持Animation和Animator两种动画播放形式。Animation是老式动画系统,Animator作为新的动画系统,有其特有的优势。在使用Animator时,理解如下信息,有助于更好的使用的Animator。




  • 勾选Apply Root Motion表示动画可以更改根节点的位置,如果不勾选,则根节点的位置信息无法通过动画更改,即便在动画帧里有关于根节点的位置信息。

  • State 表示具体的动画状态信息,若要实现状态切换,通过Transition完成。

  • Blend Tree 用于多个动画的平滑混合,并且可设置每个动画各自的权重值。

  • 在菜单Window->Animator窗口中可执行具体操作。     


音效 - Audio

声音是游戏中不可或缺的部分,好的音乐效果对提升游戏品质有着重大意义,Unity支持主流的各种音乐格式,包括mp3,ogg,wav,aif等。但是,如果音乐格式设置不当,也会降低游戏性能。




  • 基于Vorbis编码的音乐文件(比如ogg)解压后占用10倍于其磁盘大小的内存。

  • PCM音质高但是压缩率很低。

  • Mp3格式音乐在iOS设备上有硬件解码器。

  • Load Type 中的Decompress On Load 选项不推荐用于大文件。大文件推荐使用 Compressed In Memory选项。

  • Load In Background 如果勾选表示该音频文件将在后台加载,而不会造成主线程阻塞。     


项目设计与管理关于策划与美术的部分就介绍到这里,下篇将为大家介绍程序及优化部分的内容,请保持关注哦!


延展阅读

使用Unity 2D制作简单的UFO游戏

Unity 2D新功能抢先体验!

Unity 2D之Tile Map使用指南

轻松玩转Unity编辑器菜单扩展

WWDC上展示Unity制作的Tessellation Demo 


我们还会分享更多Unity相关的技术内容在Unity官方中文论坛(forum.china.unity3d.com),请保持关注!




点击“阅读原文”进入Unity官方中文论坛!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存