Character Customization: Difference between revisions

From wowdev
Jump to navigation Jump to search
(→‎Textures: Start documenting texturing)
 
(13 intermediate revisions by 4 users not shown)
Line 24: Line 24:
! width="90" | Table
! width="90" | Table
!  WoW.tools link
!  WoW.tools link
!  wago.tools link
!  Description
!  Description
|-
|-
| [[DB/ChrCustomization|ChrCustomization]] || [https://wow.tools/dbc/?dbc=ChrCustomization Browse] || Not new in Shadowlands, introduced back in 7.3.5 but ChrCustomizationOption still refers to it.
| [[DB/ChrCustomization|ChrCustomization]] || [https://wow.tools/dbc/?dbc=ChrCustomization Browse] || [https://wago.tools/db2/ChrCustomization Browse] || Not new in Shadowlands, introduced back in 7.3.5 but ChrCustomizationOption still refers to it.
|-
|-
| [[DB/ChrCustomizationBoneSet|ChrCustomizationBoneSet]] || [https://wow.tools/dbc/?dbc=ChrCustomizationBoneSet Browse] || Links .bone FileDataIDs with .m2 FileDataIDs.
| [[DB/ChrCustomizationBoneSet|ChrCustomizationBoneSet]] || [https://wow.tools/dbc/?dbc=ChrCustomizationBoneSet Browse] || [https://wago.tools/db2/ChrCustomizationBoneSet Browse] || Links .bone FileDataIDs with .m2 FileDataIDs.
|-
|-
| [[DB/ChrCustomizationCategory|ChrCustomizationCategory]] || [https://wow.tools/dbc/?dbc=ChrCustomizationCategory Browse] || Lists categories (e.g. Body, Face, Accessoires, Hair, Markings) shown in character creation.
| [[DB/ChrCustomizationCategory|ChrCustomizationCategory]] || [https://wow.tools/dbc/?dbc=ChrCustomizationCategory Browse] || [https://wago.tools/db2/ChrCustomizationCategory Browse] || Lists categories (e.g. Body, Face, Accessoires, Hair, Markings) shown in character creation.
|-
|-
| [[DB/ChrCustomizationChoice|ChrCustomizationChoice]] || [https://wow.tools/dbc/?dbc=ChrCustomizationChoice Browse] || Lists all the combinations and if available, their names. Links to [[DB/ChrCustomizationOption|ChrCustomizationOption]] and [[DB/ChrCustomizationReq|ChrCustomizationReq]].
| [[DB/ChrCustomizationChoice|ChrCustomizationChoice]] || [https://wow.tools/dbc/?dbc=ChrCustomizationChoice Browse] || [https://wago.tools/db2/ChrCustomizationChoice Browse] || Lists all the combinations and if available, their names. Links to [[DB/ChrCustomizationOption|ChrCustomizationOption]] and [[DB/ChrCustomizationReq|ChrCustomizationReq]].
|-
|-
| [[DB/ChrCustomizationCondModel|ChrCustomizationCondModel]] || [https://wow.tools/dbc/?dbc=ChrCustomizationCondModel Browse] || Creature related
| [[DB/ChrCustomizationCondModel|ChrCustomizationCondModel]] || [https://wow.tools/dbc/?dbc=ChrCustomizationCondModel Browse] || [https://wago.tools/db2/ChrCustomizationCondModel Browse] || Creature related
|-
|-
| [[DB/ChrCustomizationConversion|ChrCustomizationConversion]] || [https://wow.tools/dbc/?dbc=ChrCustomizationConversion Browse] || Creature related
| [[DB/ChrCustomizationConversion|ChrCustomizationConversion]] || [https://wow.tools/dbc/?dbc=ChrCustomizationConversion Browse] || [https://wago.tools/db2/ChrCustomizationConversion Browse] || Creature related
|-
|-
| [[DB/ChrCustomizationConversion|ChrCustomizationDisplayInfo]] || [https://wow.tools/dbc/?dbc=ChrCustomizationDisplayInfo Browse] || Shapeshift form related
| [[DB/ChrCustomizationConversion|ChrCustomizationDisplayInfo]] || [https://wow.tools/dbc/?dbc=ChrCustomizationDisplayInfo Browse] || [https://wago.tools/db2/ChrCustomizationDisplayInfo Browse] || Shapeshift form related
|-
|-
| [[DB/ChrCustomizationElement|ChrCustomizationElement]] || [https://wow.tools/dbc/?dbc=ChrCustomizationElement Browse] || Links up Choice, Geoset, SkinnedModel, Material, BoneSet and CondModel and DisplayID tables.
| [[DB/ChrCustomizationElement|ChrCustomizationElement]] || [https://wow.tools/dbc/?dbc=ChrCustomizationElement Browse] || [https://wago.tools/db2/ChrCustomizationElement Browse] || Links up Choice, Geoset, SkinnedModel, Material, BoneSet and CondModel and DisplayID tables.
|-
|-
| [[DB/ChrCustomizationGeoset|ChrCustomizationGeoset]] || [https://wow.tools/dbc/?dbc=ChrCustomizationGeoset Browse] || List of geosets. Matches with IDs in the Geoset table below (Type being the first 2 numbers, IDs the last 2)   
| [[DB/ChrCustomizationGeoset|ChrCustomizationGeoset]] || [https://wow.tools/dbc/?dbc=ChrCustomizationGeoset Browse] || [https://wago.tools/db2/ChrCustomizationGeoset Browse] || List of geosets. Matches with IDs in the Geoset table below (Type being the first 2 numbers, IDs the last 2)   
|-
|-
| [[DB/ChrCustomizationMaterial|ChrCustomizationMaterial]] || [https://wow.tools/dbc/?dbc=ChrCustomizationMaterial Browse] || Links MaterialID to [[DB/ChrModelTextureTarget|ChrModelTextureTargetID]] and [[DB/TextureFileData|TextureFileData]].MaterialResourcesID
| [[DB/ChrCustomizationMaterial|ChrCustomizationMaterial]] || [https://wow.tools/dbc/?dbc=ChrCustomizationMaterial Browse] || [https://wago.tools/db2/ChrCustomizationMaterial Browse] || Links MaterialID to [[DB/ChrModelTextureTarget|ChrModelTextureTargetID]] and [[DB/TextureFileData|TextureFileData]].MaterialResourcesID
|-
|-
| [[DB/ChrCustomizationOption|ChrCustomizationOption]] || [https://wow.tools/dbc/?dbc=ChrCustomizationOption Browse] || The different options, mostly important for UI
| [[DB/ChrCustomizationOption|ChrCustomizationOption]] || [https://wow.tools/dbc/?dbc=ChrCustomizationOption Browse] || [https://wago.tools/db2/ChrCustomizationOption Browse] || The different options, mostly important for UI
|-
|-
| [[DB/ChrCustomizationReq|ChrCustomizationReq]] || [https://wow.tools/dbc/?dbc=ChrCustomizationReq Browse] || Various requirements for certain choices, most common one is a class requirement (e.g. demon hunter only, death knight only choices).  
| [[DB/ChrCustomizationReq|ChrCustomizationReq]] || [https://wow.tools/dbc/?dbc=ChrCustomizationReq Browse] || [https://wago.tools/db2/ChrCustomizationReq Browse] || Various requirements for certain choices, most common one is a class requirement (e.g. demon hunter only, death knight only choices).  
|-
|-
| [[DB/ChrCustomizationReqChoice|ChrCustomizationReqChoice]] || [https://wow.tools/dbc/?dbc=ChrCustomizationReqChoice Browse] || Links choices to requirements.
| [[DB/ChrCustomizationReqChoice|ChrCustomizationReqChoice]] || [https://wow.tools/dbc/?dbc=ChrCustomizationReqChoice Browse] || [https://wago.tools/db2/ChrCustomizationReqChoice Browse] || Links choices to requirements.
|-
|-
| [[DB/ChrCustomizationSkinnedModel|ChrCustomizationSkinnedModel]] || [https://wow.tools/dbc/?dbc=ChrCustomizationSkinnedModel Browse] || Lists various collection models ((ab)used for additional geosets like DH blindfolds, mechagnome parts)
| [[DB/ChrCustomizationSkinnedModel|ChrCustomizationSkinnedModel]] || [https://wow.tools/dbc/?dbc=ChrCustomizationSkinnedModel Browse] || [https://wago.tools/db2/ChrCustomizationSkinnedModel Browse] || Lists various collection models ((ab)used for additional geosets like DH blindfolds, mechagnome parts)
|-
|-
| [[DB/ChrCustClientChoiceConversion|ChrCustClientChoiceConversion]] || [https://wow.tools/dbc/?dbc=ChrCustClientChoiceConversion Browse] ||  
| [[DB/ChrCustClientChoiceConversion|ChrCustClientChoiceConversion]] || [https://wow.tools/dbc/?dbc=ChrCustClientChoiceConversion Browse] || [https://wago.tools/db2/ChrCustClientChoiceConversion Browse] ||  
|-
|-
| [[DB/ChrModel|ChrModel]] || [https://wow.tools/dbc/?dbc=ChrModel Browse] || DisplayIDs/Death skeletons. Look up by race can be found in [[DB/ChrRaceXChrModel|ChrRaceXChrModel]].
| [[DB/ChrModel|ChrModel]] || [https://wow.tools/dbc/?dbc=ChrModel Browse] || [https://wago.tools/db2/ChrModel Browse] || DisplayIDs/Death skeletons. Look up by race can be found in [[DB/ChrRaceXChrModel|ChrRaceXChrModel]].
|-
|-
| [[DB/ChrModelMaterial|ChrModelMaterial]] || [https://wow.tools/dbc/?dbc=ChrModelMaterial Browse] || Primarily used to link up a TextureLayout to a TextureType
| [[DB/ChrModelMaterial|ChrModelMaterial]] || [https://wow.tools/dbc/?dbc=ChrModelMaterial Browse] || [https://wago.tools/db2/ChrModelMaterial Browse] || Primarily used to link up a TextureLayout to a TextureType
|-
|-
| [[DB/ChrModelTextureLayer|ChrModelTextureLayer]] || [https://wow.tools/dbc/?dbc=ChrModelTextureLayer Browse] || Contains information required to correctly combine the different layers of character textures.
| [[DB/ChrModelTextureLayer|ChrModelTextureLayer]] || [https://wow.tools/dbc/?dbc=ChrModelTextureLayer Browse] || [https://wago.tools/db2/ChrModelTextureLayer Browse] || Contains information required to correctly combine the different layers of character textures.
|-
|-
| [[DB/ChrModelTextureTarget|ChrModelTextureTarget]] || [https://wow.tools/dbc/?dbc=ChrModelTextureTarget Browse] || Appears to be just a list of valid texture targets.
| [[DB/ChrModelTextureTarget|ChrModelTextureTarget]] || [https://wow.tools/dbc/?dbc=ChrModelTextureTarget Browse] || [https://wago.tools/db2/ChrModelTextureTarget Browse] || Appears to be just a list of valid texture targets.
|-
|-
| [[DB/ChrRaceXChrModel|ChrRaceXChrModel]] || [https://wow.tools/dbc/?dbc=ChrRaceXChrModel Browse] || Links up Race IDs from [[DB/ChrRaces|ChrRaces]] to ChrModel IDs.
| [[DB/ChrRaceXChrModel|ChrRaceXChrModel]] || [https://wow.tools/dbc/?dbc=ChrRaceXChrModel Browse] || [https://wago.tools/db2/ChrRaceXChrModel Browse] || Links up Race IDs from [[DB/ChrRaces|ChrRaces]] to ChrModel IDs.
|-
|-
| [[DB/TextureFileData|TextureFileData]] || [https://wow.tools/dbc/?dbc=TextureFileData Browse] || Not new, but links up MaterialResourcesID (from ChrCustomizationMaterial but also other DBs of other systems) to FileDataIDs.
| [[DB/TextureFileData|TextureFileData]] || [https://wow.tools/dbc/?dbc=TextureFileData Browse] || [https://wago.tools/db2/TextureFileData Browse] || Not new, but links up MaterialResourcesID (from ChrCustomizationMaterial but also other DBs of other systems) to FileDataIDs.
|}
|}


Line 91: Line 92:


  0000: Skin
  0000: Skin
  00**: Hair: {1-21: various hairstyles}
  00**: {{Verified|Head}} / Hair: {1-21: various hairstyles}
  01**: Facial1: {1-8: varies} (usually beard, but not always)
  01**: {{Verified|Beard}} / Facial1: {1-8: varies} (usually beard, but not always)
  02**: Facial2: {1: none (DNE), 2-6: varies} (usually mustache, but not always)
  02**: {{Verified|Sideburns}} / Facial2: {1: none (DNE), 2-6: varies} (usually {{Unverified|mustache}}, but not always)
  03**: Facial3: {1: none (DNE), 2-11: varies} (usually sideburns, but not always)
  03**: {{Verified|Moustache}} / Facial3: {1: none (DNE), 2-11: varies} (usually {{Unverified|sideburns}}, but not always)
  04**: Glove: {1-4}
  04**: {{Verified|Gloves}}: {1-4}
  05**: Boots: {1-5}
  05**: {{Verified|Boots}}: {1-5}
  06**: Tail (Draenei Female)
  06**: {{Verified|Shirt}} {{Unverified|Tail (Draenei Female)}}
  07**: Ears: {1: none (DNE), 2: ears}
  07**: {{Verified|Ears}}: {1: none (DNE), 2: ears}
  08**: Wristbands / Sleeves: {1: none (DNE), 2: normal, 3: ruffled}
  08**: Wristbands / {{Verified|Sleeves}}: {1: none (DNE), 2: normal, 3: ruffled}
  09**: Kneepads / Legcuffs: {1: none (DNE), 2: long, 3: short}
  09**: {{Verified|Legs}} (Kneepads / Legcuffs): {1: none (DNE), 2: long, 3: short}
  10**: Chest: {1: none (DNE), 2: Unk (exists but purpose unknown - mesh is in all character models lower half of "Torso Lower")}
  10**: {{Verified|Shirt Doublet}} (Chest): {1: none (DNE), 2: Unk (exists but purpose unknown - mesh is in all character models lower half of "Torso Lower")}
  11**: Pants: {1: regular, 2: short skirt, 4: armored pants}
  11**: {{Verified|Pant Doublet}}: {1: regular, 2: short skirt, 4: armored pants}
  12**: Tabard: {1: none (DNE), 2: tabard}
  12**: {{Verified|Tabard}}: {1: none (DNE), 2: tabard}
  13**: Trousers: {1: legs, 2: dress}
  13**: {{Verified|Robe}} (Trousers): {1: legs, 2: dress}
  14**: DHLoincloth: (probably only present in collection model)
  14**: DH/Pandaren female {{Verified|Loincloth}}
  15**: Cloak: {1-10: various cloak styles}
  15**: {{Verified|Cape}}: {1-10: various cloak styles}
  16**: Mechagnome chin (collections only?) {{Template:Sandbox/PrettyVersion|expansionlevel=8|build=8.2.0.30080}}
  16**: {{Verified|Facial Jewelry}} (nose/earrings) {{Template:Sandbox/PrettyVersion|expansionlevel=9}} / Mechagnome chin {{Template:Sandbox/PrettyVersion|expansionlevel=8|build=8.2.0.30080}}
  17**: Eyeglows: {1: none (DNE), 2: racial eyeglow, 3: DK eyeglow}
  17**: {{Verified|Eye Effects}}: {1: none (DNE), 2: racial eyeglow, 3: DK eyeglow}
  18**: Belt / bellypack: {1: none (sometimes DNE), 2: bulky belt, 3: Monk Belt}
  18**: {{Verified|Belt}} / bellypack: {1: none (sometimes DNE), 2: bulky belt, 3: Monk Belt}
  19**: Bone/Tail (in Legion this group also has Undead bones)
  19**: {{Verified|Skin}} (Bone/Tail) (in Legion this group also has Undead bones)
  20**: Feet: {1: none, 2: feet}
  20**: {{Verified|Toes}}: {1: none, 2: feet}
  22**: Torso {1: regular, 2: armored torso}
21**: {{Verified|Skull}}
  23**: Hands (attachments) (in addition to character models also exist in DH collections) { 1: hands for blood elf/night elf }
  22**: {{Verified|Torso}} {1: regular, 2: armored torso}
  24**: Head attachments (e.g. horns) (only exist in DH/MG collections) {1-x}
  23**: {{Verified|Hands}} (attachments) (in addition to character models also exist in DH collections) { 1: hands for blood elf/night elf }
  25**: Blindfolds (only exist in DH collections) {1-x}
  24**: Head attachments (e.g. {{Verified|Horns}}) (only exist in DH/MG collections) {1-x}
  29**: Mechagnome arms/hands (collections only?) {{Template:Sandbox/PrettyVersion|expansionlevel=8|build=8.2.0.30080}}
  25**: {{Verified|Facewear}} (Blindfolds/LightForged Draenei runes) {1-x}
  30**: Mechagnome legs (collections only?) {{Template:Sandbox/PrettyVersion|expansionlevel=8|build=8.2.0.30080}}
26**: {{Verified|Shoulders}} (Present on mawraid_d shoulders for effect textures)
  31**: Mechagnome feet (collections only?) {{Template:Sandbox/PrettyVersion|expansionlevel=8|build=8.2.0.30080}}
27**: {{Verified|Helm}} (present on various Object Component models).
  32**: Face {{Template:Sandbox/PrettyVersion|expansionlevel=9|build=9.0.1.34137}}
28**: {{Verified|Arm Upper}} (present on various Object Component models).
  33**: Eyes {{Template:Sandbox/PrettyVersion|expansionlevel=9|build=9.0.1.34137}}
  29**: {{Verified|Arms Replace}} (Mechagnome arms/hands, collections only?) {{Template:Sandbox/PrettyVersion|expansionlevel=8|build=8.2.0.30080}}
  34**: Eyebrows {{Template:Sandbox/PrettyVersion|expansionlevel=9|build=9.0.1.34137}}
  30**: {{Verified|Legs replace}} (Mechagnome legs, collections only?) {{Template:Sandbox/PrettyVersion|expansionlevel=8|build=8.2.0.30080}}
  35**: Earrings {{Template:Sandbox/PrettyVersion|expansionlevel=9|build=9.0.1.34137}}
  31**: {{Verified|Feet Replace}} (Mechagnome feet, collections only?) {{Template:Sandbox/PrettyVersion|expansionlevel=8|build=8.2.0.30080}}
  36**: Necklace {{Template:Sandbox/PrettyVersion|expansionlevel=9|build=9.0.1.34137}}
  32**: {{Verified|Head Swap}} {{Template:Sandbox/PrettyVersion|expansionlevel=9|build=9.0.1.34137}}
  37**: Headdress {{Template:Sandbox/PrettyVersion|expansionlevel=9|build=9.0.1.34714}}
  33**: {{Verified|Eyes}} {{Template:Sandbox/PrettyVersion|expansionlevel=9|build=9.0.1.34137}}
  38**: Tails (Draenei) {{Template:Sandbox/PrettyVersion|expansionlevel=9|build=9.0.1.34821}}
  34**: {{Verified|Eyebrows}} {{Template:Sandbox/PrettyVersion|expansionlevel=9|build=9.0.1.34137}}
  39**: Vines (Night Elf) {{Template:Sandbox/PrettyVersion|expansionlevel=9|build=9.0.1.34821}}
  35**: {{Verified|Piercings}}/Earrings {{Template:Sandbox/PrettyVersion|expansionlevel=9|build=9.0.1.34137}}
  40**: Tusks (Trolls) {{Template:Sandbox/PrettyVersion|expansionlevel=9|build=9.0.1.34902}}
  36**: {{Verified|Necklaces}} {{Template:Sandbox/PrettyVersion|expansionlevel=9|build=9.0.1.34137}}
 
  37**: {{Verified|Headdres}}s {{Template:Sandbox/PrettyVersion|expansionlevel=9|build=9.0.1.34714}}
  38**: {{Verified|Tail}} (Draenei) {{Template:Sandbox/PrettyVersion|expansionlevel=9|build=9.0.1.34821}}
  39**: {{Verified|Misc Accessory}}: Vines (Night Elf) {{Template:Sandbox/PrettyVersion|expansionlevel=9|build=9.0.1.34821}}
  40**: {{Verified|Misc Feature}}: Chins (Goblins) / Tusks (Trolls/Orcs) {{Template:Sandbox/PrettyVersion|expansionlevel=9|build=9.0.1.34902}}
41**: Noses (Goblins) {{Template:Sandbox/PrettyVersion|expansionlevel=9}}
42**: Hair decoration (Lightforged Draenei) {{Template:Sandbox/PrettyVersion|expansionlevel=9|build=9.1.5.39977}}
43**: Horn decoration (Highmountain Tauren) {{Template:Sandbox/PrettyVersion|expansionlevel=9|build=9.1.5.40196}}
44**: Body Size (Dracthyr) {{Template:Sandbox/PrettyVersion|expansionlevel=10|build=10.0.0.44167}}
45**: Unused/unknown
46**: Unknown (Dracthyr) {{Template:Sandbox/PrettyVersion|expansionlevel=10}}
47**: Unused/unknown
48**: Unused/unknown
49**: Unused/unknown
50**: Unused/unknown
51**: Eye glow (all races) {{Template:Sandbox/PrettyVersion|expansionlevel=10|build=10.1.5.50130}}
Some particular geosets (such as 701) are marked as 'DNE' (Does Not Exist). This is to indicate that that particular geoset does not actually exist in any skin files. However, the game will still reference these geosets in the case that it wants nothing in that geoset group to show up.
Some particular geosets (such as 701) are marked as 'DNE' (Does Not Exist). This is to indicate that that particular geoset does not actually exist in any skin files. However, the game will still reference these geosets in the case that it wants nothing in that geoset group to show up.


Line 138: Line 153:
== Textures ==
== Textures ==
Character skins consist out of several layers.
Character skins consist out of several layers.
For starters, get the CharComponentTextureLayoutID for the current ChrModel from ChrModel::CharComponentTextureLayoutID.


TODO: Describe base layer (type 1) vs overlay layers (6, 8, 10, 19, 20, 21, 22, 24), how to compile base layer texture as well as how to overlay layer > 1 textures.
TODO: Describe base layer (type 1) vs overlay layers (6, 8, 10, 19, 20, 21, 22, 24), how to compile base layer texture as well as how to overlay layer > 1 textures.
[[Category:System]]

Latest revision as of 23:03, 28 January 2024

Shadowlands/9.0 made some big changes to the character customization system!

Reasoning

Blizzard wanted to move to a more "data-driven" customization system in Shadowlands that allows them to build up character models from multiple source textures instead of baking textures for each model/race/variation.

Terminology

Table Description
DB2 Database table, technical docs here.
FileDataID Reference to a specific file. Used in various DBs formats. Comes from TACT's root file.
M2 Model file, technical docs here.
Geoset Set of 3D geometry, also referred to as submesh or mesh part.

Relevant DB2s

This system introduced many new DB2s. Table below is for summary explanations only, for actual structures you check WoWDBDefs or read the designated page (if available).

Table WoW.tools link wago.tools link Description
ChrCustomization Browse Browse Not new in Shadowlands, introduced back in 7.3.5 but ChrCustomizationOption still refers to it.
ChrCustomizationBoneSet Browse Browse Links .bone FileDataIDs with .m2 FileDataIDs.
ChrCustomizationCategory Browse Browse Lists categories (e.g. Body, Face, Accessoires, Hair, Markings) shown in character creation.
ChrCustomizationChoice Browse Browse Lists all the combinations and if available, their names. Links to ChrCustomizationOption and ChrCustomizationReq.
ChrCustomizationCondModel Browse Browse Creature related
ChrCustomizationConversion Browse Browse Creature related
ChrCustomizationDisplayInfo Browse Browse Shapeshift form related
ChrCustomizationElement Browse Browse Links up Choice, Geoset, SkinnedModel, Material, BoneSet and CondModel and DisplayID tables.
ChrCustomizationGeoset Browse Browse List of geosets. Matches with IDs in the Geoset table below (Type being the first 2 numbers, IDs the last 2)
ChrCustomizationMaterial Browse Browse Links MaterialID to ChrModelTextureTargetID and TextureFileData.MaterialResourcesID
ChrCustomizationOption Browse Browse The different options, mostly important for UI
ChrCustomizationReq Browse Browse Various requirements for certain choices, most common one is a class requirement (e.g. demon hunter only, death knight only choices).
ChrCustomizationReqChoice Browse Browse Links choices to requirements.
ChrCustomizationSkinnedModel Browse Browse Lists various collection models ((ab)used for additional geosets like DH blindfolds, mechagnome parts)
ChrCustClientChoiceConversion Browse Browse
ChrModel Browse Browse DisplayIDs/Death skeletons. Look up by race can be found in ChrRaceXChrModel.
ChrModelMaterial Browse Browse Primarily used to link up a TextureLayout to a TextureType
ChrModelTextureLayer Browse Browse Contains information required to correctly combine the different layers of character textures.
ChrModelTextureTarget Browse Browse Appears to be just a list of valid texture targets.
ChrRaceXChrModel Browse Browse Links up Race IDs from ChrRaces to ChrModel IDs.
TextureFileData Browse Browse Not new, but links up MaterialResourcesID (from ChrCustomizationMaterial but also other DBs of other systems) to FileDataIDs.

Important DB2 links

Fields in this paragraph are designated with a Table::Field notation.

ChrCustomizationChoice::ChrCustomizationOptionID => ChrCustomizationOption

An option (i.e. Skin Color) can have multiple choices. These choices are linked to an option through ChrCustomizationChoice::ChrCustomizationOptionID. All options have names, but not all choices do.

ChrCustomizationElement::ChrCustomizationChoiceID => Various other DBs

Many of the DBs are referenced from ChrCustomizationElement. In most cases, this DB links up a certain ChrCustomizationChoiceID with one other DB at a time, with all other columns being 0 (with the exception of RelatedChrCustomizationChoiceID which sometimes has values if the other column having values is ChrCustomizationGeosetID or ChrCustomizationMaterialID).

=> ChrCustomizationGeosetID

Which geoset IDs to enable for this specific choice ID.

=> ChrCustomizationMaterialID

Which materials(!) to apply for this choice.

Rendering

This section is specific to rendering characters models using the new customization system, for technical information on rendering things from WoW in general, check out the Rendering and M2/Rendering pages as well as the M2 page itself.

Geosets

For character models, each hairstyle/thick armor/etc is present in the mesh, so to render a character with a specific set of looks, different geosets (aka submeshes/mesh parts) will have to be enabled/disabled. A list of geosets can be found in the ChrCustomizationGeoset table, these numbers are the same ones as can be found in the table below but formatted differently. In the ChrCustomizationGeoset DB2 the GeosetType field matches the first 2 (0-padded) numbers in the linked submesh table and the GeosetID field from the DB2 points to the last 2 numbers (** in the submesh table). Note that ** starts with 01, not 00 (with the exception of entry 0, which is the skin).

0000: Skin
00**: Head / Hair: {1-21: various hairstyles}
01**: Beard / Facial1: {1-8: varies} (usually beard, but not always)
02**: Sideburns / Facial2: {1: none (DNE), 2-6: varies} (usually mustache, but not always)
03**: Moustache / Facial3: {1: none (DNE), 2-11: varies} (usually sideburns, but not always)
04**: Gloves: {1-4}
05**: Boots: {1-5}
06**: Shirt Tail (Draenei Female)
07**: Ears: {1: none (DNE), 2: ears}
08**: Wristbands / Sleeves: {1: none (DNE), 2: normal, 3: ruffled}
09**: Legs (Kneepads / Legcuffs): {1: none (DNE), 2: long, 3: short}
10**: Shirt Doublet (Chest): {1: none (DNE), 2: Unk (exists but purpose unknown - mesh is in all character models lower half of "Torso Lower")}
11**: Pant Doublet: {1: regular, 2: short skirt, 4: armored pants}
12**: Tabard: {1: none (DNE), 2: tabard}
13**: Robe (Trousers): {1: legs, 2: dress}
14**: DH/Pandaren female Loincloth
15**: Cape: {1-10: various cloak styles}
16**: Facial Jewelry (nose/earrings) SL / Mechagnome chin Battle (8.2.0.30080)
17**: Eye Effects: {1: none (DNE), 2: racial eyeglow, 3: DK eyeglow}
18**: Belt / bellypack: {1: none (sometimes DNE), 2: bulky belt, 3: Monk Belt}
19**: Skin (Bone/Tail) (in Legion this group also has Undead bones)
20**: Toes: {1: none, 2: feet}
21**: Skull
22**: Torso {1: regular, 2: armored torso}
23**: Hands (attachments) (in addition to character models also exist in DH collections) { 1: hands for blood elf/night elf }
24**: Head attachments (e.g. Horns) (only exist in DH/MG collections) {1-x}
25**: Facewear (Blindfolds/LightForged Draenei runes) {1-x}
26**: Shoulders (Present on mawraid_d shoulders for effect textures)
27**: Helm (present on various Object Component models).
28**: Arm Upper (present on various Object Component models).
29**: Arms Replace (Mechagnome arms/hands, collections only?) Battle (8.2.0.30080)
30**: Legs replace (Mechagnome legs, collections only?) Battle (8.2.0.30080)
31**: Feet Replace (Mechagnome feet, collections only?) Battle (8.2.0.30080)
32**: Head Swap SL (9.0.1.34137)
33**: Eyes SL (9.0.1.34137)
34**: Eyebrows SL (9.0.1.34137)
35**: Piercings/Earrings SL (9.0.1.34137)
36**: Necklaces SL (9.0.1.34137)
37**: Headdress SL (9.0.1.34714)
38**: Tail (Draenei) SL (9.0.1.34821)
39**: Misc Accessory: Vines (Night Elf) SL (9.0.1.34821)
40**: Misc Feature: Chins (Goblins) / Tusks (Trolls/Orcs) SL (9.0.1.34902)
41**: Noses (Goblins) SL
42**: Hair decoration (Lightforged Draenei) SL (9.1.5.39977)
43**: Horn decoration (Highmountain Tauren) SL (9.1.5.40196)
44**: Body Size (Dracthyr) DF (10.0.0.44167)
45**: Unused/unknown
46**: Unknown (Dracthyr) DF
47**: Unused/unknown
48**: Unused/unknown
49**: Unused/unknown
50**: Unused/unknown
51**: Eye glow (all races) DF (10.1.5.50130)

Some particular geosets (such as 701) are marked as 'DNE' (Does Not Exist). This is to indicate that that particular geoset does not actually exist in any skin files. However, the game will still reference these geosets in the case that it wants nothing in that geoset group to show up.

TODO: Describe default geosets to be enabled/disabled.

Items

For more on how geosets work in combination with items, see DB/ItemDisplayInfo

Textures

Character skins consist out of several layers.

For starters, get the CharComponentTextureLayoutID for the current ChrModel from ChrModel::CharComponentTextureLayoutID.

TODO: Describe base layer (type 1) vs overlay layers (6, 8, 10, 19, 20, 21, 22, 24), how to compile base layer texture as well as how to overlay layer > 1 textures.