exception during morph scanning and importing characters

Issue #2096 resolved
KD created an issue

Hi Thomas,

Commit fa4013e seems to work okay but the next commit, 75c6e25, causes morph database scanning to fail, and also causes Easy Import to fail during morph transfer. This does not seem to be solved in later commits.

With the latest commit, 6df77b6, here is the traceback for scanning Gen 9 morph database:

* \Daz 3D\Base\head_bs_MouthRealism_HD3.dsf
* \Daz 3D\Base\head_ctrl_EyelashesNatural.dsf
* \Daz 3D\Base Correctives\body_cbs_foot_x45n_l.dsf
Traceback (most recent call last):
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\error.py", line 223, in execute
    self.run(context)
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\scan.py", line 370, in run
    self.scanCharacter(context, name, relpath, scanpath)
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\scan.py", line 382, in scanCharacter
    self.scanMorphs(morphpath, len(morphpath))
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\scan.py", line 180, in scanMorphs
    self.scanMorphs(path, nskip)
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\scan.py", line 180, in scanMorphs
    self.scanMorphs(path, nskip)
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\scan.py", line 184, in scanMorphs
    self.scanMorph(path, nskip)
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\scan.py", line 204, in scanMorph
    info,prop = self.evalExprs(asset, exprs)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\scan.py", line 261, in evalExprs
    prop = normKey(target.key)
                   ^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'key'
Error: Python: Traceback (most recent call last):
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\error.py", line 223, in execute
    self.run(context)
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\scan.py", line 370, in run
    self.scanCharacter(context, name, relpath, scanpath)
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\scan.py", line 382, in scanCharacter
    self.scanMorphs(morphpath, len(morphpath))
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\scan.py", line 180, in scanMorphs
    self.scanMorphs(path, nskip)
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\scan.py", line 180, in scanMorphs
    self.scanMorphs(path, nskip)
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\scan.py", line 184, in scanMorphs
    self.scanMorph(path, nskip)
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\scan.py", line 204, in scanMorph
    info,prop = self.evalExprs(asset, exprs)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\scan.py", line 261, in evalExprs
    prop = normKey(target.key)
                   ^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'key'

Also with the latest commit, the traceback when importing a G8.1F character with some clothing, graft and hair:

...
Load Jcms to Genesis 8.1 Female Eyelashes (0 morphs)
Load Jcms to Genesis 8.1 Female Tear (0 morphs)
Jcms loaded in 2.3 seconds
Load C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\data\scanned\Genesis81FemaleGeom.json
 * * * * * * * = * * * * * = * * * * * * * * * * * * * * * * * * * * * * *

Load C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\data\scanned\new_gens_V8.json
Traceback (most recent call last):
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\error.py", line 223, in execute
    self.run(context)
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\morphing.py", line 2071, in run
    if self.addFavoMorphs(ob, context):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\morphing.py", line 2110, in addFavoMorphs
    self.loadOwnMorphs(context, ob)
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\morphing.py", line 2011, in loadOwnMorphs
    msg = self.getAllMorphs(list(self.namepaths.values()), context)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\morphing.py", line 608, in getAllMorphs
    self.loadAllMorphs(namepaths)
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\load_morph.py", line 152, in loadAllMorphs
    self.makeAllMorphs(namepaths, True)
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\load_morph.py", line 220, in makeAllMorphs
    char = self.makeSingleMorph(name, asset, bodypart, force)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\load_morph.py", line 251, in makeSingleMorph
    self.makeFormulas(asset, skey)
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\load_morph.py", line 437, in makeFormulas
    target.key = prop
    ^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'key'
