In this lesson, you will learn how to reduce the CPU overhead of skeletal meshes so you can spawn dozens of characters without dropping your frame rate.
When you have many characters on screen, the primary bottleneck isn't usually the GPU—it’s the CPU calculating bone transforms for every single character rig. To optimize this, we must focus on how Unreal Engine processes animation updates.
1. Enabling Animation Fast Path
The "Fast Path" allows Unreal to skip the overhead of running the full Animation Blueprint Virtual Machine for nodes that are simple, like direct variable connections. To enable this, ensure your AnimGraph nodes use direct property access rather than complex logic. If a warning appears in your AnimGraph (indicated by a lightning bolt icon), it means your animation is not using the Fast Path, which is significantly more expensive.
2. Throttling Update Rates
You rarely need an animation to update at 60 or 120 FPS for characters far away from the player. Use the Animation Budget Allocator plugin or the Update Rate Optimization (URO) settings within your Skeletal Mesh Component. By setting the bEnableUpdateRateOptimizations flag to true, you can tell the engine to skip animation frames or lower the update frequency for characters that are distant or off-screen.
// Example: Setting up URO in C++
GetMesh()->bEnableUpdateRateOptimizations = true;
// You can also adjust the visibility-based ticking
GetMesh()->VisibilityBasedAnimTickOption = EVisibilityBasedAnimTickOption::OnlyTickPoseWhenRendered;
3. Skeletal Mesh LODs
Just as you use LODs for geometry, you must use them for bones. In your Skeletal Mesh editor, use LOD Settings to remove "LOD Bone Reduction." By stripping away small, non-essential bones (like fingers or facial bones) on lower LOD levels, you drastically reduce the number of matrices the CPU needs to calculate per frame.
4. Optimize Retargeting Logic
If you are using IK Retargeting, keep in mind that solving IK chains is computationally expensive. If a character is at a distance, disable Full Body IK or complex Retarget Chains via blueprint, switching them to a simpler, pre-baked animation cache or a lower-fidelity pose.
Key Takeaway: Prioritize the Animation Fast Path and aggressively throttle update rates for distant meshes to minimize the CPU cost of calculating bone transforms.