前段时间已经对于内嵌Web浏览器内核技术来制作Game内的UI做了一些介绍。
而现在有一种趋势是利用Flash来实现游戏内的UI,有不少公司和个人开源开发者已在这方面有很大的进展。相信FlashUI很快会逐渐流行普及开来。利用Flash技术可以很方便的在游戏内播放视频,对于游戏内嵌广告发布,玩家互动内容表现都是很的一种表现形式。而对于开发方式方面,由于Flash可以支持动态的UI表现,这样美术人员就可以独立的进行UI设计而不需要程序员的过多参与了。而且由于UI采用Flash格式,这样来UI的设计工具也可以直接使用Macromedia的FlashMX了。
FlashUI按照嵌入游戏的方式可分为两个分支,一种就是按照Adobe的FlashFormat来实现自己的build in解析和渲染器;另外一种比较偷懒,就是封装Flash的OCX控件来引入到游戏内部。
分支一:
采用第一种方式实现FlashUI的最有名的算是Scaleform了,其推出的GFx套件利用硬件加速来高效表现Flash的矢量图形,并且支持ActionScript2.0,这样很多Flash的Mini-Game都可以不加修改的嵌入到MMO中了,类似巨人刚推出时的巨型休闲MMO的概念有了Flash技术的支持应该很容易实现了,再也不需要分拆MMO开发人员去制作游戏内的Mini-Game。而其设计专门为游戏量身定做,对于跨平台(Window,linux,PSP,PS2...),字体以及Scale9Grid(按照9格来拼接窗体,输入框等需要自由缩放大小的UI)的支持都使得游戏的UI开发更加便捷。凭借这些优势使得Scaleform不断被集成到主流的引擎中(Unreal3,Gamebyro,Bigworld,Crytek)。不过其对于东亚文字的输入只列出了数种,简体中文支持微软拼音、ABC、全拼、双拼。而对于中国这样的游戏环境来说这远远是不够的,玩家使用的输入法五花八门,而且有的输入法设计时就是不符合IME的规范的,因此要在游戏内接管IME来实现自绘候选字列表几乎是不可能的,还是放弃这个念头先。
ScaleformGFX功能不错,但是授权费用上也是相当的不错(听天下贰的同事说还是针对每个游戏title的授权),估计很少有公司会单独购买了,这方面的成本节中国公司还是精打细算的。
没钱的主还是来琢磨一下开源的免费东东吧。Scaleform GFx的基本技术和设计思想来源于一个称之为GameSwf的开源库。GameSwf的设计目标就是希望将Flash引入到3D应用中来实现GUI的功能。也有人已经将其集成到Torque引擎中了,不过由于其对于Flash和AS的支持还不是很完善,也限制了他的发展。
分支二:
相比第一种方式来说,采用引入OCX控件的方式会丧失一些主动权,渲染方式其实和将Web渲染到游戏内一样,都是由这些控件将图形先输出到HDC上,然后再将其拷贝到游戏内的纹理,效率上会比第一种方式差。不过好处也是大大的,不用再担心Flash版本的升级,这个全部由Flash的OCX控件封装好了。
OGRE平台上已经有这样的FlashGUI组件了,叫做Hikari,其实现方式以及各种特性请看其官网Wiki。
能够处理好鼠标键盘的输入以及绑定ActionScript与游戏引擎的交互问题,基本上这样的GUI就可以正常运转起来了。