option to import default drivers (or not)

Issue #1679 resolved
Alessandro Padovani created an issue

daz studio 4.21.0.5, blender 3.6.1, diffeomorphic 1.7.2.1731

My example is for G8 but other generations also apply. I'm not sure why the drivers for pectorals and eyes are always imported, while all other jcms and morphs are to be imported separately. If possible it would be useful to have an option to import these "default" drivers.

Reason is, if I want to rig the figure myself then these drivers come in the way and I have to delete by hand the drv bones then delete the copy transforms for all affected bones. We could have an option in the global settings, we already have "armature" we could add "default drivers".

  • import armature (create armatures for imported figures)
  • import default drivers (create default drivers for imported figures)

Comments (5)

  1. Thomas Larsson repo owner

    The reason why this happens is that the pectoral and eyelid drivers are defined in the character file itself, and not in some other file that isn't loaded. If you look e.g. at line 47012 of /data/DAZ 3D/Genesis 8/Female/Genesis8Female.dsf, you find the formulas:

    "formulas" : [
        {
            "output" : "lPectoral:#lPectoral?rotation/x",
            "operations" : [
                { "op" : "push", "url" : "lCollar:#lCollar?rotation/z" },
                { "op" : "push", "val" : -0.15 },
                { "op" : "mult" }
            ]
        },
        {
            "output" : "lPectoral:#lPectoral?rotation/y",
            "operations" : [
                { "op" : "push", "url" : "lCollar:#lCollar?rotation/y" },
                { "op" : "push", "val" : 0.3 },
                { "op" : "mult" }
            ]
        }
    ],
    

    Some other formulas do not lead to drivers. The scale formulas are handled by making the bone inherit scale, and the metatarsal formulas are ignored because they would lead to a dependency loop; that's why the lines

    Dependency loop: lToe lMetatarsals
    Dependency loop: rToe rMetatarsals
    

    are printed in the terminal.

  2. Thomas Larsson repo owner

    Implemented in last commit. The global settting is called Default Drivers and is in the Morphs section. Note that it doesn’t seem to be any way to recover the drivers if you choose not to import them. I tried to import the G8F character file as a custom morph, but it didn’t create any drivers.

  3. Alessandro Padovani reporter

    Commit c70abe3 works fine thank you for the fix.

    The tooltip is not good since different genesis generations may have different default drivers, unless the fix is limited to G8 but looking at the code doesn’t seem so. A better tooltip could be for example “create default drivers defined in the scene file“.

    Let me know or I’ll close as resolved.

  4. Log in to comment