Custom Morphs Missing/Deforming Wrong

Issue #43 closed
Zack Johnson created an issue

In previous versions of the importer, I was able to select all “Meipex\Base” morphs for import for Futalicious or Dicktator and most of them would show up in the “Custom Morphs” panel. Now, it seems only a small portion of the morphs show up in the Custom Morphs panel, however the rest of the morphs are still loaded to the genitalia model and given morph drivers. If I remove all the drivers, I can utilize the morphs manually, however some of them seem to be broken. For example, using the “FTL_Glutes_Widen1” shapekey causes the thighs to deform, but it should only cause the glutes to deform.

Here is a screenshot showing the first issue I mentioned (not all morphs showing up in Custom Morphs - compare left list to right list):

Here is a quick GIF showing the second issue I mentioned (some morphs seem to deform more than their intended vertices - in this example I am using “Left Testicle Down” and as you can see it also deforms the left thigh).

I should mention, the second GIF is taken after the following steps:

  1. Import the custom morphs to Futalicious mesh
  2. Deselect everything
  3. Select the body mesh, then the Futalicious mesh
  4. Click “Transfer Other Morphs”
  5. After the morph transfer is finished, deselect everything
  6. Select the Futalicious mesh, then the body mesh
  7. Click “Merge Geografts”
  8. Use Advanced Setup > Morphs > Remove All Morph Drivers so I can manually access the custom morphs on the now merged body/Futalicious mesh

I wanted to include the steps in case maybe I am doing something in the wrong order. Hopefully I have provided sufficient information, but please let me know if I can provide anything else that would be useful.

I have also included the .blend file if that offers any additional insight.

