Download

When does a Rig become Too Heavy?

I’m rigging this character, but I’m afraid that its large amount of joints will slow my game’s performance.

The finished rig should have about 200 joints for the face and 50-100 joints for the body.

You can delete bones for different LODs, which means that for lower resolution (= further View Distance), you can delete bones.
So you should use the “heavy” rig for cinematic/close views
And one rig with fewer bones for lower resolutions.

Heaving a bone-heavy rig shouldn’t be a problem I guess.

PS: These eyes are creepy af, though :smiley:

That sounds like an unnecessary amount of bones;
Btw, bones aren’t much the issue. the real performance impact lies on how many vertices each bone affect and the blending weight.
If you have a vertex sharing 3+ bone weight to compute that is a lot more computations than a skin lock to just 2 bones per vertex.

If you arent aiming for mobile I think thats fine. But It depends heavily on the rest of your game, i.e. AI, environment, other npcs, lighting, phyisics… All those things will most probably affect your frametime more than this kind of rig.
Ive made a test with one of my rigs which has about 380 bones and 8 bone/vertex influences and found no impact on it. And that was with detailed environment and advanced lighting and running in VR.
One thing I might comment: That character looks actually really simple and I cant quite get how you need 200+ bones for that face. My human faces have a fairly complex bone based rig that even produces wrinkles on nose and forehead but still only use around 100 bones. Maybe you should re-evaluate your face rigging a bit if you want to optimize things. But from my experience, I didnt find that a reasonably complex high quality rig became too heavy for UE4.

Thanks for the great responses! I’m so glad all of my work is not in vain.

The point of this rig is to have a cute 3rd person character filled with high-quality animations that bring her to life:

I’ll have to work out the creepiness. She was originally planned for a horror game (hence the creepy eyes) but I ended up taking it in a parkour direction.

The purpose of having so many joints is to section off the deformations. Most vertices share only 2-3 weights. But I didn’t know that was important for game dev until now.

Most of the joints are necessary, but I ended up adding nearly 80 joints (each joint influences 1 vertex with %100 weight) just so that the eyelids wrap around the eyeballs properly. I’m trying to complete this rig without blendshapes so that I can add custom skins to the game with ease. If you know of any ways to rig eyelids more efficiently, please let me know!

I will leave this here as a matter of contrast, just as a cool fact to consider, because I’ve done it in the past and think is still relevant (maybe someone out there needs ~200 zombies on screen, who knows?!).

A method to skin a character with only 5 bones:
https://www.creativecrash.com/maya/tutorials/games-related/c/5-bone-humanoid-rig

Looking at the pic you have way more bones than necessary for the creation of facial clusters that will make it difficult later on to author what I assume would be facial animations.

Here is a good tutorial on how to set up cluster shapes in Maya but is the same technique used as to set up requirements.

A test I did using 70 bones

Many people have recommended using BlendShapes and Clusters for my rigs, but I tend to prefer bones. I thought I’d share how my rig is currently looking:

Right now, it’s running entirely off of 124 bones. When it’s finished, it will probably have about 130 bones (adding bones for sneer and squash/stretch controls). I still have a ton of work left to do; it’s incredibly messy.