Requirements and Config Settings for MetaHumans

Describes how to configure and optimize Unreal Engine for workign with MetaHumans, including platform-specific configurations.

Windows
MacOS
Linux

The page provides reference information for all MetaHuman requirements to load and effectively use them in an Unreal Engine project. This includes all project settings, plugins, and console variables needed. This page also includes other relevant settings and commands that are useful for working with MetaHumans.

Unreal Engine Requirements for MetaHumans

The first time you bring a MetaHuman into Unreal Engine, pop-up prompts ask you to enable missing project settings, plugins, and console commands. If these aren't set, it's possible for your MetaHumans to not work or even fail to load properly.

metahumanenablemissing.png

Caption: Pop-up message for the settings, plugins, and console commands that need to be enabled.

When these messages appear, press Enable Missing to enable and add these project settings and plugins for your project and when indicated press Restart to reload the project and have these settings and plugins take effect.

The sections that follow details the complete listing of plugins, project settings, and console variables that are enabled and required by MetaHuman assets.

Project Settings and Console Variables

The following project settings and console variables will request to be enabled on the first import of a MetaHuman from Quixel Bridge. They will be added to the DefaultEngine.ini configuration file located in your project's root directory in the Config folder. For example, [MyProject]/Config.

In the configuration file, these commands will be added under the [ConsoleVariables] and [/Script/Engine.RendererSettings] sections.

Console Variable

Description

Required Value

r.GPUSkin.Support16BitBoneIndex

Enables support of greater than 256 bone indices for rendering on individual sections on Skeletal Meshes.

True

r.GPUSkin.UnlimitedBoneInfluences

Whether to use unlimited bone influences instead of the default 4/8 for GPU Skinning. This cannot be changed at runtime.

True

r.SkinCache.BlendUsingVertexColorForRecomputeTangents

Tangents will be recomputed for some vertices on skeletal meshes to ensure normals match to another skeletal mesh. Option 2 uses the green vertex color to perform this operation. For example, on MetaHumans, separate skeletal meshes are used for the head and neck, and the body. This command ensures that the vertices of the neck match correctly to those of the body.

2

r.SkinCache.CompileShaders

Whether or not to compile the GPU compute skinning cache shaders. It will compile the shaders for skinning on a compute job and not skin on the vertex shader.

True

r.SkinCache.DefaultBehavior

When Support Compute Skin Cache (r.SkinCache.CompileShaders) is enabled, this means that not all Skeletal Meshes will use skin cache by default. They have to opt in to use it. All MetaHuman meshes are set to opt in.

0

SkeletalMesh.UseExperimentalChunking

When MAX_GPUSKIN_BONES is set, this property reduces the number of skinned "chunks" that get created. This means that artifacts, such as seam lines, can happen where vertices should match up, like around the neck and torso.

1

fx.Niagara.ForceLastTickGroup

Forces Niagara ordering/dependency to be evaluated in the last tick group after all other groups for hair. With it disabled, Niagara is evaluated before the physics asset update and causes collision to be one frame behind in some cases.

This is a temporary fix and this setting only applies to Unreal Engine 4.26 and should not be used in later versions of the engine.

1

These changes require an editor restart.

Plugins

The following plugins will request to be enabled on the first import of a MetaHuman from Quixel Bridge. They are all included with Unreal Engine and are located in the Windows > Plugins browser.

Plugin

Description

Groom

Enables support for rendering and simulation of hair grooms in Unreal Engine.

Rig Logic Plugin v6.2.0

Enables support for 3Lateral's facial animation rig.

Live Link

Enables support of streaming animation data using a common interface from external sources into Unreal Engine using DCC tools like Maya or Motionbuilder. Live Link provides a way to edit animations externally while seeing a preview of your work inside Unreal Engine in real time. Motion capture systems can also use it to stream data into the engine that can be previewed in real time. For more information, see Live Link Plugin.

