Why are Metahumans so heavy to run?

Metahumans are supposed to be suitable for low end machines and mobile but my 3070 drops to 20 fps in the editor when I have 10 metahumans simultaneously in the level. I have disabled strand hair and lods 0 and 1. Even setting the lod sync to force lod 8 doesn’t affect framerate at all. What is it about metahumans that tanks performance and is there a way to make them run better? I tried some of the suggestion in the official optimization guide to no avail.

LOD 0 is for cinematics with maybe 3 char up close
You can specify the export lod and only include lod 1 or 2
or force the lod 1 in the level

2 Likes

I know you can force the lod in the level but it doesn’t make it run any better even at lod 8.

thy have very complex models and materials

Seems like everything the epic team touches turns to trash. Metahumans have always essentially been that, but since the acquisition they seem just overall worse off…

It was a cool concept, but not one that should be entertained for gaming really.
Cinematics? Sure.

Anyway

You need to reduce the number of bones in the skeletal meshes to get back some performance.

You can do so in the LOD settings, so it shouldn’t be overly-complicated to go down to a bare minimum of 17 or 18 bones.
Doing that would get some performance back up.

The rest of the issues is overly inflated materials, badly made skins/materials. You’d have to know how to make characters to fix/address that.

because of stuff like metahumans, people pretty much have no idea of how to manually create characters. Most won’t even know the difference between a groom and a hair card.

And thats another thing, the lower the amount of groom the better the pefromance. So going with lod hair cards would be the way to improve performance for that.

I do not know for a fact, but I seriously doubt meta humas include haircards or a system to bake out the groom to cards.

1 Like

they are 2.3 gig each if you have lod 0
times 8 is 18 gigs of ram.
If you export only lod 1 and no other lods they come in at 1.1 G
you have to export it dl it without the other lods to trim its ram use
and the hair cards on some of the new zero lods are for cinematics not games

1 Like

Not sure if people realize:

A regular custom made character is maybe a maximum of 256 byte (in ram) with everything needed to get it running except textures.

Of course, if you add 10 4k PNG textures to the materials, then your ram consumption will go up.

Thats probably something else that can easily be fixed to better performance.

Manually set the metahuman textures to a custom mip level that doesn’t compromise the look while maintaining performance.

In all honesty, 256px can be enough for AAA level rendering when materials are done right.
(Math calcs costs less than textures in ram on all moderns GFX).

Personally, I have some 8K textures for cinematic usage (and used to bake down).
When done properly the look is identical all the way down to a 2k compressed texture, and some times even below.

In other words:
Don’t feel like “the textures have to be huge, more resolution is better.” Just because some AAA title release texture packs which supposedly “improve” the look.

Limiting the engine used mip is a good way to reduce memory usage without damaging or altering the image files…

1 Like

With Metahumans a lot of devs had access to a very interesting tech regarding characters setup in engine, from mobile to AAA cinematics style, but for non-devs is not that easy understand what’s going on, and Epic usually release new tech without proper documentation, so lot of people rely on outside help, and looking at YouTube, everyone is doing the same thing, meaning running LOD0 characters with RTX on for beauty shots, and that’s it, so if you look for Metahumans tutorials/optimization, there isn’t really a lot about it.

Is too bad, because as complicated as the facial skeletal hierarchy and the body corrective joints look very cumbersome and not clear at all, if you open a skeletal mesh within the engine itself, there is a lot of already made optimization for the various LODs, which makes life a lot easier, you just need to explore a bit the setup, understand what’s going on and you can eventually apply the same techniques to your custom characters.

You can also get the source Maya file to explore, so that you can check the facial rig, you can check how the body skinning is done, and eventually repurpose the same tech ( rig, skinning info and so on ) on your characters, so you do have a lot of informations that you can use for your game.

But then again, people expect to drag&drop a Metahuman in the scene and everything is perfectly fine…well, no, you do need to put effort and understand what’s going on, otherwise you’ll endlessly complain that the tech is crap and doesn’t work as you want.

