Drive morphs with bones

Issue #847 resolved
Steven Aston created an issue

Hi, I haven't updated the addon on quiet some time as everything was working fine and I have been on blender 2.83 up until now. I just upgraded to 3.0 and also upgraded the plugin. There used to be an option for driving morphs with bones when importing custom morphs. This option seems to be missing. I used this option to import the bend controls from zev0. As it stand currently I have no way of using the bend controls, tried everything I could think of.

Anyway we can get that back?

Thanks,

Steven
(Had opened in issue about this in the past and was fixed at the time, been using this version ever since https://bitbucket.org/Diffeomorphic/import_daz/issues/331/importing-custom-jcm-flexions-doesnt)

Comments (20)

  1. jeroen b

    Assuming that the custom bending morph shows up as a shapekey in Blenders shapekey tab, it is easy to copy & paste the relevant standard JCM driver to your custom bending morph by richtclicking the purple area’s.

  2. Steven Aston reporter

    @jeroen Its not that easy, there are 118 of them and they use a variety of bones and values. Would also take ages to do with 10+ characters.

  3. Thomas Larsson repo owner

    Import Custom Morphs now automatically detects if the morph is driven by sliders or bone rotations, so it can be used to load all kinds of morphs. The user no longer needs to guess what kind of morph the file contains.

  4. Thomas Larsson repo owner

    OK, now I have checked the fit control. There are two problems.

    1. There is a slider called Bend Controller which acts as an overall factor, analogous to the adjusters that the plugin can add. You need to set that factor to 1.
    2. Drivers are created for some bones, so you need to Make All Bones Poseable after the morphs have been loaded. Or just pose the character with sliders.

    There is no difference between the dev and stable versions in this respect.

  5. Steven Aston reporter

    Ok I see how you have this setup now.
    thanks for the info.
    Is there a way to remove the bone driven ones from the rig properties? So instead of having the list with all of the shapekeys in the properties, just having the ones that dont have a driver like the bend controller one? Since the driven ones dont do anything, that menu gets cluttered real quick.

    Is there a downside or reason not to “make all bones poseable” ? I do just animations, and no stills. I also use face cap.

  6. Thomas Larsson repo owner

    There is no way to remove single morphs; all you can do is to avoid loading them in the first place. But you can filter the names in box so only some are displayed.

    I noticed that Hip Bend Controller has to be set to 1 too. It could be an idea to insert keys for that and Bend Controller so you don’t accidentally turn them off. If you don’t load the corresponding files (which start with “!”), these properties don’t show up, but they are still created because other morphs use them, and can be accessed as custom properties. But to figure that out you need to check out how the drivers were set up for this asset.

    The downside of not making bones poseable is that some bones get drivers and cannot be posed freely. If you skip all files containing the string “ctrl” no bones are driven, and hence don’t need to be made poseable. But I don’t know if there are other drawbacks to that.

  7. Alessandro Padovani

    Even without loading anything but the basic G8F figure there are some driven bones at start, namely the pectoral bones. So “make all bones posable“ is always required, at least with G8F.

  8. Steven Aston reporter

    Hmm I see.

    I have to say I think the old way of being able to select whether the morphs where bone driven or not was more useful. I always imported flexions 2 times for example. once bone driven, and a second time without drivers for manual control/overrides.
    This is useful in animations as you want the muscles to tense before the arm moves.
    can I load morphs in an older build, then continue setup in the newer build or will that cause compatibility issues?

  9. Thomas Larsson repo owner

    There is a global setting called Make Hidden Sliders or something like that, which creates sliders with which you can tweak jcm and flexion values.

    It was a long time since there were separate buttons for custom jcms, and the morph system has been completely rewritten since then, so no, you cannot use morphs created with such an old build.

  10. Steven Aston reporter

    I haven't tested my old characters in the new version yet. Any compatibility issues with characters from 1.50 and 1.51 with the new version? Or can I use them and save them there with no issues?

  11. Thomas Larsson repo owner

    Morphs work completely different in 1.6 than in 1.5, so that is a difference. However, the old morph system was still supported in 1.6.0, so old characters can still be used in that version, but I’m not sure that you can mix old and new morphs. Support for the old morph system was dropped completely in 1.6.1. However, there is a way to use old characters in that version, but it requires some extra effort, see http://diffeomorphic.blogspot.com/2021/12/using-old-morphs-in-version-161.html.

  12. Steven Aston reporter

    Sounds like I might be better of staying on the older version. Whats the oldest version that would work with blender 3.0? I dont have a problem staying on 2.83 LTS for animating, but I would like to use 3.0 for rendering.

  13. Thomas Larsson repo owner

    1.6.1 is the first version that works with Blender 3.0. But I will check if I can update 1.5.1 and 1.6.0 too.

  14. Steven Aston reporter

    so trying out the 1.51 with 3.0.
    A few issues

    When importing a new character:
    I tried to import the flexions as custom morphs. If i set it to driver type rig, I expect it to create slider in the rig properties and nothing else.
    It only creates 4 in the rig properties, for glute and quad. They also do not work. The rest it created bone drivers for as usual.
    Similar thing happens regardless of what driver type I select. It seems to be ignoring the driver type.

    With existing characters: Still testing but no issues so far 👍

  15. Thomas Larsson repo owner

    It seems that the changes were made before 1.5.1 was released. So you cannot load sliders for jcms and flexions in that version. Perhaps you can still use characters loaded in earlier versions there.

    However, I recommend that you use the latest version 1.6.1. If you enable the global setting Make Hidden Sliders before loading the morphs, the final morph value is given by the sum of the bone rotation and the slider value, so you can tweak it at will. If the slider limits are set to None, or Custom with a negative minimum, you can also reduce the shapekey value.

  16. Log in to comment