MHX Hands Misaligned in Imported Pose

Issue #2036 resolved
David created an issue

When importing poses from a purchased pack into Blender using Difffeo, I encountered an issue where the hands are misaligned, specifically with the MHX rig. The default Daz rig imports perfectly with no issues.

Attempts Made:

  • Removed all drivers and non-essential bone constraints.
  • Attempted to copy the hand bone roll from the Daz rig without success. (Given my limited experience, this attempt may not have had the desired outcome)
  • Used Rigify, which corrected the hand positions but resulted in pose compatibility issues due to insufficient neck bones.
  • Ensured the "Make all bones posable" option is enabled.

The misalignment appears to be isolated to the hands. (If I remove all rotation limit constraints the arms match perfectly)

Environment:

  • Blender versions 4.1 and 3.4 were tested, with consistent misalignment issues.
  • Diffeomorphic-import_daz-fb3b1c52b7f2
  • Diffeomorphic-mhx_rts-7743da3027b9

Additional Notes:

  • In Blender 3.4, the body didn't copy the position correctly (possibly due to a bone naming error), so I manually aligned it. It's not perfect, but it's sufficient to see that the hand is still twisted.
  • The Difffeo used in Blender 3.4 was an older version.
  • The Blender file (MHX_hands.blend) is attached for reference.
  • The pose file (Pose05.duf) is also attached, although it's worth noting that any pose used exhibits the same hand misalignment issue.

Comments (18)

  1. Alessandro Padovani

    1.7.4.2112

    I can confirm the issue, both MHX and rigify can’t cope with the pose having different issues, below a comparison. As for blender 3.4, since bugs don’t get fixed in older versions I guess it’s not relevant.

    steps:

    1. import G9
    2. convert to rigify or MHX
    3. import the test pose

  2. David reporter

    The problem in the image comparing Rigify and DAZ rigs, is that the FK bones used by the pose assets are incorrectly named in the Rigify rig.

    If you change the bone names:

    • spine_fk → pelvis (the real pelvis inside ‘Help’ needs to be renamed)
    • toe_fk.L → l_toes
    • toe_fk.R → r_toes

    Then reimport the pose.

    The RIGIFY rig is going to match.

    The neck won’t match but that's due to the number of neck bones.

  3. Thomas Larsson repo owner

    The Rigify problems are fixed in the latest commits. At least it works in Blender 4.1. The plugin looked for bones called toe.L instead of toe_fk.L. Now I changed the names, but this might affect earlier versions of Rigify. Probably the toe bones were named differently before.

    The MHX problem happens because the forearm twist is driven by the hand rotation. This makes manual posing more convenient, but does affect imported poses. To turn this feature off, disable the Forearm Follows Hand properties. The plugin used to do that automatically when a pose is loaded, but somebody complained about it, and I agreed that it is unintuitive if a lot of settings change as a side effect of loading poses.

  4. Thomas Larsson repo owner

    I think the toe pose will be imported correctly in previous versions of Rigify now.

  5. David reporter

    That was it! I can’t believe it was something so simple.

    Well, anyway, thank you for your help, the both of you!

  6. Alessandro Padovani

    @Thomas, about the hands I don’t follow. I mean it is the forearm following the hand and not the opposite. In the test pose the hand is wrong, not the forearm rotation. In other words, if the forearm follows the hand then eventually we can have a wrong forearm rotation, but not a wrong hand pose.

    Below there’s simple ik vs daz, where the forearm follows the hand same as mhx. When we load the pose the rig goes to fk mode so the match is perfect, then when we snap ik to fk the hand is good but the forearm rotation is wrong. Eventually I’d expect the same behavior in mhx.

    Then personally I don’t use mhx or simple ik so this is just a note if it can help. Let us know or we can close as resolved if you’re happy with this.

  7. Thomas Larsson repo owner

    This has nothing to do with IK. In MHX the forearm twist is controlled by the hand also in FK mode. In that case the FK forearm twist is locked, and the twist of the forearm bones (on the Help layer) copies the Y rotation of the FK hand.

  8. Alessandro Padovani

    Thomas, ik snapping was just to show the difference with the forearm roll. The point is, with follow enabled, the hand pose is bad in mhx while it’s good in simple ik. It should work fine in mhx with follow enabled there’s no reason not to. Then personally I believe follow makes little sense in fk mode, since fk by definition requires to pose the bones directly, so follow is a ik feature, but that’s another thing.

  9. Alessandro Padovani

    I am not sure if Thomas wants to try and fix this. Otherwise we can just add a note that loading poses doesn’t work with follows enabled. Then again personally I don’t use MHX so you can close if you want, but I’d let Thomas decide.

  10. Thomas Larsson repo owner

    I don’t consider this to be a bug. If you need the imported pose to be exactly as in DS, you can disable the forearm follows properties. I always tweak imported poses a little anyway, so the difference is not a problem for me. One could perhaps fix the difference by adding the forearm twist to the hand rotation, but it doesn’t feel right to add hacks for specific rigs to the pose import script.

  11. Log in to comment