MetaHuman Optimization Guide is LIVE! Follow along and learn various ways to optimize your skeletal mesh characters.
Edit 7/22/24 - TL;DR: Optimizing MetaHumans can be done easily with a combination of settings & plugins. I’m working on a Learning guide for Skel Mesh optimization. Epic isn’t gatekeeping anything to UEFN. Their exclusive blueprint component just toggles on/off post processing anim BP nodes.
Edit 4/27/24 - Epic has decided to keep these 40% performance gains UEFN exclusive. Read my latest replies to this thread for updated information regarding this & everything else in this first post. When I wrote this first post, I wasnt too knowledgable in thia area.
Metahumans are known to cause heavy performance load. They are not, in any sense of the phrase, game-ready.
I’ve been chasing a way to make MetaHumans “game-ready” for a while now. They are an amazing tool for creators to use to make their works come alive! But placing more than 3 into a scene destroys any hope of game optimization. The reveal of the 5.3 tools & Epic boasting about the “efficiency and quality” of the new MetaHumans in the UEFN tech demo revived my hopes in a accessible solution to their performance issue.
The performance cost is due to the ridiculous amount of bones (animation calculations), not the complexity of the geometry. Long story short: Even without weighting the fancy corrective bones to any vertices, they still destroy performance at all LODs. So far (pre 5.3) the only way to fix this (theoretically) has been to export MetaHuman to external program, manually delete bones of choice, re-weight vertices, import to UE & retarget animations to new skeleton. Unfortunately, even this solution to MetaHuman game performance has no proof of concept, as everyone online claiming to have done this has not revealed any steps in their process and/or went radio silent.
I just tested these new Metahumans in UEFN 5.4 to see whats new:
Set up:
- The UEFN version is listed at 5.4.
- My local MetaHuman in the UE 5.4pre is version (2.0.3) and not labeled as legacy. Bridge does not prompt me to upgrade them.
- My local MetaHuman in UEFN is version (2.0.3-29956716) and labeled legacy in the Metahuman importer. It prompted me to update them.
- Clicked link in UEFN and updated my MetaHuman in browser to “UE 5.4”.
- My MetaHuman in UEFN is now current and version is (3.0.0-32294560)
- (If you try this by importing a MetaHuman into a new project, you may need to relaunch the program to avoid “generating indefinitely” bug.)
- My newly updated 3.0.0 MetaHuman is not importable into UE 5.4pre from Bridge. Only the old 2.0.3 one.
3.0! but what does it mean?
File sizes:
- 2.0 Low “MetaHumans” folder is 1.22 GB
- 2.0 Low “Girl1” folder is 339 MB
- 3.0 Low “MetaHumans” folder is 135 MB
- 3.0 Low “Girl1” folder is 41.8 MB
- 3.0 Med “MetaHumans” folder is 150 MB
- 3.0 Med “Girl1” folder is 48.6 MB
- 3.0 High “MetaHumans” folder is 176 MB
- 3.0 High “Girl1” folder is 67.3 MB
Keep in mind: during the UEFN tech demo, they said that their MetaHuman had an “average complexity hair style”. Mine has one of the more complex hair styles. So Epic was mostly telling the truth with their 50 MB figure. Well, they omitted the file space the “/Metahumans/Common” folder takes up. Briefly looking inside directories, Epic made the most file size improvements by consolidating 10s of hair & face uassets into just a few.
The LODs available for 3.0 MetaHumans are now organized differently per import quality (Low/Med/High):
- Low Import = 2 LODs (old LOD 5,7)
- Med Import = 3 LODs (old LOD 3,5,7)
- High Import = 4 LODS (old LOD 1,3,5,7) (might be 0 or 1, not sure)
Nothing new here at all that impacts performance, just a new organization of previous LODs available.
There is a new blueprint component available called “MetaHuman”. This comes with some promising settings! I found this component in UEFN 5.4 in the 3.0 MetaHuman blueprint by default, right under LODSync.
Maybe this component will allow us to bypass the heavy processing requirement of having hundreds of non-weighted corrective bones weighing down the skeleton. I’m cautiously optimistic. I’m not too versed in control rig, but having control rig options for compartmentalized sections of the skeleton can’t hurt performance, right? The animation gurus need to chime in on these options for potentiality.
Now onto animations. Since UEFN does not have profiling tools like UE, I did some back-alley testing:
-
2.0 & 3.0 MetaHumans perform the same by default.
-
But you get ~ 40% FPS increase in editor when you turn off all “correctives” in the new 3.0 MetaHuman component.
-
“Body Correctives” influenced ~ 90% FPS changes.
-
“Neck Correctives” & “Neck Proc Control Rig” influenced ~5% FPS changes each.
-
I did not test any of the advanced Control Rig settings. I will leave that to others experienced with Control Rig.
(Scalability: Cinematic, Ryzen 5800x / 4070 Ti Super, both mildly overclocked)
(Reminder: for Low import 3.0 MetaHumans, LOD 1 is the highest LOD possible. Equal to 2.0 LOD 7)
(I understand this bad methodoligy for performance profiling. UEFN has profiling tools disabled & no console. You cannot use the MetaHuman component inside of UE 5.4pre either.)
Hopefully UE 5.4 full release comes with the 3.0 MetaHuman component and it’s not hard-locked to UEFN. While the ~40% increase in FPS is nice to have out-of-the box, I don’t believe it will be enough, as others more knowledgeable than I have said the mere presence of the corrective bones on the skeleton is the core issue. More testing will need to be done for use-cases in populated real-time settings. I wish I could be more picky in what correctives are being used and which are not. Such as only having them for elbows but not the hands, legs or feet. At a glance, manual skeleton modification is still on the table.
The 3.0 MetaHumans now come with 25 basic locomotion animations:
- They have root animation
- They have foot step animation notifies
The 3.0 MetaHuman in UEFN comes with a big control rig:
Epic was clear on their intentions for MetaHumans to be used as NPCs only in Fortnite. Not sure if this rig will come with MetaHumans into UE 5.4 full release. Is this procedural locomotion? I’m not sure and I don’t care enough to test it. Let us know if you see anything interesting, animation people.
Python:
I’ve been practicing Python in order to mostly automate a custom modification to the MetaHuman skeleton. The new UE 5.3 API enables bone deletion, so this may be possible to do entirely in UE 5.3+. I’ve already created scripts already that return lists of bones per Mesh, LOD or whatever. So it should be possible maybe with specific skin weight copy and pasting? Python wizards that have messed around with vertex weights, please shout out.
Conclusion:
The new MetaHuman component will help, but not enough I’m afraid. We haven’t even tried animating their faces on top of this! I hope my investment into Python winds up helping me create a mostly automated solution for removing these corrective bones forever.