Character Customization: Difference between revisions

From wowdev
Jump to navigation Jump to search
No edit summary
Line 17: Line 17:
| Geoset || Set of 3D geometry, also referred to as submesh. For a list of known character geosets, check [[M2/.skin#Mesh_part_ID|here]].
| Geoset || Set of 3D geometry, also referred to as submesh. For a list of known character geosets, check [[M2/.skin#Mesh_part_ID|here]].
|}
|}
= 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).


= Relevant DB2s =
= Relevant DB2s =
Line 78: Line 69:
|}
|}


= 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).
= Rendering =
= 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.
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.

Revision as of 16:51, 26 July 2020

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. For a list of known character geosets, check here.

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

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

Based on which choices are enabled, different geosets will have to be enabled/disabled.

TODO: Describe default geosets to be enabled/disabled as well as which DB2 relations are required to know which geosets to enable.

Textures

Character skins consist out of several layers.

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.