Materials & Textures¶
Shown for FBX for Unity. The exporter writes a Unity material for every material slot on the character and wires it to its textures. The FBX's import settings then bind each slot to its material by name, rather than letting Unity guess and create its own, so the character is fully bound the moment it imports.
This page covers the textures first, then the materials part by part.
Textures (PNG)¶
Textures (PNG) is how many of the character's textures are written, each as a PNG in the textures folder.
- NONE writes none, for when your Unity project already has them. The materials still expect maps of the same names.
- USED writes the maps the generated materials bind, which is everything the character needs to look right in Unity. It also leaves out materials nothing on the character draws with, such as the skin of the face's lower detail levels, which are not part of the export.
- ALL adds Unreal's own specular, roughness and scatter maps in full. No material binds them directly, and they are most of the size of an export, but a hand-built skin shader can use them. It keeps every material the MetaHuman carries as well, drawn or not.
Maximum Texture Size & Texture Detail¶
Maximum Texture Size is the largest size the textures reach in Unity. A map whose source is smaller keeps its own size, so raising it only lifts the ceiling.
4K suits most projects. 8K is for close-up hero work and is heavy, especially on mobile. 2K is the smallest and lightest on memory.
The cap can only lower a map, never add detail. An 8K import needs the MetaHuman assembled with 8K textures in the first place.
Texture Detail decides how much of that size each kind of map gets.
- OPTIMIZED keeps the colour and normal maps at the full size and writes the maps whose detail changes slowly smaller: the shine of the skin and the clothing at half, the shading of the clothing at a quarter. The difference does not show, and the export is much lighter.
- FULL writes every map at its full size, up to Maximum Texture Size, for the most detail there is, with larger files and more memory in Unity.
Skin Detail Across Unreal Versions¶
We assembled the same MetaHuman in Unreal 5.6, 5.7 and 5.8, with the same textures and the same settings, and compared the skin maps each one baked. The colour came out the same in all three. The sizes and the fine detail did not.
| Skin map | Unreal 5.6 | Unreal 5.7 | Unreal 5.8 |
|---|---|---|---|
| Head colour | 2K | 8K | 2K |
| Head normal | 8K | 8K, softer | 8K |
| Body colour | 2K | 8K | 4K |
| Body normal | 8K | 8K, much flatter | 8K |
- 5.6 and 5.8 baked the same normal maps, pore for pore.
- 5.7 baked every skin map at 8K, but its colour maps held no more detail than a 2K map, and its normal maps came out softer. The body lost much of its surface relief.
So a bigger file from 5.7 is not a sharper skin. If close-ups of the skin matter, assemble in 5.8 or 5.6.
These are our own findings, from one character, so take them with a grain of salt. An Unreal update can change them, and your character may bake differently. What holds either way is that the exporter writes what Unreal baked, so the skin in Unity is exactly as sharp as the skin in Unreal.
Normal Map Handling¶
Unreal stores its normal maps in the DirectX convention, where green points down. Unity expects OpenGL, where green points up, so a normal map taken straight from Unreal is inverted in Unity and the clothes and skin look inflated. Normal Map Handling fixes that.
- AUTO (FAST) has Unity flip the green channel on import, set in each map's import settings with no change to the pixels. It is the recommended choice.
- AUTO (SLOW) flips the green channel in the exported PNG itself, for a pipeline that ignores that import setting.
- OFF leaves the maps exactly as exported, for a project that flips them itself.
The Normal Maps List¶
Normal Maps, in the Resolved MetaHuman Data group, lists every normal map the export will write, filled in when the character is resolved. Auto Flips It shows what the Normal Map Handling rule decided for each one. Leave Flip on AUTO to follow that rule, and set a map to FORCE ON or FORCE OFF only for the rare map the rule reads wrong.
Skin, Eyes & Teeth¶
The skin, eyes and teeth get their baked materials, on the right base colour and normal maps. The eyes have a tuner and material settings of their own, covered in The Eye Tuner.
Skin Material, shown on HDRP, is how the skin and the body are shaded.
- HDRP LIT lights the skin where the light reaches it. It is the safe choice anywhere.
- HDRP SUBSURFACE lets light pass a little way into the skin before it leaves again, the way skin behaves. It fills the tight folds of a face, the seam of the lips and the inner corners of the eyes, which otherwise darken because no light can reach into them.
Subsurface points the skin and the body at a diffusion profile. When your Unity project already has the exporter's profile, whatever it is called now, the export uses that one, a listed one first, so every character shares it. A copy you edited and listed is used as it is and never overwritten. Otherwise the export writes MetaHuman Skin Diffusion Profile into the materials folder, and the next export finds it there.
HDRP only uses a profile your project lists, and that list belongs to your project, so the export cannot add to it for you. When the profile is new, select the skin material in Unity and press Fix beside its Diffusion Profile, once. Until then HDRP falls back to its default diffusion profile, and the skin renders pink. See Skin looks pink on HDRP Subsurface.
URP has no equivalent. Its Lit shader has no subsurface of any kind, so the choice is not offered there.
Each of them also gets a surface map, written whatever the Textures choice. Unreal varies how sharply skin catches the light across a face, and that variation is what keeps a face from looking like a mannequin. The map carries it across, and the materials bind it. It is built from Unreal's own roughness, at the size Texture Detail gives it.
Glossiness 1 is how much the skin shines, on URP and HDRP alike. The shine follows the character's own skin, and at full strength it is the shine Unreal gives it. Lower it for softer, drier skin. The teeth take only a little of their own shine, so a talking mouth never reads as wet.
Lighting the Skin¶
The deepest folds of a face, the seam of the lips and the rims of the nostrils, catch almost no direct light, so how dark they read depends on the scene's ambient light more than on the materials. Unreal keeps them soft and lit, where Unity tends to draw them as dark lines. To come close to that in Unity, light the ambient from above and below, and leave the sides of the face to your realtime lights.
- URP. In the Lighting window, set Environment Lighting to Gradient, with Sky and Ground bright (around 1, the ground a touch above it) and Equator near black (around 0.13).
- HDRP. In a global Volume, set the Visual Environment's sky to Gradient Sky with Ambient Mode on Dynamic, and give the Gradient Sky the same shape: Top and Bottom bright, Middle near black. With the skin on HDRP LIT, an Exposure around 13 brings the folds close to Unreal's. HDRP SUBSURFACE fills the folds itself and wants less, around 11.
These are starting points for a close shot of a face. The right strength depends on your own lights, so judge it by the seam of the lips and the rims of the nostrils.
Clothing¶
Each garment gets a material of its own, coloured from the fabric. On URP the exporter also unpacks the garment's roughness and metallic into a metallic-smoothness map, and its occlusion into an occlusion map, where the garment has them, so fabric reads as fabric rather than a flat sheet. On HDRP the clothing gets its colour and normal maps.
Some outfits build their colour inside the material instead, from layers of fabric and a mask that says where each one shows, so there is no colour texture to take. The exporter has Unreal bake those materials into a colour map as it draws them, panels, trims and all, and on URP their roughness and metallic with them.
Glossiness 0.3, in the Clothes group, is how much the clothes shine. It works the way the skin's does: the fabric keeps its own variation, a trim Unreal draws shinier stays shinier than the cloth around it, and the setting decides how far all of it goes.
Hair¶
The hair and brow cards are built from the Card Atlases the resolve found, and every card material carries the character's own hair colour.
That colour follows the MetaHuman's own, strand by strand. Each strand takes a shade of its own, a greying character keeps its salt and pepper, and an ombré fades from root to tip the way it does in Unreal. Beards, moustaches and brows each take the colour set for them, rather than the head's.
Some hairstyles also carry short hair that Unreal draws only as individual strands, such as the buzzed sides under a longer cut. The exporter paints that hair onto the skin, strand by strand and in the same colours, the way a game draws a buzz cut. Anything it cannot carry is named in the message at the end of the export. Highlights stay behind, since Unreal places them by where each strand grows on the scalp, and so does the fine peach fuzz across the face.
The hair comes close to Unreal rather than matching it, since Unreal shades hair in a way Unity's standard materials cannot. The settings below bring it closer. See Hair looks different from Unreal.
Hair Material is the Unity material written for the hair cards.
- On URP it is URP LIT, a plain cutout and the safe choice anywhere, or URP REALLUSION.
- On HDRP it is HDRP LIT, a plain cutout, HDRP HAIR, Unity's own hair shading and the fullest strand look, or HDRP REALLUSION.
Brightness 0.75 sets how light the hair, beard and moustache read in Unity, whichever material draws them. Unity tends to light hair more brightly than Unreal does for the same colour, so the colour is darkened to keep the two alike, and the default is where they matched side by side, together with Root Shadow and Steady Depth. Lower it for darker hair and raise it for lighter. At 1 the colour is exactly Unreal's.
Richness 2 sets how deep the hair's own colour reads in Unity, on the same hair, beard and moustache. In Unreal, light passing through strand after strand deepens a head of hair toward its own colour, so a brown reads warmer and a blonde more golden than the colour itself. Unity lights the colour as it is, which can leave the same hair looking paler and cooler. Richness adds that depth back, and the default is where the two matched side by side, together with Brightness. At 0 the colour is exactly as Unreal stores it. Grey and white hair stay neutral at any setting, and dyed hair deepens in its own shade.
Hair Maps, shown for HDRP Hair, picks the texture set that shading reads. SPREAD keeps separate strand normal and mask maps for the fullest look, and BAKED packs the same detail into fewer textures.
Soft Edges melts the hairline into the head instead of ending it on a hard cut. The hair draws twice for it, once solid and once as a soft edge. Off, the hair draws once, which is cheaper and harder edged. It is shown on HDRP, and on URP with URP Reallusion.
Steady Depth keeps the shading between strands, and the hair's colour with it, whatever lights the hair, painted into the hair's own colour. Off, that depth comes from the scene's light instead, which leaves the colour map pure and lets the hair respond to the room, at the cost of reading warmer under a strong key. Either way the cards carry a map that shades the packed strands and lets the light run along them rather than washing the whole card at once.
Root Shadow 0.7 darkens the hair toward its roots. In Unreal the hair near the scalp sits in the shade of the hair around it, so the crown reads darker and the ends brighter, while a card lit on its own catches as much light at the crown as at the tips. Lower it for an even colour from root to tip, and raise it for deeper shade at the roots. It follows Steady Depth, painted into the colour when that is on and left to the scene's light when it is off. Brows lie flat and keep their colour.
Hair Lighting 0.4 sets how the hair catches the light, from single strands to one volume. Lower shows every strand but lets strands turned away from a light go black. Higher lights the hair as one rounded volume, which never goes black but flattens the strands.
Brows¶
Brows chooses what the brows are made of.
- CARDS uses the brow groom's own cards, light to draw.
- STRANDS builds the brows hair by hair from the character's brow groom, each hair in its own shade, sitting exactly where Unreal draws them up close. They cost more to draw, so they suit close-ups. Strand Thickness 0.5 sets how thick each hair is drawn, where 1 is the groom's own thickness.
The cards are a close fit to the brow rather than an exact one, so on some characters they sit a little higher or lower than the hair does in Unreal. Strands never do.
Brow Material offers the same choices as Hair Material, per pipeline. Brow cards always draw transparent, so the skin shows through the strands. Brightness and Richness work on the brows as the Hair group's do on the hair, apart from it: how light the brows read, and how deep their own colour reads.
With cards, Fullness 1 draws each hair on them a little thicker. Up close Unreal draws the brows hair by hair, and the cards carry finer hairs than it shows. Raise it for fuller, heavier brows, and 0 draws the hairs as the cards were made. It works with Update Existing. Soft Edges lets the cards sit on the skin instead of ending on a hard cut.
Eyelashes¶
Up close, Unreal draws a MetaHuman's eyelashes strand by strand from its eyelash groom, with that character's own count, length and curl. The export builds the same lashes, one by one, and they follow the lids through every blink and expression. They take the colour of that groom too. A MetaHuman with no eyelashes in Unreal gets none in Unity either, and the export says so when it finishes.
Lashes STRANDS picks what the eyelashes are made of. STRANDS builds the character's own lashes from its groom. CARDS uses flat strips painted with lashes instead, lighter to draw and the same set on every MetaHuman, the stand-in Unreal shows only from far away.
Strand Shape CROSSED sets how each lash strand is built. CROSSED lays two strips across each other, so every lash reads full from any angle. SINGLE uses one strip, half the geometry, and from some angles a few lashes thin out. Single suits a project that counts every triangle, and a character seen mostly from a distance.
Strand Thickness 0.65 sets how thick each lash is drawn. At 1 it is the groom's own thickness, and it starts finer, which reads closer to Unreal's lashes. Lower it for finer lashes, which can flicker in the distance, and raise it for fuller lashes that hold up further from the camera.
Tip Fade (%) 0.35 sets how much of each lash dissolves toward its tip. Fine lashes fade out at their ends in Unreal, which is why they read shorter and softer than a strand drawn solid to the end. At 0 the lashes stay solid to the tip, longer and bolder. This one also works with Update Existing, since it changes the lashes' material rather than their shape.
Keep Clear of the Skin keeps the lashes from sinking into the lid as the face moves, lifting any part of a lash that would go under the skin back to the surface. Off, short lashes that lie close to the lid can cut into it when the eyes open wide or look up.
Lashes, Strand Shape, Strand Thickness and Keep Clear of the Skin shape the FBX itself, so changing them takes a Full Export.
Lash Material is the Unity material written for the eyelashes, carrying that colour.
- On URP it is URP LIT, a plain cutout, or URP REALLUSION.
- On HDRP it is HDRP LIT, which keeps the strand detail though thin lashes darken when the light grazes them, HDRP HAIR, which keeps the lashes lit from any angle, or HDRP REALLUSION.
Brightness and Richness work on the lashes as the Hair group's do on the hair, apart from it: how light the lashes read, and how deep their own colour reads. Unreal draws its fine lash strands much darker and warmer than their stored colour, so they start where Unreal's lashes read, and Brightness at 1 with Richness at 0 is the colour exactly as stored.
Soft Edges lets the lashes fade out softly, where a hard cut would end them. With strand lashes it is what draws the Tip Fade.
Cast Shadows lets the lashes cast shadows on the lids and the eyes. Unreal's lash strands are so fine that their shadow barely shows, while in Unity each lash casts a full, sharp one, so they start without. Update Existing can switch it. On URP, editing a lash material by hand in Unity brings its shadow back, and the next export or update takes it away again. The Reallusion hair shader keeps its shadows either way.
Lash Shade (%) 0.8 darkens the eye softly just under the upper lid, as Unreal draws it there, deepest at the lid and fading toward the middle of the eye and out toward the corners. It is painted into the eye's shading layer, so it stays smooth at any shadow quality, and Lash Shade Reach (mm) sets how far down it fades. It shows while Cast Shadows is off and Soften Lid Edge is on, and it tunes with Update Existing.
The Reallusion Choices¶
The Reallusion materials use the hair shader from the Character Creator Unity tools. Your Unity project must already have that package installed for them to work.