Skeletal meshes and large FPS drop

Hey,

I’m also having similar problem,

first of all you need to figure out what’s going on…

open console and enable stat unit instead of only stat fps,

And see what’s biggest game = your game logic is eating too much cpu, draw draw calls from cpu to gpu are eating to much cpu GPU - to much vertices, faces or sth similar.

Let me know what is biggest so I will maybe be able to help.

Well I see draw calls…

Try instancing meshes or merge them… this is good for barrels.

Chickens? I assume you want to use animations on them.

I have same problem. I want to create C++ script to connect them dynamicaly but I can’t till 4.20.2 as now intelisense won’t allow me to compile anything new.

Hello everyone! Here is the problem that im trying to solve for whole week. If i put alot of Skeletal meshes in ther world (no matter how far they are from each other, hide\unhided; visible\invisible, even destroyed via blue print logic)
my FPS are goin down. And its impossible for me to make a forest and village filled with actors. By the way, Skeletal Mesh dont have any collision, if i enable it FPS drops to 15.

But if i place more complicated Static Mesh - everything is just fine.

I need help, guys.

By the way, barrels have twice more vertices.

The problem is not with barrels, they are just fine. Skeletal Meshes drops FPS :frowning:

Animating skeletal meshes are very heavy because of matrices multiplication. You can simply reduce bones using LODS, additionaly you can turn off animations on the meshes that are not currently visible and simply move them like static ones.

Hm, lods didnt help, ill try turn off animation

To add some details for everyone interested:

What ekicam2 meant by matrices multiplicaiton is that Skeletal Meshes need to recalculate their vertices and triangles every frame, if you want to see them move. To improve performance if you just see them in the distance the most simple way is to lower the update frequency for the animation, so it calculates only every 2nd frame or on a fixed delay.
Another way is to use fewer vertices or bones. That can be done by LOD. Again useful on distant skeletal meshes.

But if you are looking for something simmilar as Ultimate Battle Simulator does, you won’t find a nice solution in unreal yet. I guess one thing UMBS uses are instances. srathbun-vl was posting about his implementation of instanced skeletal meshes in the forum on Dec 2016.
https://forums.unrealengine.com/development-discussion/rendering/104477-created-a-new-instanced-skeletal-mesh-component-encountering-strange-perf-issues-in-d3d
We won’t get that very soon, I guess. RIght now every Skeletal Mesh component produces a drawcall and has it’s own overhad of many varaiables to be checked.
If you just want to display a crowd without interaction you could try to create them as one big skeletal mesh.

A.I. and pathfinding can be another cause for perfomance issues, becasue as a standard they are also calculate for every single character :wink:

Problem is kinda solved, by disabling animation blueprint in Actor BP, if player is too far away.