Genesis 9 Eye Rotation Bug (Rigify)?

Issue #1877 closed
Jasper29 created an issue

Blender 4.0.2 Diffeomorphic v1.7.3.1943

I think I found a possible bug with G9 eye rotation when using Rigify.

After generating Rigify rig, selecting the gaze controller and moving especially around the x-axis, there seems to be a deadzone/delay towards the center of the face on each side. Also, when the eyes do rotate, they slightly pop out of the eyesockets

and eyelids (doesn’t have to be an extreme value on the x axis), almost as if the origin point of rotation isn’t center of eyes:

Steps to recreate:

1: Import G9

2: Generate metarig/final Rigify rig

3: Go to pose mode and select ‘gaze’ controller for eyes and move it around, especially on the x-axis.

Can someone confirm? This might be another ‘only me’ problem (hope not).

Comments (15)

  1. Thomas Larsson repo owner

    Weird. No I can’t confirm. But Blender has a problem with bones that are aligned with the global Y axis. If the bone is tilted slightly up or down in edit mode, the roll angle jumps 180 degrees.

    The gaze bones work like this. There is a bone called eye.L(drv) on the Help layer, which has a damped track constraint pointing to the left gaze bone. Then the eye.L bone has a copy rotation constraint, which allows it to be moved independently. Perhaps the euler order of the constraint should be specified.

  2. Jasper29 reporter

    I setup and compared both a G8 and G9 character and found that (at least for me) that G9 is missing a limit rotation and limit loacation

    constraint that G8 has--although after adding them myself to G9, does not fix the issue. I checked everything else between the 2 and nothing else is setup different though. I also checked in DAZ to make sure no eye morphs were possibly interfering during import, but there are none.

  3. Jasper29 reporter

    I also checked the copy rotation constraint for the eye.L(drv) bone and between both figures the euler order is set to default (G8 eyes work fine though).

  4. Jasper29 reporter

    I just noticed (with G9) that the eye driver bones are spelled differently. With G8 it is lEye(drv) but with G9 it is l_eye(drv). I don’t know if this makes any difference though, but it is the only significant difference I can see right now (beside the limit rotation and limit location constraints also not being setup with G9).

  5. Alessandro Padovani

    I tried with limits on and off in the global settings but I can’t reproduce the issue either. The G9 gaze works fine here. Personally I always keep limits off because they don’t work fine with ik.

    p.s. May be if you use a specific G9 character then limits may be different and cause the issue you describe, but in this case the same limits should apply in daz studio. Or may be you installed a G9 character which messed up the base figure, unfortunately this is not uncommon, in this case you can reinstall or try with a fresh content folder, and again the same issue would be in daz studio.

  6. Jasper29 reporter

    Alessandro, that very well might be it--even though this is the base figure and I deleted all the files from the character giving me the geoshell

    issues, maybe it somehow corrupted the base figure. Well I’ll just reinstall the G9 essentials, etc and see if that works. Since no one else can

    reproduce the issue, we can close this as invalid. Thank you.

  7. Jasper29 reporter

    UPDATE: I just wanted to say that after completely clearing out my G9 folder from any unwanted morphs starting upon G9 loading, I also

    completely uninstalled G9 from my DAZ folder then reinstalled (using DIM). I also zeroed my figure morphs to make sure. The problem still persists

    on the Diffeo end, however, I did find something interesting. After importing G9, there is a vertex group called ‘rigidity’ created on the G9 eye mesh (both eyes are 1 object). I discovered I can do 1 of 2 things--either seperate both eyes AND keeping this vertex group for each while deleting eye.L and eye.R groups, OR I can keep the eye mesh 1 object and delete the Rigidity vertex group. After that, I have to select each eye bone then go to the ‘copy rotation' constraint and keep the axis rotations the same, but also select Y and Z axis in the inverted selection as well. After this, everything works as intended:

    It’s weird that it’s happening, but I guess I’m going to have to do this whenever I use G9 with Diffeo (at least I figured out a solution). Anyway,

    just wanted to give an update on this, who knows maybe someone else will run into this problem and maybe this could be a solution for them as

    well--Like I said you can close as invalid whenever (or leave it up for others). Thank you.

  8. Thomas Larsson repo owner

    This sounds like the eye bones and the eye(drv) bones (in the Help collection) don’t have the same orientation. When I try with a standard G9F, all eye bones are oriented with Z up and X pointing to the right. Then the copy constraints work fine without inverting any axes.

    Anyway, I tweaked the mhx generation a bit. All copy rotation constraints now have an explicit Euler order, and the eye custom shape is translated to the end of the bone. I doubt that this will change anything, but it makes it easier to see that the eye bone really rotates.

  9. Alessandro Padovani

    I tried daz orientation in global settings to see if that could trigger the issue but no luck. Everything works fine here I can’t reproduce the issue unless there’s specific steps or settings to use.

  10. Jasper29 reporter

    I want to pop in here one last time to say that I finally figured out what is going on here--the issue for me is with the shapekeys on the eye mesh.

    When I import G9 and setup with Rigify, it keeps ‘Relative’ selected for the eye mesh in Object Data Properties (which is normal because it does it

    with G8 and I have no issue whatsoever with G8 eyes). Anyway, instead of messing with the bone constraints, the actual solution I found to

    completely fix this problem is to just select the G9 eye mesh and unselect ‘Relative’ in Object Data Properties, keeping interpolation to Linear--don’t

    know why, but it works. I am curious if Diffeo normally imports the G9 eye mesh with relative selected though (I imagine it does, but something in

    that area is borked for me for some reason only with G9).

  11. Alessandro Padovani

    Again, you may want to give the exact steps to reproduce the issue. I tried with Victoria 9 too and everything works fine here. As for shapekeys they’re always relative to the basic shape as is common in blender.

    my steps:

    1. in daz studio load Vicotria 9 and export HD
    2. in blender easy import with G9 presets
    3. rigify with default settings
    4. check the gaze control

  12. Jasper29 reporter

    Alessandro, the steps to recreate were already included in the opening post:

    Steps to recreate:

    1: Import G9

    2: Generate metarig/final Rigify rig

    3: Go to pose mode and select ‘gaze’ controller for eyes and move it around, especially on the x-axis.

    It’s just importing and setting up Rigify that does it to me, my Global settings are:

    I’ve tried all different options for both morphs and rigging, and the issue never changes, but deselecting ‘Relative’ for the eye mesh fixes it

  13. Alessandro Padovani

    blender 4.0.2, diffeomorphic 1.7.3.1962

    Nope, I followed your exact steps with your exact global settings and works fine here.

  14. Log in to comment