Sunday, July 25, 2021

Adding morphs after lashes and geografts have been merged

Update August 13

Unfortunately, this feature causes performance problems in the viewport. It can therefore be turned off. Once you have finished building your character, you can press Finalize Meshes in the Finishing section to improve performance. This permanently removes the possibility to add new morphs, and some other build-time features as well, so make sure to save a copy of your blend file before doing this.


Original post:

These days I mostly use Easy Import to get my DAZ characters into Blender, with a list of favorite morphs. Alas, it quite often happens that I find that there is some additional morphs that I want to load. Since eyelashes and often geografts have already been merged with the main character mesh, this has not been possible because the mesh topology has been changed. Until now.

In the development version it is now possible to add new morphs, even if the character mesh has been changed in certain ways. More precisely, it works if

  • Eyelashes (or other meshes) have been added to the mesh with the join command.
  • Geografts have been merged with the Merge Geografts tool.
  • Vertices have been added to the mesh in edit mode.

It does not work if some vertices have been removed from the mesh in edit mode. Removing vertices changes vertex numbers which are used when loading morphs. The Merge Geograft button removes vertices too, but in this case the mesh keeps a list of associations between current and original vertices.

Morphs are only loaded to the original vertices, or what remains of them. This means that it is not meaningful to load FBMs to a mesh with merged geografts, or FHMs to a mesh with merged lashes, because the shapekeys cannot be transferred. But FBHs and FHMs usually involve changes to the armature rest pose which cannot be loaded anyway.

This is an advanced feature since it is quite easy to import faulty shapekeys if the mesh has been accidentally changed, and therefore it is turned off by default. To turn it on, enable the Load To Modified Meshes global setting.

I have been using this feature for a couple of days and find it very useful, although I am not sure about best practice yet. Perhaps one should keep eyelashes as a separate mesh, in case one wants to transfer shapekeys to them later.