G8F breast driver issue (Rigify)

Issue #1740 invalid
Jasper29 created an issue

I think I found either a bug or incorrect driver setup with Genesis 8 breast bones using Rigify. After rig generation and switching to

object mode, when you rotate the armature on the z axis, you get incorrect rotation values on the z-axis for the breast bones in the

MCH (machinary bones) layer. This causes both breast bones to pull to the left, but since there is a limit rotation on them, only the

left breast itself deforms and pulls to the left (mesh visually). I had mentioned this a while ago, but I had heavily modified the Rigify

rig at the time--this is a fresh new model, so it might be a bug or incorrect driver setup. It is most extreme when armature is rotated

180 degrees:

^Notice the z rotation value in pose mode of the breast driver of 108 degrees

This can be fixed of course by deleting drivers, deleting copy transform constraints, or changing driver to scripted expression I’ve

found, but I don’t think this is intended if you want to keep the drivers Diffeo sets up.

Steps to recreate:

1: Import G8F and setup Rigify rig, generate final rig.

2: Go to Object Mode, select armature, and rotate on the z axis 180 degrees.

3: Observe driver issue in breast bones in layer 30 (MCH bones).

Comments (20)

  1. Alessandro Padovani

    1.7.2.1808

    I can’t reproduce the issue. Driven bones are copied directly from the daz rig, there’s no way that changing the armature transformations can affect that. Then to pose driven bones you have to make all bones posable before converting to rigify. Pectoral bones work fine here whatever the armature transformation is.

    Unless I misunderstand what you mean.

  2. Jasper29 reporter

    My bones are made poseable before converting as well--hey would you mind showing what your driver setup looks like in the driver editor so I can see if it matches mine and see if/what Diffeo is doing something different on my end? (I’ll still have to find out the cause) Thank you. We can make this issue invalid after, I’m assuming it’s just on my end.

  3. Alessandro Padovani

    Sure, it’s just copy rotations from shoulders, same as the daz rig. Unless you loaded custom morphs that may interfere, if so you need to describe the exact steps, and the issue could be in the custom morph itself thus the same in daz studio.

    steps:

    1. easy import G8F with default options for G8
    2. convert to rigify with default options

  4. Thomas Larsson repo owner

    I cannot reproduce the issue either. However, I noticed that the driven bone kept its limit constraints when the bones were made posable. That doesn’t make sense since the driven bone is hidden; it should be enough if the posable bone is limited. Hence I removed the limit constraints from the driven bones.

  5. Jasper29 reporter

    So I just tried again with another bas G8F and the problem persists--Diffeo is setting up breast drivers completely different than what Alessandro has, it’s using Sum values by default for me not scripted expression:

    ^ I just setup rigify here and only rotated the character 180 degrees, didn’t touch anything else

  6. Alessandro Padovani

    Again, you need to report the exact steps and what version you use. If you do the same steps as me with the same version it can’t be different. Or it may also be a corrupted daz library if some custom morphs overwrite the standard G8F. You can try with a clean library, just rename the folder and reinstall the basic pack.

    I have no idea why the addon uses sum values, do you use 1.7.2 ?

  7. Jasper29 reporter

    Also, here is the collar bone driver as well:

    So I just checked ALL the drivers on the imported base G8F after setting up with Rigify (create metarig) and they’re ALL Sum values for me.

  8. Jasper29 reporter

    After renaming DAZ library and having the default DAZ files (no custom morphs), I reimported the base G8F, and the problem still exists. Furthermore, there is another issue that seems to only be visual affecting the mesh not bones, but by hitting ‘undo’ in blender it goes away (feet look bent like spaghetti inwards, see image below). However the driver issue still remains like before.

    Blender 3.6.2 Diffeomorphic 1.7.2.1816:

    Steps to recreate:

    1: Import G8F (import settings in image below)

    2: With armature selected, go to rigging in Diffeo and select ‘create metarig’ (metarig settings in image below).

    3: With metarig selected, go into Edit Mode and prebend limb joints slightly (for ‘optimizePose for IK’).

    4: With meatrig still selected go back into Object Mode and select ‘Rigify Metarig’. (weird visual bug now occurs here, but not point of this issue).

    5: Select Rigify rig and rotate armature 180 degrees. (Also checking drivers right away shows ‘Sums Value’ not ‘Scripted Expression’ like it’s suppose to).

    6: Observe issue (because of drivers).

    Here are my import and metarig settings, as well as that weird visual glitch (corrects when hitting undo):

    So this narrows it down to something going on within my Blender. I’m assuming it’s an addon of some kind even though I purged my addons quite a while ago (I found out Rig GNS seemed to conflict with Diffeo, but that made sense because it was a DAZ importer as well). However I really only have Environmental modes these days, although I do have Auto-Rig Pro as well as Blenrig, so maybe it is somehow interfering with Rigify? (Doesn’t make sense to me). Anyway as said before this seems to be a personal internal issue that I will just try to solve eventually. Thank you for the help, and thanks for the DAZ suggestion Alessandro. I don’t know if I have anything to add, except if I ever do find the culprit I will alert you guys. Thanks again for your time and you can mark this issue as invalid or whatever when needed.

  9. Alessandro Padovani

    Nope, I tried with create and rigify metarig but here I always get scripted expressions, not sum values.

    Are you sure you’re using 1.7.2 ? In all your screenshots the diffeomorphic version never appears, and it seems to me that the old 1.6 version used sum values, but I may be wrong. You may want to try with a clean install in case you made some confusion with multiple installations. Also try to disable the other rig addons just in case.

    https://bitbucket.org/Diffeomorphic/import_daz/wiki/Install/Installing the Blender add-ons

  10. Jasper29 reporter

    I stated the Diffeo version above already--1.7.2.1816. I always use latest version, everyday (almost).

  11. Jasper29 reporter

    I also always do a clean uninstall/install, unchecking addon, exiting Blender, going to addon folder and deleting it manually as well.

  12. Jasper29 reporter

    UPDATE:

    Oh boy, so I just extracted my addon folder for Blender and made a new one so I was left with vanilla Blender. I removed all feature sets I have

    installed for Rigify just in case too. Then I redownloaded Diffeo and reimported a base G8F again, and problem STILL persists. Unless there's another

    place I have data from addons or something wouldn’t this point toward a bug in the newest versions of Blender then? I know this isssue was with me

    in 3.5 as well, possible even 3.4 (i don’t remember), but this doesn’t make sense either seeing that Alessandro has no issue and no one else has

    reported it either. I’m stumped. I guess I will have to work around it by manually editing the drivers, I screenshoted the ones Alessandro showed

    but I don’t have the values for the other drivers unfortunately. I should also mention that I’m using Windows 10, don’t know if that would be an issue

    though. Also, just going to mention that that weird leg thing is still happening after generating Rigify rig as well..

  13. Alessandro Padovani

    @Thomas Larsson , let us know if there’s any case where the addon could generate sum drivers for bones instead of scripted expressions. May be this can help Jasper.

  14. Thomas Larsson repo owner

    The length of a scripted expression is limited to 256 characters. Therefore the plugin splits the morphs into batches of about 15 morphs, makes a scripted expression driver for each batch, and then creates a sum driver for the batches. This is done even if you only load a single morph, to make it possible to add more morphs later. One of the things that the Optimize Drivers tool does is to remove the sum driver if there is only one batch, and use the scripted driver directly. But then you can no longer add more morphs.

  15. Thomas Larsson repo owner

    Sum drivers are also generated if you add morphs to a bone that is driven by default. E.g. the pectoral bone is driven by the collar rotation, but also by the Breast Up-Down and Breast Side-Side body morphs.

    I notice that you import all body morphs. That is a bad idea if you use Rigify. This may be the source of your problem and at least they won’t work with Rigify. The mhx-compatible body morphs should work, although I have tested the fingers with rigify.

  16. Jasper29 reporter

    Thank you! After importing model without body morphs and setting up with Rigify, I can confirm that it does get rid of the sum values drivers. The drivers are setup properly and everything works fine--except I noticed when importing without body morphs and creating the rigify metarig, it changes the Rest Pose. Upon creating metarig, the feet slide inward, to almost a T Pose instead of A Pose--is this normal?

    Steps to recreate:

    1: Import G8F WITHOUT body morphs.

    2: Select armature and generate Rigify metarig.

    3: Feet slide close together.

  17. Log in to comment