Character Customization: Difference between revisions

From wowdev
Jump to navigation Jump to search
Line 74: Line 74:


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

Revision as of 14:54, 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.

Important DB2 links

ChrCustomizationElement => 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

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.

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.