FBX for Unity¶
With Export on FBX FOR UNITY, the exporter writes one FBX carrying the expressions as blendshapes, the character's textures, and a ready-made Unity material for every slot. The folder imports into Unity upright, facing forward and fully bound.
What You Get describes the result. This page covers the choices that shape the character and how it imports, and Materials & Textures and The Eye Tuner cover how it looks.
Full Export & Update Existing¶
Mode sits right under Export. FULL EXPORT builds the FBX and everything beside it. UPDATE EXISTING keeps the FBX an earlier export left in the Output Folder exactly as it is, and rewrites everything around it with the settings in the window: the textures, the Unity materials and the import settings.
An update skips baking the expressions, so it takes a fraction of a full export's time, and it works just as well on a character carrying its full expression set. Use it to tune the materials, the hair, the eyes and the skin, or to refresh a character that is already in your project. Unity updates the character in place, and everything in your scenes that uses it keeps working.
The settings that shape the FBX itself hide while Update Existing is chosen: Parts, Blendshape Set, Part-Way Accuracy, Blendshape Precision, Pupil Widening, Expression Lighting, Clean Folds, the clothes choices, every Soft Edges, Hair Lighting, the brows' Brows and Strand Thickness, the eyelashes' Lashes, Strand Shape, Strand Thickness and Keep Clear of the Skin, Root Rotation and GUID Uniqueness. The update reads what the FBX was built with from the FBX, so a setting you changed since cannot disagree with it. Changing any of them takes a Full Export.
Point the Output Folder at the folder of an earlier export of the same character. If the folder holds more than one export of it, the exporter asks which one to update. If it holds none, or an export of another character, it says so and writes nothing. Exports made by earlier versions of the exporter update as they are.
When the update finishes, its message lists anything worth a look:
- Files an earlier export wrote that these settings no longer produce, such as the strand maps Spread writes after you switch Hair Maps to Baked. They stay in the folder, and you can delete them. The first update of a folder exported by an earlier version lists every file it did not rewrite, since that folder kept no record of its own, so anything you added to the folder yourself shows up there too.
- Material slots in the FBX left without a material, which Unity then fills with one of its own.
Your Own Import Settings¶
Export into a folder already in your Unity project, and the import settings you changed there stay as you set them, through a Full Export and an update alike. On each texture that is its platform overrides, such as a smaller size and a different format for Android, and its compression and crunch. On the character it is Mesh Compression, Read/Write and Optimize Mesh.
Everything the character's look depends on is still the export's to set: which textures are colour and which are data, the normal maps, and each texture's default size limit, taken from Maximum Texture Size. So when a texture should be smaller on one platform, set a platform override for it rather than lowering the default size, which the next export writes again.
Parts¶
- FACE exports the head on its own, with the eyes, teeth, lashes and the hair and brow cards that belong to it.
- FACE & BODY exports the whole character on one skeleton. It is the only form that can wear clothes or import as Humanoid.
The FBX is built around the face, so a body on its own is not offered here. Export Per-Expression OBJs for the body alone.
Blendshape Set¶
ARKIT-52 bakes the 52 ARKit shapes, what face tracking and most avatar setups expect. DNA-263 bakes every expression control the MetaHuman rig has, the fullest set. NONE bakes no expressions at all, for a character that only needs to hold a neutral face. It is by far the quickest export, since baking the expressions takes most of an export's time, and the file is named after the character alone, such as Akari.fbx.
Expressions Held Part-Way¶
In Unreal some expressions move the face along a curve: a lid closes round the eyeball, the jaw swings on its hinge. A blendshape moves every point in a straight line, so held part-way it drifts off the path the rig takes, a half-closed lid sitting a little off Unreal's. Part-Way Accuracy gives those expressions in-between shapes, taken from the rig at points along the way, and Unity passes through them as the expression's weight rises, so a half blink follows the lid as it does in Unreal. Each expression keeps its one name.
Turn it on when a character's expressions are often held part-way, a half-closed lid or a slightly open mouth. At full strength an expression is the same either way. The in-between shapes add about half again to the FBX and to its memory in Unity, and the export takes a few minutes longer.
Blendshape Precision¶
Every expression carries a faint pull that spreads across much of the face, far too small to see, and it takes up a large share of the character in Unity: on disk, in memory and in a build. Blendshape Precision (mm) 0.05 is how small a movement can be before the export leaves it out. At the default a full character with every expression comes out about a fifth lighter in Unity, with no difference you can see. Lower keeps finer movement for a larger character, and 0 keeps every movement. Higher leaves out more.
Pupil Widening¶
The DNA-263 set carries the MetaHuman's own shapes for opening and closing the pupil. Pupil Widening 2 is how far the opening pair, eyePupilWideL and eyePupilWideR, widens the pupil at full weight. 1 is the MetaHuman's own range, and 2 twice it. A lower weight in Unity still reaches every size in between, so the wider range costs nothing. The closing pair keeps the MetaHuman's own range, which already narrows the pupil about as far as an eye can. Shown for DNA-263.
Expression Lighting¶
Shown when a blendshape set is chosen. Expression Lighting decides whether the face's lighting follows each expression. Without it an expression still moves the face, but the face keeps catching light as if it were neutral, so a smile can read flatter. In exchange the character is much lighter in Unity.
- FULL lets the lighting follow every expression.
- NONE makes the lightest character, with expressions lit as if the face were neutral. The export sets the character's blendshape normals to None in Unity to match. Worth it where memory is tight, as on standalone headsets and phones, and the difference shows most on the widest mouth shapes.
Clean Folds looks after the places where an expression turns the skin right over, as a closing eyelid does. There the skin takes its lighting from the shape it folds into. Off, skin that sits tucked inside the lid at rest keeps the lighting it had there, and can show as dark marks on the closed lid. The hair, brow and lash cards keep their own lighting either way.
Clothes¶
Shown for FACE & BODY.
- Export Clothes exports the outfit the MetaHuman was assembled with, riding the same skeleton as the body. Off, the character exports undressed.
- Separate Meshes keeps each garment as its own mesh on the shared skeleton, so you can swap or hide it in Unity. Off, the garments become part of the body mesh, which is lighter to draw but fixed.
- Collar Follows Face lets a collar or high neck move with speech, so it follows the jaw instead of cutting through it. Only the garment near the face follows. The rest of the outfit stays put.
- Glossiness 0.3 is how much the clothes shine, on URP and HDRP alike. The shine still follows each garment's own fabric, so the parts Unreal draws shinier stay shinier. See Clothing.
The Unity Group¶
How the FBX imports into Unity.
- Unity Version UNITY 6.3 is the version the import settings are written for. The list is the versions the import has been checked against.
- Render Pipeline is URP or HDRP, and decides which materials are written. Both are tested. HDRP comes closer to Unreal, and URP's defaults are the more finely tuned.
- Import as Humanoid writes the settings that make Unity rig the character as Humanoid, so it can share animation with other humanoid characters. Off, it imports with its own bones and plays only animation authored for it. Shown for Face & Body.
- Root Rotation (Default Roll -90) is the rotation baked into the export so the character stands upright and faces forward in Unity, with no need to turn on Bake Axis Conversion. The default is correct for a standard MetaHuman.
Avatar Mapping¶
Shown with Import as Humanoid. A Humanoid avatar names the bone of the character that each part of the body moves, and Avatar Mapping chooses who names them.
- FULL MAPPING names every bone for Unity, so animation moves the eyes, the fingers and the toes where they are.
- UNITY'S GUESS leaves the choice to Unity. On a MetaHuman it picks some of them wrong, so animation turns the corners of the eyes instead of the eyes, bends each finger from inside the palm, and never moves the fingertips.
Leave Out Jaw , shown under Full Mapping, keeps the jaw out of the avatar, so Humanoid animation never moves it. The character's expressions already open and close the mouth, and a Humanoid avatar holds the jaw a little open whenever a clip does not animate it, so a mapped jaw parts the lips on every clip without jaw motion. Off, the jaw is part of the avatar like any other bone.
Both only change how Unity imports the character, so Update Existing brings them to an earlier export without a new FBX.
Skin Weights¶
Skin Weights is how many bone influences per vertex Unity keeps when it imports the character. MetaHuman skinning uses up to eight, and Unity's default of four coarsens the deformation around the shoulders, hips and the clothes.
HIGH (8 BONES) keeps the full skinning. STANDARD (4 BONES) is Unity's default and the lighter option.
This is the import cap only. To see more than four bones at runtime, also raise the Unity project's Quality → Skin Weights, or the character's SkinnedMeshRenderer Quality.
The Live Eye Blur¶
The edge of the eye softens into the lids and the pink inner corner as Unreal blurs it, drawn live in Unity, on URP and HDRP alike. The face carries a second copy of the eye's shading layer for it, with the material MI_Face_EyeShell_Blur and a shader that comes with the export.
The blur reads what the camera has already drawn behind the eye. URP keeps that only when Opaque Texture is on, so turn it on in the URP asset your project renders with, or on the camera. HDRP keeps it whenever the camera's Refraction is on, which it is unless a camera's frame settings turn it off. Without it the blur is skipped and the eye keeps its sharp edge, and on URP the blur material's inspector says so.
A Unity project holds one copy of the shader and its inspector, which every character in it shares. The first export into a project puts them next to its character, in its Shaders folder. After that, every export finds them wherever they are and updates them there, so you can move them anywhere in the project, a folder of their own included. An export into a folder outside a Unity project takes the shader alone.
The blur material's own settings:
- Live Blur turns the blur on and off.
- Also on Mobile runs it on phones and standalone headsets too. Off, they keep the sharp edge, as Unreal does on mobile, and skip its cost. Shown on URP, since HDRP does not run on mobile.
- Blur Size and Blur Color are the MetaHuman's own, from Unreal, with Blur Amount from the export window applied.
- Corner Fringe lays a faint blush of the pink inner corner on the white beside it, as the light through the skin does in Unreal, in the corner's own Fringe Tint.
Update Existing writes this material again, so shape the blur from the export window's Live Blur group, see Eye Material.
Asset IDs¶
Two MetaHumans share a lot of names: both have a T_Head_BC, a body material, and so on. Left alone, importing the second into the same Unity project would clash with the first. Each export gives its assets Unity ids of their own instead, and GUID Uniqueness chooses how.
- FOLDER PERSISTENT keeps one id with the output folder and reuses it. Re-exporting into that folder updates the same Unity assets in place, and moving or renaming the folder is safe.
- EXPORT UNIQUE uses a new id every export, so several exports overwritten into one folder import as separate sets you can compare side by side.
Update Existing always keeps the folder's own id, whatever this is set to, so an update never breaks a reference in your project.