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

**URL:** <https://forums.unrealengine.com/t/how-to-optimize-the-fps-of-a-character-with-multiply-materials/237189>\
**Category:** Rendering\
**Tags:** unreal-engine\
**Created:** [June 24, 2021, 3:16pm UTC](https://forums.unrealengine.com/t/how-to-optimize-the-fps-of-a-character-with-multiply-materials/237189 "2021-06-24T15:16:24Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![JaredTherriault](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/jaredtherriault/32/1194499_2.png) [@JaredTherriault](https://forums.unrealengine.com/u/JaredTherriault)\
**Post date:** [June 24, 2021, 3:59pm UTC](https://forums.unrealengine.com/t/how-to-optimize-the-fps-of-a-character-with-multiply-materials/237189/2 "2021-06-24T15:59:15Z")

</div>

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](https://docs.unrealengine.com/4.26/en-US/AnimatingObjects/SkeletalMeshAnimation/WorkingwithModularCharacters/#:~:text=on%20our%20character.-,Skeletal%20Mesh%20Merge,Mesh%20through%20code%20with%20FSkeletalMeshMerge%20.&text=Without%20Skeletal%20Mesh%20Merge%2C%20each,total%20of%20150%20draw%20calls)

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](https://www.unrealengine.com/marketplace/en-US/product/4c7c4f8d523f4c90b2e26d23502c526c) : Import and export game data to and from CSV or Google Sheets while your game is running!

[easyCSV](https://www.unrealengine.com/marketplace/en-US/product/b25b855096e74d088d7553ccbe4072f2) : Read data from any CSV and put them in an easy-to-access string map!

[iTween](https://forums.unrealengine.com/t/open-beta-procedural-on-the-fly-animation-in-ue4-itween/10472) : Free, smooth, procedural object animation

---

_[View the full topic](https://forums.unrealengine.com/t/how-to-optimize-the-fps-of-a-character-with-multiply-materials/237189)._
