How do you increase performances of rigs?

if youre right then I got tricked, but let me do a test. For now the rigs I have that hve very few bones are light fast instead those that have hi number f bones are slow asf

All my testing is done using Windows, but no doubt Blender version, OS platform, etc will likely have an impact, there’s just so many factors.

Well as we have already shown, it’s not the actual bones, it’s what they are attached to.
Take that rig with a few bones and just subdivide those bones, like 4x or more but still with the same mesh, etc. I will be amazed if the fps rate changes, since the number of bones has just about zero impact on actual playback speed.

2 Likes

if thats really the case I suppose we discovered somethin new. But then why they stress so much in courses to do “rig performance”? maybe they got me scared

  1. A rig is not just bones. A rig is any kind of structure for animation. A good example: are you tempted to just shrinkwrap your eyelids outside of a sphere to prevent clipping? That can get expensive. Are you, for example, using corrective smooth to address deficits in weighting? That’s a little expensive too. A real life, really expensive example: are you mesh booleaning a bunch of armature-deformed muscle meshes and shrinkwrapping your mesh outside of them? Wow, expensive.

  2. While the raw number of bones is not usually important, the number of weights per vertex can be important: a mesh where every vertex is weighted to four bones runs at a quarter of the speed of a mesh where every vertex is weighted to only one bone.

  3. It’s not impossible to create bone setups that can get expensive. This is usually because those bones depend on non-rendering mesh objects. Real life example, very simple, using soft body physics to determine the orientations of bones. In general, the reason why bones aren’t the reason for slowdown is not because they’re somehow faster to calculate than vertices, but because there are almost always going to be way, way more vertices than there are bones.

Maya, especially, is someplace that streamlines a lot of rigging. Techniques that are generally avoided in Blender for reasons of complexity are simple to implement in Maya, and are integrated-- there’s much less of a bone/modifier division. Those complex techniques tend to be expensive techniques as well. When they get streamlined, people use them more often, without regard to the expense of them, and have to be reminded, “Hey, somebody needs to be able to animate this thing.”

Edit: And let me add one more thing. People that are teaching are not necessarily super knowledgeable. There is no certifying authority for Youtube or, for that matter, for rigging or for any other part of 3D CGI. When you look online, you will find good information and you will find bad information. Sometimes, they’re just repeating something else they heard. Don’t think that if somebody teaches you something that it’s necessarily true. Instead, use that as a starting point for your own experiences. If your experiences contradict what you learned, well, I guess the teacher made a mistake. (That goes just as much here as it does on Youtube! When I offer advice, I don’t do it expecting people to believe me. I expect them to verify. I can be wrong just as much as anyone else.)

Let me find my favorite example: Cavity and Ambient Occlusion Maps - ZBrush® Character Creation: Advanced Digital Sculpting, Second Edition [Book] (oreilly.com) . This is O’Reilly, right? As good as a source as we’re ever going to find. But the idea that a cavity map is essentially the blue channel of a normal map is just utterly wrong.

8 Likes

Very likely they are talking about the whole character rig, as in what’s on the screen and what the animator has to use. Now sure the base bone setup is part of that, but in most cases (including Blender) that is usually a very small part of what impacts performance.
I have no doubt it’s just as easy to build a character rig in Maya that is also slow as a snail.
The reason to stress ‘rig performance’ is that no animator wants to adjust a control and have it lag like crazy. But at the same time, what’s being animated needs to reflect and look as close as possible to how the final render will look. And that can be a very tricky balancing act which takes a lot of skill, knowledge and testing, no matter what software is used.

3 Likes

I second @thetony20 here, the rig is considered to be what the animator interacts with, that is to say the bones and some mesh that is more or less close to the final.

No matter how good the deformations are, or clever are the automation, if the rig isn’t reactive it’s pointless because it will be a pain to use and animators are very likely to do a worse work than with an ok-ish deformation, ok-ish automation rig…

Problem with these performance issues is that there are many ways to make them bad so it’s a complex topic to address, and in the meantime it’s nearly the first thing on the requirements list an animator would make. It’s even trickier when working on a complex project, where to evaluate performances of a single rig you have to account for several characters, props, and dense environment in the same scene.

But eventually it’s a balance, since optimizing takes time, it might not be worth going through all the possibilities if your project doesn’t requires it, at least if there isn’t any low hanging fruits left then it’s good to ask where your energy will be the best spend. Is it worth optimizing the rig, or just animating with that ?

If you are serious about rigging it’s great to know different way to have fast scenes, like doing a cutted mesh rig like you describe in your first post, but it’s definitely not worth using them every time if the project doesn’t requires them !

Have fun !

2 Likes

Check for shape keys. The more of them that you activate, the slower you will get.

1 Like