Thanks! Both captures are very helpful and identify areas that you can work on to help with performance. I’ll caveat that even with reducing the LOD in Metahuman, there are some features that are on that can still cause some issues.
To kick this off, there are two parts in the captures that show issues. In the first part of your LOD 0 trace you’ll see spikes (in green). Roughly around the number of metahumans you have. This is the initialization of Mutable and is what I would expect to see. There is a cost to Mutable in terms of spikey performance when building a lot of runtime meshes, but we’re adding streamable meshes in 5.6 to reduce the hitches further. Iny our second capture this is reduced because Mutable is working with less mesh data to combine and then set on the skeletal mesh of your actor. The second part is the static cost ( in red ) of your frame with that many characters.
[Image Removed]
This isn’t actually due to Mutable as it’s done its work by this point. The metahuman setup, specifically the pose driver nodes in the animgraph are causing a lot of time to calculate each frame, and with this many characters it’s blocking the game thread.
[Image Removed]We see this quite often with folks using Metahuman, and there are two things you can follow to help you reduce the characters further for runtime use.
First, we’ve written an animation performance guide that you follow to help you narrow down animation performance issues and how to solve them.
Second the Metahuman team has put together guide on how to use Optimized Metahumans.
https://dev.epicgames.com/documentation/en-us/metahuman/optimized-metahuman-in-unreal-engine
Unfortunately, this is the nature of Metahuman for runtime use and there is work to be done to have more than a couple of Metahumans on the screen at a time.
Dustin