Live Link Control Rig

Enables support of LiveLink data through Control Rig.

Control Rig

Enables a node-based rigging system designed to provide riggers with tools to create flexible, dynamic, and procedural characters with artist-friendly interfaces. For more information, see Control Rig.

Megascans

Enables content to be exported from Quixel Bridge to Unreal Engine seamlessly.

These changes require an editor restart.

Additional Console Commands for MetaHumans

The following sections highlight some additional console commands that you can use and add to your specific configuration (*.ini) files.

MetaHumans on Mobile Configuration Commands

On mobile platforms, skinned characters are limited to a maximum of 75 bones . This limitation is the maximum number of bones that can be skinned on mobile GPUs in a single draw call. To ensure that your MetaHumans are able to load and run on any mobile devices you deploy them to, add the following command to the DefaultEngine.ini configuration file in your project. Place it under the [ConsoleVariables] section:

Compat.MAX_GPUSKIN_BONES=75

DefaultDeviceProfiles.ini Configuration Commands

Device Profiles provide options that you can use to set device and platform-specific configurations. With them, you can set many properties in a device profile that only affects that device or platform, such as scalability, rendering, textures, and much more.

You can manage and set device profiles options from the Device Profiles window, which can be accessed from the Window > Developer Tools menu. Alternatively, you can manually add your own DefaultDeviceProfiles.ini configuration file to your project's Config folder.

deviceprofiles2.png

Texture LOD Groups

MetaHumans use large 8K textures, which are not suitable for all devices and platforms. Use the TextureLODGroups to manage the minimum and maximum LOD (mip) supported for specific TextureGroups, which are set in the Texture Editor by the Mip Gen Settings.

On devices like mobile (Android and iOS) and Nintendo Switch, the max texture size should change the value associated with MaxLODSize in the configuration file.

Alternatively, you can use the in-editor Device Profiles window to select the device/platform you want to edit. Click the wrench icon under the Texture LODGroups column.

deviceprofilesbrowser.png

Select the texture groups (World, WorldNormalMap, and so on) that you want to edit. Expand their categories and change the Max LOD Size.

deviceprofilestexturelodsettings.png

For more information about supported platforms and their suggested best texture sizes, see the Platforms Support and Specifications for MetaHumans .

Early Z Pass Culling

The Early Z Pass is used to initialize a depth-only culling for the base pass. For mobile and other types of platforms, it can make hair faster to render.

On devices like mobile (Android and iOS) and Nintendo Switch, the console variables can be added to the configuration file under the desired platform by adding +CVars= before any console command entry. For example:

+CVars=r.EarlyZPass=3

Alternatively, you can use the in-editor Device Profiles window to select the device or platform you want to edit. Click the wrench icon under the CVars column.

deviceprofilesbrowser.png

Under the Console Variables category, expand the sub-category related to the console variable you wish to add by hitting the plus (+) icon. You can even search within the category's relevant console variables and only the ones specific to that sub-category will be displayed so that they are put in their proper location.

deviceprofileconsolevariables.png

For mobile devices, it's recommended to use:

r.EarlyZPass=3
r.Mobile.EarlyZPassOnlyMaterialMasking=1

For Nintendo Switch, it's recommended to use:

r.EarlyZPassOnlyMaterialMasking.=1

General Platform Commands

Console variables in these sections are stored in their own platform-specific configuration file.

For example, in your project you would have an [MyProject]/Config/ folder, such as IOS or Android or Switch. In this folder, you'll have a configuration file called Engine.ini.

Console Temporal Anti-Aliasing Upsampling

On console, Temporal Anti-Aliasing Upsampling (TAAU) enables high-frequency geometry, like hair or other finely detailed objects, to still retain nice, sharp detail at farther distances when using lower screen resolutions that may be upscaled to higher resolution screens.

Console Variable

Description

Changed Value

r.TemporalAA.Upsampling

