triax error

Issue #1755 duplicate
Alessandro Padovani created an issue

1.7.2.1828

I get an error loading a triax outfit alone, without the figure. For example the persian full top in the G2 pack.

steps:

  1. load the test scene persian.duf

Loading C:\Users\Alessandro\Documents\DAZ 3D\Studio\My Library\Scenes\persian.duf
Parsing data
Preprocessing...
Building objects...
Ignore <Instance Tonemapper%20Options-1 L:Tonemapper Options 0 N: Tonemapper Options P: None R: None>
Ignore <Instance Environment%20Options-1 L:Environment Options 0 N: Environment Options P: None R: None>
Traceback (most recent call last):
File "C:\Users\Alessandro\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\import_daz\error.py", line 223, in execute
self.run(context)
File "C:\Users\Alessandro\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\import_daz\main.py", line 286, in run
self.loadDazFile(filepath, context)
File "C:\Users\Alessandro\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\import_daz\main.py", line 180, in loadDazFile
asset.postbuild(context, inst)
File "C:\Users\Alessandro\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\import_daz\modifier.py", line 629, in postbuild
vgrp = ob.vertex_groups[getComp(pb, y)]
KeyError: 'bpy_prop_collection[key]: key "lThigh:y" not found'

Comments (17)

  1. Alessandro Padovani reporter

    Commit fa4ad07 works fine, thank you.

    other bugs. I noticed that the G1 G2 presets for easy import don’t include bulges, that should be fixed. Also for some reason the toulouse hair is not merged with G2. Test scene included g2f-persian.duf.

    steps:

    1. easy import the test scene g2f-persian.duf with G2 presets

    Other than that, a full G2 figure with simple rig works fine.

  2. Thomas Larsson repo owner

    Toulouse hair is not merged because it is not parented to the main figure. If you parent it to G2F it will be merged.

    The bulges are loaded if all settings are right. There are four global settings that must be set as in the picture below, plus Bulges must be enabled in easy import.

    The bulge shapekeys lead to some interesting deformation of the hair.

  3. Alessandro Padovani reporter

    Commit fa4ad07.

    bug. normalize. It’s not the bulges, it’s the weightmaps. I’m afraid we don’t have to normalize the weights when we mix, otherwise weights that are small in daz studio come out big in blender, thus the hair deformation. Luckily average and multiply don’t need normalize to work so we should be fine. Sorry for the mistake.

    The only exception is the forearm tweak, we can’t average then multiply because this way the hand twist map gets diminished. We have to multiply the hand twist map directly with the forearm general weight. In practice to get this we have to use replace instead of average in the lForeArm mix, as shown below.

    As for toulouse yes you’re right, it seems daz studio didn’t autofit when I loaded the hair. Sorry for the mistake.

    bug. bulges presets. As for bulges, I mean they should be default in the G1 G2 presets for easy import, same as jcms are default in the G3 G8 presets. Now it isn’t.

    p.s. Again, I used mix modifiers as example because I can’t code python, if there’s blender functions to mix weights it may be convenient to use them instead.

  4. Thomas Larsson repo owner

    Changes implemented in last commit. Also, the bulge vertex groups are removed from the clothes. They are not needed since the shapekeys are transferred from the body anyway.

  5. Alessandro Padovani reporter

    Commit dfb284e works fine for the requested features, thank you for the fix.

    bug. transfer bulges. I don’t think bulges should be transferred if they are already defined in the target mesh. This is equivalent to vendor morphs, we don’t transfer jcms if vendor jcms are defined. An outfit usually has bulges defined for the outfit, and in this case not to be transferred from the base mesh. Furthermore loading bulges is much faster than transferring.

    I’m also not sure that daz studio autofits (aka transfers) triax bulges, since they are not defined as morphs in daz studio, it is us who convert them to morphs in blender to implement triax. It is very possible that G1 G2 don’t transfer triax bulges, but only morphs eventually if defined in the base mesh, that is our “daz favorites“ option.

    So I wouldn’t transfer bulges at all. Let me know.

  6. Alessandro Padovani reporter

    minor request. fingers and toes jcms/bulges.

    It would be handy to have a button to filter fingers and toes in the jcms/bulges panel when we create them. Reason is, every shapekey in blender takes the whole mesh, so the less the better, and fingers/toes work quite fine without jcms/bulges, so we may want to exclude them for a nice optimization. It is already possible to select by hand of course, but given that there are different names for fingers and toes as “index“ “mid“ “pinky“ etc. this becomes tedious.

    Let me know.

  7. Thomas Larsson repo owner

    Easy import now avoids transferring most bulge shapekeys by disabling the overwrite option. This is useful also in the case that it tries to transfer to the same mesh several times, which would be a bug but has happened in the past. A few bulge shapekeys slip through this net, though.

    Easy import and Import standard morphs have an option to include finger (inluding toe) bulges. The Create bulges subbutton is called Body Bulges.

  8. Thomas Larsson repo owner

    Updates:

    1. The easy import option is renamed to “Body Bulges Only”.
    2. Easy import now ignores bulge shapekeys completely.

  9. Alessandro Padovani reporter

    Commit 1ff75b6.

    The “body bulges” selector works great thank you for the handy tool. I don’t see the option for jcms that’s the same. Let me know.

    As for transfer I’m not sure to follow. If I load g2f-persian I get a list of transferred morphs, there shouldn’t be any since the outfit already includes its own bulges. Again triax bulges are not morphs in daz studio, they are weightmaps so they don’t get autofitted. I mean we shouldn’t even try to transfer. Unless we wish to do so for some reason. Let me know.

    p.s. Consider that transferring is extremely slow, so to be avoided unless necessary.

    steps:

    1. easy import g2f-persian.duf with G2 presets.

  10. Thomas Larsson repo owner

    It seems like I forgot to push the last commit. This is the version where the morphs are transferred but existing morphs are not overwritten, between my two posts above. The terminal output means:

    X: Shapekey already exists, ignored.

    0: Bounding boxes do not overlap, ignored.

    +: Shapekey transferred.

  11. Thomas Larsson repo owner

    Now we can deselect fingers and toes when loading jcms too. The button and easy import option are called Only Body Shapes. I’m not satisfied with this name, but I didn’t want to call it Only Body Morphs to avoid confusion with the body morphs. Perhaps it could be renamed to Deselect Finger Morphs, but buttons should generally not use negatives.

  12. Alessandro Padovani reporter

    Commit 15040f8 works great, thank you for the fix.

    As for the name personally I’d call the option “Ignore Fingers“ that’s what it does, but that's very minor.

  13. Thomas Larsson repo owner

    I renamed the import option to “Ignore Fingers”, and the button in the select dialog to “All But Fingers”.

  14. Log in to comment