Part of the Process guide
Early access

The new process system is only in the early access version of Human Generator. It replaces the process tab of earlier versions, which is deprecated. Details can still change. If something doesn't work, or the result is not what you expected, let us know, on the Discord or by email.

Recipes

A recipe is the complete state of the Process tab, saved under a name. Picking one from the Recipe dropdown fills in every option: the output format, the skeleton, how the textures are packed, which shape keys stay. You normally pick the recipe of the program you export to and never touch the rest.

Built-in recipes

RecipeOutputSkeletonTextures
UnityFBX, textures in a folder next to itHumanoid names, T-pose, root bone, metersMetallic-Smoothness, DirectX normal map
UnrealFBX with the SK_/M_/T_ prefixes of the Unreal style guideMannequin names, A-pose, root bone, centimetersORM, DirectX normal map
GodotglTF Binary (.glb) with the textures insideHumanoid names, T-pose, root boneMetallic-Roughness, OpenGL normal map
MixamoFBX, textures in a folderMixamo names, T-pose, no root boneSeparate maps, OpenGL normal map
Generic gameFBX, textures in a folderHuman Generator names, A-pose, root boneSeparate maps, OpenGL normal map
Blender render copyIn this fileOff, the full rig staysOff, the materials stay as they are

Every built-in recipe makes one LOD level at the High quality, converts the hair to high hair cards, keeps the face rig, the 1-click expressions and the corrective shape keys, and bakes the body, face and age sliders into the mesh. Unreal removes the correctives, as its retargeting tools don't use them.

Each program has its own page with what the recipe does and what to do on the other side: Export to Unity, Export to Unreal Engine, Export to Godot, Export to Mixamo.

Changing a recipe

Change any option and the dropdown shows the recipe as (modified), with two icons next to it:

process_recipe_modified

  • Reset (the arrow) puts every option back to the recipe.
  • Save (the tick) saves your changes as a recipe of your own.

Your changes are kept in the Blender file, so you can close and reopen it without losing them.

Saving your own recipes

Press the save icon, give the recipe a name and choose a group. The groups are the headings of the dropdown; create a new one for a project, or add the recipe to an existing group. A recipe with the same name as an existing one overwrites it, the dialog warns you.

Your recipes are files in the process_templates folder of your Human Generator content folder, one subfolder per group:

<content folder>/process_templates/MyGame/Mobile characters.json
Sharing a recipe

A recipe is one JSON file. Copy it into the process_templates folder on another computer, or commit it with your project, and it shows up in the dropdown there.

A recipe per target

It pays off to save a recipe per use: MyGame hero with 4k textures and three LOD levels, MyGame crowd with 1k textures and the Mobile quality, Preview with 512 textures for quick checks. Switching between them is one click, and every human you export the same way comes out the same.

Inside a recipe file

A recipe is readable JSON with the same structure as the Python ExportSettings. Options that are missing get their default, so a recipe only needs to hold what you care about:

{
    "version": 2,
    "label": "MyGame crowd",
    "output": {"format": "fbx", "naming": "plain", "textures": "folder"},
    "lods": [
        {"body": 2, "clothing": "low", "eyes": "low", "teeth": 2, "haircards": "low", "bones_per_vertex": 4}
    ],
    "skeleton": {"enabled": true, "names": "humanoid", "rest_pose": "t_pose"},
    "textures": {"workflow": "metallic_smoothness", "normal_map": "directx"}
}

Recipes saved with the process system of earlier versions are converted when they are loaded.

Python API - Recipes
from HumGen3D.human.process.settings import ExportSettings
 
settings = ExportSettings.from_recipe("unity")      # a built-in one
settings = ExportSettings.from_recipe("MyGame/Mobile characters.json")  # one of yours
settings = ExportSettings.from_recipe("/any/path/recipe.json")
 
settings.textures.set_resolution_tier("1k")
settings.save_recipe("MyGame", "Mobile characters")  # into the content folder

See ExportSettings › from_recipe and ExportSettings › save_recipe.