基于WowModelView的代码分析魔兽的换装流程,给程序包括美术提示avatar换装思路。

魔兽角色系统设计原则:
1.一套模型多套纹理贴图
2.某一角色只有一个模型, 该模型包含了各种服装搭配所需的Mesh, 是该角色网格全集. 当用户换装时,会动态显示、隐藏一些网格细节。
比如发型:有短发、中发、长发;37开、辫子等。这些都是已经做好跟Skin一起导出。只是运行时根据用户配置决定显示具体发型对应的网格。
3.基本角色模型不包括头盔、肩甲、盾牌等装饰品。

举HumanFemale角色为例:
1.一个HumanFemale Model,包括了所有服装配件用到的网格。
2. 总共有62部分组成。
3.为了提高效率,角色贴图只使用一张;服装配件用贴图叠加混合到基本身体贴图。
4.魔兽在贴图制作上都只用了半边,用镜像方式节省资源。
5.没有调整Material,皮肤及脸、发型等颜色的变化用更换纹理实现。这样做比较细腻。

HumanFemal角色纹理制作细节分析,
1.角色纹理制作规则,分两大类:
   a.每个基本角色都有自己一套基本纹理资源目录。具体纹理资源分类见HumanFemal例子。
   b.所有角色共用的纹理资源。比如外衣、腰带、护腕等用到的纹理贴图。

2.HumanFemale特有的一套资源目录:
    Skin                    // 256*256, 10张(对应不同皮肤颜色)
    Face Style            //
    Hair Style
    Hair Color
    Facial Feature
    Facial Color
    Skin是基本纹理(Tex0),其他所有纹理都要跟其混合。
    命名规则:HumanFemaleSkin00_00.blp …HumanFemaleSkin00_09.blp

3.Face Style 魔兽分成两部分FaceUpper、FaceLower
   FaceLower  128×64  张数=FaceStyleCount×SkinCount=14×10=140
   FaceUpper  128×32  张数=FaceStyleCount×SkinCount=14×10=140
   命名规则:HumanFemaleFaceLower00_00.blp …HumanFemaleFaceLower14_09.blp

4.Hair Style、Hair Color
   Hair Style:对应的是网格。有11种发型。也就是HumanFemale需制作11种发型网格,并跟角色一起导出。
   HairColor:HairMesh对应的纹理。有3种发型贴图:直发、微卷、卷。有10种颜色。
   HairColor纹理张数=HairColorCount×3=10×3=30;
   命名规则:Hair00_00.blp  …  Hair03..09.blp
   注意:Hair纹理Human男女共用。

5.Facial Feature、Facial Color
   Facial Feature用于表现角色脸部局部细节特征,如女性的耳环、闭环,男性的粗眉毛、胡子等。
   Facial Feature 用于决定哪些角色装饰网格可视。
   Facial Color 是Facial Feature对应的纹理。
   Facial Color纹理张数=FacialFeatureCount×9=7×9=63;
   命名规则:Facial00_00.blp  …  Facial06..09.blp

6.由以上统计,HumanFemale角色特有的纹理需 10+140+140+30+63 = 383张。

7.角色区域坐标(Skin0-Skin9纹理区域划分)
const CharRegionCoords regions[NUM_REGIONS] =
{
    {0, 0, 256, 256},    // base
    {0, 0, 128, 64},    // arm upper
    {0, 64, 128, 64},    // arm lower
    {0, 128, 128, 32},    // hand
    {0, 160, 128, 32},    // face upper
    {0, 192, 128, 64},    // face lower
    {128, 0, 128, 64},    // torso upper
    {128, 64, 128, 32},    // torso lower
    {128, 96, 128, 64}, // pelvis upper
    {128, 160, 128, 64},// pelvis lower
    {128, 224, 128, 32}    // foot
};

装备系统分析
1.魔兽世界有八种角色、每种角色分男女性别。
2.这里的装备不仅仅指刀剑等武器,还包括手套、盔甲、长袍等。
3.装备分类,部分装备每个角色各做一套,比如头盔做了16套。
4.部分装备,所有角色共用同一纹理。比如长袍、护腕等。
5.一套装备类型对应所有角色。也就是说下面的装备枚举类型适用所有角色。不存在特殊角色独有的装备。
    enum eCharSlots     // Character Equipment Slot
    {
        CS_HEAD,
        CS_NECK,
        CS_SHOULDER,
        CS_BOOTS,
        CS_BELT,
        CS_SHIRT,
        CS_PANTS,
        CS_CHEST,
        CS_BRACERS,
        CS_GLOVES,
        CS_HAND_RIGHT,
        CS_HAND_LEFT,
        CS_CAPE,
        CS_TABARD,
        CS_QUIVER,

NUM_CHAR_SLOTS
    };
6.部分装备的纹理贴图要跟角色模型的纹理混合。
   比如Belt腰带就要混合到角色256*256贴图的CR_LEG_UPPER部分。
   比如Bracers护腕就要混合到角色256*256贴图的CR_ARM_LOWER部分。
   比如Cheat、Shirt装备就要跟角色多个区域混合。
7.简单装备用一张贴图,如护腕、腰带。复杂装备会用到多张贴图,如Shirt就要四张(用于跟角色纹理四个区域混合CR_ARM_UPPER、CR_ARM_LOWER、CR_TORSO_UPPER、CR_TORSO_LOWER)。

