DAZ favourits not working

Issue #2143 resolved
Rincewind created an issue

At least for props.
I wanted to add https://www.daz3d.com/everyday-toiletries to my Blender Asset Browser. Some of the none Armature props have morphs. I marked them as favourits and checked in the easy import DAZ Favorites.
But these morphs don’t appear as shapekeys in Blender.

I created a simplified demo file to test.

The prop in the demo file has one morph, already marked as a Favorite.

Comments (49)

  1. Alessandro Padovani

    The daz importer is designed for proper packaged assets. In your case you probably just created a morph with morph loader. You need to package your asset as usual, for more information on daz packages please ask the daz forum.

    Unless Thomas wants to support morphs in the duf file.

    daz package:

    1. save figure asset
    2. save morphs assets
    3. zip

  2. Alessandro Padovani

    But with toiletries it should work, unless daz favorites are only intended for figures and not for props. Better wait for a reply by Thomas in this case.

    p.s. Of course we can always use custom morphs when favorites fails for any reason.

  3. Thomas Larsson repo owner

    The plugin now also looks for favorite morphs defined in the duf file itself. Hence the monkey expression is imported. It doesn’t appear in the morphs panel because that contains the rig properties that drive the morphs, and there is no rig in this case. But the shapekey is imported.

    I cannot test the toiletries because I don’t have that asset.

  4. Rincewind reporter

    Thank you, the monkey is working. But not the toiletries. I guess I figured out why. In the toiletries are also assets with a rig. As soon one asset with a rig is in the file, DAZ favorites seems not to work with static props any more.

    I created a new test file which simulates the behavior.
    (added monkey2x.duf to the start thread).

  5. Alessandro Padovani

    @Thomas. I can confirm that favorites don’t work if there’s a figure in the scene. I packaged a little example for you to test.

    steps:

    1. be sure to have the G2 package installed, since I added a morph for the bowl prop in shaded heaven
    2. manual install the PadoneBowl.zip package, it includes a morph and a couple test scenes
    3. easy import the “bowl.duf” scene with “daz favorites“, this works fine the favorite morph is imported as shapekey
    4. easy import the “bowl and G8.duf“ scene with “daz favorites“, this doesn’t work the favorite morph is not imported

    note. If possible, it may be a good idea to add a driver for prop favorites, so that they appear in the morphs panel. Though I understand props don’t have a armature so drivers have to be on the object.

    p.s. possible solution for morph drivers. Eventually we may add a placeholder bone to props if this is the only way to have morph drivers.

  6. Rincewind reporter

    At least, from my point of view, I don’t need props shape keys in the morphs panel.
    For figures it makes sense, because of all the JCMs and so on, but for props we normally we don’t have these “hidden” extra morphs, so shape keys only works for me fine.

  7. Alessandro Padovani

    Having them in the morphs panel helps for animation, because you can keyframe all the morphs at once, this is not possible otherwise.

  8. Thomas Larsson repo owner

    All favorite morphs are imported now. Note that you cannot use Unmorphed Shared mesh fitting for the two monkeys, because then both monkeys will blink at the same time because they share the mesh datablock.

    The shapekeys now also show up in the Mesh Shape Keys panel. Maybe that should be made optional.

  9. Alessandro Padovani

    Commit 62e45d4.

    possible bug. morph limits. I’m not sure if this is a bug or something I did wrong with the bowl morph, but the morph limits in daz studio are -100% to 100%, while in blender they are -10 to 10 that’s ten wider. Personally I use a 2 multiplier in the global settings. Let me know.

    steps:

    1. import the bowl scene

    Apart this, everything seems to work fine here, thank you for your work.

  10. Rincewind reporter

    working as expected for me, thank you!

    About the Mesh Shape Keys panel, I found a quick way to remove that flag for all items. So I don’t care if it’s optional or not. ;)

  11. Thomas Larsson repo owner

    Creation of a UI for the shapekeys is now controlled by the global setting “Shapekey Categories”. It affects the import of custom morphs, dbz morphs, and daz favorites.

    I don’t have a problem with limits. Below you see my settings and the limits they result in.

  12. Rincewind reporter

    Just found something else interesting. I’m currently migrating those assets to Blender: https://www.daz3d.com/everyday-gadgets
    One of them has a Boolean Morph:

    There seems no (easy) way to convert it inside of DAZ to a normal morph. And Boolean morphs are currently not detected by Diffeo.
    Bascially it’s a normal morph, which only supports 0% and 100%.
    Maybe this could be something Diffeo could also handle? There are a lot of props which such boolean morphs.

  13. Thomas Larsson repo owner

    Sorry, but which asset is this? The only asset with an “Extend Stand” morph that I find is the alarm clock, and that slider is a float in DS, and the same in Blender

  14. Alessandro Padovani

    possible bug. morph limits.

    update. Yes, works fine with final limits = daz, while if I set final limits = none then it goes -10 10 both for the shapekey and the slider. I guess for undriven shapekeys the slider limits should be used, as there’s no driver to go with final limits, unless I miss something.

  15. Rincewind reporter

    I found a solution. This Boolean is nothing more than a driver for a hidden morph.
    The only thing I had to do is to fav that hidden morph instead of the boolean and now it’s working. I think here is no action from Diffeo needed.

  16. Rincewind reporter

    Do you have https://www.daz3d.com/everyday-groceries ?

    None of these assets are importing by Diffeo. This seems only related to this specific product. Other all other Everyday products are working.

    Normally I put all assets into one duf file and import them via Diffeo to Blender.
    But if do with this product, I just get an empty collection.

    Than I tried to import the duf of the asset directly:

    But getting than this error message:

    I guess the product itself is build in a way, Diffeo can’t read.

  17. Alessandro Padovani

    That looks like an ancient product, the release date on the info page is probably wrong since V5 is 13439 dated 2011, while everyday groceries is 12498 dated 2018. It could be a product for DS3 with daz format instead of duf format, it may work if you save as duf then import in blender.

    http://docs.daz3d.com/doku.php/public/read_me/index/12498/start

    p.s. While V3 V4 assets may work in some way, my advice is to stay with newer assets after V5 13439.

    p.p.s. As for the specific error be sure the folder is mapped in the global settings, if you have multiple daz folders.

  18. Rincewind reporter

    As shown in the Screenshot, the product has duf files.

    What I also did, adding these products to a new scene, save it as a duf und import that this duf into Blender.
    But than I get the empty collection - without an error message.

  19. Alessandro Padovani

    What is the specific full file path in daz studio, both for the scene and the installed assets ? Check that these are included in the global settings, the same as they appear in daz studio. For old poser assets there may be definitions in the poser format (runtime) used by the duf file (data), for example if this is a iray conversion of a old asset as it probably is, so be sure those are mapped as well.

    But again, I’d avoid using such ancient assets mixed with poser formats.

  20. Rincewind reporter

    I don’t think it old poser stuff

    1. There is a Poser AND a DAZ package in DIM to install
    2. There’s a 3DL AND iray version. Iray is only newer stuff.
    3. The duf and textures files of that prodcut are in the same directories like the other DAZ assets, which can be imported.

  21. Thomas Larsson repo owner

    I only have the old Poser version, but it works fine. Load the Poser items into DS and save them as a duf file. However, in Blender the Poser directory must be added to the root paths, because otherwise the textures are not found.

  22. Alessandro Padovani

    4.2.0.2258

    popping. Thomas the limits are not fixed, let us now so we can close as resolved or invalid or wontfix if there’s any reason not to fix this. If we have to always use final limits = daz for things to work then we can remove the option and keep only the slider limits, I guess this is acceptable anyway since we have the multiplier.

    steps:

    1. in the global settings set slider limits = daz and final limits = none
    2. import the bowl with daz favorites
    3. the morph slider goes from -10 to 10 instead of -1 to 1

  23. Thomas Larsson repo owner

    The final limits must be set to DAZ for things to work as in DS. This is the default and the user should not change that, unless he knows what he is doing and want to achieve some special effect. But I don’t see a reason to remove that possibility.

    The +-10 range is a Blender limitation. It’s as close to +-infinity as it gets.

  24. Alessandro Padovani

    update. important. soft limits.

    The min max range for shapekeys seems to define the hard limits, that’s good if they need to be -10 10 for some reason. But the soft limits for the slider in the UI should be -1 1 or -2 2 if we use the multiplier, that’s not the case the slider limits in the UI are -10 10 same as the hard limits.

    Since soft limits are recently introduced this should be the solution.

  25. Alessandro Padovani

    Thomas we wrote together let me know if soft limits make sense to you, or I’ll close as resolved. It’s not a big deal to keep daz as final limits.

  26. Alessandro Padovani

    update. bug. soft limits.

    It turns out the soft limits work fine for common morphs, such as face units, expressions etc., even with final limits = none. They just don’t work for props as the bowl example, so this sounds as a bug. That is, for the bowl we have -10 to 10 for the shapekey that’s correct, but the slider should go from -1 to 1 since the slider limits = daz, instead it goes from -10 to 10.

    Let us know.

    steps:

    1. set slider limits = daz and final limits = none
    2. import g8 with face units, the sliders soft limits work fine
    3. import the bowl with daz favorites, the sliders soft limits don’t work they’re the same as the hard limits

  27. Alessandro Padovani

    @Thomas Let us now if you can fix the slider soft limits for the props, as explained above. So we can close as resolved or wontfix if this is not possible for some reason. Of course let me know if something is not clear.

    update. See #2158 for a possible solution.

  28. Thomas Larsson repo owner

    The slider that appears in the UI is not some custom property, it is the shapekey value itself. The shapekey doesn’t have soft limits, so I don’t see what else it could be. Perhaps the shapekey could use the slider limits rather than final limits for props, but for figures it should definitely be the final limtis, since in that case the shapekey value is driven by a armature property.

    If the global setting Shapekey Categories is disabled when the morph is loaded, the shapekey is not displayed in the UI.

  29. Alessandro Padovani

    Yes of course, only float and int have soft limits as explained in the article linked above. So for soft limits we have to use a float slider in this case, and drive the shapekey with the slider. The shapekey itself can have final limits as you say, then the slider can have both final and soft limits.

    The user can input any value with the slider numeric field within final limits (min max).

    The user can only drag the slider within soft limits (soft_min soft_max).

  30. Thomas Larsson repo owner

    You seem to suggest to introduce an extra object property (for the mesh object) with the sole purpose of having both hard and soft limits. That doesn’t look like a good idea to me. Most people don’t use adjusters, and an extra propery only adds complexity and slows down the viewport (probably not much, but in principle).

    However, I changed the code so that shapekeys use the final limits without multiplier if they belong to a prop. The multiplier is still present in limits for figure shapekeys.

  31. Alessandro Padovani

    Thomas, we can’t use hard limits for sliders, otherwise daz poses and animations may not work when we have sliders driving each other, as explained in #2158, this is true both for figures and props. That’s why we need soft limits for the props sliders too. To do this we need to change the sliders to floats, then drive the shapekeys, basically the same you already do for figures.

    This is also confusing for the user since this way the limits in the global settings don’t work for props.

    That said, if you really don’t want to, we can say this is a known limitation by design, then close as wontfix.

  32. Alessandro Padovani

    note. possible solution ?

    If a armature is required, we could load props with a dummy bone so to use the same code as for figures.

    Or again we can close as wontfix then add some notes in the wiki, that props can only use base morphs with daz limits, so the global settings don’t apply to props. Complex morphs and daz animations will not work, only basic support is provided, this is a known limitation by design.

    Let us know.

  33. Thomas Larsson repo owner

    Driving shapekeys with mesh object properties has now been implemented. In fact it wasn’t too big a change. The code that loads morph now uses an active rig and an active object. When loading morphs to figures they are the same, but when loading morphs to props the active object is the mesh object and there is no active rig. However, the code might not be totally debugged yet.

    The global variable “Mesh Drivers” determines whether object properties should be created for props. The same variable also decides whether the object property or the shapekey itself should be displayed in the Morphs panel. Hence it is a bad idea to change the value of the variable because it leads to undesired behaviour.

  34. Alessandro Padovani

    Commit d368c61.

    Seems to work great, thank you for your work on this.

    possible bug. adjusters. One possible bug is that adjusters don’t appear for the bowl prop, even if I selected adjusters = all in the global settings. Unless you don’t want adjusters for props. Let us know. Multipliers and soft limits work fine.

  35. Alessandro Padovani

    Commit 0212a8f.

    bug. favorite adjusters. We get adjusters for the custom morphs categories, but there’s no adjusters for the favorites categories.

    bug. shapekey limits. I see shapekeys are limited by the final multiplier, this is wrong the shapekeys should always be unlimited, or -10 +10 because we have to set some values. This is the same reason why sliders are unlimited, they only have soft limits, because both sliders and shapekeys must go beyond the daz limits to allow daz morphs to work, when we have daz morphs driving each other, ref #2158. Below a summary for clearness.

    limits:

    • shapekeys: unlimited. We use -10 +10 because we have to set some values for blender.
    • sliders: unlimited. Hard limits are unlimited, we only set soft limits, that’s slider limits * slider multiplier, then the user should usually set slider limits = daz.
    • adjusters: unlimited. Practically we need final multiplier = 10 for adjusters to work, but this is a workaround, there’s probably a bug somewhere, if the bug is fixed then the final multiplier can be removed because it’s not used anywhere else but to get adjusters to work.
    • final morph values: limited by final limits. Then the user should set final limits = daz for daz poses to work, the final multiplier must not be used here.

    Let me know if something is not clear. Also let me know if you want to give a look at adjusters, as ideally we don’t need the final multiplier unless to get adjusters to work. As a minimum fix we have to set shapekey limits to -10 +10, the rest is optional.

  36. Alessandro Padovani

    Commit ae0299b.

    Shapekeys are fine, thank you. If there’s nothing to add we may close as resolved, as everything works now. Let us know if you want to add adjusters to daz favorites.

  37. Thomas Larsson repo owner

    Adjusters for daz favorites seems like a rather useless feature, but it was straightforward to add so I did it.

  38. Alessandro Padovani

    Commit 23f4ca2.

    Nope, I set “adjusters = all” in global settings and “use adjusters“ in easy import, but daz favorites come without. Same as before, both for figures and props.

    steps:

    1. in daz studio load G8 and set some favorites
    2. in blender easy import with daz favorites and adjusters

  39. Thomas Larsson repo owner

    Sorry, I didn’t test easy import but only imported the favorites manually. Now they work. In the picture,

    final value = 0.25 * 1.5 * 2.0 = 0.75

  40. Log in to comment