Pose Library Not Working After Upgrading

Issue #1946 resolved
Azzy Limmons created an issue

I have been building a Pose Library the last year for MHX.

Recently I upgraded to Blender 4.0 last week and trying the upgraded Diffeomorphic 1.7.3. I convert the character rig to MHX and try my poses, but the poses don’t work at all.

I’m trying to troubleshoot why this is happening but no luck. The poses just don’t look right at all. Several bones are oriented wrong.

I hope this is not intentional. I would be losing hundreds of hours of work if this can’t be fixed.

Comments (13)

  1. Alessandro Padovani

    Please update to the 1.7.4 development version, that’s the download side menu here, you have to update both the importer and mhx. Then I’m not sure if Thomas wants the new mhx to be back compatible with blender poses for the old versions. That is, the importer is intended to import poses from daz, and for this it will always work fine this is an intended feature, or a bug if it doesn’t.

    But blender poses are another thing, that is, a blender pose is intended to work with a specific rig, so if you change the rig the old poses may not work, this is usual in blender. If you created blender poses for a specific version of mhx then you have to use that version for the poses to work. Again unless Thomas designed otherwise. Let us know.

    p.s. Also mhx can generate different rigs depending on the options you choose, so be sure you choose the same options to get the same rig. For example if you saved blender poses with tweak bones, then you have to generate mhx with tweak bones.

  2. Thomas Larsson repo owner

    There have been changes to the mhx rig over the years, but nothing that should affect pose libraries, I think. Bone names and orientations have not changed, and that is the only thing that matters for poses. Of course, if you load a pose to a character with different body proportions the pose may be off, but that doesn’t seem to be the case here.

    Let us first confirm that this is not a Blender 4 issue. If you install the plugins on Blender 3.x (both import_daz and mhx), do you have the same problem. Otherwise you may upload a blend file so I can have a look when I’m back next week.

  3. Thomas Larsson repo owner

    Are the rest poses the same? A pose made for mhx based on G8 will not work for a G9 or G3 character, or vice versa. In particular, do the arm and leg bones have the same roll angles?

    Are these FK or IK poses? The new mhx does not generate pole targets by default, so if the pose library contains IK poses with pole targets (which used to be created always), you must enable pole targets when generating the mhx rig.

  4. Azzy Limmons reporter

    Hi Thomas,

    If you say there should not be a difference, then I will see if the problem is that my Daz export script was not upgraded. I upgraded the Blender plugin but I did not upgrade the export script.

    I will try to perform a proper upgrade this week and see if it resolves the issue.

    To answer your questions:
    -rest poses are correct (default G8 pose)
    -all old and new poses/models/rigs are Genesis 8/MHX
    -All poses are FK

  5. Azzy Limmons reporter

    Hi Thomas,

    I have more information after troubleshooting.

    After comparing the old and new rigs (as in 1.6 vs. 1.7), I noticed that in 1.7, the pose bone rotation modes are set to Quaternion in the new rig, which is why the poses are all messed up when loading them..

    I can not figure out how to restore the old euler rotations when converting the Daz rig to MHX.

    The global setting “Quarternions” which I have disabled, does not seem to stop the MHX rig from creating the new FK bones with quaternions.

    Here is old and new comparison of the same bone:

  6. Azzy Limmons reporter

    I have found the issue and a potential solution.

    In MHX.py, line 1356, the “rotmodes” dictionary, which associates rotation modes to pose bones applied in a loop.

    If I copy the old dictionary from the 1.6.2 version of the addon, without the QUARTERNION key, my new generated rig loads the poses correctly.

    Namely, this remove the upper arm and thigh bones from that dictionary completely. So, it seems the altering of this dictionary from 1.6 to 1.7 caused the compatibility issue.

    Perhaps, if it has no rippling effects on other parts of the software, include a checkbox when converting to MHX on whether it should convert to quaternions or not? This checkbox would essentially choose between the old and new dictionaries (or perhaps, you may have a more elegant implementation).

  7. Alessandro Padovani

    1.7.4.2029

    Be aware that using euler will give you troubles with IK animation as flippings and gimbal locks, that’s probably why Thomas defaulted to quaternions in the new MHX. That said the global settings should work I guess, unless Thomas designed otherwise. I can confirm that quaternion is always used for MHX, regardless of the global settings.

  8. Azzy Limmons reporter

    I understand the downfalls of not using quaternion, for sure. However I think compatibility options are important, if they aren’t too difficult to implement.

    Given that my issue is coming from the old poses not being imported to a Quarternion-based MHX rig, there is a better incentive for me to remake the pose library, as there is a tangible reason why I’d want to use the new rig with better rotations.

    In the meantime I will probably write an operator that manually swaps between the quarternion and euler modes, just so I can use my existing pose library in the meantime and delay having to redo all that work.

  9. Log in to comment