mediafire link: gimp-facegen-plugin.7z
source code: https://github.com/ponyrider0/gimp-facegen-plugin
updated tutorial will be posted here: https://www.patreon.com/posts/gimp-facegen-and-32662501
GIMP-FaceGen-Tools
2019-Dec-27
Description:
Gimp-Python based plugin for rendering, baking and reverse-calculating FaceGen Textures, Age maps, Detail maps.
Requirements:
- GIMP 2.10 (might work with 2.8)
- GIMP DDS plugin
Preparation / Installing GIMP and DDS plugin:
- GIMP 2 can be downloaded here: https://www.gimp.org/downloads/
- DDS plugin can be downloaded here: https://code.google.com/archive/p/gimp-dds/downloads
- Make sure GIMP and the DDS plugin are either both 32-bit or both 64-bit.
- Make sure the plugin is installed into the proper folder.
- For example, If you install GIMP into "C:\Program Files\GIMP 2\", then you should unzip and copy the "dds.exe" file into "C:\Program Files\GIMP 2\lib\gimp\2.0\plug-ins\".
GIMP-FaceGen-Tools Plugin Installation:
Copy the entire facegen-tools folder into the gimp plugins folder. By default, this is "C:\Program Files\GIMP 2\lib\gimp\2.0\plug-ins" for GIMP 64bit. Restart GIMP.
Usage:
Rendering/Baking a FaceGen Texture:
- 1. Start GIMP, and open a base face texture: from the main menu, select "File->Open..." and then select a base face texture such as "Oblivion\Textures\Data\characters\nuska\darkelf\headdarkelf_f.dds", from the Oblivion Character Overhaul v2 mod. When asked, uncheck "Load mipmaps" and click OK.
- 2. Now load an age map: from the main menu, select "File->Open as Layers..." then select an age map such as "Oblivion\Textures\Data\characters\nuska\woodelf\headwoodelff20.dds". When asked, uncheck "Load mipmaps" and click OK.
- 3. Make sure the agemap is scaled to the same size as the base face texture. If it appears smaller, then select "Layer->Scale Layer..." and change the width and height to the size of the base face texture.
- 4. From the main menu, select "Filters->FaceGen Tools->Render FaceGen Texture...".
- 5. The plugin dialog pops up: select the proper layer corresponding for the Age Map and Base Texture. Click OK.
- 6. Once the progress bar completes, you will have a face texture with all agemaps baked in. You can now delete the other layers and export as a new DDS file.
Reverse-Calculating an Age Map from a hand-painted/custom FaceGen Texture:
- 1. Start GIMP, open base texture like step 1 above.
- 2. Right-Click layer for base texture in the Layers window. Select "Duplicate Layer".
- 3. Edit Duplicated layer by painting, image editing, importing images, etc.
- 4. Merge any created layers into the Duplicated layer (custom FaceGen Texture).
- 5. Select "Filters->FaceGen Tools->Calculate Age Map...".
- 6. Select proper layer corresponding to custom FaceGen Texture and Base Texture. Click OK.
- 7. Once the progress bar completes, copy/paste newly created age map to new file and export as new DDS file.
Installing a custom Age Map:
1. Determine the proper folder which contains the face textures and age maps for the desired race:
For Vanilla Oblivion, all races except for Orc, DarkElf, Khajiit and Argonian share the same face textures:
- Imperial: "Oblivion\Data\Textures\Characters\Imperial\"
- Redguard: "Oblivion\Data\Textures\Characters\Imperial\"
- HighElf: "Oblivion\Data\Textures\Characters\Imperial\"
- WoodElf: "Oblivion\Data\Textures\Characters\Imperial\"
- Breton: "Oblivion\Data\Textures\Characters\Imperial\"
- Nord: "Oblivion\Data\Textures\Characters\Imperial\"
- Orc: "Oblivion\Data\Textures\Characters\Orc\"
- DarkElf: "Oblivion\Data\Textures\Characters\DarkElf\"
- Khajiit: "Oblivion\Data\Textures\Characters\Khajiit\"
- Argonian: "Oblivion\Data\Textures\Characters\Argonian\"
For OCO2, only Imperials and Bretons share the same face textures:
- Imperial: "Oblivion\Data\Textures\Characters\Imperial\"
- Breton: "Oblivion\Data\Textures\Characters\Imperial\"
- Redguard: "Oblivion\Data\Textures\Characters\Nuska\Redgaurd\"
- Orc: "Oblivion\Data\Textures\Characters\Nuska\Orc\"
- DarkElf: "Oblivion\Data\Textures\Characters\Nuska\DarkElf\"
- HighElf: "Oblivion\Data\Textures\Characters\Nuska\HighElf\"
- Khajiit: "Oblivion\Data\Textures\Characters\Nuska\Khajiit\"
- WoodElf: "Oblivion\Data\Textures\Characters\Nuska\WoodElf\"
- Nord: "Oblivion\Data\Textures\Characters\Nuska\Nord\"
- Argonian: "Oblivion\Data\Textures\Characters\Nuska\Argonian\"
2. Copy the custom agemap into the proper race facegen texture folder, and then rename with desired age:
- For Imperials, agemaps are named "headhumanfXX.dds" and "headhumanmXX.dds", where the last "f" or "m" characters denote female or male sex, and the "XX" is a two-digit number representing the age.
- For any race which shares the Imperial facegen texture folder, they will share the same agemaps as well.
- OCO2 Redguards and Nords use the same agemap filenames as imperials even though the files are in different folders, i.e. "headhumanfXX.dds" and "headhumanmXX.dds".
- For Orcs, agemaps are named "headorcfXX.dds" and "headorcmXX.dds".
- For DarkElves, agemaps are named "headdarkelffXX.dds" and "headdarkelfmXX.dds".
- For Khajiit, agemaps are named "headkhajiitfXX.dds" and "headkhajiitmXX.dds".
- For Argonians, agemaps are named "headargonianfXX.dds" and "headargonianmXX.dds".
- For OCO2 HighElves, agemaps are named "headhighelffXX.dds" and "headhighelfmXX.dds".
- For OCO2 WoodElves, agemaps are named "headwoodelffXX.dds" and "headwoodelfmXX.dds".
HINT: Agemaps which are multiples of 10, seem to replace all missing agemaps for that given decade unless a specific agenumber exists. For example, the agemap for age 10 fills in for all ages from 10-19. If an agemap for 14 exists, then the game will show the age 10 map for ages 10-13, then the 14 specific map, then the age 10 map again for age 15-19.
3. In-game faces using the custom agemaps may look smooth unless a corresponding normal map is also created and named "<agemap_filename>_n.dds", example: "headhumanf10_n.dds". I think the agemap-normalmaps might only replace the base normal map and are not composited via multiplication like the texture map.