Custom morph import errors

Issue #437 closed
Noname created an issue

Hello,

Just testing around and encountered two bugs while loading custom morphs:

Same steps for both are same, load custom morph.
Issue 1:

Python: Traceback (most recent call last):
  File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\error.py", line 246, in execute
    self.run(context)
  File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\morphing.py", line 1077, in run
    self.getAllMorphs(namepaths, context)
  File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\morphing.py", line 717, in getAllMorphs
    self.loadAllMorphs(list(namepaths.items()))
  File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\load_morph.py", line 72, in loadAllMorphs
    self.makeAllMorphs(namepaths)
  File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\load_morph.py", line 98, in makeAllMorphs
    char = self.makeSingleMorph(name, path)
  File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\load_morph.py", line 119, in makeSingleMorph
    self.makeFormulas(asset, sname)
  File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\load_morph.py", line 170, in makeFormulas
    self.addNewProp(asset.getName(), asset, sname)
  File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\load_morph.py", line 226, in addNewProp
    raise RuntimeError("BUG")
RuntimeError: BUG

location: <unknown location>:-1

Issue 2:

Python: Traceback (most recent call last):
  File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\error.py", line 246, in execute
    self.run(context)
  File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\morphing.py", line 1077, in run
    self.getAllMorphs(namepaths, context)
  File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\morphing.py", line 717, in getAllMorphs
    self.loadAllMorphs(list(namepaths.items()))
  File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\load_morph.py", line 72, in loadAllMorphs
    self.makeAllMorphs(namepaths)
  File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\load_morph.py", line 98, in makeAllMorphs
    char = self.makeSingleMorph(name, path)
  File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\load_morph.py", line 117, in makeSingleMorph
    sname = self.buildShapekey(asset)
  File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\load_morph.py", line 142, in buildShapekey
    if useBuild and not skey:
UnboundLocalError: local variable 'skey' referenced before assignment

location: <unknown location>:-1

Issue 3:

Incorrect path to daz library:

ERROR:
Did not find path:
"G:/DAZ 3D/x64/DAZ 3D/DAZStudio4/shaders/iray/data/3feetwolf/new genitalia for victoria 7//morphs/pbmgenspullout.dsf"
Ref:"/data/3feetwolf/new genitalia for victoria 7//morphs/pbmgenspullout.dsf"
For details see
'C:\Users\user\Documents\daz_importer_errors.txt'

TRACEBACK:
  File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\error.py", line 246, in execute
    self.run(context)
  File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\morphing.py", line 1077, in run
    self.getAllMorphs(namepaths, context)
  File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\morphing.py", line 717, in getAllMorphs
    self.loadAllMorphs(list(namepaths.items()))
  File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\load_morph.py", line 75, in loadAllMorphs
    self.makeMissingMorphs()
  File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\load_morph.py", line 451, in makeMissingMorphs
    path = getDazPath(ref)
  File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\asset.py", line 601, in getDazPath
    reportError(msg, trigger=(3,4))
  File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\error.py", line 130, in reportError
    raise DazError(msg)


FILES VISITED:

ASSETS:
"/data/3feetwolf/new%20genitalia%20for%20victoria%207/morphs/xameva/deep%20inside%20new%20gens%20v7/closedsqueeze.dsf":
  <File None>

"/data/3feetwolf/new%20genitalia%20for%20victoria%207/morphs/xameva/deep%20inside%20new%20gens%20v7/closedsqueeze.dsf#ClosedSqueeze":
  <Morph ClosedSqueeze 0.000000 -1 0 None>

...

"/data/3feetwolf/new%20genitalia%20for%20victoria%207/new_gens_v7_4948.dsf":
  <File None>


OTHER ASSETS:

DAZ ROOT PATHS:
0:   "G:/DAZ 3D/MyDaz3DLibrary"
1:   "G:/DAZ 3D/x64/DAZ 3D/DAZStudio4/shaders/iray"