Error: Python: Traceback (most recent call last):
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\error.py", line 223, in execute
    self.run(context)
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\morphing.py", line 2071, in run
    if self.addFavoMorphs(ob, context):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\morphing.py", line 2110, in addFavoMorphs
    self.loadOwnMorphs(context, ob)
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\morphing.py", line 2011, in loadOwnMorphs
    msg = self.getAllMorphs(list(self.namepaths.values()), context)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\morphing.py", line 608, in getAllMorphs
    self.loadAllMorTraceback (most recent call last):
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\error.py", line 223, in execute
    self.run(context)
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\main.py", line 761, in run
    self.easyImport(context)
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\main.py", line 788, in easyImport
    self.treatRig(context, rigname)
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\main.py", line 953, in treatRig
    bpy.ops.daz.import_daz_favorites(
  File "C:\Program Files\Blender Foundation\Blender 4.1\4.1\scripts\modules\bpy\ops.py", line 109, in __call__
    ret = _op_call(self.idname_py(), kw)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: Error: Python: Traceback (most recent call last):
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\error.py", line 223, in execute
    self.run(context)
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\morphing.py", line 2071, in run
    if self.addFavoMorphs(ob, context):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\morphing.py", line 2110, in addFavoMorphs
    self.loadOwnMorphs(context, ob)
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\morphing.py", line 2011, in loadOwnMorphs
    msg = self.getAllMorphs(list(self.namepaths.values()), context)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\morphing.py", line 608, in getAllMorphs
    self.loadAllMorphs(namepaths)
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\load_morph.py", line 152, in loadAllMorphs
    self.makeAllMorphs(namepaths, True)
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\load_morph.py", line 220, in makeAllMorphs
    char = self.makeSingleMorph(name, asset, bodypart, force)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\load_morph.py", line 251, in makeSingleMorph
    self.makeFormulas(asset, skey)
  File "C:\Users\blender_user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\load_morph.py", line 437, in makeFormulas
    target.key = prop
    ^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'key'
Location: C:\Program Files\Blender Foundation\Blender 4.1\4.1\scripts\modules\bpy\ops.py:109

I am having to stay on commit fa4013e for it all to work correctly. I hope the info is useful for debugging.

Comments (7)

  1. Thomas Larsson repo owner

    The first issue has been fixed. Probably the second issue too, but I wasn’t able to trigger it so I’m not sure.

  2. KD reporter

    Thank you, Thomas, the character now completes the import but custom morphs on the graft which were saved as favorite in DAZ no longer import. This error comes up in the log after import:

    ERROR (bpy.rna): C:\Users\blender\git\blender-v410\blender.git\source\blender\python\intern\bpy_rna.cc:7582 pyrna_srna_Subtype: failed to register 'DAZ_UL_CustomMorphs'
    TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases
    Error loading DAZ_UL_CustomMorphs. ERROR: bpy.types.DAZ_UL_CustomMorphs subtype could not be generated, this is a bug!
    

  3. KD reporter

    Correction: the custom graft morphs are importing, despite that error message. That error message comes up on importing and also every time starting a new scene in Blender, after having imported and saved a daz character.

  4. Jay kenti

    Hello, i have also faced this issue after i press the ‘Scan Morph Database’ button

    Blender Version: 4.1.1

    DAZ Setup Version: 4.1.0.2147 (downloaded from the dropbox link provided on diffeomorphic.blogspot.com)

    * \Daz 3D\Base Characters 9\Ty_head_bs_Head.dsf
    * \Daz 3D\Base Correctives\body_cbs_foot_x45n_l.dsf
    Traceback (most recent call last):
      File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\error.py", line 223, in execute
        self.run(context)
      File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\scan.py", line 370, in run
        self.scanCharacter(context, name, relpath, scanpath)
      File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\scan.py", line 382, in scanCharacter
        self.scanMorphs(morphpath, len(morphpath))
      File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\scan.py", line 180, in scanMorphs
        self.scanMorphs(path, nskip)
      File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\scan.py", line 180, in scanMorphs
        self.scanMorphs(path, nskip)
      File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\scan.py", line 184, in scanMorphs
        self.scanMorph(path, nskip)
      File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\scan.py", line 204, in scanMorph
        info,prop = self.evalExprs(asset, exprs)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\scan.py", line 261, in evalExprs
        prop = normKey(target.key)
                       ^^^^^^^^^^
    AttributeError: 'NoneType' object has no attribute 'key'
    Error: Python: Traceback (most recent call last):
      File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\error.py", line 223, in execute
        self.run(context)
      File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\scan.py", line 370, in run
        self.scanCharacter(context, name, relpath, scanpath)
      File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\scan.py", line 382, in scanCharacter
        self.scanMorphs(morphpath, len(morphpath))
      File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\scan.py", line 180, in scanMorphs
        self.scanMorphs(path, nskip)
      File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\scan.py", line 180, in scanMorphs
        self.scanMorphs(path, nskip)
      File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\scan.py", line 184, in scanMorphs
        self.scanMorph(path, nskip)
      File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\scan.py", line 204, in scanMorph
        info,prop = self.evalExprs(asset, exprs)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\import_daz\scan.py", line 261, in evalExprs
        prop = normKey(target.key)
                       ^^^^^^^^^^
    AttributeError: 'NoneType' object has no attribute 'key'
    

    could someone help me with solution of this issue

    Sorry, I’m new to this add-on and also here

    Thank You.

  5. Log in to comment