界面的本质是美术UI设计和用户体验,本身相当易变,需要不断调优,拼界面这事最好由设计人员全职负责并积极改进。而美术资源和布局之外,仍然有大量的逻辑是需要程序员完成的,无论是通用控件,还是具体业务逻辑。
说说我了解的实际情况,经历有限,主要举完美的例子:
1. 引擎组提供统一UI编辑器
完美本部的端游基本都是用Angelica引擎开发,从完美世界一直到笑傲江湖。引擎含有UI系统,包括一个所见即所得编辑器,由公司引擎部维护,基本上是所有项目兼容的。一个项目有1~2名UI策划,负责拼界面。编辑器以游戏面板为单位编辑,每个面板对应一个xml,支持固定布局的界面,支持特效,在编辑器里面就可以看见界面效果。
局限
Angelica编辑器仅提供基本控件,项目需要自己定义诸如物品格的逻辑。
兼容性
引擎部会不定时增加新功能,例如“变色文字”之类。各项目组会不定时去取更新的引擎版本。
需求
为保证兼容性,底层需求只能往引擎部提交,等待更新。当然,据我们老大说,也有胆大的项目组硬改,然后硬是反提交到了引擎部。
2. 自己实现UI编辑器
页游和手游时代,有些项目组自行实现了UI编辑器。举其中一个为例:
编辑器是专门写的C#独立程序。游戏本身是Cocos2D-X。
编辑器研发时间约一个人4周:两周框架,两周基本控件。不过呢,这么做一定是有后续修改的。
编辑器是固定布局的。
对于很多项目来说,自制UI编辑器是一个很好的方案,也是推荐方案。编辑器对策划非常友好,易学易用,因为他限制了输入的可能性,没有冗余选项,每个控件直接对应一个明确的功能。另一方面,他特别适合性能优化,因为他对资源的规格、输入输出和预处理有最精确的控制力。不过动手前,需要熟悉UI架构,能说清楚编辑器的功能和结构。
我想详细解释一下优化。页游时代,我们项目的UI是用Flash直接制作的,连带问题就是,各个界面的资源不能共享。同时期使用编辑器的项目,已经是使用3D引擎渲染界面,使用共享九宫格,无论是下载速度还是显示性能都有天然优势。
3. 直接使用引擎自带的UI系统
大部分Unity项目,都是由策划人员直接使用NGUI制作UI的。好的系统往往提供更强的功能。例如,NGUI支持自适应纵宽比的动态布局,这是上面提及的自研编辑器所不支持的。美术可以自由添加任何引擎支持的资源。程序和TA可以提供小脚本,让设计人员来直接定义动画效果。但是完全自由组合的系统,对策划/美术的技术要求高,容易引入bug,不易控制性能,资源稳定性差。
我们的项目,有一份面向策划的图文文档,20页左右,说明界面的基本概念,全部的控件和自定义控件,以及常见的错误。
新UI策划的上手大致是这样的:
看NGUI的视频教程,并亲自动手做一次,大致1~2周时间
看项目的UI文档
直接上手拼界面
之后就是在工作的各种bug中刷经验了。由于UI和引擎完全混在一起,又不可能完全解释所有情况,还有麻烦的潜规则,所以“正确地做界面”是要经验积累的。老带新的情况下,新人可以平滑过渡到工作输出。但是如果整个团队从零开始的话,相当需要突出的个人能力,可能需要3个月以上的磨合。