MISSING ASSETS:
  /data/3feetwolf/new%20genitalia%20for%20victoria%207/new_gens_v7_4948.dsf#new_gens_V7_4948
  /data/3feetwolf/new%20genitalia%20for%20victoria%207/new_gens_v7_4948.dsf#new_gens_V7
  /data/3feetwolf/new genitalia for victoria 7//morphs/pbmgenspullout.dsf

Truncated ASSETS section so there is less noise.

The issue is that plugin uses incorrect path for creating final path:

G:/DAZ 3D/x64/DAZ 3D/DAZStudio4/shaders/iray/data

this is second path that I use in plugin.

Above was my initial suspicion that incorrect path was used with was but after changing order of paths now I encounter this error:

ERROR:
Did not find path:
"G:/DAZ 3D/MyDaz3DLibrary/data/3feetwolf/new genitalia for victoria 7//morphs/pbmgenspullout.dsf"
Ref:"/data/3feetwolf/new genitalia for victoria 7//morphs/pbmgenspullout.dsf"
For details see
'C:\Users\user\Documents\daz_importer_errors.txt'

TRACEBACK:
  File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\error.py", line 246, in execute
    self.run(context)
  File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\morphing.py", line 1077, in run
    self.getAllMorphs(namepaths, context)
  File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\morphing.py", line 717, in getAllMorphs
    self.loadAllMorphs(list(namepaths.items()))
  File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\load_morph.py", line 75, in loadAllMorphs
    self.makeMissingMorphs()
  File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\load_morph.py", line 451, in makeMissingMorphs
    path = getDazPath(ref)
  File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\asset.py", line 601, in getDazPath
    reportError(msg, trigger=(3,4))
  File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\error.py", line 130, in reportError
    raise DazError(msg)


FILES VISITED:

ASSETS:
"/data/3feetwolf/new%20genitalia%20for%20victoria%207/morphs/xameva/deep%20inside%20new%20gens%20v7/closedsqueeze.dsf":
  <File None>

...

"/data/3feetwolf/new%20genitalia%20for%20victoria%207/new_gens_v7_4948.dsf":
  <File None>


OTHER ASSETS:

DAZ ROOT PATHS:
0:   "G:/DAZ 3D/x64/DAZ 3D/DAZStudio4/shaders/iray"
1:   "G:/DAZ 3D/MyDaz3DLibrary"

MISSING ASSETS:
  /data/3feetwolf/new%20genitalia%20for%20victoria%207/new_gens_v7_4948.dsf#new_gens_V7_4948
  /data/3feetwolf/new%20genitalia%20for%20victoria%207/new_gens_v7_4948.dsf#new_gens_V7
  /data/3feetwolf/new genitalia for victoria 7//morphs/pbmgenspullout.dsf

As always thanks in advance for fix.

Best regards

