My english is bad. I apologize for my bad english.

I've been watching tutorials and learning on my own too, but I cannot seem to be able to find a solution to this problem in particular, or maybe I simply don't know how to describe it. :(


I am rigging a large dragon model for a game. When it comes to the tail bones, I have 3 bones making his tail and they have the limit rotation constraint, but the bones seem to ignore the constraint.

When I'm testing the Y-axis rotation limit, instead of going up and down, it makes a kind of an "S" shape slide. Funny and weird, because the bone seems to be entirely ignoring the restriction to not rotate over the X-axis.

This animation will clarify what I mean:


Summary: when I test Rotation on Y-Axis on the tail, first up/down, then it goes to right/left. The tail moves in an "S" shape even though the X-axis is limited to 0:0. I honestly don't know much about rotation engines or measures like Euler or quaternion, I haven't messed with that yet.

I attached a .blend file for further comprehension of my issue.


Thanks for the elegant edit of this post, forgot to link the .blend file


  • $\begingroup$ Did you apply rotation to your mesh? I had a slightly similar issue and not applying rotation to the mesh solved it. $\endgroup$
    – RATIU5
    Commented Jan 20, 2018 at 22:09
  • $\begingroup$ I had a look at your blend file and everything seems fine to me. I think you have some misconceptions about local and global space. Try to align the tail bones properly, and look at the axes again. Use the manipulator widget in local mode to see what axis you are actually rotating on and then you'll understand that the constraint works fine, but the axis of the bone and what you want the bone to do don't match up. $\endgroup$
    – TeeTrinker
    Commented Jan 20, 2018 at 22:28

1 Answer 1


The rig is working OK. If you bring up the transform manipulator and set it to rotate on local access:

enter image description here

You can visually see the orientation of your bones:

enter image description here

The red circle is x-axis etc. Clicking on these sequentially gives the range of movement you stipulate in the constraint. Notice x-axis is on an orientation I assume you would want the tail to move but you've set it to zero. The "s" shape movement you describe happens when you try to force movement in a direction that is choked by the constraint.

I also noticed that the bone roll doesn't quite agree with the orientation of the tail (all the bones are diagonal to the axis). I hit ctrl-n and chose global +z in edit mode to recalculate the tail bones. This ensured up/down, side-to-side but not twist movement - again assuming this is what you wanted.

ps. Nice model

Edit: I notice TeeTrinker has already answered in the comments as I was typing this LOL.

  • $\begingroup$ Thank you for helping me. As TeeTrinker said i had misconceptions about local and global spaces, in the animation i provided i rotated over the Y-Axis hoping the tail to go Up+/Down- but after the d8sconz method of recalculate roll, The Global Y-Axis is now the X-Axis of the bone locally, so i applied the rotation constraints based on the global space and not local space, the tail still makin "S" shape rotation, but now in the allowed constraint min/max range, but if i edit degree values manually i can get the results i wanted. Thank you both, that was the slap i needed to open my eyes. $\endgroup$
    – RomanSky
    Commented Jan 21, 2018 at 1:30

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .