Plugin icon

Runtime Character Creator
for MetaHuman

An in-game character creator for MetaHuman actors. This page walks you through it step by step โ€” even if it's your first time.

Unreal Engine 5.8 Version 1.0 by Adrenaline Games

? What it is

Picture the "create your character" screen from RPGs: sliders, buttons, a choice of hairstyle and outfit. This plugin gives you a ready-made engine to build that screen โ€” for MetaHuman characters from Epic Games.

The one thing to remember: the plugin ships no characters. You (the developer) bring your own MetaHumans, grooms and outfits, and the plugin lets the player swap them live in-game and save the look.

๐Ÿ’ก In plain words
Plugin = a TV remote. The TV (MetaHuman) and the channels (hairstyles, outfits) are yours. The plugin gives the buttons the player presses to switch.

โ˜… What you get

๐Ÿ’‡

Groom swapping

Hair, eyebrows, beard, mustache, eyelashes, fuzz. "None" = bald / clean-shaven.

๐Ÿ‘•

Outfit swapping

Swap the character's clothing with one click.

๐Ÿง

Body swapping

Switch between the body variants you register.

๐ŸŽจ

Sliders & colors

Material parameters โ€” e.g. makeup, tint. Sliders and color pickers.

๐ŸŽฒ

Randomize / Reset

One button = a random character or back to default.

๐Ÿ’พ

Save & load

The look is saved as a lightweight "recipe" (JSON or SaveGame).

๐Ÿงฉ

Ready-made UI widget

A base creator-window class โ€” you design only the look, the logic is inside.

โœ…

Editor validation

The plugin warns you about library mistakes before you even run the game.

โœ“ Before you start โ€” what you need

โœ… Good news
You don't have to write any code. The whole setup is filling in one "sheet" (a Data Asset) and dropping a component onto the character.

โ—Ž How it works โ€” the whole thing in one picture

Four blocks. The Library says "what's available", the Component "applies" it to the character, the Widget is the player's window, and the Recipe is the saved look.

๐Ÿ“š Library Data Asset: list of grooms, outfits, params. โš™๏ธ Component On the MetaHuman โ€” applies choices to the character. ๐ŸชŸ UI Widget The creator window the player clicks. ๐Ÿ’พ Recipe The saved look (JSON). player clicks โ†’ component changes the character โ†’ the result can be saved
Flow: Library โ†’ Component โ†’ Widget (player) โ†’ Recipe (save)

1 Install the plugin

1

Unzip the plugin

You received MetaHumanCreatorKit_UE5.8.zip. Inside there's a folder named MetaHumanCreatorKit.

2

Drop it into your project

Copy the MetaHumanCreatorKit folder into your project's Plugins folder. If there's no Plugins folder yet โ€” just create one.

YourProject/
โ”œโ”€ Content/
โ”œโ”€ Plugins/            <-- here
โ”‚  โ””โ”€ MetaHumanCreatorKit/
โ””โ”€ YourProject.uproject
3

Open the project

Open your project. The editor will ask to build the plugin โ€” click Yes. After a moment the plugin is ready.

๐Ÿ’ก Check
Edit โ†’ Plugins, type "MetaHuman Creator" โ€” it should be listed and enabled. HairStrands gets enabled automatically too.

2 Build the library (the list of choices)

This is the key step. You create one file that lists everything the player can pick.

1

Create a Data Asset

In the Content Browser: right-click โ†’ Miscellaneous โ†’ Data Asset โ†’ pick MHCK Creator Library from the list. Name it e.g. DA_MyCreatorLibrary.

2

Fill in the sections

Open the file (double-click) and fill the tables. Here's what goes where:

SectionWhat to enter
BasesA BaseId (any name) + your MetaHuman's class (its Blueprint).
Groom SlotsOne entry per slot. SlotId MUST match the groom component name on the MetaHuman exactly (see box below). Each option = OptionId + a groom asset. Empty asset = a "bald / none" option.
Material ParamsParamName = a real material parameter name. Choose Scalar (slider) or Color, the target (Face/Body/Outfit) and the slot index (-1 = all slots at once, e.g. skin tone).
Body OptionsOptionId + a skeletal mesh for the body variant.
Outfit OptionsOptionId + an outfit skeletal mesh (swapped on the SkeletalMesh component).
MorphsMorphName = a morph target name on the mesh, with a min/max range.
โš ๏ธ Groom slot names โ€” use these EXACTLY
We verified this on a real MetaHuman in UE 5.8. The components are named:

HairEyebrowsFuzzEyelashesMustacheBeard

The face is the Face component, the body is Body, and the outfit is SkeletalMesh. When you type a SlotId, use these same names.
๐Ÿง MetaHuman (actor) Face Body SkeletalMesh Groom slots (hair / facial hair): Hair Eyebrows Beard Mustache Eyelashes Fuzz Face = skin + makeup ยท Body = body ยท SkeletalMesh = outfit
This is what a MetaHuman looks like inside โ€” these are the names you enter in the library.

3 Add the component to the character

1

Open the MetaHuman Blueprint

