load missing morphs ?

Issue #1993 resolved
Alessandro Padovani created an issue

importer 1.7.4.2063, blender 4.0.2

When we import a pose there’s an option to load missing morphs. As I understand it the purpose is to load those morphs that are used in the pose, if they are not already loaded. Now it seems that a lot of morphs are loaded, even if not used in the pose. Also, if we use the “load missing morphs“ option then some poses are not imported right, while they are good without the option.

steps:

  1. easy import G8 or G9, with the default preset without any morph
  2. import a pose with “affect morphs“ and “load missing morphs“, without the database

steps:

  1. easy import G8F, with the default preset without any morph
  2. import the “kneeling-b” pose with “load missing morphs“, the pose is not loaded fine
  3. import the “kneeling-b” pose without “load missing morphs“, the pose is loaded fine

Comments (10)

  1. Thomas Larsson repo owner

    The base pose presets contain animations both for the bones and for the standard body morphs. The purpose of the latter is to clear any body morph so they don’t ruin the pose. This makes sense in DS, but in Blender the body morph drivers prevent bone poses. So I suppose that loading missing morphs should also make all bones posable to avoid this problem.

  2. Thomas Larsson repo owner

    Ah, I just noted that the Import Pose button has a Make All Bones Posable option. If that is enabled the pose loads fine. It should probably be enabled by default.

  3. Alessandro Padovani reporter

    As for the loaded morphs I don’t follow, for example G8 loads body morphs and flexions, but they’re all zero in the pose so not used, thus we shouldn’t load them. For G9 the issue is much worse since it seems to load any custom morph it can find, even if not used. If the reason is to “clear morphs so they don’t ruin the pose“, then we have to do this only if the morph is already loaded, otherwise the issue doesn’t apply.

    This issue is reported in the daz forum. https://www.daz3d.com/forums/discussion/679701/

    Let us know if we miss something.

    # load missing morphs
    for a new pose reset all pose morphs that are already loaded
    only load morphs which are non-zero in the duf file
    

    p.s. Personally I don’t use “load missing morphs“, because I always know exactly which morphs I want to use in my animations, so this is for users who want to load a daz pose without knowing which morphs the pose uses. Anyway, getting tons of extra morphs which are zero thus not used in the pose is confusing at least, and I believe it’s actually wrong. Again, we just have to reset the existing morphs before loading the pose, which essentially means “clear morphs“ should be the default otherwise morphs can’t work fine.

  4. Thomas Larsson repo owner

    Yes of course, that makes a lot more sense than loading every zero morph in the pose preset. Implemented in last commit.

  5. Thomas Larsson repo owner

    There were still problems in the previous commit, that had to do with aliases. Hopefully fixed now.

  6. Alessandro Padovani reporter

    Commit b7b9cde.

    Seems to work fine here, though again I’m not a user of “load missing morphs“ so can’t do extensive tests. One note, as I understand it “clear morphs“ and “make bones posable“ should always be checked by default for things to work fine, they’re not now. Let me know or I’ll close as resolved.

  7. Thomas Larsson repo owner

    Morphs are not cleared in DS; that’s why the kneeling preset sets all the body morphs to zero. And you probably don’t want body morphs or genitals morphs to be cleared every time you load a new facial expression.

    Make bones posable could be enabled by default.

  8. Thomas Larsson repo owner

    Now all tools that load morphs make bones posable by default. Easy import disables this when it calls other tools, and then makes bones posable once after all kinds of morphs have been loaded.

  9. Log in to comment