1
$\begingroup$

Before answering this question please consider that an 'answer' involving IK bone constraints should go in comments. In this question I am only interested in forward kinematics.

Many humanoid models use a T-pose like this:

A fairly old fashioned T-pose

I often end up doing custom rigs, and need to keep them simple (I really do). To avoid unrealistic bending of the elbow while animating, I want to constrain the rotation of the elbow joint.

One method (when using forward kinematics) is switch to Eulers and lock the rotation in UI, as illustrated by this picture:

enter image description here

However, some artists discourage the use of a straight T pose. So we often see this:

enter image description here

My guess is that an axis-angle rotation may do the trick in such cases, however figuring the rotation axis would require tedious calculations; also, behaviour when rotating an axis-angle-locked joint in 3D view is not very satisfying. Finally I don't really want to use something other than quaternion rotations if I can avoid it.

So, what would be a good way to constrain rotation in such cases?

$\endgroup$
3
  • $\begingroup$ Okay... I also want to ask about the same question with IK. But in such case rotation is locked via the bone panel (or is this method deprecated?) and I believe it would be adequate to file a separate question for this? $\endgroup$
    – user3345
    Commented Dec 14, 2014 at 11:40
  • $\begingroup$ Yes this would be better to put into separate question $\endgroup$ Commented Dec 15, 2014 at 8:46
  • $\begingroup$ @Jerryno will the answer be different (testing this with IK now) $\endgroup$
    – user3345
    Commented Dec 21, 2014 at 5:13

1 Answer 1

0
$\begingroup$

You can use bone constraints to limit bones rotations (and other things) in pose mode:

Here is the wiki on rotation limiting. The settings depend on actual bone setup and what the bone roll values are. Sometimes the bone roll needs to be also adjusted.

This will allow only rotation in local Z axis:

enter image description here

The range of motion can also be adjusted by setting the angle limits for appropriate axises.

$\endgroup$
4
  • $\begingroup$ Please add some more details on how to actually do it, an answer consisting of just a link isn't really an answer. $\endgroup$
    – PGmath
    Commented Dec 15, 2014 at 15:42
  • $\begingroup$ I think I tried this before; I don't know how to make it work for a non-straight T-pose. Have you tried? $\endgroup$
    – user3345
    Commented Dec 21, 2014 at 4:43
  • $\begingroup$ Actually This seems to work when correctly configured. LimitX, LimitY set to zero or something small, Limit Z unchecked or set to something appropriate (assuming facing orientation on Z axis). Convert should be set to local space and For Transform should be checked. If you can edit your answer with appropriate info, or a screenshot, I will approve this answer. $\endgroup$
    – user3345
    Commented Dec 21, 2014 at 5:12
  • $\begingroup$ Sure, I didn't know the actual setting, thanks. $\endgroup$ Commented Dec 21, 2014 at 13:38

You must log in to answer this question.