当今市面上的游戏中,3D游戏越来越成为主流的网络游戏模式,而且在最近几年中由于引擎和显
卡技术的不断发展,3d游戏的画面效果愈加真实和华丽,在次时代游戏平台上的许多游戏几乎可以与电
影级别的画质相媲美。
在中国游戏市场中,3D网游的竞争也在变得更为激烈,而游戏画面是衡量一款游戏品质的重要因
素之一。其实游戏画面是一个非常笼统的概念,其中涉及到了多种因素的组合,例如3D引擎本身的渲染
能力、模型的面数、贴图精度、艺术风格、灯光效果、特效、性能等等,这里暂时不做一一的详述,今
天主要针对游戏中的换装系统设计和实现做一个初步讨论。
在游戏中,玩家关注时间最多的就是其角色本身,随着角色的成长,玩家大都希望能够拥有多变
的、更为威风漂亮武器装备,因此几乎每个3D游戏中都会涉及到换装系统的制作。在过去,2D游戏因为
技术限制,或者需要消耗巨大的图片资源,一般都不会有过于复杂的换装系统;但是随着3D游戏的普及
,使得每件装备拥有其独特的外观具备了实现的可能。
基本思想:
1、开关piece的显示。我们知道3d游戏中的人物模型是建模制作的,模型是通过一个个三角面所
组成,为了制作能够更换装备的人物模型,我们必须在制作之前就对制作进行合理的规划。首先这个人
物模型将不是一个整体,它将被划分为许多不同的piece,举个简单的例子:我们希望游戏中能够选择不
同的发型,那么每一个发型将被独立做为一个piece并命名,在游戏内调用时我们将通过人物的数据信息
,判断出该人物所选择的发型,并相应的显示对应的发型piece并关闭其他发型的显示。这样我们就通过
开启和关闭不同piece的显示,实现了最简单的换装。
根据这种方式,除了人物身体外,我们也可以将所有装备的外观一同做在模型上,作为一个文件
导出。在游戏中,程序将读取人物信息、装备信息等各种数据,将人物及装备所使用的模型和贴图正确
的显示出来,通过不同piece的组合或者仅是更换piece上的贴图,就能够实现不同装备的换装了。但是
通过这种方式实现换装系统有几个注意点:
(1)装备外形不能过于复杂:因为过多的外形变化将涉及到更多的模型piece和骨骼绑定,而一
款游戏引擎对于同一个模型的piece和骨骼上限是有限制的。过多的piece将是模型无法在游戏中使用。
(2)灵活性较差:大家可能也发现了,装备与角色是同一个模型,因此在设计好所有装备的外观
变形或组合后,才能够开始模型的制作,这对于设计师来讲是一个非常高的要求。而且,如果我们想今
后增加更多的变化,那么模型需要修改和增加piece,那时piece数量可能已经不够用了;即使够用,也
需要重新绑定骨骼和设置权重,甚至重新制作角色的动作、修改装备外观的数据信息结构等等一系列的
麻烦事。因此使用这种方法最好后期还是稍作修改。
(3)piece与piece之间的关系:不同套装备可能会使用到不同piece,也可能会使用同一个piece
,甚至同一部位同时只能存在一个piece,这就需要装备信息中加入冲突关系,比如人物现在带了一副手
套,那么这时候应该显示出手套的piece,并隐藏掉原本身体上手的模型,虽然这两样东西在逻辑上并不
冲突,但在使用时,我们必须把不应该出现的面隐藏掉,这就是他们之间存在了冲突关系。
(4)性能:过多的piece和骨骼数将会影响到游戏的运行性能,尤其是一些老的3D引擎。当然随
着如今新的引擎技术发展和GPU功能越来越强大,这个问题已经被大大弱化,但是能省则省总是不会错的
。
结论:使用这种方式虽然简便,但扩展性较差,适用于较为简单而通用的装备设计。
2、使用插槽物件。由于piece开关方法必须和人物模型绑定,因此设计和修改都极为不灵活,这
时候插槽物件就体现出其优势来了。举例:人物身上的武器、头盔等装备,并不需要在人物创建时就附
带在人物身上,因此我们可以将这些装备作为单独的模型制作。在人物模型身上,women需要不同位置设
置插槽,包括插槽的名字、位置、方向、缩放等信息,那么在游戏中,我们只要在将装备模型插放到相
应的插槽中,与该部位共享骨骼,既能够为人物额外的穿戴上各种装备了。这个方法非常灵活,但是同
样有一些需要注意的地方:
(1)一般来说,插槽物件的运动规律是跟随所插部位的骨骼,因此极有可能在运动过程中与人物
身体的其他部位发成穿插。因此使用此方式制作的装备,都不能跨越人物的关节处,不然将无法贴合整
体进行运动。
(2)插槽的方向、大小、位置等信息的调整较为繁琐,因为在人物运动过程中肯能会在各种情况
下发生模型穿插,这时候就需要逐步微调动作或插槽本身的位置和方向来解决。
(3)性能:同样的,引擎将视插槽物品为一个单独的object,过多的插槽物品也会降低引擎的性
能。
结论:插槽物品使用非常灵活,但它是一种适合于随着单个骨骼运动的刚性物体,不适合于制作
贴身衣服类的装备。但是制作武器、头盔这一类的装备非常适合,在插槽设计合理的情况下有很大的设
计发挥空间。
3、shader着色。随着大量支持DirectX 9.0c和Shader Model的游戏不断涌现,DirectX 9.0c API
也早已成为新游戏的基本开发标准。毋庸质疑的是,未来还将会有越来越多的游戏支持Shader Model
3.0,因为它代表着未来游戏的发展方向 。
通过使用shader着色,可以将原装备贴图与某一指定颜色混合,产生新的颜色效果,无需增加而
外的工作量就快速的产生不同颜色的装备,这对于丰富游戏中的装备是非常方便的功能。
当然目前仍有许多低端的机器或显卡无法良好的支持shader,但相信在再经过几年展,shader将
会成为所有游戏所使用的标准。
综合:
根据以上分析,我们可以根据实际需要,结合多种不同的方式来共同实现游戏中的换装系统。使
它们发挥各自的优势,并兼顾游戏的性能,达到最佳的性价比方案。