Home Technical Talk

Question about axis rotation in a max rigging

polycounter lvl 5
Offline / Send Message
Cadu polycounter lvl 5
Trying to understand how rigging works in max i found these videos on the Autodesk channel. Link here.

In the video "creating a skeleton - part 2" around 0:07:00 the narrator concludes that the copied leg from the original one, has the X and Z axes wrong. Maybe because the mirrot? I dont know. To fix this the Y axis (which supposedly was right) should be reversed.

After reversing it, every rotation of both legs function perfectly as expected.

As I do not know how this is done, I doubt whether this is the correct way or more efficient since the video does not explain why this is so?

Thanx as always in advance.

Replies

  • Mrfred
    Options
    Offline / Send Message
    Mrfred polycounter lvl 4
    Regarding the video, you are right, when you mirror an object the pivot also transform. There's more to it than a mere graphical mirror ;)

    ie: a default box at [0,0,0] with default orientation has a matrix of:
    (matrix3 [1,0,0] [0,1,0] [0,0,1] [0,0,0])
    Now if you flip/mirror the x axis and retrieve his transformation matrix you get:
    (matrix3 [-1,0,0] [0,1,0] [0,0,1] [0,0,0])

    So mirrorring not only flip the model but rather flip the object matrix flipping the model at the same time.
  • Swordslayer
    Options
    Offline / Send Message
    Swordslayer interpolator
    Which sounds quite harmless, doesn't it? After all knowing that the axes are now ordered differently, you can adjust your workflow to get it into account. But it's not so simple, object matrix is not actually just some matrix that would be part of the object, it's the result of multiplying all the node transforms (that's where controllers have their place) with object offset matrix (here the flipping itself and other transformations to the object's pivot are stored) - which is one source of problems as you'd have to always take this object offset matrix into account - but even bigger issues can (and will) arise when the resulting matrix is applied to the node. It's applied to the result of the stack, which means that all the modifiers will work in the original orientation and only the result will be flipped (not the baseobject). To top it all, the node structure stays the same but the matrix is applied to all the vertices - this means that the order of the verts constituting individual faces stays the same but now the same order goes from anticlockwise to clockwise which means the normals will flip. You may not notice as Mirror function in max somehow hides this but it will bite you eventually.
  • Cadu
    Options
    Offline / Send Message
    Cadu polycounter lvl 5
    I suspected that these changes would influence other things, perhaps through lack of experience I did not notice the actual size problem. Any suggestions or most logical method?

    My biggest issue is that of the three axes, was reversed exactly the one that was correct, perhaps to align with others maybe. But why the other axes began to behave correctly since the inversion occurred in the correct one?
  • Swordslayer
    Options
    Offline / Send Message
    Swordslayer interpolator
    In the video, it's done so that the rotations on one side are 'mirrored' when applied to the other side - when the axis you are rotating around points in the opposite direction, you get a reversed motion.

    Of course, there are many ways to skin a cat, the best way to find out the shortcomings and advantages is to experiment and try it yourself (just not in production :-) ).
  • Cadu
    Options
    Offline / Send Message
    Cadu polycounter lvl 5
    Thx for the help folks.
Sign In or Register to comment.