• RuntimesUnity
  • Skeleton Animation/Renderer Performance

Hi,

I’m currently experiencing an issue where the Time ms for Skeleton Animation and Renderer components is disproportionately high compared to the number of calls. In previous and following frames, or when looking at average frames, I notice that even with more calls, the Time ms is lower. However, occasionally, I see sudden spikes in Time ms, and I’m curious if there might be any potential causes for this behavior.

I’m wondering if I might be doing something wrong, or if there’s a way to better track and identify this issue. I’ve tried disabling objects that use Skeleton Animation the most and added debug logs to track initialization and update processes in the Skeleton Animation component, but I still can’t pinpoint the problem. I’ve also experimented with changing the Advanced settings in the Skeleton Animation component, but it hasn’t made a difference.

Could you provide any guidance or suggestions on how to approach and resolve this?

Thank you

Related Discussions
...

To address the performance spikes you're experiencing with the Skeleton Animation and Renderer components, there are several strategies you can consider:

  1. Profiling: Ensure you are using the Unity profiler without the "Deep Profile" option enabled, as it can distort timing measurements significantly. This will give you a more accurate representation of where the time is being spent.

  2. Culling: Make sure that the "Update When Invisible" option is disabled in the Skeleton component's advanced settings. This will prevent updates for skeletons that are not visible on the screen, potentially reducing unnecessary processing.

  3. Complexity Reduction: Review the complexity of your skeletons. High vertex counts, numerous bones, and constraints can contribute to performance issues. Simplifying these aspects can help.

  4. Clipping: Avoid using clipping polygons if possible, as they can be performance-intensive. If you are using them, try disabling them temporarily to see if it impacts performance.

  5. Parallelization: Consider parallelizing skeleton updates across multiple threads if you have the capability to do so. This can distribute the workload more evenly and reduce spikes.

  6. Debugging: Continue using debug logs to track initialization and update processes, but also consider logging specific metrics such as vertex counts, bone counts, and draw calls to identify patterns or anomalies.

By following these steps, you should be able to better identify and mitigate the causes of the performance spikes you're encountering.

@Steven Sorry to hear you're encountering issues. Please note that enabling Deep Profile will distort any measurements by a lot, rendering them pretty much useless. What is the output when disabling Deep Profile?