1
$\begingroup$

(check this video for better visualization of problem)

A bone with a limit rotation constraint doesn't rotate on a plane. Why?

limited bone

$\endgroup$
5
  • 1
    $\begingroup$ Hi. A video can be ok, but ideally videos should be supplemental to good question content, e.g. a good, descriptive question and screenshots. We ideally want people to be able to answer the question (or see if they have the same problem) as easily as possible. Also, external links may at some point go down, which we try and avoid. $\endgroup$ Mar 9 '19 at 16:04
  • $\begingroup$ sorry for that but i can't think of any other way to explain my problem.It would be difficult to understand that using screenshots $\endgroup$ Mar 9 '19 at 16:06
  • 1
    $\begingroup$ @RayMairlot is right, you should add some text and images so it can be understable to future visitors/users! $\endgroup$
    – Yash
    Mar 9 '19 at 16:09
  • $\begingroup$ Hi karan, Welcome to Blender.SE. Your video doesn't actually make your question clear. I have radically edited your question. Could you look over it and make sure it stills support your original idea? $\endgroup$
    – Leander
    Mar 9 '19 at 16:17
  • $\begingroup$ yeah i thinks it's good to go.so you got that even though there is a constrain it is rotating abnormally as i demonstrated it works fine until i rotate the bone and starts the process again that cause this abnormal rotation $\endgroup$ Mar 9 '19 at 17:41
1
$\begingroup$

Constraints don't operate on raw transforms. They operate on transforms that are converted to matrices and then back to Eulers for evaluating the constraint. But Eulers alias-- there exists more than a single set of Eulers to describe any particular orientation. Consider how 180, 0, 0 is the same rotation as 0, 180, 180. Or consider how we have 360 degrees of longitude but only 180 degrees of latitude. So the Y rotation you get out is not necessarily the Y rotation you put in. This makes limit rotation (and copy rotation) among the most dangerous of all constraints to use.

What to do? One option is to change the orientation of your bone so that you can limit its local X rotation instead. Blender is designed to make it so that the XYZ Eulers you get out of the transformation matrix are the same, for the local X axis, as the Eulers you put into an XYZ Euler bone.

Another option to limit rotation is to use a locked track constraint instead. This requires several additional bones. First, a marker bone, parented to your original; a duplicate of your original, which locked tracks this marker bone; and perhaps a pair of bones, which can be targets of floor constraints for your marker bone, to limit its world space position such that it can only ever exist in a particular world-space quadrant of its parent. Sounds complicated? It's more complicated than it should be, I'll grant that.

$\endgroup$
0
$\begingroup$

from the image you posted it looks as though you double tapped the "R" key, which is 'rotate on all axis'. 'R' > 'Y' = Global,, 'R' > 'Y' 'Y' = Local,, 'R' 'R' = rotate on all axis

$\endgroup$
4
  • $\begingroup$ No, this is a "normal" rotation, resulting from only pressing R once. $\endgroup$
    – Leander
    Mar 9 '19 at 21:06
  • $\begingroup$ yeah its normal rotation along y axis which is constrained $\endgroup$ Mar 10 '19 at 4:35
  • $\begingroup$ mmh weird because I try with the exact same setup and if you press R Y it works, it rotates around the Y axis with the 90° limit you gave $\endgroup$
    – moonboots
    Mar 11 '19 at 11:49
  • $\begingroup$ check the video and do the same steps there are 2 cases in the video check second one and then share result $\endgroup$ Mar 11 '19 at 15:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.