Error when converting Genesis 8.1 rig to MHX.

Issue #1710 resolved
Anon unkwon created an issue

First, big thanks to Thomas for creating this addon, and a many thanks to everyone involved in improving this awesome addon!

I stumbled across a bug while I was trying to convert a genesis 8.1 rig to MHX, which caused the following error:

Python: Traceback (most recent call last):
  File "C:\Users\----\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\Diffeomorphic-import_daz-16916f3ae906\error.py", line 222, in execute
    self.run(context)
  File "C:\Users\----\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\Diffeomorphic-import_daz-16916f3ae906\mhx.py", line 527, in run
    self.convertMhx(context)
  File "C:\Users\----\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\Diffeomorphic-import_daz-16916f3ae906\mhx.py", line 633, in convertMhx
    self.restoreFixConstraints(rig)
  File "C:\Users\----\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\Diffeomorphic-import_daz-16916f3ae906\mhx.py", line 1427, in restoreFixConstraints
    cinfo1 = getLimitRot(clist1)
  File "C:\Users\----\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\Diffeomorphic-import_daz-16916f3ae906\mhx.py", line 1402, in getLimitRot
    for elt in clist:
TypeError: 'NoneType' object is not iterable

(Blender 3.6, latest MHX version as well as import-daz version)

Since I’m completely useless when it comes to programming, I tried created a character that would replicate this error.

I went through quite a few morphs, and it seems that the “Arms Length” morph seems to be causing the problem.

Not sure if there are other morphs or if this is just me, since I don’t have another computer to replicate this on.

Comments (8)

  1. Alessandro Padovani

    “Arms Length” is a ERC morph, that is, it morphs the figure armature other than the geometry. Most morphs under “Actor“ are ERC, most morphs under “Pose Controls“ aren't, at least DAZ originals while PAs tend to do some confusion. Blender doesn’t support morphed armatures but Thomas uses some tricks to make it happen.

    https://diffeomorphic.blogspot.com/2021/09/morphing-armatures.html

    The thng is, ERC morphs are incompatible with IK, same as body morphs, so they are not intended for MHX or rigify, if you want ERC morphs then you use the daz rig. That said, the python error is to be fixed.

    p.s. The intended workflow is to bake actor morphs into dbz, not to import them in blender, though this is possible via ERCs.

    p.p.s. Added information to the wiki since I see this is a common mistake.

    https://bitbucket.org/Diffeomorphic/import_daz/wiki/Morphs/Morphing Armatures

  2. Anon unkwon reporter

    Thanks the for reply, but the same character used to work in terms of converting them to MHX.

    This only started happening somewhat around a week.

    I might try it again on an older version of import daz.

    I can definetely confirm, since I converted that characters with the arm morphs multiple times in the past.

  3. Anon unkwon reporter

    Quick follow up: Tried out the same character with the arm length morph using both the latest import daz and version 1.7.1.1703.

    There are no errors in the stable release (1.7.1.1703) and I can use MHX per usual.

    The latest version still has the same error which also makes it unrecognizeable by MHX (The mhx addon doesn’t show any layers etc.)

    Just for clarification regarding ERC morphs: I do apply the morphs inside DAZ first and then bring the character into blender, where I start converting the rig to mhx.
    Cheers and thanks!

  4. Thomas Larsson repo owner

    I’m not able to fix bugs right now, but I will have a look tomorrow. This part of the code has been changed recently so probably some bug sneaked in.

  5. Thomas Larsson repo owner

    I couldn’t reproduce the bug, but looking at the code it is clear what happened. Fixed now.

  6. Log in to comment