I am currently running through an issue with my characters rigging. I created the rig through the addon rigify and almost everything is perfect except for the arms of the rig. Whenever I try and rotate the hand for a more natural pose it twists the center of the forearm. I have looked through and tried the parenting trick from this thread : https://blenderartists.org/forum/showthread.php?302275-rigify-forearm-twisting-whats-wrong but it has no effect. I have tried all types of parenting types and even messed around with the weight paints as well but nothing seems to fix it.
Here is simple one-bone forearm rig I made little while ago. You will not need to blend weigh paint along the forearm among different bones with this method. Just make forearm bone a Curved Bone. So when you rotate the hand target, forearm twists smoothly to follow it:
I am thinking of reworking this rig a little now. I have been studying the wrist and elbow joint more closely. Elbow joint is a hinge joint with hinge axis pointed in a specific orientation with respect to the shoulder joint. Elbow bends only in one direction. But, since shoulder joint is a ball joint, elbow joint axis orientation move around in world space depending on shoulder joint orientation.
It is obvious when I raise the arm in to T pose, elbow axis is rotated, and not pointing World Z axis. Shoulder ball joint rotate as you try to do T pose. So elbow joint rotate with it. Twist your hand in T pose, and elbow joint axis rotates with it as well. Human body is all twisted you know. It is a rigging nightmare!
Your absolutely correct Ridix… no matter in what position you rotate your palm there is always some kind of an elbow reaction to it…
one of the easy ways to simlulate this is to have an elbow target… then simply parent the elbow target to the Wrist bone… this way when the wrist rotates the elbow automajically moves in unison with it…
some times this can produce flipping… and twisting… but since the elbow target is simply parented and not locked in via a constraint… an Animator can simply move the elbow target around to prevent the twisting…
how did you manage it? im unsure what steps to take after removing the Def bones in the arms and legs. i dont know where to put all the constraints. do i have to look at every bone layer to figure this out?
I can guarantee that proper weight painting will fix your issue with the rigify rig. You’ll notice that every bone is split into two bones. Weight paint the DEF-whattever.01 bone like the second (DEF-whatever.02) does not even exist. Better yet, imagine that those two bones are a single bone. This will make the bone rotate in all directions and behave properly with the exception of the Y axis. This is where you add weight to the second bone.
For your issue, you would twist the hand (this is what rotates the second forearm bone) and then start weighting the forearm.02 until you get proper twist.
Maybe if I have time, I’ll upload an example of a properly weighted character.
I must admit, playing with my own arms (one of the weirder things I’ve said on the internet) and looking at the bones in pictures, I’m somewhat baffled as to what is actually moving in there to enable my forearm to rotate. I’m guessing it’s the two bones moving relative to one another, the radius and ulna since I note there is a very hard limit on the rotation, presumably when the two bones are hard against each other. Maybe we should be trying to model that, rather than one rotating bone, or one bone divided half way down the forearm.
In a very general and blue sky sense, as an amateur, I can’t help but wonder whether as computers get more and more powerful, it might be time to start modelling materials in 3 dimensions (hard things like bone, active ones like muscles, soft passive ones like fat) to create an actual 3 dimensional simulation of a body, rather than the traditional approach of deforming a mesh with “nothing inside it”, which requires all sorts of complex tricks to produce a convincing effect.
I’ve just tried replacing a forearm bone with a segmented bone as suggested by ridix and it really does work very well. Not perfect, but I think that’s partly my weighting anyway. It also seems somehow more natural to twist the forearm by rotating the hand, rather than as its “own thing”.