Why is game performance tanking? Is it because of a lot of skeletal mesh components per character?

I bought a Modular Soldier pack from the market place and so all its components are separated by different skeletal mesh components. So I have around 400 characters on a map all playing a simple running animation.

My question is why is the performance so bad with only running animation - my best guess is too many skeletal components but there is also a chance the code for selecting units may be hampering performance? The code for selection is also done in blueprints is that the problem? The big squares each have a tick running for selection response is that the reason or is it contributing to the problem? Their collision box also has tick running.

Edit - I just realized all skeletal mesh components have a tick with Zero interval. So is this all caused by having a gigantic amount of tick running on one frame? Is the issue that simple? The LODs for the mesh are also pretty solid but do you think the models need more LODs or some new form of skeletal mesh optimization that I don’t know about? Do animations need optimization as well?

Here is what the Engine Unit stat say
Frame 198.35ms
Game 198.73ms
Draw 128.70ms
GPU 197.55ms
RHIT - 29.84ms
Draws - 18759
Prims - 3653.1k

The 1st picture below shows unit stats for the map while its being played.
The 2nd picture shows a part of the many skeletal meshes combined to form a character.
Thanks in advance :smiley:


Alright I made the whole skeleton into one and played a single static animation without using a animation blueprint like before… While the FPS has improved it still isn’t the on the level I was expecting it to be.
Here are the updated Engine Unit Stats -
FPS - 13.37
Frame - 75.05 ms
Game - 74.55 ms
Draw - 43.84 ms
GPU - 73.99 ms
RHIT - 20.78 ms
Draws - 15746
Prims - 84181.2k

EDIT - I just found out that the one piece Skeletal Mesh does not have any LODs. I will hopefully figure this out by tomorrow and post the solution