Home Technical Talk

Maya probleme with pivots

polycounter lvl 6
Offline / Send Message
rorozilla polycounter lvl 6
hi!

i'm new at using Maya and i have encountered this issue trying to make a little rigg to animate my characters hair.


i set up a curve as a controller and i linked every strand of hair to the rotations of the curve. the wierd thing is, my Y axis is facing up on my curve, but sideways for my strands of hair. it makes it impossible to animate correctly.

i tried freeze transform on both the hair and the curve but nothing changes.

i thought of a solution, i could link the curves X axis to the hairs Y axis, and so on, so that they all match, but i would really like to know the reason why i cant change the axis, it seams like it could cause problems later.


pivot%20probleme.jpg

thank you so much!

Replies

  • couette
    Options
    Offline / Send Message
    How are you linking the hair object to the controller object? Direct transform connections, expressions, constraints, or something else? Is the hair object a child of another object that is not aligned to world space?
  • rorozilla
    Options
    Offline / Send Message
    rorozilla polycounter lvl 6
    all of the hair is parented to my head bone, but i made sur it wasn't skinned to it, and all my object (geometry and bones) in my scene seam to have there axies fliped like the strands of hair, except for the control curves i place ( one for the hair, and the other one for the whole character)

    i don't know if this answers your question, im all new to maya, but i know max pretty well, so i keep trying to apply the basics of max to maya, and that doesn't always work!


    thank you so much for helping me! if it is any easier, i can send you my scene so you can check it out, it might be messy though!

    :)
  • MiAlx
    Options
    Offline / Send Message
    MiAlx polycounter lvl 10
    Hey rorozilla!

    Try the following out (sorry if i didnt understand the problem :D):


    1) In the Viewport: hold the "W" key and while holding it press and hold the left mouse button and change the local axis to "world".
    This does not fix your problem though, it merely changes the axis orientation to the world coordinates, but maybe you can work with that, dunno... :poly136:

    or

    2) In the attribute editor (ctrl + a), while an object is selected, go to its "rotate axis" attribute and rotate the x axis by 90° (so that the local axis is the same as the world), freeze transformations, then do step one and change it to "local". This will rotate the axis and the object, respectively, so you will have to rotate the hair back. But you cant just rotate the hair back, because then you'd undo what you just did (if that makes any sense :D).

    So to solve that you can do this:

    You put the hair in a group (the object, read hair, is in the group, the group is parented to the joint) and THEN you do step 2 and use the group to rotate the hair back the way you want it.

    Basically you rotate the group, because by doing so:

    a) the local axis of the hair object will remain "untouched"
    b) the rotation values gained by the rotation will be flowing into the group channels, enabling the hair object to still have frozen transformations

    Try it out and if its not fixing your problems, post a link to the file, i'll take a look at it :)

    Hope it helped!
  • couette
    Options
    Offline / Send Message
    rorozilla wrote: »
    all of the hair is parented to my head bone, but i made sur it wasn't skinned to it, and all my object (geometry and bones) in my scene seam to have there axies fliped like the strands of hair, except for the control curves i place ( one for the hair, and the other one for the whole character)

    Since the hair object is parented to the head joint, and I assume the control curve for the hair is not parented to the head joint, the hair object and control curve are in different coordinate spaces. When you freeze the transforms of an object in Maya, it will only freeze the object to whatever space it is in.

    If you parent the control curve to the head joint, and then freeze the transforms of the curve, the transform axes (pivots) of the curve should match the hair object. From here, you can directly link the rotations of the control curve to the hair object (via the connection editor or using expressions).

    You can also use constraints (parent, point, and/or orient) to rig an object for greater control.

    For example:
    RiqNp.jpg

    The hair control curve is parented to a null group (hair_ctrl_0). The null group is parent constrained to the head joint. The hair polygon object is parent constrained to the hair control curve. You don't have to follow this exact rig hierarchy or constraints, it's just something to give you an idea.
  • rorozilla
    Options
    Offline / Send Message
    rorozilla polycounter lvl 6
    haa!! thank you guys!!! parenting the curve to the same joint as the hair fixed everything! it offset at fist, but all i had to do was to put the constraint after linking the curve. But that leads me to an other question, is there an easier way to constrain the hair to the controller.

    what i have been doing is using the connection editor, selecting every strand of hair one by one (26 in my case), and selecting the rotation of the curve and linking it to the rotation of the selected strand....

    is there any kind of tool that would let me do all these operation in one click?


    Thank you so much for all of your help!! :)
  • MiAlx
    Options
    Offline / Send Message
    MiAlx polycounter lvl 10
    there is the orient constraint, it constraints the rotation of one object to another, try that one out.

    If you want the control curve to "control" the other objects rotation:

    1) select the control curve

    2) then select the strand

    3) go to constraints -> orient constraint, open the option box

    4) tick the maintain offset on (if you want to have the strand remain in place, otherwise it will orient it to the control curve)
Sign In or Register to comment.