See, in most professional output things you usually have a trained model (like they now added to unreal or attempted to) which properly adjusts the mesh deform on its own based on bone rotations.
So there is a cost, but not as cumbersome as manually managing JCM (joint control morph)…
Pixar has been doing it for years. Others attempt to add dual quaternions to achieve similar effect (but fail miserably anyway?).

Aside from that, be weary what you learn off a meta human. They do literally nothing properly or best practice…

Its much better to resolve to the older human character documentation… they were way over the top already in terms of quality and features…

I remember games from a couple of years ago that only in cutscenes there was proper limbs deformation ( bicep/forearm ), while in game everything was just standard skinning with maybe a twist joint on the forearm, so at least in Unreal with the use of the Pose driver ( which is basically a conversion of the RBF node developed by Hans Godard ) you have a very powerfull tool to manage limbs and mostly upper body deformations, and most important of all, you can easily repurpose the entire setup across characters, and it saves so much time that is a game changer.
Consider that some tech artist also repurpouse the entire joint based facial rig, so that it’ll work on pretty much every face, without going thru Metahuman Creator.

The tech they developed is very useful, but is targeted mostly to devs who are capable of either doing customization of it or use it as a foundation for their project.
The entire LOD setup, if used properly, can give you the results you want, and if not, you can always create your own version with your own custom tools.

The facial rig alone is a better and advanced version of the Snappers rig ( theirs was 12/15k if I remember correctly ), and the fact that you can upload your mesh and have a facial rig in a couple of click is something that seemed impossible, but the people at 3Lateral know what they’re doing.

The docs are usually bad or updated way later after the release of their tools, tutorials are often not that great ( Epic ones are good, but sometimes I also forget that there is a tutorial section on the forum ), and you need to dig a bit to find what you’re looking for, but to have access to this tech basically for free ( if you just want to study ) is just amazing.

The bad part of all this is that people expect to drag&drop asset and assume that everything is already done for them…well, this isn’t how game development works.

1 Like

Not that its any fun, but making a standard vertex to bone weight painted rig for a face takes maybe about a day.
If you go the automated weight paint from bone envelope way that Blender (and other software) offer it takes even less since moving the bones in the proper places takes maybe 1 hour.

From there, you just create 52 poses to match ARKit’s documentation.

After you have the poses you convert them to morphs.

And you have a custom face, which closesly follows your actor actual performance, since when posing the 52 shapes you likely used HIS images as a reference…

The setup time, with the taking of actor photos, is maybe 8 hours.

The result is so much better than anything metahumans can offer that its not even funny.

And on top of it you don’t have issues with licensing or any other BS which may be part of the metahuman stuff.

So, again, what purpose do metahumans serve exactly?
None. Not even for learning material, since their vertex count is way over the top too…

(But then again many developers said this many times and were wholly ignored by epic. So obviously they don’t care. Since they can fake it like they have Daz Studio included with the engine for free, the meta humans could be even worse, and they still wouldnt care).

Would be great to see a comparison between what you create with the 52 blendshape setup and the same face pose achieved with a Metahuman facial rig.

Also the “closely follows your actual performance” part is not clear, you didn’t mean that a 52 blendshape rig will give you a much better result than anything metahumans can offer, do you?
If so, I really would like to see some example of that…

Usually yes.

The shapes you pose yourself will match the actor’s facial expression limits.

The shapes that metahuman puts up on the character are standardized.

The metahuman animator (and livelinkface) try and adapt the morph visually with the depth perception.
Both performances are fairly similar, but the one where your poses are driven by the limits of the actor’s actual face can achieve and provide a better match for the - in between - values which are normally used during the animation.
That generally leads to a closer to real end result.

Also, some actors - take Jim Carrie for one? - Have facial poses which by far exceed the norm that is given to standardized stuff (because he just isn’t standard I guess?).
When working with people like that you either use a custom rig, or even ArKit wont be able to match up expressions…

Here you go!