This page covers a legacy MetaHumans workflow. This workflow is only supported in Unreal Engine 4, for projects that contain MetaHumans created with the original MetaHuman Creator. For an equivalent workflow that uses current MetaHumans and Unreal Engine 5, refer to the MetaHumans Sample (UE5) section.
This sample is available for Unreal Engine 4.26. and Unreal Engine 4.27. This project is a graphically intensive scene, and requires a high-end system with powerful graphics card to view it as intended using the latest ray tracing and hair features of Unreal Engine.
The MetaHuman sample is a full cinematic composed of two high-fidelity digital human characters that bring to bear all of Epic Game’s latest advances in character technology. This sample project provides a first look at MetaHumans, the digital characters that are the output of MetaHuman Creator, an online application that you can use to create characters of the highest quality..
Exploring and modifying this sample will help you learn how:
MetaHumans can be set up in your own projects
Real-time Motion Capture (or MoCap) data can be used to drive animations through Live Link
Managing multiple assets’ levels of detail can support high- to low-end hardware and platforms
Before You Start
The MetaHuman sample is best experienced using a high-end system with a powerful graphics card. This ensures that you have a stable frame rate and are able to view the latest ray-tracing, hair, and motion capture features of Unreal Engine.
Recommended system requirements:
Windows 10, build 1902 or later, that supports DirectX 12
A ray-tracing-capable NVIDIA graphics card
Unreal Engine 4.26.1 or later
Download the MetaHumans sample project from the Epic Games Launcher under the Learn tab.
While it is possible to open and run this project without the recommended hardware specifications above, the lighting and features of the project are designed with these in mind. The project will not look as intended, but you can still explore how the content is set up.
What is a MetaHuman?
A MetaHuman is a high-quality digital character that is created in the Unreal Engine online application MetaHuman Creator. MetaHumans created there can be downloaded through Quixel Bridge, directly into Unreal Engine, with only a few clicks—like any of the thousands of other assets found there.
MetaHumans are much more than a collection of parts brought into Unreal Engine; they are designed with thought and care to simplify the creation process and enable creatives to start generating content within the engine quickly. Take a look at the core components that make up our MetaHuman characters and how you can start using them with your own projects.
MetaHumans Project File Structure
MetaHumans files are stored in a MetaHumans folder, similarly to how the files for the UE4 Mannequin found in some of the engine’s template projects (like the ThirdPerson Template) are stored.. Whether you are looking at this sample project or creating your own characters through the MetaHuman Creator and sending them to Unreal Engine, they are all stored within their own folder for ease of reference and access.
In this project, the MetaHuman characters are found in the SampleMetaHumans folder:
This folder contains a set of core content that is common to all MetaHumans, whether male or female. You will find files used for both MetaHuman characters stored in the SampleMetaHuman/Common folder, while assets unique to each individual MetaHuman are stored in one of the corresponding metahuman_[Num] folders. For example, the female character is stored in the metahuman_001, and the male in metahuman_004.
Other things to note with the MetaHumans folder organization and structure include:
All MetaHumans use the same Skeleton Asset (metahuman_base_skel). This simplifies using the MetaHuman characters with animations and set up. You can find it located in the Content/SampleMetaHumans/Common/Female/Medium/NormalWeight/Body folder.
Some clothing is not common to all MetaHumans and, therefore, is stored in the Sample folder instead of the Common folder.
The metahuman_[Num] folders contain a Blueprint of a MetaHuman character. For example, BP_metahuman_001 is the female MetaHuman.
MetaHumans Blueprint and Their Components
Unlike the default UE4 Mannequin character, which is made up of a single Skeleton and Geometry Mesh with a couple of game-specific components set up in a Blueprint, the MetaHumans are made up of many different components. These components make up the body, face, hair, and clothes.
Let’s take a look at each of these components and explore their importance:
Component Icon | Component Type | Description |
---|---|---|
Skeletal Mesh | The child components of the Body component drive all the animations and movement of the other body-part components. The Torso, Legs, and Feet all comprise the clothed Skeletal Mesh components, while the Face drives animation of the head for facial movement. Groom Assets are parented to the head to match movement precisely. The Face also includes an optional TeethShell to help improve shadowing on teeth. | |
Groom | A variety of Groom components that define the look of the MetaHuman head are parented to the Face Skeletal Mesh component. This includes the Hair, Eyebrows, Fuzz (vellus), Eyelashes, Mustache, and Beard. | |
LODSync | This component manages MetaHuman level of detail (LOD) across all of its components to ensure that they change in sync with one another. It does this by querying the components and determining an overall LOD. This is an important component that ensures MetaHumans have a consistent look when they change LODs because some components have fewer LODs than others. For example, the Face Skeletal Mesh component uses 8 LODs compared to the Body’s 4 LODs. |
MetaHuman LODSync Component
Whether you are exploring this sample or creating your own MetaHumans in MetaHuman Creator, a LODSync component brings all the components of a MetaHuman Blueprint together to ensure their look remains consistent. MetaHumans include many different components that make up the hair, face, and body. Each component can contain a different set amount of LODs. For example, the Face contains 8 LODs compared to the Body’s 4. The LODSync component ensures that they sync together.
LODSync components are added to the Blueprint Components stack using the Add Component dropdown selection.
With the LODSync Component selected, the Details panel displays the highest queried number of LODs of all the components, and displays a list of all components that are managed by the LODSync component.
Property | Description |
---|---|
Num LODs | Specifies the maximum number of available LODs to use for this MetaHuman across all sub-components. If -1 is set, all sub-components will be calculated to determine the maximum number of LODs available. |
Forced LOD | Specifies a particular LOD to use across all sub-components. If set to -1, LODs are automatically switched based on their screen size and when they should switch according to other components configured with LODSync. |
Components to Sync | This is an array of all sub-components that make up this MetaHuman Blueprint. Each array element includes the name of the component referenced in the Components list, and its specified Sync Option. The Sync Option specifies if this component’s LODs should contribute, follow, not contribute, or be disabled when LOD switching is being considered. |
Custom LOD Mapping | Enables LOD control over specified components added from the Blueprint’s Components list. For components that contain fewer than the highest component’s number of LODs, this is necessary to map them to sync seamlessly. |
Animating with MetaHumans
Retargeting Animations onto MetaHumans
The MetaHumans sample provides Pose Assets, specific to the male and female characters, that can be used to retarget existing animations using the UE4 Mannequin onto a MetaHuman.
This Retargeting Animations to a MetaHuman guide walks through the requirements, setup, and process of retargeting existing UE4 Mannequin animations onto a MetaHuman.
Using Motion Capture with MetaHumans
MetaHumans are set up and able to be driven with full body and facial motion-capture data that is streamed in real time into Unreal Engine using the Live Link plugin with Live Link for a DCC application (like Motionbuilder or Maya) and the Live Link Face app to capture data. An Animation Blueprint assigned to the MetaHuman receives all the necessary data and directs it to the desired skeleton. The existing MetaHuman Blueprint for the character (for example, BP_metahuman_001) can then receive and use the data from the Animation Blueprint, and be driven by incoming motion capture data through Live Link.
To do this in your MetaHuman, select the Skeletal Mesh component called Body, and use the Details panel to change the Animation Mode to Use Animation Blueprint.
For instances where you want your animation to continually update in real time without needing to enable Simulation mode in the editor, add a LiveLink Skeletal Animation Component to your Components list. This enables staging and layout to be adjusted with a live subject without waiting for the simulation to start accepting animation data.
MetaHumans and Their Control Rigs
The MetaHumans in this sample and ones created through the MetaHuman Creator are fully rigged and ready for use in Unreal Engine. This includes full body and facial rigging. Each MetaHuman Rig consists of up to five individual Control Rigs working together in a layered approach. This approach enables flexibility and finer control over our MetaHumans and their animations.
Let’s take a look and how these are set up, and how they work with one another.
There are three layer groups that make up the control rigs powering MetaHumans: Puppet Rigs, Deformation Rigs, and Clothing and Physics.
MetaHumans Rigs Layer 1: Puppet Rigs
The Puppet Rigs represent the first layer of our MetaHumans. This is where motions start with the body and face. These rigs are the controls an animator sees and uses.
MetaHuman Facial "Puppet" Control Rig | MetaHuman Body Control Rig |
You can explore our body and face Control Rigs by navigating to:
MetaHumans/Common/Common/ and open MetaHuman_ControlRig.
MetaHumans/Common/Face/ and open Face_ControlBoard_CtrlRig.
In this sample project, all animation is on the animation controls. When creating animation for your target platform/hardware, you’ll want to bake the Body Rig down to FK joints, and the Face Rig down to RigLogic expression curves in an Animation Sequence. Doing this in-game can have a performance impact due to running Sequencer and Control Rig live.
MetaHumans Rigs Layer 2: Deformation Rigs
The Deformation Rigs make up the second layer of our MetaHumans.This is where a control rig is used to drive all the twist and anatomical joints. This is followed by twelve Pose Driver nodes in the Animation Blueprint, which drives more than one-hundred corrective body poses that help to retain volume and improve overall deformation of the MetaHuman.
The Face uses the RigLogic plugin and runs in a post process allowing for all the cascading changes to run through RigLogic expression curves from different animation interfaces, or Live Link Face, and deform the final face animation.
MetaHumans Rigs Layer 3: Clothing and Physics
The final layer is the Clothing and Physics. This layer depends largely on the clothing used with the MetaHuman, which may have its own Control Rig.
You can see examples of these on the MetaHuman female character that uses a Control Rig for her clothing, and on the MetaHuman male character that applies physics to parts of his hoodie for the draw strings and hood draped along the back of his neck.
MetaHumans and Their Hair Grooms
The Hair Rendering and Simulation features of Unreal Engine drive the strand-based hair simulations used with our MetaHumans. Features like the Groom Asset Editor enable MetaHumans to manage their hair strands and geometric representations for lower levels of detail in one place.
Each MetaHuman is composed of up to six Groom Assets: hair, mustache, beard, eye brows, eye lashes, and vellus (also called peach fuzz). Each of these uses a Groom component in the MetaHuman Blueprint to describe its hair geometry (strands, cards, or mesh), and properties.
Each Groom has a set of LODs that goes from Cinematic quality (LOD 0) to a far away character (LOD 7).
Click image for full size.
A LOD uses a particular geometric representation of the hair, from strands for high quality, to cards, to meshes (also called a helmet). Each LOD is represented in the following ways:
LOD 0–1 use strand-based geometry on high-end platforms (Xbox Series X, PlayStation 5, and PC), but also supports card representations for other platforms.
LOD 2–4 use card-based representations.
LOD 5–7 use simplified hair meshes.
For thin hairs, like eyebrows or thin beards, groom data is directly applied through the head shader as an extra layer of textures. This enables some cost savings while preserving the look of the MetaHumans. All grooms are attached to the head with a custom skinning mechanism, allowing them to pin every hair strand and hair card to a precise location on the head. This mechanism currently requires the character head to have its own skin cache option enabled on all platforms (with exception of Mobile, where hairs are directly attached to bone deformation).
The MetaHuman male groom relies on the hair physics solver to deform the hair accordingly to the character’s movement, allowing hair to collide with the head colliders.
MetaHumans Performance, Platforms, and Project Settings
MetaHumans are developed and designed to support a wide range of hardware and platforms with scalable quality from high-end cinematic to high-end mobile devices. This ensures that the same MetaHuman can be used across multiple platforms and meet performance requirements for them while maintaining a high level of fidelity.
Level of Detail Guide for MetaHumans
The components that make up a MetaHuman are created using the following specification as a guide for the individual LODs. Depending on the character, the clothes, and hair used, a MetaHuman will be in this general quality range.
Level of Detail | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|---|
Head | ||||||||
Vertices | 24000 | 12000 | 6000 | 2500 | 1300 | 560 | 270 | 130 |
Blendshapes | 669 | - | - | - | - | - | - | - |
Joints | 713 | 529 | 397 | 283 | 84 | 70 | 41 | 26 |
Skin Influences | 12 | 12 | 12 | 8 | 8 | 8 | 4 | 4 |
Animated Maps | Yes | Yes | No | No | No | No | No | No |
Body | ||||||||
Body Vertices | 30500 | 7600 | 3350 | 1507 | - | - | - | - |
Correctives | Yes | Yes | No | No | - | - | - | - |
Skin Influences | 8 | 8 | 8 | 4 | - | - | - | - |
Hair | ||||||||
Hair Style Strands | 50000 | 25000 | - | - | - | - | - | - |
Hair Style Card Vertices | 30000 | 15000 | 10000 | 3000 | 1500 | - | - | - |
Hair Style Mesh Vertices | - | - | - | - | - | 500 | 250 | 100 |
Facial Hair Strands | 10000 | 5000 | - | - | - | - | - | - |
Facial Hair Card Vertices | 15000 | 7000 | 3000 | 1000 | 500 | - | - | - |
Physics | Yes | Yes | Yes | No | No | No | No | No |
Platforms Support for MetaHuman Characters
MetaHumans are set up to run across many platforms from high-end PCs to mobile devices.
Click image for full size.
The table below gives you an idea of what support MetaHumans have across different platforms:
Platform | Ray Tracing Support | Hair | Best LOD | Max Texture Size |
---|---|---|---|---|
PC (Epic and Cinematic Quality) | Yes | Strands and Cards | 0 | 8192 |
PC (Medium and Lower Quality | No | Strands and Cards | 0 | 8192 |
Mac | No | Cards | 0 | 8192 |
PS5/XSX | No | Strands and Cards | 0 | 8192 |
PS4/XB1 | No | Cards | 0 | 2048 |
Switch | No | Cards | 3 | 2048 |
iOS/Android | No | Cards | 3 | 2048 |
Running on Mobile and Console Platforms
Using a MetaHuman on console and mobile devices requires some additional configuration to work.
On Mobile:
You’ll need to add Compat.Max_GPUSKIN_BONES=75 to the DefaultEngine.ini configuration file located in your Project’s Config folder. This command needs to be added under the [/Script/Engine.RendererSettings]
section.
On Console:
You must have authorized access to Xbox and PlayStation source code. If so, you can access the necessary per-console project configuration files through our Perforce (P4) servers.
Scene Lighting for Different Platforms
MetaHumans support a wide array of quality settings. Some of these high-end quality settings use lighting setups, such as ray tracing, that aren’t supported on all platforms.
If you explore the Level, you’ll find that we use separate sub-levels to load different lighting setups depending on the platform. The lighting setup used is determined through the Level Blueprint.
Platform | Lighting Setup |
---|---|
Mobile and Gen4 Consoles | 2 shadowed spot lights |
Gen5 Consoles | 4 Shadowed spot lights |
PC | Up to 4 ray-traced shadowed spot lights running on Epic quality |
MetaHuman Project Settings and Plugins
MetaHumans require a number of Project Settings, Console Variables, and Plugins to be enabled to work in a Unreal Engine. This is a comprehensive list of non-default Unreal Engine requirements:
Enabled Project Settings:
Support 16-bit Bone Index
Required because components with many bones, such as the Face Skeleton.
Use Unlimited Bone Influences
Required for the Face Skeletal Mesh, which uses 12 bone influences per vertex.
Ray Tracing
Support Compute Skin Cache
Required by Ray Tracing features to support recompute tangents.
Enabled Plugins:
Alembic for Groom
Groom
Control Rig
Live Link
Live Link Control Rig
Live Link Curve Debug UI
Additional Properties/Settings:
Dynamic Resolution is enabled for console platforms.
Future Improvements for MetaHumans
MetaHumans are the future of character creation for Unreal Engine projects using the MetaHuman Creator. The following is a non-exhaustive list of improvements being made to Unreal Engine and, by extension, MetaHumans.
Vulkan is not currently supported by MetaHumans.
Quality of MetaHumans on iOS, Android, and Switch platforms will continue to improve. This includes skin material features (such as animated maps), geometry detail, and hair attachment.
The Pose Driver setup on the Body component is expensive to use. There are several optimizations to this system coming in Unreal Engine 4.26.2 hotfix and 4.27.
Due to the lack of binding and simulation scaling with LODs, Groom components are more expensive to use.
Hair simulation is disabled on Mac. This is a platform-specific issue that requires further investigation.
Hair Shadowing flicker happens on the XSX that will be resolved in Unreal Engine 4.26.2 hotfix.
Hair shading appears black on Nintendo Switch. This particular issue will be resolved in Unreal Engine 4.27.
The Recompute Tangent feature may create non-matching normals at UV seams, or at seams between chunks created by the Compat.MAX_GPUSKIN_BONES setting.