Comments (4)

  1. Thomas Larsson repo owner

    In all three cases there is something fishy about the assets being loaded, which caused untested parts of the code to be run.

    1. All previous driving properties have known if they are floats or bools. This one doesn’t. An error with a better error message is now only triggered if verbosity >= 3, otherwise the property is treated as a float.
    2. This happens only when there is a vertex count mismatch between the mesh and the morph. Now this triggers an error if verbosity >= 3, otherwise the morph is ignored, and a # is printed front of the name in the terminal to indicate this.
    3. As you expected, if a path is not found, the last one tested is printed. This is just a poor error message and not the root cause of the problem, though. In the reference "/data/3feetwolf/new genitalia for victoria 7//morphs/pbmgenspullout.dsf" I’m suspicious about the double slashes between victoria 7 and morphs. Should there be a xameva in there? What happens if you load all morphs in the xameva folder, and not just a few?

  2. Noname reporter

    Thanks for reply,

    Did updated plug-in and retested and results are:

    Encountered crash just after plug-in update and first import, happened only once, could be not related, just reporting. Crash happened while importing progress was shown probably before showing model.

    Steps:

    1. [daz] export dbz using latest version (just in case)
    2. set verbosity level to 5 in plug-in and save
    3. use Import (not easy) to import model with dbz
    4. select genitalia geographt and import custom morphs. Open window will auto open in proper location.

    And now:

    a) select all in that default open directory:

    G:\DAZ 3D\MyDaz3DLibrary\data\3feetwolf\New Genitalia For Victoria 7\Morphs\

    ERROR:
    Duplicate asset definition
      Asset 1: <Morph PBMGensClosure 0.000000 4948 1141 None>
      Asset 2: <Morph PBMGensClosure 0.000000 4948 1141 (bpy.data.shape_keys['Key'].key_blocks["PBMGensClosure"], bpy.data.objects['New Genitalia For Victoria 7.001'], 'PBMGensClosure')>
      Ref 1: /data/3feetwolf/new%20genitalia%20for%20victoria%207/morphs/pbmgensclosure.dsf#PBMGensClosure
      Ref 2: /data/3feetwolf/new%20genitalia%20for%20victoria%207/morphs/pbmgensclosure.dsf#PBMGensClosure
    
    For details see
    'C:\Users\user\Documents\daz_importer_errors.txt'
    
    TRACEBACK:
      File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\error.py", line 246, in execute
        self.run(context)
      File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\morphing.py", line 1077, in run
        self.getAllMorphs(namepaths, context)
      File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\morphing.py", line 717, in getAllMorphs
        self.loadAllMorphs(list(namepaths.items()))
      File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\load_morph.py", line 76, in loadAllMorphs
        self.makeMissingMorphs()
      File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\load_morph.py", line 468, in makeMissingMorphs
        self.makeAllMorphs(namepaths, False)
      File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\load_morph.py", line 99, in makeAllMorphs
        char = self.makeSingleMorph(name, path, force)
      File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\load_morph.py", line 111, in makeSingleMorph
        asset = parseAssetFile(struct)
      File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\files.py", line 333, in parseAssetFile
        return parseMorph(asset, struct)
      File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\modifier.py", line 77, in parseMorph
        return asset.parseTypedAsset(mstruct, Morph)
      File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\files.py", line 300, in parseTypedAsset
        self.saveAsset(struct, asset)
      File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\asset.py", line 191, in saveAsset
        reportError(msg, trigger=(2,4))
      File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Diffeomorphic-import-daz-dev\error.py", line 130, in reportError
        raise DazError(msg)
    
    
    FILES VISITED:
    
    ASSETS:
    "/data/3feetwolf/new%20genitalia%20for%20victoria%207/morphs//ctrlgensclitoralhoodleftright.dsf":
      <File None>
    
    "/data/3feetwolf/new%20genitalia%20for%20victoria%207/morphs//ctrlgensglansclitorisleftright.dsf":
      <File None>
    
    "/data/3feetwolf/new%20genitalia%20for%20victoria%207/morphs//ctrlgensglansclitorisupdown.dsf":
      <File None>
    
    ...
    
    "/data/3feetwolf/new%20genitalia%20for%20victoria%207/morphs/pbmgensmonspubisadjustment.dsf#PBMGensMonsPubisAdjustment":
      <Morph PBMGensMonsPubisAdjustment 0.000000 4948 195 (bpy.data.shape_keys['Key'].key_blocks["PBMGensMonsPubisAdjustment"], bpy.data.objects['New Genitalia For Victoria 7.001'], 'PBMGensMonsPubisAdjustment')>
    
    "/data/3feetwolf/new%20genitalia%20for%20victoria%207/morphs/pbmgensopen.dsf#PBMGensOpen":
      <Morph PBMGensOpen 0.000000 4948 1504 (bpy.data.shape_keys['Key'].key_blocks["PBMGensOpen"], bpy.data.objects['New Genitalia For Victoria 7.001'], 'PBMGensOpen')>
    
    "/data/3feetwolf/new%20genitalia%20for%20victoria%207/morphs/pbmgensopen1.dsf#PBMGensOpen1":
      <Morph PBMGensOpen1 0.000000 4948 1731 (bpy.data.shape_keys['Key'].key_blocks["PBMGensOpen1"], bpy.data.objects['New Genitalia For Victoria 7.001'], 'PBMGensOpen1')>
    
    "/data/3feetwolf/new%20genitalia%20for%20victoria%207/morphs/pbmgensoverallsize.dsf":
      <File None>
    
    ...
    "/data/3feetwolf/new%20genitalia%20for%20victoria%207/morphs/pbmvictoria7genscorrectiveltbs.dsf#PBMVictoria7GensCorrectiveLTBS":
      <Morph PBMVictoria7GensCorrectiveLTBS 0.000000 4948 4259 (bpy.data.shape_keys['Key'].key_blocks["PBMVictoria7GensCorrectiveLTBS"], bpy.data.objects['New Genitalia For Victoria 7.001'], 'PBMVictoria7GensCorrectiveLTBS')>
    
    "/data/3feetwolf/new%20genitalia%20for%20victoria%207/morphs/pbmvictoria7genscorrectivertb.dsf#PBMVictoria7GensCorrectiveRTB":
      <Morph PBMVictoria7GensCorrectiveRTB 0.000000 4948 3585 (bpy.data.shape_keys['Key'].key_blocks["PBMVictoria7GensCorrectiveRTB"], bpy.data.objects['New Genitalia For Victoria 7.001'], 'PBMVictoria7GensCorrectiveRTB')>
    
    "/data/3feetwolf/new%20genitalia%20for%20victoria%207/morphs/pbmvictoria7genscorrectivertbs.dsf#PBMVictoria7GensCorrectiveRTBS":
      <Morph PBMVictoria7GensCorrectiveRTBS 0.000000 4948 3903 (bpy.data.shape_keys['Key'].key_blocks["PBMVictoria7GensCorrectiveRTBS"], bpy.data.objects['New Genitalia For Victoria 7.001'], 'PBMVictoria7GensCorrectiveRTBS')>
    
    "/data/3feetwolf/new%20genitalia%20for%20victoria%207/new_gens_v7_4948.dsf":
      <File None>
    
    
    OTHER ASSETS:
    
    DAZ ROOT PATHS:
    0:   "G:/DAZ 3D/x64/DAZ 3D/DAZStudio4/shaders/iray"
    1:   "G:/DAZ 3D/MyDaz3DLibrary"
    
    MISSING ASSETS:
      /data/3feetwolf/new%20genitalia%20for%20victoria%207/new_gens_v7_4948.dsf#new_gens_V7_4948
      /data/3feetwolf/new%20genitalia%20for%20victoria%207/new_gens_v7_4948.dsf#new_gens_V7
    

    NOTE1: truncated some to save space, full attached: https://easyupload.io/f4e3d8

    NOTE: maybe I also have left over files from outdated version ? Could that cause issues ? My library is old and I manually updated gens IIRC.

    2. Hm… maybe old assets in my library as I manually updated assets so maybe leftover.

    3. Selecting single or all of the morphs produce same error. Note that there are some morphs imported, probably just not all of them (didn’t tested in Daz how many there suppose to be), and they don’t work (I do assume that this is caused by verbosity error and plugin stopping import on error, if not then maybe that’s issue ?).

    Also that double slash happens still and is before morphs and should be after:

      plugin ->      /data/3feetwolf/new genitalia for victoria 7//morphs/pbmgenspullout.dsf
      file on fs ->  /data/3feetwolf/New Genitalia For Victoria 7/Morphs/Xameva/Deep Inside New Gens V7/pbmgenspullout.dsf
    

    All above was tested using 1.6.0.0129 + blender 2.93.0 alpha

    NOTE: Double noting here, when I do set verboisity level to 5 most of imported morphs don’t work and there is less imported morphs on list then when using verbosity 1 practically all of them works and there is more of them. I do assume that’s intended behaviour caused by error level stopping import in verbosity > 3 ?

    Bottom line, when verbosity is set to 1 some (probably most of morphs) do load and there are those errors when I set verbosity to > 3.

    @Thomas Larsson If this is working fine on Your end then please close this issue. Most probably it’s problem with assets on my end (caused by manual update ?)

  3. Log in to comment