ERC issues

Issue #826 resolved
Alessandro Padovani created an issue

daz studio 4.15.0.30, blender 3.0, diffeomorphic 1.6.1.0804

It seems ERC morphs don’t always work fine. Unless I miss something. The example below uses the voluptuous morph that changes the pectoral bones in daz studio, but in this case the blender armature is not updated when I press “morph armature“.

Most other ERC morphs seem to work fine, as the Victoria 8 FBM for example.

steps:

  1. import G8F, merge rigs, make all bones posable.
  2. import the voluptuous FBM, or any other morph that changes the pectoral bone
  3. apply the voluptuous morph, the shape changes fine
  4. press “morph armature”, the pectoral bones are not updated

Below the voluptuous figure first daz studio then blender.

Comments (18)

  1. Alessandro Padovani reporter

    update.

    There’s another issue with ERC, it seems I can’t play an animation after I load some ERCs. I tried various options in the action panel but none seems to work. May be I miss something since it’s the first time I try to load an animation on a figure with ERC morphs.

    If I load the animation on a figure without ERC morphs it plays fine.

    steps:

    1. import G8F, merge rigs, make all bones posable
    2. import Victoria 8 FBM, do not apply the morph we just load it
    3. import an animation, for example dance.duf provided as test but any will do
    4. play the animation, the keyframes are there but the figure doesn’t move

  2. Thomas Larsson repo owner

    The pectoral bones do move, but only millimeters rather than centimeters. The voluptious file specifies erc morphs for the pect bones' center_point and end_point. The center_point is the bone head, but the end_point is not the same thing as the tail. In fact, since version 1.5 the end_point is only used to determine the bone length, see http://diffeomorphic.blogspot.com/2020/08/daz-studio-bones.html.

    With erc morphs, the head and tail are translated by the same amount, namely the shift in the center_point. One could also change the bone length using the end_point shift, but this is not done and it does not really matter. What matters for deformation is the pivot point and the bone orientation, and they are correct since the head and tail are translated in parallel. Well, as long a the morph doesn’t change the orientation, but I have never seen that.

  3. Alessandro Padovani reporter

    With commit bcf68e8 there’s a minor issue.

    The animation is loaded now and the figure moves. But I have to select the master bone for the object transformation, otherwise there’s a strange feet sliding since the hip bone doesn’t move. This doesn’t happen without ERCs. If this is a limitation with ERCs then it’s fine to add a note in the docs.

    As for ERC with the pectoral bones, if possible it would be nice to have the same visual transformation as daz studio. Unless this may cause issues in that case it is not worth it. If it is not possible then it would be useful to add a note in the docs that ERCs may not get the same visual transformation as daz for some bones.

  4. Thomas Larsson repo owner

    The hip doesn’t move because its location is driven by the FBMHeight morph. So this is a combination of an erc and ordinary morph. If you make bones poseable the hip should move too. But I have no idea why it works with the Master Bone setting. It doesn’t for me.

    I will think about changing the bone lengths. In principle I don’t like to add things with a (possibly small) performance penalty if they aren’t necessary, but I agree that it is confusing.

  5. Alessandro Padovani reporter

    I get the issue consistently with the procedure below. The hip doesn’t move and feet slide, now whether I choose object or master bone.

    1. import G8F, merge rigs, make all bones posable
    2. import Victoria 8 FBM, apply the morph, morph armature
    3. load the animation and play

  6. Thomas Larsson repo owner

    No, you need to make bones poseable after you imported the FBM. At least FBMHeight adds a driver to the hip location, so you need to make bones poseable again to take care of that.

  7. Alessandro Padovani reporter

    Thank you now it works fine.

    I have to uncheck “clear morphs“ for the armature to retain the Victoria 8 shape. I suppose this is intended and may be obvious but a note in the ERC section about this may help most people. Also that “all bones posable” must be done after loading the ERC. Thank you for the explanation marking as resolved now.

  8. Alessandro Padovani reporter

    Thomas, I need help on this please.

    Once I loaded and applied ERC morphs and transferred them to other meshes, is there a way to “finalize” them ? That is, keep the current shape and get rid of the morphs and their drivers.

    edit. The purpose is to load custom morphs and use them to shape the figure, as we do in daz studio, then apply the morphs when we’re done shaping. In the steps below I don’t know how to do step 5. All the other steps are already possible with the diffeomorphic tools.

    steps:

    1. import custom morphs, they can be both normal morphs or ERCs
    2. transfer the morphs to other objects, as the outfit and accessories for example
    3. use the custom morphs to shape the figure, the transferred objects will follow
    4. morph the armature if there are ERCs
    5. now everything is in shape, delete the custom morphs and their drivers that are no longer necessary for animation

    edit. I see there’s the “apply all shapekeys“ tool that seems to do a sort of what I need. This tool is not documented though. Also it doesn’t work on the ERC armature and I’m not sure it deletes the drivers. Then I need to delete only the custom morphs that I use for shaping, and keep the standard morphs as expressions and jcms that are needed for animation. While the “apply all shapekeys“ tool seems to delete everything. I may load the standard morphs after shaping and “finalizing” though so this may not be an issue.

    edit. Also it seems I can’t use the “apply all shapekeys“ tool on objects I do myself in blender. Below there’s an example with a simple armature I did, I loaded the Victoria 8 ERC and fitted the armature from G8F to Victoria 8 no problem. But then when I try to apply the Victoria morph to the armature the tool says “object with obsolete morphs“.

    I’m experimenting with a possible way to autofit a physics armature to the genesis figure so that we can add physics effects as collision and softbody for example. But I need a way to apply the morphs before animation, otherwise some physics modifier don’t work fine with morphed meshes.

  9. Alessandro Padovani reporter

    UPDATE. SOLUTION.

    Thomas, I found a way to do what I want. Please let me know what you think or if there’s a better way.

    1. First I go to any mesh that gets the shapes applied or transferred, and add a shapekey from the current mix. This creates a new shapekey with the current shape.

    2. Then I use the “remove categories“ tool to remove all the custom morphs and their drivers, this also seems to work fine with the ERC armature that retains the current shape.

    3. Finally I go back to the objects, then delete the basic shapekey, then delete the mix shapekey. This leaves the mesh with the mix shape and no shapekeys.

    This also works fine with my blender armature where I transferred the genesis morphs. Please let me know if it is possible to add an option to the “remove categories“ tool to retain the current shape as explained above. This would simplify things a lot when we have multiple objects with the morphs transferred. Otherwise we have to do it by hand. Unless there’s a better way that I didn’t find.

  10. Thomas Larsson repo owner

    The erc morphs now move the tail as prescribed by the morph, and not in parallel with the head. This makes the end of the pect bone stay on the nipple, more or less. But not quite. I don’t really understand why.

  11. Thomas Larsson repo owner

    I usually try to avoid removing morphs and haven’t tested the remove tools enough. There seems to be some bugs.

    If you want to get rid of all drivers, Remove All Drivers should be the first choice. However, this removes the rotation drivers for the pects depending on the collar bones, which you may want to keep. Also, if you remove drivers and properties from the armature, the mesh still has shapekey drivers that depend on the armature properties, and those drivers become invalid. So you must first remove all drivers from the mesh, then from the armature.

    The Remove Categories tool doesn’t seem to remove properties, even if that option is enabled. And it seems to have other problems too.

  12. Alessandro Padovani reporter

    Thank you Thomas for your advice, I’ll try what you suggest. Anyway I can also keep the shapes and drivers it was only to optimize the scene for animation. Marking as resolved now.

  13. Log in to comment