天天看點

[美術制作流程]魔獸世界角色換裝分析

基于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