2
$\begingroup$

If I have two bones, with one parented and connected to the other, How would I rotate the second bone around the axis perpendicular to the plane with it and the parent?

For instance, in the following image the desired axis of rotation would be the global Y-axis.

enter image description here

Obviously in this situation I could just hit R > Y, but how would I do this in a situation where the bones are not nicely lined up with the world axes?

Edit:

Here is something I have noticed, when I rotate a bone or selection of bones, it seems to only rotate the heads/tales of the bones around the pivot point, it doesn't actually rotate the bones themselves. Here is an image describing what I mean. I took 2 bones, duplicated them, and rotated each one a different amount. Notice how in each case, the second bone has not rotated, it's sides are still parallel to the x and y axes. It seems that if the bone actually rotated then rotating on the local coordinates of the bone would do what I want.

enter image description here

$\endgroup$
  • $\begingroup$ Your constantly-oriented child bone is probably an unchecked property in the child bone. Select the child bone, go into the bone properties, relations, and make sure "Inherit Rotation" is selected. $\endgroup$ – Italic_ Jan 27 '16 at 2:25
  • $\begingroup$ Are you needing to do this in edit mode or in pose mode? $\endgroup$ – Mutant Bob Aug 5 '17 at 19:14
  • $\begingroup$ @MutantBob Pose mode. $\endgroup$ – PGmath Aug 5 '17 at 23:08
1
$\begingroup$

A bone and it's parent form a triangle, you can snap a polygon to it with vertex snap:

enter image description here

Next switch to Normal gizmo/manipulator and save the transform to use it on the bones:

enter image description here

It is not very convenient, maybe there is addon for it but I rarely need to do this.

$\endgroup$
0
$\begingroup$

I'm not sure, but did you try to change from rotating on global to local axis?

when you press R > Y you are rotating using global coordinates. Without leaving rotation mode, press Y again, it will switch to local (see the viewport lower left angle), you'll see "along global Y" become "along local Y". Each time you press the axis constraint key you switch through global and local (and back), and you should have the current rotation axis cue visible in the viewport... (green line)

Also try to "apply" armature rotation, before, if it doesn't work.

as you know, default transformation orientation is "global", so when you press the axis key, say Y, you switch between local and global. But if you choose another tansform orientation (viewport toolbar) you change between local and the chosen tansform orientation.

if I try "gimbal", I can rotate around like this: enter image description here

If I understood your question, you were looking for such a bone rotation, hopefully...?

$\endgroup$
  • $\begingroup$ I've tried both local and normal coordinates, neither works. $\endgroup$ – PGmath Sep 28 '15 at 14:02
  • $\begingroup$ I've edited the answer to show another case... $\endgroup$ – m.ardito Sep 28 '15 at 14:24
  • $\begingroup$ Using gimbal doesn't work either. I noticed that my bones' roll is different to yours though, that could be the problem. I am not able to rotate my bone around the axis parallel to the bone. (Sorry for my stupidity, I have never had the need to do anything with armatures before.) $\endgroup$ – PGmath Sep 28 '15 at 14:29
  • $\begingroup$ I just added a screenshot explaining what I mean. $\endgroup$ – PGmath Sep 28 '15 at 14:38
  • $\begingroup$ in order to use the perpendicular to the plane shared by the bones, you could need to have all bones "aligned" ... if you rotated the bone in pose mode, you can try to revert its custom rotation selecting the bone and pressing alt-r, perhaps... $\endgroup$ – m.ardito Sep 28 '15 at 14:39
0
$\begingroup$

It seems your only option is to create a Transform Orientation for the parent bone, and then use it for rotation. It is not all that clumsy as it may seem.

  1. Select the parent bone
  2. Press Ctrl+Alt+Spacebar (or call the Create Orientation operator)
  3. Now you can use the transform orientation on the child bone

When you are done editing this bone, you may want to clean up:

  1. Use Spacebar to call the Delete Orientation operator
$\endgroup$

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.