Auto-detect figure from .duf on pose import is always genesis8

Issue #1693 resolved
Noel Lang created an issue

Daz Studio 4.21.05 | Blender 3.6.1 | Diffeomorphic 1.7.2.1674 | MHX 1.7.2.0084 | Windows 10

When using ‘Import Pose’ in Daz Runtime and when not enabling manual “Convert Poses” diffeomorphic seems to attempt to “auto-detect” what the source figure of the pose is by reading the .duf file (at least that’s what it indicates in the console). However, this always seems to detect as a Genesis 8 figure, I’ve tried Genesis 9 base poses, G3 and Victoria 6 poses, all are detected as Genesis 8.

Comments (11)

  1. Thomas Larsson repo owner

    No, I cannot reproduce this. However, I noticed that there is not converter from G9 to G3/G8, so I added that.

  2. Alessandro Padovani

    Commit 43a6bc0.

    I don’t use poses across generations so never tested this. Here it is confusing. That is, I tried to load a G2F pose on a G8F figure, with conversion on it autodetects a G8F on the duf file, with conversion off it autodetects a G2F on the duf file, for the same 01.duf pose. Then the loaded pose seems exactly the same with conversion on or off, as if conversion didn’t work.

    steps:

    1. import G8F
    2. load a G2F pose with conversion on
    3. load the same G2F pose with conversion off

    note. I notice there’s a “twist bone“ option. What’s this for. I mean why is it an option, is there any situation where not importing the twist bone can be useful ?

    note. The “master bone“ tooltip states that the option only works for mhx and rigify. Since we added a master bone to simple ik it should work with simple ik now.

  3. Thomas Larsson repo owner

    Here is what I get (the second time, with data files already loaded) when I import a G2F pose to G8F.

    Without conversion:

    * 01.duf 1
    Auto-detected genesis2 character in duf/dsf file
    Missing bones:
    ['tongue05']
    File C:\Daz 3D\Applications\Data\DAZ 3D\My DAZ 3D Library\people\genesis 2 female\Poses\01.png imported in 0.055 seconds
    

    With conversion:

    * 01.duf 1
    Auto-detected genesis2 character in duf/dsf file
    Missing bones:
    ['tongue05']
    Character: genesis_8_female
    File C:\Daz 3D\Applications\Data\DAZ 3D\My DAZ 3D Library\people\genesis 2 female\Poses\01.png imported in 0.055 seconds
    

    Auto-detected genesis 2 in both cases. The converted pose doesn’t look good though.

  4. Thomas Larsson repo owner

    The Twist Bones option is a fix for poorly designed pose presets. Normally when we import a pose to mhx or rigify, the X and Z rotations come from the bend bone and the Y rotation from the twist bone. However, I encountered a pose preset where the full rotation was assigned to the bend bone and nothing to the twist bone, which meant that the Y rotation was missing from the mhx bone.

  5. Alessandro Padovani

    As for twist. It is not possible in daz studio to roll the bend bones, so if a pose preset does that it means the poses are generated by some tool as mocap conversion perhaps, not saved from daz studio. In any case if there’s roll in the bend bones it changes how the mesh deforms and it’s not supposed to happen in the G8 rig especially with jcms, so we should always convert a bend roll into a twist roll, possibly with a warning. In this sense the twist option should become a warning.

    As for autodetect. Nope, here with conversion on, it autodetects G8. It may be some global settings but no idea what. It’s not clear to me what you mean by “the second time with data files loaded“, I don’t use the morph database if this is what you mean.

  6. Alessandro Padovani

    update. pose conversion works fine.

    It’s my fault. I didn’t read the tooltip, and when loading the pose on G8F I selected source = G8, meaning she was my source in the scene. But the tool means the source file so we have to specify G2, thus it doesn’t “autodetect” anything, I mean it’s us who have to specify G2 when we load a G2 pose.

    If I specify G2 then everything works fine, it “autodetects“ G2 and the pose loads nicely converted. But again it’s not “autodetect”, it's me telling G2 as source. Probably the same mistake is made by Noel.

    note. The pose is converted but not nicely, there’s a strong difference in the arms, though it is visible the tool tries to convert them. But this is an issue on “conversion quality”, it doesn’t mean the tool doesn’t work.

    option request. autodetect. Since there’s no autodetect option for “convert poses“, we may add it as default so it autodetects the same as it does without “convert poses“. Then what it is “Cmu“ for the source ? The tooltip doesn’t provide information and the wiki neither. A quick search on google reveals a CMU BHV library, does it mean import pose takes bvh ?

  7. Noel Lang reporter

    I did not enable ‘Convert Poses’ at all, so I did not select source as G8.

    After further testing, it appears it does correctly auto-detect the figure in the pose .duf when I apply it to a base Genesis 8 figure with the default Daz rig.

    * LSP2 006M Genesis 3 Female.duf 1
    Auto-detected genesis3 character in duf/dsf file
    Missing bones:
    ['Blade-LS2', 'LaserSword2', 'rHeel', 'lHeel']
    File D:\Other Games\ORDER69\DAZ3D\Order69Content\People\Genesis 3 Female\Poses\Laser Swords and Poses 2\LSP2 006M Genesis 3 Female.duf imported in 0.038 seconds
    Read blend: "E:\Users\knowlang\Desktop\kiriko g9.blend"
    Cannot scan database because no Genesis mesh was found
    

    However, when I import the pose to a Genesis 9 figure with the MHX rig, it auto-detects the same pose as a Genesis 8 figure.

    * LSP2 006M Genesis 3 Female.duf 1
    Auto-detected genesis8 character in duf/dsf file
    Load D:\Other Games\Blender\PROD\scripts\addons\import_daz\data\converters\genesis-mhx.json
    Missing bones:
    ['Blade-LS2', 'LaserSword2']
    File D:\Other Games\ORDER69\DAZ3D\Order69Content\People\Genesis 3 Female\Poses\Laser Swords and Poses 2\LSP2 006M Genesis 3 Female.duf imported in 0.707 seconds
    

    EDIT: I am using diffeomorphic 1.7.2.1745, the latest commit c584f2d8904c47b97c0ddba8d8795e5b57629c7f

  8. Thomas Larsson repo owner

    Fixed in last commit. This was in fact not really a bug. The character is only used to set up a mapping between bone names, and if the rig type is mhx or rigify this map is stored in the same file, independent of the genesis generation.

  9. Log in to comment