角色信息DB
魔兽使用dbc数据表形式存储各种信息配置。包括了角色基本纹理区域划分信息,装备跟纹理的对应信息。
ChrRaces.dbc
CharHairGeosets.dbc
CharSections.dbc
CharacterFacialHairStyles.dbc
HelmetGeosetVisData.dbc
ItemDisplayInfo.dbc
ItemVisuals.dbc
ItemVisualEffects.dbc
ItemSet.dbc
ItemClass.dbc
ItemSubClass.dbc
CharStartOutfit.dbc
SpellVisualEffectName.dbc

转载于:https://www.cnblogs.com/winsonchen/archive/2008/01/24/1051716.html

[美术制作流程]魔兽世界角色换装分析相关推荐

  1. 魔兽世界角色换装分析

    基于WowModelView的代码分析魔兽的换装流程,给程序包括美术提示avatar换装思路. 魔兽角色系统设计原则: 1.一套模型多套纹理贴图 2.某一角色只有一个模型, 该模型包含了各种服装搭配所 ...

  2. 浅谈角色换装功能--前置篇【骨骼,蒙皮,动作】

    无论是AAA级的主机游戏,还是层出不穷的移动端游戏,角色换装几乎都是必不可少的功能,有的甚至是核心功能,像暗黑3和魔兽世界的幻化系统(如图1).这个功能没什么新鲜点.网上关于Unity换装的文章不胜枚 ...

  3. unity 角色换装

    unity角色换装的关键是更改角色部位上的物体的SkinnedMeshRenderer组件的属性: 更改mesh:mesh决定了部位的物体的外形,是主要的数据. 刷新骨骼:同一个部位下,不同的mesh ...

  4. Unity3d 游戏角色换装

    对于2D游戏来说,角色换装就是更换对应人物图片. 对于3D游戏,如果一个角色模型是一个整体,那么换装就是更换整个模型或者简单的,更换这个模型对应的Material. 如果换装之后人物角色的外形变了,例 ...

  5. Unity3d 官方角色换装Demo源代码学习

    由于兴趣爱好,工作之余会尝试做做RPG游戏,遇到角色换装这个功能没什么思路,于是在网上苦苦找寻相关资料,网上角色换装文章还是有一些,不过大多讲的比较简单,最后没办法不得不拿官方的角色换装代码来研究,开 ...

  6. unity之游戏角色换装实现

    http://www.cnblogs.com/shamoyuu/p/6505561.html 一.换装原理 游戏角色换装分为以下几步: 1.替换蒙皮网格 2.刷新骨骼 3.替换材质 上面这种是比较简单 ...

  7. Unity3D角色换装实现原理及步骤

    1.角色模型制作 Unity3d支持Skin动画,但是不支持Physique动画,会发现Physique动画在unity里严重变形,因此在模型的骨骼动画的制作上面 要用Skin,当然也可以做成Phys ...

  8. 麒麟子Cocos Creator 3D研究笔记三:角色换装(无动画)

    零.效果展示 先来两张图 在线演示地址: https://showcase.ukylin.net/avatar/ 3D换装有两种情况,一种是身体各部件(如头发.上衣.裤子.手套.鞋子等身体各部分),另 ...

  9. 净高报告制作流程,BIM机电“净高分析报告”

    "净高分析报告"想必是所有做BIM项目最头疼的一类工作,而且该阶段成果输出过程,机电工程师压力倍增,土建工程师通常缺乏参与度,输出的成果也相应的缺乏一定的全面性.结合以往的项目经验 ...

最新文章

  1. 霍夫直线检测python_opencv+python 霍夫直线检测
  2. Service Mesh — Istio
  3. unlink与close关系
  4. 若依前后端分离版怎样去掉登录验证码
  5. 电子工程可以报考二建_非工程类专业也能报考二建吗?
  6. pip/pip3更换国内源
  7. adb启动app_adb命令实战十三步
  8. yolov3为什么对大目标检测不好_从YOLOv1到YOLOv3,目标检测的进化之路
  9. python 相关性检验怎么计算p值_生信工具 | 相关性热图还能玩出什么花样?
  10. ssh GSSAPIAuthentication 参数
  11. matlab altera视频,Altera 官网中文视频教程 下载地址
  12. .net core使用ef 6
  13. LeetCode刷题攻略
  14. 集体建设用地审批程序:
  15. 基于URLOS的SaaS平台发布,轻松卖软件!
  16. 《Java从入门到项目实战(全程视频版)》(李兴华 著)【配套资源及赠送资源】
  17. 这个春节,小灰收到一件不寻常的礼物
  18. 一维到十维!!你了解多少?
  19. win10系统相机灰色问题解决(如腾讯会议中开启失败)
  20. ureport2报表详细使用(五)-查询表单设计

热门文章

  1. 长铗言论节选(自2017年5月以来)
  2. 无APP推送服务PushDeer的搭建
  3. 查看Linux系统的初始安装时间
  4. Overloaded ‘operator>>‘ must be a binary operator (has 3 parameters)
  5. 学习:卷积神经网络发展史
  6. CGAL 求三维体数据的交并差(三维布尔运算)
  7. 解决TOKEN已过期,TOKEN加密的js逆向模拟
  8. Spire.PDFViewer 教程:如何在一个网页中查看多个PDF文件
  9. Cad二次开发双线(Demo)
  10. 服务器是vhd文件,VHD文件对于企业应用的意义所在