Home Website Youtube GitHub

Eye rig does not work the right way when I scale the character

Goodmorning.

  • When, from the “eye_L\R_over_ctl”, I set the value of Blink to 1 and then - from the “world_ctl” - I scale the character by 0.1 units, the eye rig works well.

  • When, from the “eye_L\R_over_ctl”, I set the value of Blink to 1 and then - from the “world_ctl” - I scale the character by 10 units, the rig of the eye does not work well anymore.
    The result can be seen from the attached image.

I’m using mGear 3.2.0 on Maya 2019.

Thank you for your attention,
Alessandro_

Hi @Alessandro_Melis

Would it be possible to have access to your file?

I do have some questions that might orient you on a solution.

  • If you are using Dual Quaternium skinning make sure that you have set the allow rigid scaling attributte on your skin node

scaleDQ

  • Now, Autodesk decided on Maya 2019 to remove joints support for shearing attributes which mGear’s heavily use. At this point I don’t know for sure if Autodesk will put that back but because it isn’t you need to check the UniformScaling option on the guides when building the rig.

Now what you are describing to me doesn’t seem to be the same issue so this is why I wanted to have access to your rig so that I can take a look. It could be as well an issue with the wire’s scale attributes…

Anyway let me know if this helps. If you have access to another Maya version try doing the same test on that version to see if you have the same issue.

Cheers

Goodmorning Mr. Jerome.

To which address can I send the file?

Alessandro!

sent it on private message

Another thing to try is this fix. There are wireDeformers in both the lips and eyes. The wireDeformers can lose their shape when moving the rig huge distances. Maybe it is happening in scale too.

I run this code in a post script on all my characters. This was to fix the mouth, but it might fix this eye problem. When I test it, I have to scale to 50 before I see any problems. Maybe your scene scale is really huge?

import pymel.core as pm
# a hack or solution? Mouth wires don't follow rig 100% unless you crank up the dropoffDistance.
# So when the character moves large distances, the mouth slowly begins to collapse.
for each in pm.ls(type='wire'):
    each.dropoffDistance[0].set(100)

Scale 50. wire dropoffDistance = 1.0
image
Scale 50. wire dropoffDistance = 100.0
image

2 Likes

it could indeed be that :ok_hand:

Magnificent Mr. Lesage!

Your scripth has solved the problem!

Thank you very much,
Alessandro_