登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Code@Pig Home

喜欢背着一袋Code傻笑的Pig .. 忧美.欢笑.记忆.忘却 .之. 角落

 
 
 

日志

 
 

[网游设计] 3D角色换装的实现  

2008-10-15 21:16:49|  分类: 网游设计 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

====== 基础知识 ======

引擎允许将游戏中的一个3D造型划分为多个 Part,然后组合起来,就是一个完成得大模型(比如一个完整的人物角色)。如下,A, B, C, D, E 表示不同的 Part。Part 的划分因游戏而异,游戏中可以通过替换每个 Part 上的模型、贴图、颜色、特效,来得到不同的换装效果。
            AAAAAA             F
            A         A           F
            AAAAAA          F
                 BB           FFF
  CCCCCCBBDDDDDF
                 BB
             EE   EE
            EE       EE
            EE          EE

对于一个 Part,可以由以下几个部分组成 PS/RS/E/C。
PS - piece        (模型)
RS - render style (贴图)
E  - effect       (特效)
C  - color        (颜色)

注意,除了 Part 外,每个3D造型上还可以有多个挂点(socket),挂点上可以挂接其他的3D造型,比如拿武器,就可以如此来实现。

 

====== 策划需求 ======

需求:游戏中的每个道具,可以影响多个 Part。比如:装备了一个'上身套装',其实是同时换了 B, C, F (两个 Part、一个 socket)的内容。
同样一个造型的装备,可以有不同的颜色。


====== 程序设计 ======

服务器上的一个道具,具有 iType, iShape, iColor, iIcon 四个值。其中 iType 表示装备的数值类型,比如装备上了'帽子',则增强了 10% 的防御效果。而 iIcon 决定了客户端物品栏上的图标样式。而 iShape 决定了此装备会给 3D造型 加入 哪几个Part,以及每个 Part 上对应的 PS/RS/E;而 iColor 决定了此 Part 的颜色。

客户端收到 iShape, iColor 后的处理逻辑如下:

                                        |
     [逻辑层]               |             [绘制层]
                                        |
                                        |     +--------------------+
+----------+    +----------+   / -> | Part1, Part2, ... |
 |             |      | atom1, |   /|     +--------------------+
 | iShape | => | atom2, | = |
 |             |      | ...         |   \|      +---------------+
+----------+    +---------+     \ -> | socket1, ...  |
                                        |      +---------------+

客户端有个 atom table,类似:
atom_tbl = {
  [1] = { ..., type = "socket", },
  [2] = { ..., type = "part",   },
  ...,
}
每个 atom 只对一个 part 或 socket。而一个 iShape 可以对应多个 atom。

如此,就可以把玩法上装备的3D造型(表现效果),与客户端联系起来了。为何 iColor 不作为 iShape 中描述的一部分,是依据具体情况的特殊设定。

  评论这张
 
阅读(1478)| 评论(1)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018