Quick, easy discussion: What seems to be the standard orientation/joint direction

rigging
math

#1

Good day/evening!

I was wondering and I know there are a lot of different ways of doing things. The topic? Not joint orientation as far as XYZ, ZYX or YXZ or any other combo ;), but rather which direction the axis’s point.

  1. I learned X always pointing “down” the chain(or up if going up the spine), however, after that, I didn’t really “learn” the rest per se’.
  2. Y pointing outwards from the spine(pointing in the -zed axis) or Y pointing in the +zed axis?
  3. If it (Y) points towards the back of the back(-zed), should it be pointing up or down on the foot’s position joints?

Just curious what the standard, would be for the first point and the other questions are more technical than choice, as they would be directly impacted if properly oriented :).

Thanks!

Just wanted a discussion possibly to help others with this basic, yet tricky concept if not paid attention to.

Also, if folks from gaming to animation studios could put their 2 cents in about “their” company standards that would be great :).!

Have a happy holiday!


#2

I’ts all a convention: as long as you know what you’re trying to accomplish, the labels ‘x’ , ‘y’ and ‘z’ don’t matter much in themselves.

The important thing to remember is that the precision of the local angles is dependent on the rotation order. You want the ‘twist’ axis of a joint chain to be the first euler rotation axis – if you want to build along X then use the XYZ or XZY order, if you want to build along Y use YZX or YXZ, and so on. Typically your order should be ‘twist’, ‘thing that rotates the least’, ‘thing that rotates the most’. The middle rotate term is the one that is likeliest to cause gimbal issues or to generate euler flipping when constrained.

This video shows the likely effects https://vimeo.com/54541692

Individual studios will often split on whether or not their output supports negative bones scales. If you’re working in a game engine that doesn’t support negative scales you need to be more creative in mirroring your settings than just using Maya’s ‘mirror behavior’ setting.


#3

[QUOTE=Theodox;30919]I’ts all a convention: as long as you know what you’re trying to accomplish, the labels ‘x’ , ‘y’ and ‘z’ don’t matter much in themselves.

The important thing to remember is that the precision of the local angles is dependent on the rotation order. You want the ‘twist’ axis of a joint chain to be the first euler rotation axis – if you want to build along X then use the XYZ or XZY order, if you want to build along Y use YZX or YXZ, and so on. Typically your order should be ‘twist’, ‘thing that rotates the least’, ‘thing that rotates the most’. The middle rotate term is the one that is likeliest to cause gimbal issues or to generate euler flipping when constrained.

This video shows the likely effects https://vimeo.com/54541692

Individual studios will often split on whether or not their output supports negative bones scales. If you’re working in a game engine that doesn’t support negative scales you need to be more creative in mirroring your settings than just using Maya’s ‘mirror behavior’ setting.[/QUOTE]

You’re awesome! Thanks. Yeah, I was thinking of the different studios that I hear do Z down the chain as opposed to X, but yeah, all just a matter of preference I guess :0).

Thanks!


#4

[QUOTE=srlake314;30921]You’re awesome! Thanks. Yeah, I was thinking of the different studios that I hear do Z down the chain as opposed to X, but yeah, all just a matter of preference I guess :0).

Thanks![/QUOTE]

Now when you were referring to, “middle rotate term”, in the first case XYZ, Y would be the culprit, I presume. Now what do you mean by the last statement, “…or to generate euler flipping when constrained” are you referring to when a constraint(orient for example) is placed on it by the controller curve created for the animator?


#5

For a given movement in 3d space, the middle rotation term (the Y in xyz, the Z in yzx, etc) is the one whose values will be the most unpredictable. If you build a simple 2 or 3 bone chain in any orientation, animate it with IK and constraints and then bake it back to FK keys you’ll see that the second Euler term is the likeliest to have big swings in value.


#6

Awesome! thanks Theodox! I appreciate it. It totally makes sense.


#7

In the context of games content:
There’s also some consideration when exporting to certain game engines. Some expect joint rotation values to evaluate in (X, Y, Z) order, regardless of how you have your joints set up in Max/Maya/etc. So you could have some beautiful animation on a rig that’s set up with a different rotation order to maintain the up-axis you chose, that suddenly has gimbal issues when you bring it into a game project.

For which way each axis is pointing, I’m going to either build out dependent on how the engineers want to manipulate the skeleton - which can be a minor nightmare for animators but managed with a reasonable control rig.
Or if I have complete control over a quick and dirty rig (something like weapons or props), I want to build these out so that the behavior of the joints is easy to work with. – If it was a biped, and the arms are in a T-pose, I want to be able to rotate both shoulders at the same time in the (ex: X+) axis so that both hands meet in front of the chest with the same value, but also! be able to manipulate the arms so the palms twist up by entering a (ex: Y+) value, and so they’re also both overhead with a simple (ex: Z+) rotation.

This sometimes breaks the “X is always facing down the joint/Y is always ‘out’, etc” rules, which is probably why there isn’t a standard for them.
Or you could keep strictly to a certain set of rules, and have the control rig handle all the inverted axis conversions.