(follow up to
this post)
------------------------------------------------------
Regarding
characters' skin (I think the Material type is called
SkinB): everything looks mostly like in the previous post, keeping consistency while making use of less channels given the simpler demands of the skin material (except the head one, where things get
very interesting).
-------------------
_d DiffuseMap:
RGB: diffuse, ambient colors.
Alpha: Unused.
-------------------
_n RotationMap:
R: visibility mask (fully black, usually).
G: normal map's G channel.
B: emissivity again? (fully black, usually).
Alpha: normal map's inverted R channel.
-------------------
_s GlossMap:
RGB: specular color.
Alpha: shininess
-------------------
_m PaletteMaskMap:
R: (fully white, usually).
G: (fully black, usually).
B: (fully black, usually).
Alpha: (fully black, usually).
Seems to be there for consistency, mostly. As changing the skin color of a character affects the full bodyparts, I don't see any use for it as a mask (I guess Bioware could take advantage of it in the future).
About the Character Creator's Skin Color selector: the "simplest" way I've found to re-hue the DiffuseMap with the RGB values for each color in the slider that show up in the .XML files is to feed those values to a Mix RGB node set to Color transfer mode (kind of as one could do in Photoshop by painting with the pencil or overlaying a solid color using that transfer mode). I tried two of my characters' settings (pale white and pale red/pinkish) with that method and the result is very close, if not identical to their in-game's looks.
Re-hue.jpg
-------------------
_h PaletteMap: no idea about its usage.
(its channels seem to contain copies of the diffuse channel at different intensities)
-------------------
Something to point out: in the .mat files there are lots of parameters there to modulate everything. Their names are fairly self-explanatory and I can try to approximate the results, although some of them suggest being a bit subtler in their use. I'm most interested in FleshBrightness, as it seems to apply to the Rattataki species' bright white skin, and FlushTone, which I wonder how it works. See:
RimWidth (float)
RimStrength (float)
FlushTone (RGBA)
FleshBrightness (Float)
DirectionMap (associated texture)
ReflectionSpecInfluence (float)
etc.
------------------------------------------------------
Regarding
characters' heads: there are a series of additional texture files types:
Age:
looks like a _n style of RotationMap containing normal data to combine with the base normal map in some manner. I have somewhere a Blender nodes recipe to mix normal maps. Got to try and see what happens.
-------------------
Complexion:
RGB: Diffuse color.
Alpha: ignored.
Looks like overlaying the RGB by applying some Photoshop-like transfer mode (Multiply seems to work well).
-------------------
FaceHair: The folder contains only a single pair of DiffuseMap and RotationMap with flat values in their channels.
Actually useful in any way?
-------------------
FacePaint: (seems specific to certain NPCs such as companion Nadia Grell)
RGB: Diffuse color.
Alpha: Alpha.
Looks like simply overlaying the diffuse color through the alpha.
-------------------
Make_Up:
RGB: Diffuse color.
Alpha: Alpha.
Looks like simply overlaying the diffuse color through the alpha.
-------------------
Pattern: feline hair color patterns for Cathar only.
RGB: Diffuse color.
Alpha: Alpha.
Looks like simply overlaying the diffuse color through the alpha.
-------------------
Scars:
RGBA: unclear.
Looks like a _n style of RotationMap containing normal data to combine with the base normal map in some manner. The R channel is filled with black. I'm noticing that scars have a certain amount of coloration, so I'm wondering if instead of a normal map it is a bump map and perhaps some coloration mask. One can make a bump map out of the most prominent-looking channel to make things simpler, anyway.
(In the old posts people seemed to use the terms "bump map" kind of interchangeable with "normal map", so I don't know if the game uses traditional bump maps at all or actually everywhere)
-------------------
Tattoos:
RGB: Diffuse color.
Alpha: Alpha.
Looks like simply overlaying the diffuse color through the alpha (the alpha isn't fully opaque, letting some of the DiffuseMap show through and give the tattoo some of the underlying skin texture).
-------------------
Wrinkles:
_wm: unclear: weight maps for face bones?
_w: unclear.
------------------------------------------------------
Regarding
characters' eyes (I think the Material type is called
Eye):
-------------------
_d DiffuseMap:
RGB: diffuse.
Alpha: empty.
-------------------
_n RotationMap:
R: visibility mask (fully black, usually).
G: normal map's G channel.
B: emissivity (actually of use at times: Chiss eyes, plague infectees, etc.).
Alpha: normal map's inverted R channel.
-------------------
_s GlossMap:
RGB: specular color.
Alpha: at times empty, others simply there's no alpha at all, but I've seen it used in a couple of cases.
-------------------
_m PaletteMaskMap:
R: Eye color mask.
G: Filled with black mask. It seems to have to do with the reflectivity, which would affect the whole eye, then.
B: Unknown: looks like a copy of the R channel but some species have it and others have it blank. I can't see what's the criteria.
Alpha: Unused in most species. Rattataki even lack the channel.
-------------------
_h PaletteMap: as usual, no idea what it does. Some of those channels could have to do with Dark Side glowy eyes' emissivity and Dark Side corruption effects.
-------------------
Eyecubemap.dds seems to be the cubic environment map Bioware is currently using for the eyes' main catchlights, mixed in some manner and to some degree with the environment maps corresponding to each locale in the game. As Blender doesn't seem to understand the way .dds-formatted cubic sky maps work, I'll have to Photoshop it into shape or make my own (cubic sky maps are a general issue for Blender, I believe: it uses its own arrangement of the six views instead of the usual horizontal cross type).
Anyway, the eye's reflections will come naturally from the scene, so… But it would be nice to create some kind of directable eye highlights.
------------------------------------------------------
And that's all, I think. Of course, probably most of all that texture data can be omitted or approximated manually, but I'd still like to know all about those flippin' _h maps and the other subtleties.
Sorry for the (incomplete) info dump. I hope it comes useful somehow.