MetaHumans

An in-depth look at what makes up a MetaHuman character, and how you can use these in your own projects

Windows
MacOS
Linux

This sample is available for Unreal Engine 4.26.1 and later versions. 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:

MetaHumanFileStructure.png

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:

BP_MetaHumanComponents.png

Component Icon

Component Type

Description

SkeletalMesh_64x.png

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.

S_Groom_64.png

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.

ActorComponent_64x.png

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.

LODSyncComponent.png

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.

LODSyncComponentProperties.png

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 UE4 Mannequin Animations onto MetaHumans 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.

MH_MotionCaptureAnimBP.png

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.

MetaHumanControlRigsDiagram.png

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.

ControlRig_Face.png

ControlRig_Body.png

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.

PhysicsRig.gif

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.

Groom_HairComponents.png

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:

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.

Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey
Dismiss