Extra Optimizations For NPCs

This page covers how to optimize NPCs further for maximum performance gains.

Character Mesh Optimizations:

These are settings you can use to optimize characters. you can find them in the details panel of the mesh component on BP_Pedestrian.

  1. Allow Cloth Actors = false: Use this if you don't need cloth physics, keep it true if you do.

  2. Collision: Set to "No collision" if you handle collisions through the capsule and don't need ragdolls.

  3. Cast Shadow: Set to false if you don't need shadows for your characters. This will significantly improve performance at the cost of visual fidelity.

  4. Kinematic Bones Update: if not using ragdolls, set this to Skip all Bones, otherwise leave this as default. This will greatly improve performance. NOTE: it can be changed at runtime.

  5. Defer Kinematic Bone Update: Set this to true when possible. NOTE: it may cause issues with physics sims.

  6. Skip kinematic update when Interpolating: Set this to true when possible, NOTE: it may cause issues with physics sims but should be fine for most use cases.

  7. Skip bounds update when interpolating: Set this to true when possible.

  8. Visibility based anim tick option: Set this to Update only if rendered where possible.

  9. Component uses fixed skeletal bounds: Set this to true when possible. NOTE: this may cause issues with attached items.

  10. Enable Update Rate Optimizations: Set this to be true when possible.

  11. Use LODs or Nanite where possible.

Character Movement Component Optimizations:

  1. Update Only If Rendered: This should always be true and will significantly improve performance.

  2. Component Should Update Physics Volumes: Disable this when possible. NOTE: it may cause issues with physics sims.

Animation Blueprint Optimizations:

  1. Class Settings->Use Multi-Threaded Animation Update: Set this to true when possible. It may cause issues on some devices that do not support multi-threading.

Coding Optimizations:

  1. Pedestrian Destroyer: Run this on a timer of 0.5-1.5 seconds, depending on how fast you move through the world.

  2. Crowd Spawner: Run this on a timer of 0.5-2.0 seconds, depending on how fast you move through the world.

  3. Caching Casting: If casting, it is recommended to do this on begin play and cache it as a variable.

Physics Optimizations:

  1. Async Physics Tick: Recommended to have this enabled at all times. its found in the project settings.

Rendering Optimizations:

  1. Occlusion Culling: This may or may not help your performance, depending on your game, enable or disable to test. It is just a checkbox.

  2. Shadows: Shadows are costly; use them only when needed.

  3. Do not use many material slots on a character, this increase draw calls.

  4. if using Nanite, try to use material instances as it will batch them.

Last updated