使用piece和插槽灵活实现3D游戏中的换装系统

      当今市面上的游戏中,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将

会成为所有游戏所使用的标准。
  
      
      综合:
      根据以上分析,我们可以根据实际需要,结合多种不同的方式来共同实现游戏中的换装系统。使

它们发挥各自的优势,并兼顾游戏的性能,达到最佳的性价比方案。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值