The various Components that make up a MetaHuman have different levels of detail (LODs). LODs control the complexity of a mesh or a groom, depending on how near or far it is from the camera. For example, a MetaHuman that is close to the camera (such as a player character) will be more detailed than many MetaHumans that make up a crowd.
This page describes how LODs work for different MetaHuman Components.
To learn more about LODs in Unreal Engine, refer to the Skeletal Mesh LODs page in the Unreal Engine documentation.
LODSync Component
A MetaHuman's Blueprint brings together all of the different Components that make up the MetaHuman’s visual representation. These Components use different types of geometry and different numbers of LODs.
The LODSync Component manages and synchronizes LODs across different MetaHuman Components so that they switch at the same time rather than individually and based on their own screen size, like normal LODs do. This maintains the visual quality and consistency of other MetaHuman Components that make up their body, head, hair, and clothes, even when they don’t share the same number of LODs.
For example, Components above the neck (Face, as well as all hair grooms) can use up to 8 individual LODs, while Components below the neck (Body, Feet, Legs, and Torso) only have 4 LODs. Because of the LODSync Component, for every two LOD quality changes that happen for Components above the neck, only one LOD quality change happens below the neck.
The LODSync Component is located in the MetaHuman Blueprint, at the bottom of the Components panel.
As a reminder, a MetaHuman Blueprint is named BP_MetaHumanName
by default. For example, if your MetaHuman’s name is Roux, their Blueprint will be named BP_Roux
.
Location of the LODSync Component.
When you select the LODSync Component, you can configure its settings in the Details panel, under the LOD category.
LOD section in the LODSync Component’s Details panel.
The LODSync Component contains the following configurable properties:
Property | Description |
---|---|
Num LODs | Sets the maximum number of available LODs that other MetaHuman Components can use. This is set to 8 by default. If you set this to -1, all Component LODs are calculated to determine the maximum number of LODs to use. |
Forced LOD | Sets a LOD to use across all of this MetaHuman’s Components. This is set to -1 by default, which means LODs automatically switch based on other settings controlled by the LODSync Component. Set this to 0 to have the highest quality LODs used across all Components, or 8 to use the lowest quality LODs. Note that setting Forced LOD to 0 or 1 for a large number of MetaHumans (for example, a crowd) can negatively affect your game’s performance. |
Min LOD | The minimum LOD to use when synchronizing Components. This is set to 0 by default. |
Components to Sync | An array of Components whose LOD may control or be controlled by another Component. Components have a Name and a Sync Option that controls how this Component syncs with other components:
Components that are flagged as Drive are treated as being in priority order, with the last Component in the list having highest priority. The highest-priority Component that’s visible sets the LOD for all other Components. If no Components are visible, then the highest priority non-visible Component sets the LOD. |
Custom LOD Mapping | An array of Components that provides more control over how LODs switch. For MetaHumans, each mapping contains 8 LODs and maps them accordingly. For example, in the screenshot below, you can see that the Body Component will switch LODs once for every two times the overall LOD changes. As a reminder, array items in Unreal Engine are always numbered starting from 0. |
Groom Asset LODs
MetaHumans, like their real-life counterparts, have varying amounts of hair that covers their head and face. This includes their hairstyle, eyebrows, eyelashes, beard, mustache, and vellus (also called "peach fuzz", which is the fine hair that covers the human body).
All of these types of hair are stored as Groom Assets in Unreal Engine. Each Groom Asset has an individual configuration in the Groom Asset Editor. Because Grooms can be made up of different types of geometry (from individual strands to cards to a low-poly mesh), it's important to configure and set them up to display at optimum LODs. For example, a real-time scene with dozens of MetaHumans using the highest LOD, strand-based grooms may run poorly on lower-end hardware, and changing these grooms to hair cards or meshes will boost performance.
To learn more about working with Groom Assets in Unreal Engine, refer to the Groom Asset Editor User Guide page in the Unreal Engine documentation.
The screenshot below shows what a MetaHuman hairstyle groom looks like in the Groom Asset Editor. You can see the LOD panel on the right (1). An information box on the left (2) gives information about the current LOD and number of strands relative to the current screen size, which can be useful
The LOD panel manages all the individual LODs that this Groom Asset has. You can configure each LOD’s amount of decimation (uniform reduction), screen size at which the groom should switch to the next LOD, and what kind of geometry you want this groom to support, among other settings.
Groom Assets support three types of geometry:
Strands
Cards
Meshes
Each of these types has its own panel, where you can further customize its individual properties.
The examples below demonstrate the highest LOD for each Groom Asset geometry type.
(Left to Right) Strand, Cards, and Mesh geometry types
If your Unreal Engine project targets specific platforms with strict performance requirements, you can also specify a Minimum LOD to use in the Groom Asset Editor’s LOD panel. This setting is located in the LOD panel, after individual LOD settings. For example, if you don't need to use strand-based hair, set the minimum LOD to 3, which is the highest quality LOD for card-based hair geometry.
If you only need to configure LOD overrides for some platforms, click Add (+) and select which platform you want to configure. The platforms you see in this menu depend on how your installation of Unreal Engine is configured. For more information about adding support for more platforms, refer to the Installing Unreal Engine page in the Unreal Engine documentation.
Force Hair Cards Instead of Strands
If you don't need strand-based hair grooms use the following console command below to force the use of card-based geometry instead of strands for all hair grooms that would have used strands otherwise:
r.HairStrands.UseCardsInsteadOfStrands 1
This command does not affect mesh-based hair geometry.