Eyelashes on G9 get stretched with Expression Morphs

Issue #1230 resolved
Maneki created an issue

It seems like the eyelashes on G9 get stretched when used with custom expression morphs.
I used “surprised happy” from this product: https://www.daz3d.com/emotions-expressions-for-victoria-9
The morph got loaded on the eyelashes too. I couldn’t figure out the cause of this issue yet.

Comments (21)

  1. Alessandro Padovani

    It is normal that expressions get projected on face meshes, otherwise eyelashes wouldn’t follow the eyes. But, if you want to try, there’s an option when you load expressions. Apart that, it seems to me that you’re using different lashes and brows for daz and blender so your comparison isn’t good, iirc G9 has different options to choose from.

  2. Maneki reporter

    @Alessandro Padovani Yes, the eyebrows are different but the lashes the same (base G9 lashes).
    Not the best illumination for both but it’s visible that the Blender ones are clearly longer/arched.
    When I use the slider I can see how the mesh of the eyelashes gets stretched while in Daz it contains completely it’s shape.

  3. Alessandro Padovani

    note for @Thomas. SUBDIVISION FIX.

    As in the example by Maneki, the G9 eyelashes get “sharp edges and corners“ in daz studio, this kind of subdivision can be done in blender with “keep corners“.

  4. Maneki reporter

    @Alessandro Padovani It seems to fix/change the base shape to be like in Daz but it doesn’t solve the issue with the mesh deforming/stretching. Just wanted to point that out.

  5. Thomas Larsson repo owner

    This is probably the same bug as #1226. The plugin is quite old and was first developed in the days of G1 and G2, whn a figure only consisted of a single mesh. Starting with G8 a figure consists of body and lashes, and in G9 the brows, eyes, and mouth were added too. But the plugin still only loads the morphs of the body, and then transfers shapekeys to the other meshes. This gives rise to artefacts, e.g. a brow morph deforms the lashes too. The solution would be to load shapekeys to all of the character’s meshes instead of doing approximate transfer. Unfortunately, that is a quite extensive rewrite and will take some time to implement.

  6. Alessandro Padovani

    @Thomas I’m not sure to follow, in what separate face meshes differ from outfits ? I mean we already import the custom morphs for the outfit when we transfer morphs from the figure, isn’t it the same with face meshes ? Also please fix the subdivision when you get some time.

  7. Thomas Larsson repo owner

    Shapekey transfer always worked best for snugly fitting clothes. For loose clothes there might be ambiguities. Brows fit snugly to the forehead, and morph transfer should be perfect, more or less. Eyelashes are further away from the body (or head in this case) and transfer is less precise. For long lashes that bend upwards the forehead may be closer than the eyelids, and a movement of the forehead may incorrectly be transferred to the lashes.

  8. Alessandro Padovani

    Yes I understand that and it happens in daz studio too when we use the fit tool with imported meshes. But for the outfits we resolve by importing the outfit correctives when transferring from the figure, I was wandering if we import the correctives for the face meshes too, that could make the difference.

    For example the G8F eyelashes have a “expand“ corrective that grows them forward. This way the eyelashes are close to the eyelids and work fine with the daz fit tool, then after fitting they are grown forward. I guess our problem is that we use the dbz, we could make an exception for the eyelashes and load them as morphed that should solve the issue.

  9. Thomas Larsson repo owner

    Apparently the G9 eyelashes have a projection morph which compresses them to a line at the eyelids. The transfer tool could load that morph and set it equal to 1 when to does the transfer. But this requires some further investigation.

  10. Alessandro Padovani

    @Thomas Or we could also just add a note in the docs that it is necessary to export the G8 eyelashes with 0% expand then import expand as custom morph. This is similar as it is necessary to export a custom morph set at 0% for it to work in blender. An automatic fix for G1-G9 would be easier for the user though.

  11. Thomas Larsson repo owner

    The transfer tool now takes the projection morph into account with the G9 lashes and tears. It works well for the G9 female with the default lashes. For other characters or custom lashes the user has to locate and load projection morphs manually.

  12. Alessandro Padovani

    Thank you @Thomas for the G9 support. If you don’t plan to support G1-G8 as well then a note in the docs about this would help users to understand what to do. I’ll leave this open for reference.

    edit. note. Would probably be enough to fix G8 same as G9 using the expand morph, since G1-G3 don’t get separate meshes for eyelashes. IIRC we tried to fix the G8 eyelashes with vertex selections for transfers, requested by @Midnight, which didn’t work fine.

  13. Thomas Larsson repo owner

    Projection morphs have been added to G8 lashes and G8.1 lashes and tears. Although for G8 I didn’t find a proper projection morph, so I used PHMEyelashesExpand.dsf at value -1 instead.

  14. Alessandro Padovani

    @Thomas For G8 you should use expand at zero as shown in my picture above, at least this is how the daz fit tool uses it. Unless I miss something and you need -1 for some reason. Please check and let me know so we can close this one as resolved thank you.

    p.s. May be I understand why you use -1, it is to “revert” the expand morph when you load the dbz ?

  15. Thomas Larsson repo owner

    Yes, that is going to be a problem for G8, since the morphs are already baked in the dbz file. So it will not work perfectly, since we don’t know how much of the morph that has been baked, but I would guess that in most cases the eyelashes are expanded. In principle we have that problem for G9 and G81 as well, since the baked eyelashes may be longer or shorter than the default ones.

  16. Alessandro Padovani

    Thank you @Thomas for the explanation, I guess this could be a viable approximation since this way when we transfer morphs the eyelashes are close to the eyelids, so to avoid projecting outside. Please @Maneki and @Midnight let us know if you have anything to add so we can mark as resolved.

  17. Log in to comment