Download

"Bones to Remove" does not remove bones from skeletal mesh LOD in game, causing a big performance impact on MetaHuman characters

While testing the the MetaHuman’s performance in UE4 4.26, I noticed the performance of even the highest LOD was really poor with more than say 20 skeletal meshes on screen. I entered the console command “show bones”, and it looks like all of the bones are still there from LOD0, and being evaluated, even though they should be removed from the higher LODs. I then ran a test of exported highest LOD meshes, and removed the bones manually in a DCC, and the performance was about 4 times better. So the question is, why are these bones not being removed at higher LODs? It shows it working correctly in the skeletal mesh viewer, so does some other setting need to be enabled for this to work in game? Without this working, the LODs don’t really help much if LOD0 has hundreds of bones like in the MetaHumans.

Usually I do my skeletal.mesh LODs by hand.

Still, the built in reduction system used to work with the mannequin in .22.
This could be a bug in .26.

You should set up a non metahuman (use the mannequin) list of steps we can use to reproduce the issue.

I didn’t think “Bones to remove” had anything to do with the generated LOD system. I was under the impression that it would remove the bones at runtime in the specified LOD as a performance optimization, like it does in the skeletal mesh viewer.

Are you suggesting it is meant to only remove bones from LOD generation? I can’t find any documentation on it. Anyone know?

I didn’t say anything specifically about “bones to remove”.

I essentially said that within Persona (the skeletal mesh viewing system) generating LODs was working fine in previous versions.

Maybe I was unclear. I’m not using generated LODs. I know those are working. The question is why bones are not being removed from skeleton LODs at runtime when they are in the “Bones to remove” list. That’s why I thought that maybe it only has to do with skeletal mesh LOD reduction, but the documentation doesn’t say anything about it.