How to optimize the FPS of a character with multiply materials?

So you have a group of skeletal meshes? Or is it one skeletal mesh?

Each skeletal mesh has its own draw call to begin with. So if each character has multiple a good optimization would be to condense them all into a single skeletal mesh. This can be done at runtime: Working with Modular Characters | Unreal Engine Documentation

Then each material is its own draw call, and if each submesh has a separate texture that’s another draw call. The best you can do here is pack all of the textures into a single mega texture, or atlas. Then map each material instance to a different region of the atlas to get the desired texture. Don’t ask me how to do this, I don’t even know. I know the process, but I’ve never done it in UE4.

What this all comes down to though is this: Is your character actually a bottleneck for your game? If you’re seeing slowdown, have you profiled the game on your target platform/configuration to see what’s causing it? Having a few characters on screen with a few dozen draw calls each isn’t usually an issue unless you’re on mobile. For me, I had a couple dozen characters onscreen with some slowdown, but the reason for that was the IK calculations. I gated the calculations behind LOD1 and that did the trick. What does Session Frontend say?


Runtime DataTable : Import and export game data to and from CSV or Google Sheets while your game is running!

easyCSV : Read data from any CSV and put them in an easy-to-access string map!

iTween : Free, smooth, procedural object animation