Double-click BP_YourMetaHuman.

2

Add the component

In the Components panel click + Add and search for MHCK Customization Component. Add it.

3

Hook up the library

Select the new component, in Details find the Library field and choose your DA_MyCreatorLibrary. Done.

๐Ÿ’ก Startup options
bApplyDefaultOnBeginPlay โ€” if you tick it, the character starts with the default look from the library right away.

4 Build the creator window (UI)

1

Create a Widget Blueprint

Content Browser โ†’ User Interface โ†’ Widget Blueprint. When it asks for the parent class, choose MHCK Creator Widget.

2

Connect it to the character

Call Bind and pass the character's component. From now on the widget knows what to show.

3

Build the buttons

In the On Creator Ready event, get the lists (Get Groom Slots, Get Outfit Options, ...) and create buttons. On click, call:

Player actionFunction to call
Picked a hairstylePick Groom (SlotId, OptionId)
Moved a sliderSet Scalar (ParamName, Value)
Chose a colorSet Color (ParamName, Color)
Picked an outfitPick Outfit (OptionId)
Picked a bodyPick Body (OptionId)
Clicked "Randomize"Randomize Character
Clicked "Reset"Reset Character
โœ… No logic on your side
You only design the look of the window (buttons, sliders). All the "what happens to the character" is already inside the widget.

5 Save and load the look

A character's look is a recipe (FMHCKCharacterRecipe) โ€” a small data packet (what was picked), not heavy meshes.

To save

To load


! Important MetaHuman notes โ€” please read

Two things come from how Epic builds MetaHumans. These are not plugin bugs โ€” good to know up front.

โš ๏ธ Baked skin has no ready skin-tone color parameter
A shipped (baked) MetaHuman skin material only carries the rig-driven wrinkle parameters, no color. If you want a skin-tone slider โ€” use a non-baked skin material or add your own color parameter to it, then register that parameter name under Material Params.
โš ๏ธ Sculpting face shape (morphs) โ€” not on a baked mesh
A baked face mesh has no morph targets. Changing face shape needs the MetaHuman DNA / RigLogic system โ€” that's planned as a separate "pro" add-on, not part of version 1.0.
โœ… What fully works (verified on a live character in 5.8)
Groom and facial-hair swapping, outfit swapping, body swapping, and material parameters you expose yourself. That's a strong, verified core.

Body shape (thin / fat)

A smooth, continuous "fatness" slider isn't practical for MetaHuman in Unreal Engine. MetaHuman's baked body has no built-in shape morphs, and any continuous body-shape control would need either custom sculpted morph targets or Animation Blueprint bone-scaling โ€” neither of which fits a drop-in, self-contained plugin. So a real-time "watch the belly grow" slider is out.

The fast, reliable solution is discrete body presets: create 4–5 copies of the same character with different builds (using the Fat slider in MetaHuman Creator), register their body meshes as Body Options, and let a slider or selector switch the character from thin to fat. It swaps between the prebuilt bodies instead of morphing smoothly.

๐Ÿ’ก This is how most games do it
Very few games reshape the body continuously in real time โ€” the usual approach is stepping between a handful of preset builds (slim / average / heavy / muscular). Discrete presets give clean, high-quality results with no extra tooling, and this plugin supports them out of the box via Body Options.

</> Key functions

On the component (MHCK Customization Component)

FunctionWhat it does
Initialize From LibraryAssigns the library and finds the meshes.
Apply RecipeApplies the whole saved look at once.
Set GroomChanges the groom in a slot (None = bald).
Set Scalar Param / Set Color ParamMaterial slider / color.
Set MorphSets a morph (if the mesh has one).
Set Body / Set OutfitChanges body / outfit.
Randomize / Reset To DefaultRandom / default character.
Preload Library AssetsLoads everything up front (smooth creator start).
Get Current RecipeReturns the current look to save.

Helpers (MHCK Function Library)

FunctionWhat it does
Spawn Character From RecipeCreates a ready character from a recipe.
Configure ActorAdds the component and applies a recipe to an existing actor.
Recipe To Json / Recipe From JsonSave / load a recipe as text.

? Troubleshooting / FAQ

The hairstyle doesn't change

The SlotId in the library must exactly match the groom component name on the MetaHuman (Hair, Beard...). Check the capitalization. The log shows a "no groom component matching slot" warning.

I set the skin color but nothing happens

That's usually a baked material with no color parameter โ€” see Important MetaHuman notes. You need a non-baked material or your own parameter.

I change the body and the body's skin color disappears

The plugin re-applies saved parameters after a mesh swap โ€” if they're in the library and recipe. Make sure the body color parameter is under Material Params with the Body target.

The plugin won't compile / the component isn't listed

You need Unreal Engine 5.8 and the HairStrands plugin enabled (it enables itself). Close the editor, delete the plugin's Binaries and Intermediate folders, reopen the project and let it rebuild.

The loaded save is empty

If you use your own SaveGame: save through the provided MHCK Save Game or via Recipe To Json. Both are set up to persist correctly.