In this lesson, you will learn how to reduce CPU overhead by intelligently throttling how often your skeletal meshes calculate animation poses based on their relevance to the player.
The Problem: Animation Overload
By default, every skeletal mesh in your scene ticks its Animation Blueprint every single frame. If you have fifty background NPCs performing complex blend-space calculations while standing far behind a building, your CPU is wasting precious cycles calculating bone transforms that the player can’t even see.
The Solution: Optimization via AnimTickOption
Instead of running a full animation update every frame, you can leverage Animation Tick Option settings found within the SkeletalMeshComponent. You can configure the component to update only when the mesh is rendered or at a reduced rate using the Animation Tick Option settings.
When you set the AnimTickOption to OnlyTickPoseWhenRendered, Unreal skips the animation evaluation entirely if the mesh is culled from the view. For background characters, you can further optimize by enabling Distance-based Animation Tick settings in the component’s details panel or via the bEnableUpdateRateOptimizations flag in C++:
// Enabling the Update Rate Optimizations (URO) system
MeshComponent->bEnableUpdateRateOptimizations = true;
// You can further define a tick skip rate for distant actors
MeshComponent->AnimUpdateRateTickOptions.bUseCustomTickRate = true;
MeshComponent->AnimUpdateRateTickOptions.MaxAnimationTickRate = 15; // Max 15 fps
Implementing "Update Rate Optimizations" (URO)
The URO system allows you to define a "budget" for skeletal meshes. When a character is far away, the system will automatically lower the frequency of their animation updates—perhaps only updating every 2nd or 3rd frame—and then interpolate between those poses.
By strategically adjusting the AnimationTickRate and culling logic, you ensure that high-fidelity animations are reserved for the characters the player is actually interacting with. This prevents your animation thread from becoming a bottleneck during intense combat or busy, populated scenes.
Key Takeaway: By offloading animation updates for distant or occluded skeletal meshes using the URO system and tick-rate throttling, you preserve critical CPU performance for essential gameplay logic.