Limits of vanilla metarig?

This might be a bit vague and rambling, but please bear with me.

I’m learning to rig human characters. I have some good meshes and textures, and I want to create equally good quality rigs. By “good quality” I mean that the character should be able to, if not do splits or lotus pose (although it would be nice), then at least, say, hug their knees without bending the mesh in unnatural ways or ripping it.

I spent way too much time trying to get this done, and I’m coming to the conclusion that either I’m doing it wrong, or it can’t be done with vanilla metarig (in which case, I don’t understand the correct way to do it.)

The upper body seems to be okay. The two areas I positively can’t get to work correctly are pelvis and knees. In both places, I get decent behavior up to about a 90 degree angle. Any further, and it looks increasingly weird. In case of the pelvis, metarig only gives me two variables - placement of the end of the pelvis bone, and placement of the top end of the thigh bone - and no guidance on how to choose correct locations. None of the locations I tried work very well.

With knees, there’s even less room for maneuver, since there’s only one variable - where to put the thigh/shin joint. Frankly, I don’t see how I could get full range of motion out of the knees without drastic changes to the rig, because, in an actual human, the thigh bone does not connect to the shin bone directly, there’s a kneecap joint in between, so we can turn the shin bone parallel to the thigh bone.

I spent several hours trying to improve on the original knees, first tried to separate the knee joint and insert a spacer bone, which was incredibly hard to do (metarig does not make it easy to hack into its rigs)!, ultimately kind of worked, but totally destroyed my ability to IK. In the end I got something resembling a real knee that bends 180 degrees without gross visual artifacts with four additional bones and two bone constraints per side, and even that took lots of tweaking.

I don’t even know where to begin with the pelvis.

Naturally, I tried youtube, but couldn’t find anything that dealt specifically with metarig + high-poly meshes + full range of motion. Found only one video that dealt with hips/thighs in any detail, but it was from 2016 and it used a hand-built rig with multiple helper bones.

All this makes me wonder how is this supposed to be work. Am I reinventing the wheel here? Is there some trick or some standard combination of helper bones that would get this done? Is there an add-on that would give me accurate rigs out of the box without manually inserting helper bones and coding bone constraints?

One thing I tried to avoid so far and I want to minimize if not avoid, is manual weight painting. I’d like to come up with a process I can use with multiple meshes without having to hand-paint each one. Is that an unreasonable request, or do I have no choice but to hand-paint if I want it to work?

There is one important lesson that I’ve learnt in the past few weeks.

If you want to have a “realistic” (quoted because I’m not saying literally realistic, just less cartoony then your typical mixamo animation, with knee/elbow/wrist pronation/hip jiggle etc) rig, there are only three options:

  1. Build your own rig
  2. Use a lot, I mean a lot of shapekeys
  3. 1 plus 2

And either way you’ll need to manually weight paint. There is no way around it. Even for the cartoony character you might still need to clean the automatically generated weights.

According to Pixar:

From ‘Toy Story’ to ‘Soul’: Evolution of Pixar Character Movement (insider.com)

Mr. Incredible consisted of 426 primary controls, 111 secondary animation controls for more subtle movements, and 1,061 modeling controls for sizing and other adjustments.

Yes, that’s how hard professional rigging is. By the way, GGTX characters have 500+ bones too.

As far as I know, this is the right direction. If you delete the Rigify-generated shin bone and just attach your own knee and shin bones to the thigh, and add some drivers to tweak their position, you will get a much better result than Rigify (I think you’ve tried it).

But then how do you connect your own bones to Rigify’s foot IK? It can be done, but at some point I realized it’s faster to build my custom rig from scratch.

As a side note, even in real life the ulna is directly connected to the humerus, you might still want an additional bone for the elbow. The reason is that your “forearm bone” is usually not ulna or radius, just an imaginary bone right in the middle of the forearm. It can’t properly hold the shape of elbow.

More to this. If the whole process is Blender-only (i.e. you don’t need to export to a game engine or something), check Armature’s Preserve Volume option, and add a Smooth Corrective modifier after that. They’ll make your weight painting MUCH more error-tolerant.