This enables temporal upsampling to render at a lower resolution but maintain a high amount of quality. This is important for making hair rendering look good on console platforms.

1

r.TemporalAA.Algorithm

This specifies which TAAU algorithm to use based on the platform you're targeting.

  • 0 targets Gen4 console platforms (PlayStation 4, Xbox One, and Nintendo Switch)

  • 1 targets Gen5 console platforms (PlayStation 5 and Xbox Series X)

0 or 1

Hair Strands Quality Settings

The following hair commands help improve the quality of hair on your MetaHumans and know where it's possible to switch settings off that aren't needed to regain some performance.

Fine Detail Hair Shadowing

These commands enable finer details on shadows cast by hair onto the character. They also provide finer detail when light is transmitted through the hair groom. Compared to the default values, these commands allow better quality at the expense of more GPU time and more GPU memory.

Add the following to the Engine.ini file:

r.HairStrands.Voxelization.Raymarching.SteppingScale=1
r.HairStrands.Voxelization.Raymarching.SteppingScale.Shadow=1
r.HairStrands.Voxelization.Raymarching.SteppingScale.RayTracing=1
r.HairStrands.Voxelization.Virtual.VoxelWorldSize=0.1
Additional Hair Quality and Performance Settings

These particular settings can improve the quality and look of your MetaHumans, or even give back some GPU performance.

Console Variable

Description

Changed Value

r.HairStrands.SkyAO

n cases where environment lighting does not require occlusion cast by the groom onto the character's face, you can disable ambient occlusion from sky light. Disable it to save some GPU time.

0

r.HairStrands.Visibility.MSAA.SamplePerPixel

This controls the number of hair samples per pixel. Increasing the number of samples increases the quality but becomes more costly per frame.

2

r.HairStrands.MinLOD

This causes the cooking process to completely remove some hair LODs so that they don't take up memory on the target device. In case of strand-based grooms (provided with MetaHumans LOD 0 and 1) use a lot of memory, and are not suitable for platforms like mobile.

3

Platform Scalability Overrides

Unreal Engine provides a number of preset scalability options. These presets are accessible through the Level Editor's toolbar under the Settings > Engine Scalability Settings. These Scalability Settings can toggle individual low to cinematic quality, and each one toggles between console commands in the [UE Engine Path]/Engine/Config folder's BaseScalability.ini configuration file.

scalabilitysettings.png

These default scalability presets can be used for your own projects and even overridden per platform. To override per-platform presets for your project, you will need to create a folder with a Scalability.ini file inside. For example, "Android" for the folder name and "AndroidScalability.ini" for the configuration file.

Inside the configuration file, you can override scalability by using the same naming conventions of scalability sections found in the and adding your own set of console variables and values to replace them.

For example, in the BaseScalability.ini, if you want to replace setting in the [EffectsQuality@3], you would add that to a Scalability.ini, like Windows.

[EffectsQuality@3]
r.TranslucencyLightingVolumeDim=64
r.RefractionQuality=2
r.SSR.Quality=3

To see some examples set up for mobile platforms, download the MetaHumans sample project and go to the Configs folder. You'll find examples set up for iOS and Android.

Useful Platform Scalability Settings

The following are some settings that would be useful to add to scalability options to control quality and performance.

Console Variable

Description

Changed Value

r.SSS.Burley.Quality

This toggles Burley subsurface scattering to fall back to run scattering in separable transmission for better performance.

0

r.SSS.HalfRes

This enables parts of the subsurface scattering algorithm to run in half resolution. This results in lower resolution but is faster to render.

1

r.HairStrands.UseCardsInsteadOfStrands

This forces all groom elements in the project to use Cards and Meshes geometry in place of strands. If there is no Cards geometry available, nothing is displayed.

1

Select Skin
Light
Dark
Help shape the future of MetaHuman Creator documentation! Tell us how we're doing so we can serve you better.