Dicktator Back to Daz - Wrong location

Issue #2147 resolved
qwer asdf created an issue

When I use this method: Dicktator Back to Daz, there is a problem I cannot solve.

When I import the Dicktator animation into Daz 3D, the position of the Dicktator is always incorrect when the character's pose involves rotation. *1.png

(Disabling the "Translation" option during import helps but doesn't completely solve the problem. *3.png )

I am currently using the following method:

Daz to Blender:

  • easy import without “merge rigs“ and without “merge geografts
  • make control rig for the geograft
  • add MHX for the figure

Blender to Daz:

  • bake Dicktator animation
  • apply animation to daz Dicktator

Environment:

  • Import Daz version: 2024-07-22
  • Export Daz version: 2024-06-05
  • Daz Studio 4.22

Here are my duf and blend file:

Comments (20)

  1. Thomas Larsson repo owner

    Not merging rigs before converting to mhx doesn’t sound right to me. Mhx was not designed for that and it would probably break a lot of stuff. Besides, there seems to be problems with dicktator even if you just stay with the original daz rigs.

    What does seem to work is to export a pose as an hierarchical pose preset. Pose both G8M and dicktator, then select G8M and set the preset type to Hierarchical. Then import the pose in DS. Both G8M and dicktator are posed correctly.

  2. Thomas Larsson repo owner

    For MHX I would enable Keep DAZ Rig during conversion. Then you can pose the control rig. Before exporting the pose to DS, switch to the deform rig and Mute Control Rig (the button is in the posing panel). This worked for me anyway, but I don’t normally export poses back to DS.

  3. qwer asdf reporter

    Thank you for Thomas's reply. After testing the MHX method, I found a few issues:

    • If I check "merging rigs," I can't bake and export Dicktator separately, And nothing happened after pressing the "Make Control Rig" button.
    • The "export a pose as a hierarchical pose preset" method works for Dicktator, but after exporting the Daz rig using the hierarchical method, the character hands and feet will slide in DS *hierarchical_test.duf.

    I apologize, I'm a newbie to Blender, and I don't know how to "switch to the deform rig”.

  4. Alessandro Padovani

    As for “make control rig“ it is an alternative to “merge rigs“, so you either use one or the other not both together. To export as hierarchy you need “merge rigs“ and “keep daz rig“.

    As for sliding, you have to disable locks and limits when importing back to daz. Also disable all ik options when doing mhx, because daz studio doesn’t support fancy ik features, so if you’re animating with the purpose of exporting back to daz then you have to consider the daz limits. I suggested Thomas to add a “daz compatible“ preset to mhx some time ago but he didn’t seem interested.

    p.s. You can probably use “finger ik“ and “shaft winder“, but anything which “stretches” bones as “stretchy limbs“ or “tweak bones“ or “tongue ik“ is not good to export back to daz. To be sure just disable everything so to keep only the basic ik controls.

    p.p.s. Just tested and this worked fine for me, so if there’s nothing to add you can close as invalid.

    steps:

    1. easy import G8 with dicktator, with “merge rigs“ and “merge geografts“
    2. convert to MHX, with “keep daz rig“ and without ik options
    3. make some animation
    4. mute the control rig
    5. save pose preset as “hierarchy“
    6. in daz studio disable locks and limits then load the pose preset

    p.p.p.s. Added these notes in the wiki.

    https://bitbucket.org/Diffeomorphic/import_daz/wiki/Setup/Rigging

  5. Thomas Larsson repo owner

    It should be possible to add support for poses with geografts rather easily, by adding an alternative to merging rigs. Instead of merging the child rigs to the main one, we could add copy transforms constraints to all shared bones. After converting the main rig to mhx (keep original rig enabled), we could save separate pose presets for both the main rig and all geografts.

    I currently on vacation and don’t have access to Blender. Will have a look at this sometime next week.

  6. Alessandro Padovani

    Thomas you already did it with “make control rig“ #2078, that’s the original issue QA refers to. The method with hierarchy presets works fine though. Unless I misunderstand what you mean.

  7. Alessandro Padovani

    @QA solution. I can reproduce your issue with “make control rig“, it is because of bad baking of the geograft. You have to bake without object and only selected bones, which will not include the invisible bones, this way it works fine. The explanation is simple, since the geograft is fitted to the figure, the object and extra bones don’t need baking.

    So with a correct baking, both “make control rig“ and “hierarchy preset“ work fine.

    p.s. Then if you only use FK bones to pose the geograft you don’t need baking at all.

  8. Alessandro Padovani

    4.2.0.2252

    bug for Thomas. MHX with “make control rig“. This is a minor bug since it doesn’t affect features, if baking is made correctly as explained above. However, when we make MHX with “make control rig“ the geograft extra bones in the hidden layer are flatted to the ground.

    steps:

    1. load a figure with geografts, without merge rigs/geografts
    2. make control rig
    3. convert to MHX, the geograft extra bones are flatted to the ground

  9. Thomas Larsson repo owner

    The original bug is fixed now. It turns out that for shared bones, the geograft bone should have zero translation and rotation. E.g. G8M hip has some transform, but dicktator hip does not. The plugin used to assign the same transform to both hip bones, resulting in double counting. There was also a minor bug with mhx conversion, so you should update both the import and export plugins.

    To recap, here is what I did:

    1. Import G8M with dicktator without merging rigs.
    2. Export DAZ > Make Control Rig with G8M selected.
    3. Convert G8M to MHX while Keep DAZ Rig.
    4. Pose MHX and dictator.
    5. Select G8M and mute control rig.
    6. Save pose presets for G8M and dicktator.

  10. Alessandro Padovani

    4.2.0.2253, blender 4.2.0

    The flatted bones are fixed, thank you. If there’s nothing to add we can close as resolved.

    p.s. Welcome back, hope you had a nice vacation.

  11. qwer asdf reporter

    @Alessandro Padovani @Thomas Lachlan

    Thank you for the reply, I have actually found a solution. Here are my steps:

    In Blender:

    1. Easy import (uncheck Merge Geografts, check Merge Rigs)
    2. Create and bake the animation G8M RIg and Dicktator
    3. Select G8M save the first time using "Save Pose Preset" (use the Hierarchical method, intended for Dicktator animation)
    4. Select G8M save the second time using "Save Pose Preset" (use the Pose method, intended for the character body animation)

  12. qwer asdf reporter

    @Thomas Larsson

    First of all, thank you for your reply.

    I tried your latest method and found an issue:

    If I animate Dicktator directly, your method works.

    However, if I use Constraint to animate Dicktator and then apply the mute control rig to Dicktator Genitalia, there will still be a position error in DS..

    Please check the attached WIP.blend file

    p.s. import_daz and export_daz all 05/08/2024 lastest version.

  13. Thomas Larsson repo owner

    OK, I think I got it now. There are really two types of control rigs. When we bake the mhx rig to the main deform rig, we want to bake the transforms to all bones. However, when we bake the main deform rig to the geograft rig (or other subrigs such as clothes), we don’t want to bake the shared bones, because that leads to double counting as explained above.

    To fix this, the Make Control Rig button now marks shared bones with a custom property (it’s called “DazSharedBone”). The Mute Control Rig button ignores shared bones; all fcurves are removed and the copy transforms constraint is not muted. This seems to work fine if we export pose presets for both G8M and dicktator.

    The mute tool also bakes constraints that belong to the same rig, e.g. an ik constraint for the shaft bones. This wasn’t intentional but I think it makes sense if you want to export the animation.

  14. Log in to comment