# How to rotate bone perpendicular to plane with parent bone

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.

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.

• 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. Commented Jan 27, 2016 at 2:25
• Are you needing to do this in edit mode or in pose mode? Commented Aug 5, 2017 at 19:14
• @MutantBob Pose mode. Commented Aug 5, 2017 at 23:08

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

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

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

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:

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

• I've tried both local and normal coordinates, neither works. Commented Sep 28, 2015 at 14:02
• I've edited the answer to show another case... Commented Sep 28, 2015 at 14:24
• 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.) Commented Sep 28, 2015 at 14:29
• I just added a screenshot explaining what I mean. Commented Sep 28, 2015 at 14:38
• 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... Commented Sep 28, 2015 at 14:39

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