Request for Muscle Flexion Multiplier in Diffeomorphic

Issue #2040 resolved
David created an issue

I wanted to propose a customizable muscle flexion multiplier.

Right now, I am utilizing the currently unused "Flexion Automatic Strength" morph controller. The one that comes when you “Import Flexions”.

In my current setup, I've modified the body_bs_FlexBicepsL(fin) driver to include a new variable FlexionAutomaticStrength, which I connected to both the armature and the ["body_ctrl_FlexionAutoStrength(fin)"] controller.

Then I changed the expression to (a+b)*(FlexionAutomaticStrength+1) to scale the muscle size while allowing muscles to return to the normal size when extended, and increase size during contraction.

Here is a short clip of the flexion that I have attached. (Sequence_01.mp4)

I've noticed a limitation where different muscles have varying flexion limits; for example, the biceps can flex up to values of 3-4, whereas the glutes start deforming at values above 2.

It would be beneficial to introduce a feature that allows users to set individual flexion “multipliers” for different muscles, possibly by replacing the current “additive” method that the sliders in the morph/flexions have. This would provide greater control over the animation and avoid issues with muscle deformation at higher flexion values.

I tried to go around in the Deffio code but I couldn't figure out where the drivers are created (it was like looking for a needle in a haystack). If you could point me out, I could try my hand at implementing this in a branch.

Notes:

The character was imported with customized ‘morph settings’ in the ‘global settings’ of the Diffeomorphic add-on, to remove the ‘morph slider’ limits and the 'shape key' limits.

Comments (15)

  1. Alessandro Padovani

    The genesis figures already have flexions that are correctly imported from daz studio, and they work to flex muscles depending on the figure pose. Adding extra flexions wouldn’t make much sense. There’s already a “adjust flexions“ feature if you want to multiply the daz flexions.

    steps:

    1. in the global settings, morph section, set “adjust” to all and “final limits” to none.
    2. easy import G8 with flexions and adjusters.
    3. pose the figure as required to activate the flexion, then adjust as you wish.

    bug for Thomas. Flexions are always hidden in the pose panel, even if we “make hidden sliders“ in the global settings. Plus if we “make hidden sliders“ then the flexions adjusters don’t work anymore.

  2. David reporter

    @Alessandro, hey that’s it, damn once again I’m just being blind.
    The flexions show with me tough, using:
    Diffeomorphic-import_daz-fb3b1c52b7f2
    Genesis 9
    Blender 4.1

  3. Alessandro Padovani

    1.7.4.2115, blender 4.1.1

    That’s odd, flexions don’t show up here, not in G8 nor in G9. I get the panel and flexions work fine, but the names just don’t show the rows are blank. This only happens with flexions while other morphs work fine. @Thomas let us know if you can reproduce the issue. Steps as above.

  4. Thomas Larsson repo owner

    Everything seems to work here. All flexions show up in the panel and both types of adjusters seem to work fine.

  5. Alessandro Padovani

    update.

    Ok I found the culprit, it’s “optimize jcm drivers“ in the global settings, if it’s on then flexions get blank labels in the pose panel. Let me know.

  6. Alessandro Padovani

    update.

    Also it seems the quad sliders are ignored. That is, adjust flexions work fine, but the quad sliders don’t add up. The glute sliders work fine and add up to the adjuster. Optimize off, G8 figure. Let me know.

  7. Thomas Larsson repo owner

    Now the JCMs are not optimized if hidden sliders are turned on, and the problem disappears. The flex glute and quads sliders are no longer displayed unless there are hidden sliders, and the flex quad sliders work.

  8. Alessandro Padovani

    1.7.4.2116

    Nothing seems changed here. I mean with “optimize on” and “hidden off“ I always get the blank labels as before, then flexions and the adjuster work fine, but I get blank labels. Unless this is what you mean by “sliders are no longer displayed“, but the blank labels are there and selectable as before. Then with “optimize off“ and “hidden on“ everything works fine, as before, this wasn’t a issue.

    steps:

    1. in the global settings set “make hidden sliders“ off and “optimize jcm drivers“ on
    2. easy import G8 or G9 with flexions and adjusters
    3. there’s selectable blank labels instead of sliders, as before

    steps:

    1. in the global settings set “make hidden sliders“ off and “optimize jcm drivers“ off
    2. easy import G8 or G9 with flexions and adjusters
    3. there’s sliders but G8 quads don’t work, as before

    Plus this seems more a workaround than a fix. It is the same as telling that flexions don’t work with “optimize on“ or “hidden off“, so to use flexions we always need “optimize off“ and “hidden on“. The drawback is that “hidden on“ displays all the hidden properties cluttering the workspace, not only hidden flexions. Plus this way we lose the optimization for all the jcms, not only for flexions.

    That said if fixing it is not possible then we take the workaround. Then of course thank you for your time looking into this. Eventually I can add a note in the docs explaining that flexion sliders only work with “optimize off“ and “hidden on”. Let us know.

    p.s. possible fix ? Perhaps a possible fix could be to always make flexions visible, even if they are hidden in daz studio, then use the label names when available. May be this way “optimize” works fine too, if the problem is with hidden morphs. In any case this is better than making everything visible with “hidden on“.

  9. Alessandro Padovani

    If there’s nothing to add we can close as resolved then, I will add a note that flexions only work with optimize off and hidden on.

  10. Log in to comment