Comments (10)

  1. Thomas Larsson repo owner

    Most morphs load now. However, a few are still not coming in. Will investigate further why this happens.

  2. Zack Johnson reporter

    This is great, a lot more of the morphs load now! I am not sure if it’s all of them because I haven’t verified but it looks like all of them. One issue I am noticing now, though: the corrective morphs aren’t driven anymore. Is this new or a bug? I tested this with the most recent commit (4798d583412f). See attached screenshot.

  3. Noname

    I can confirm this issue and it’s still present.

    Step to reproduce:

    • load mesh (I use with json exported from Daz)
    • select mesh
    • import custom morph

    In open file dialog I did selected 5 morphs. Use Drivers is selected, Category default “Shapes”.

    Click import.

    After completion I can see only 2 morphs in plugin Custom Morphs panel. No error etc.

    I think this is in itself an issue, when importing multiple files errors are ignored and not shown, it would be nice to see dialog with info like: “Imported 2 of 5 morphs” or something like that.

    So I started to import one by one.

    3 missing files error outs with:

    No morph selected
    

    Console doesn’t show anything (log verbosity 5)

    DSF files are from, in my case G3F, works fine in Daz, dsf file content seams to be correct and similar to ones that load correctly.

  4. Zack Johnson reporter

    With the newest commit, I have a lot more morphs loaded into Custom Morphs panel than before starting this issue. However, on Genesis 8 Female and Futalicious, some morphs still deform weird. For example: here is a GIF of using the “Anus Open” morph (NSFW obviously but nothing is textured). It works on the genitalia, but it also moves the entire backside of her upper body. I tried these morphs on Genesis 3 Female and Futalicious and the morphs seemed to work much better. The genitalia morphs were more isolated to the correct areas. However, there were still some small incorrect deformations, sometimes on the hips, thighs, or glutes.

  5. Thomas Larsson repo owner

    Zack, I didn’t manage to watch the gif - the site seems to think that I am underage. However, I think the anus open morph needs to be combined with other morphs. Here is a illustration of anus open for NGV8. To get it right, you must do several steps:

    1. Load PBMAnusOpen to the genitals.
    2. Load PBMG8FAnusOpen to the body.
    3. Transfer PBMG8FAnusOpen to the genitals using Transfer Other Morphs

    For Futalicious there are two Meipex morphs called Glutes Widen. If you combine them with Anus Open, the result looks ok.

    But yes, this process is a bit cumbersome.

  6. Zack Johnson reporter

    Can you tell me where you found the PBMAnusOpen and PBMG8FAnusOpen? Are those specific to NGV8? I’m not sure if I have that.

    Also, should I be selecting the body, THEN the genitals, then transferring other morphs from the genitals to the body? Or is the “Transfer Other Morphs” feature not intended to work in that direction?

    I uploaded the GIF to Gfycat, hopefully it’s not censored there. This is the result I get after loading all morphs in the Futalicious > Meipex > Base folder to the genitals and all morphs in the Genesis 8\Female\Morphs\Meipex\Futalicious to the body mesh, then using “Transfer Other Morphs” between both of them.

    Truthfully, this issue isn’t hindering me as much anymore as I have figured out a method to export morphs from Daz and transfer them to the body mesh within Blender. I can do this even after the geografts are merged and Rigify is activated, which is great because it’s a bit more forgiving if you forget to import a morph to your model before merging the geografts. The simplest way to explain it is that I export a “morph puppet” from DAZ as an FBX, then import that to Blender in the same file as the Diffeomorphic import. I use this “lichtwerks_MeshTransfer.py” add-on to set the morph puppet mesh as the target of the Diffeomorphic mesh. Then, I transfer the morphs from the morph puppet to the Diffeomorphic mesh. It allows me to keep the features of your add-on (face units, expressions, visemes, corrective morphs, Rigify, etc.) while also being able to utilize my own choice of morphs exported from DAZ. From then on, if I want to export any new morphs from DAZ, I just export a new FBX from DAZ with only the new morphs desired, import it to the same Blender file, and use the morph puppet as a “middle-man” between the Diffeomorphic mesh and the newly exported FBX. I may be making this sound a lot more complicated than it actually is… It is a little tedious to set up, but once the setup is finished, theoretically I should be able to continue to transfer any new morphs I need to the same Diffeomorphic mesh, which is very useful for my workflow. I can paste my notes for the process below if you’re interested:

    • Export morph puppet from DAZ with desired morphs using the morph export rules.
    • In Blender, before performing this process:
      ○ Importer armature should be cleaned up (merged, extra face bones added and all bones poseable)
      ○ Importer body mesh should have all face units, expressions, visemes, and corrective shapekeys imported
      ○ All corrective shapekeys should be transferred to the necessary clothing/hair meshes
      ○ Importer anatomy geograft should be merged with the importer body mesh
    • Import the FBX morph puppet to blender.
    • The morph puppet needs to be cleared of parent (keep transform) from its armature.
    • Apply all transforms on the morph puppet body mesh.
    • For good measure, copy the dimensions (on the N panel) from the Diffeomorphic body mesh and paste each of them (X, Y, Z) to the morph puppet body mesh. They should be more visually identical now.
    • Apply all transforms on the morph puppet body mesh again.
    • Parent the morph puppet body mesh (keep transform) to the Diffeomorphic armature and add the armature modifier.
    • It might be a good idea to add a subdivision modifier to the morph puppet - identical to the one on the Diffeomorphic body mesh (UNSURE THOUGH).
    • Before the next step, it may be helpful to go through all the shapekeys on the morph puppet body mesh and clean up the ones you don't plan to use. This will make the shapekey transfer go a little faster.
    • Use the shapekey transfer tool on the Diffeomorphic body mesh with the morph puppet body mesh as the source.
    • It will take a while (seriously, it could be like 5-10 minutes… go get a snack!) but it SHOULD transfer all of the exported morphs with no issues!
    • Ideally, this method will allow you to utilize all the Diffeomorphic importer features without restricting you from importing new custom morphs. The morphs transferred using this method will need to be manually controlled in the Shape Keys panel of the body mesh.

    After everything is set up it should still be possible to import new morphs using the morph puppet body mesh. The Diffeomorphic body mesh will be mapped to the morph puppet body mesh, which will become the middle-man for any morphs transferred from future morph puppet exports from DAZ. Each new morph puppet will be exported with ONLY the new morphs desired. Once imported to the scene, the original morph puppet mesh will be mapped to the new morph puppet. The desired shapekeys are transferred from the new morph puppet to the original morph puppet, which can then be transferred to the Diffeomorphic body mesh (which is already mapped to the original morph puppet body mesh).

    Sorry for the wall of text. I’m not even sure if you’re interested in that method but I wanted to explain it in the off chance that it gives you some more ideas for your amazing add-on!

  7. Alessandro Padovani

    @Zack I don’t know if this may be useful. As for morphs I tend to bake what I need in daz then import in blender via obj. I mean I use the plugin to import the basics that I may need. But then daz studio is a nightmare in processing morphs with jcm mcm relations among them, and honestly even if the plugin could import those I don’t like too much complexity with drivers. Your fbx method seems a superset of what I do with obj, thank you for the great tip.

    Then @Thomas is doing an excellent job with morphs and I am amazed how he gets to handle them in spite of the daz complexity.

    Also thank you @Zack for all the testing you do with morphs.

  8. Zack Johnson reporter

    No problem. Yeah I figured this method may be a little too complex to add but I am glad it helped in some way! That’s why I wanted to share. And I agree, I am really thankful for all the work you, Thomas, and others do on here to improve this already amazing add-on. It has made my life SO much easier for creating new characters in Blender!

    I suppose we can leave this issue open if you still want to work on the morphs Thomas, but for my purposes I have found a workaround so it is no longer an issue for me. Thanks again for the improvements to morphs!

  9. Log in to comment