Hi guys,
I’m currently building the armature skeleton for an 8 legged creature, and I ran into the following problem:
As we all know (and as discussed in several other threads which don’t answer my particular question), Blender does some funky things to bone roll angles when applying transformations, etc.
I started out with a single, nice, axis-aligned armature leg, duplicated it 3 times and then proceeded to rotate each leg to face a slightly different direction. Then, I set up IK rotation limits for each bone. Mostly, this consisted of blocking X and Y axis rotation and limiting Z axis rotation to a certain range. As long as the legs are individual armatures, all is fine and works as expected (I have tested and tweaked the rotation constraints using the character mesh):

A single leg before applying transformations. The dark blue arcs illustrate the z rotation limits of the 2 selected bones. All is fine in the world of Mr. BoneyLeg.
As soon as I join them together to form a single armature, or use the “Apply size and rotation” function on a single leg to simulate the “join” process, the bone roll angles get screwed up:

A single leg after applying transformations. Notice the slightly corrupted bone roll angles.
Using CTRL+N to recalculate the bone roll angles doesn’t help much, either:

As you can see, the roll angles are even more messed up now (after using CTRL+N in editmode).
If I wouldn’t be using the spiffy new rotation constraint feature, I wouldn’t even be bothered by this. The CTRL+N function would orient the bones in a way that helps the IK constraint solving process, and I could simply switch to the “sticks” bone drawmode to avoid the ugliness of the (odd) bone rotations ;).
In combination with the rotation constraints however, this is quite messy and basically forces me to figure out the correct bone roll values by entering them manually yuck.
Is there another way to solve this problem and keep the original, non-transformed “look” of the armature legs (the bone roll values must be changed in some way to achieve this, as far as I understand)?