Some of the issues my mod addresses in the Toolset can also be worked around in the character creator and/or on existing MOP/MOR files (in case you don't have the MRH files to edit). Sadly I don't know how to edit the in-game CC itself to reduce its restrictions, or we'd all be much happier!
To edit existing MOR or MOP files, you'll need either the Toolset or pyGFF.
Fixing the white scalp issue or selecting a custom scalp colour
In the CC
You can't.
On an existing MOP
Edit MORPH_TINTFILENAMES -> 11 (10 contains the tint for the brows/facial hair) to have the name of the correct tint. For example if the hair file was called "pfx_har_name", the stubble tint name in the MOP will be "t1_stbpfx_har_name" when it should be "pfx_stb_name".
On an existing MOR
Same as for a MOP.
Without editing MORs or MOPs
(Thanks to whisper779!)
- Identify the mod causing the problem. This will be a mod that has stubble and hair tints that have a custom prefix rather than t1/t3, such as "pt" used by pineappletree, or "bz" used by barnzi88.
- Make a copy of all the stubble tints in the mod and rename these to match the incorrect name that the toolset would generate. This is the name of the hair tint with "t1_stb" appended to the beginning. For example if the hair tints are called "pfx_har_name" and the stubble tints are "pfx_stb_name", the copied stubble tints should be named "t1_stbpfx_har_name".
This will allow older headmorph mods to work without having to edit lots of heads (as they will reference the renamed copies), and will still allow newer mods with the correct stubble tint references to work (since the old stubble tint files with their original names still exist).
Stop the CC snapping features to 100%
On an existing MOP
Compare the Nose and Eye slider names for your head in my list of duplicate morph targets to what is inside MORPH_MODEL_PARAMS. If the nodes have a "1.0" next to them (in MORPH_MODEL_VALUE) then they are already at 100% and renaming them will not change anything. If they have a number lower than 1.0 in them, you can make this edit to make them more subtle.
Note: Do not edit the MORPH_MODEL_VALUE nodes with the intent of altering how much a target is applied; it is more complex than that, and involves also removing base target influence in a ratio that is apparently not 1:1 (I tried; so far I've failed).
Open the chosen nodes up and edit the MORPH_MODEL_NAME nodes to replace the "a" near the end of the name with a "b" in order to use the duplicated target. For example, the Long Nose on a HM head is UH_CHM_01a_0; you would change it to UH_CHM_01b_0. Be aware that if a target is part of a list of multiple targets controlled by a slider, you will also find the others in the list in your MOP and you'll need to rename them too or your eyeballs/eyelashes might come unstuck! For example, Head Shape Thin on a HM head is not only UHM_CHM_08a_0, but also UEM_CHM_08a_0 (eyeballs) and ULM_CHM_08a_0 (eyelashes).
Adding beards to HM or DM heads while preserving mouth/cheek/jaw slider shapes
In the CC
Mostly possible. This works best if you don't have too many beards listed in your chargenmorphcfg, since it relies on precise clicking on the slider.
- Decide which beard you want, and remember the exact position on the slider.
- Remove the beard, and then set all other sliders how you want (moving anything except portrait and voice after the next step will revert the mouth/cheeks/jaw).
- On the beard slider, click precisely on the position of the beard you want (do not drag the slider). There may still be changes to the face if the MOP doesn't use my renamed targets (see the MOP subsection below), but it will be closer than the Gaunt McHollowCheeks you'd get otherwise.
On an existing MOP
Edit MORPH_PARTS -> 3 to have the name of the beard's level 0 model. Beware clipping. You may also need to follow the instructions in the section above (Stop the CC snapping features to 100%), focusing on the head shapes and the two affected jaw sliders.
On an existing MOR
Edit MORPH_PARTS -> 3 to have the name of the beard's level 0 model. Beware clipping.
Adding beards to heads that are not HM or DM
In the CC
You can't.
On an existing MOP
Edit MORPH_PARTS -> 3 to have the name of the beard's level 0 model. Beware clipping. This will only be visible in the CC on an EM head; on female heads it will be invisible. Do not try to apply a beard that's not meant for the race/gender combo head you're using, as it will not fit (eg if you put a HM beard on a HF head it will float far too high, as HMs are taller).
You may also need to follow the instructions in the section "Stop the CC snapping features to 100%", just looking for the two affected jaw sliders since the head shapes are not affected by beards on non-HM/DM heads.
On an existing MOR
Edit MORPH_PARTS -> 3 to have the name of the beard's level 0 model. Beware clipping. Do not try to apply a beard that's not meant for the race/gender combo head you're using, as it will not fit (eg if you put a HM beard on a HF head it will float far too high, as HMs are taller).
Adding beards to any heads once you're already playing
Using Dragon Age Face Replacer
Check out this tutorial by commanderstrawberry!
Using pyGFF
If you already have a MOR file you can skip straight to step 2 or 3 depending on if it needs editing, otherwise you'll need to grab the MOR from your savegame.
1. Extract the mor from your savegame:
- Open your savegame (.das file) in pyGFF.
- Navigate to SAVEGAME_PLAYERCHAR -> SAVEGAME_PLAYERCHAR_CHAR -> SAVEGAME_PLAYER_MORPH; when you click on it you should see a giant incomprehensible string of characters in the "Edit" box in the bottom left.
- Right-click on the "Edit" box and select "Export to file". Give it a name with ".mor" at the end (the compiled headmorph file extension), eg "hf_my_beautiful_warden.mor". Save. Keep this wherever you like; it does not have to be in your override folder.
2. Open the mor in pyGFF and edit MORPH_PARTS -> 3 to have the name of the beard's level 0 model. Click "Save" below the "Edit" box (make sure you do this or it won't change it) and then use File -> Save As and overwrite your mor.
3. Apply the new mor data to your savegame:
- Open your savegame (.das file) in pyGFF.
- Navigate to SAVEGAME_PLAYERCHAR -> SAVEGAME_PLAYERCHAR_CHAR -> SAVEGAME_PLAYER_MORPH again.
- Right-click on the "Edit" box and select "Import from file". Navigate to and select your MOR file, and click "Open". You'll get a little box telling you how many bytes of data were imported. Again, click "Save" below the "Edit" box (make sure you do this or it won't change it). Then use File -> Save As and overwrite your savegame.
Changing/removing scalp hair when a hair model is applied
In your chargenmorphcfg.xml file, the "cut" parameter for each hair determines which scalp hair it uses. Using cut="0" will turn off the scalp hair; cut="1" is the default thick crew cut; cut="2" is the sparser "Sheppard" crew cut; cut="3" is the receding hairline; cut="4" is the balding hairline. You can also use multiple cuts, which will create multiple entries in the hair slider using the same hair model but different scalp cuts: for example using cut="12" will let you choose between the thick crew cut and the Sheppard cut underneath the same hair model.
On an existing MOP
- Look for MORPH_MAT_PARAMS -> Whichever node contains HairM1, g_vFacialHairWeights
- Change MORPH_MAT_PARAM_INDEX to be the scalp hair cut number plus 3 (eg the default thick crew cut would now be 4; balding would be 7).
- Change MORPH_MAT_PARAM_VALUE to be the desired opacity of the scalp hair, from 0.0 to 1.0.
On an existing MOR
Edit MORPH_NODES -> HairM1 -> Morph_Vector4FParam -> g_vFacialHairWeights -> 1 (0 is a different set of weights). Each position in the vector is one of the scalp cuts: the first is the thick crew cut; the second is the Sheppard cut; third is the receding hairline and fourth is the balding hairline. The number in each position is the opacity of the cut, from 0.0 to 1.0. For example, a full-opacity Sheppard cut would be 0.0, 1.0, 0.0, 0.0, and a half-opacity balding hairline would be 0.0, 0.0, 0.0, 0.5. To have no scalp hair, set all numbers to 0.0.
Using extra texture slots
These instructions use pyGFF, since adding new structures in the toolset can be a bit difficult if they're not the layout it's expecting.
In the CC
You can't.
On an existing MOP
Click on MORPH_TEXTURES, then next to the bottom left edit box listing all the textures defined for the head, click "Add". This will create a blank texture listing that you can then fill out. Make sure "Zero-terminated" is ticked for all fields.
MORPH_TEX_NODE_NAME: For textures applied to the face, put FaceM1 here; for textures applied to the scalp use HairM1.
MORPH_TEX_PARAM_NAME:
Makeup/Skin Color Mask, Scalp Skin Color Mask: mml_tTintMask
Base Skin Texture, Base Scalp Texture: mml_tDiffuse
Base Skin normal map, Base Scalp normal map (necessary if you have added the corresponding diffuse texture above): mml_tNormalMap
Blend Skin Texture, Blend Scalp Texture: mml_tAgeDiffuseMap
Blend Skin normal map, Blend Scalp normal map (necessary if you have added the corresponding diffuse texture above): mml_tAgeNormalMap
Brow/Stubble Mask, Crew Cut Mask: mml_tBrowStubble
Brow/Stubble normal map, Crew Cut normal map (necessary if you have added the corresponding mask texture above): mml_tBrowStubbleNormal
MORPH_TEX_NAME: The name of your texture goes in here. It does not need the ".dds" extension written in.
On an existing MOR
Open up MORPH_NODES, and find the correct node for either the face (FaceM1) or the scalp (HairM1). Open that node, and click on MORPH_TEXTUREPARAM, then next to the bottom left edit box listing all the textures defined for the node (this may be empty), click "Add". This will create a blank texture listing that you can then fill out. Make sure "Zero-terminated" is ticked for both fields.
NAME: Check the MORPH_TEX_PARAM_NAME list in the MOP section above. For example, the Makeup/Skin Color Mask is mml_tTintMask.
MORPH_TEXTURE_NAME: The name of your texture goes in here. It does not need the ".dds" extension written in.
0 comments