Facecap import options don't work fine

Issue #1086 resolved
Alessandro Padovani created an issue

daz studio 4.15.0.30, blender 3.2.1, diffeomorphic 1.6.2.1068

When importing facecap animations we can uncheck the eyes and head movements. This allows to mix the facecap animation with the body animation and leave control to the artist for the eyes and tongue. Also please note that facecap doesn’t support the tongue animation anyway.

Now it happens that, even with eyes unchecked, the importer imports some eyes channels. This is wrong because the eyes channels are supposed to be driven by the facs controls if we don’t import the eyes animation. Also unexpectedly some tongue channels are imported, that makes little sense since facecap doesn’t handle the tongue animation, and also prevents the artist from controlling the tongue.

Test facecap animation included facecap.txt kindly provided by Bennie Woodell from the daz forum.

steps:

  1. import G81F with facs units and controls
  2. load the test animation facecap.txt

Comments (12)

  1. Alessandro Padovani reporter

    note. As a side note it sometime happens to me that the text files lose their utf8 signature. Don’t know why. So the importer complains that the signature is not valid. I can easily fix the issue by resaving the file as utf8 with the notepad, so this is not a big deal. But I’m wondering if the plugin opens the files in “read only“ mode, or if it may overwrite the signature someway.

  2. Alessandro Padovani reporter

    As another side note.

    I my opinion there’s some confusion on the facs vs face units controls. That is, most users tend to load all the morphs, both facs and face units, and expect all the controls to work with both. Honestly I don’t know how much this may be true and supported. But anyway makes little sense and complicate things.

    That is, for facs it is better to use the facs morphs and controls. For the face units it is better to use the face units morphs and controls. The two methods are excluding each other in daz studio. We either use facs morphs and controls with G81F, or we use face units morphs and controls with G8F.

    So for example to use MHX with the facs morphs and controls we may use easy import with the facs morphs and controls selected but no face units. Then in the mxh rig we enable the facs controls and disable the face units controls.

    Please Thomas let me know if face units are supposed to work together with facs without any issue, both as morphs and controls. That is, for example, are the mhx face controls supposed to work together with the daz facs controls ? Otherwise I may write a blog post explaining the difference.

  3. Thomas Larsson repo owner

    The Eye Rotations option controls whether F-curves for the eye bones are generated. Some facs morphs affect the eye rotation indirectly (the look ones do, the blink ones don’t), but you can still pose the eye bones manually on top of that. Not importing some subset of the facs morphs doesn’t make sense to me.

    The facecap file does change one tongue morphs. The line that starts with “bs,” specifies the affected morphs. The last entry is “tongueOut“.

    The file is opened with the “r” flag, so reading it should not change the encoding. More specifically, the file is opened on line 325 with

    open(self.filepath, "r", encoding="utf-8-sig")
    

    However, I noticed that it is possible to permanently ruin the file (on a PC) by changing the line ending to Mac and the encoding to Ansi. Changing the encoding to utf-16 also ruins the file, but that was expected.

    I have also noticed that G8 characters only use the face units and G81 uses facs in DS. IMO this is an unnecessary limitation, but for either type of character one should stick to one or the other. But I don’t know how to enforce that.

  4. Alessandro Padovani reporter

    Thomas, to explain it better.

    The facecap includes eyes capture, with facs this means both the eyes rotation and the eyelids are captured. As we humans are humans, usually the eyelids follow the eyes rotation, see the included facecap as example. Now if you don’t import the eyes rotation but import the other eyes channels, then you’ll get “fixed” eyes but “rotating“ eyelids. Plus the user can’t edit that because the mocap is a mocap and stores one keyframe per frame. So please at least provide an option to exclude all the eyes channels.

    As for the tongue we may want a “tongue“ option as well to exclude all the tongue channels.

    As for facs vs units, are the mhx face controls, especially the gaze, designed to work both with units and facs ? Because if so then there’s a bug since the mhx gaze control doesn’t seem to work with facs. If the mhx gaze is designed for units then it works fine. See the link below for a video and a complete description.

    https://www.daz3d.com/forums/discussion/comment/7601251/#Comment_7601251

    As for a possible solution to select facs or units we may have presets in the easy import for G1-G81 figures. For example G1 will not have jcms other than facs. This will help newbies that the easy import is especially designed for, as experienced users already know what settings to use.

  5. Thomas Larsson repo owner

    Eyes and tongue animations can now be skipped. Although the user could easily delete the animations in the action editor before,.

  6. Alessandro Padovani reporter

    Commit 9a7c99b works fine as for the facecap options.

    Playing around with the facs controls I noticed that for “eye look side-side“ the eyelashes don’t follow, while they follow in daz studio. Also for up-down the lower lashes don’t seem to follow. I imported G81F with easy import and merged meshes that should transfer shape keys automatically.

    steps:

    1. easy import G81F with facs and face controls, merge face meshes
    2. play around with the eyes controls

  7. Thomas Larsson repo owner

    In looks like easy import didn’t transfer shapekeys to the lashes in some cases, when merge geografts was disabled. The last commit does transfer the shapekeys.

  8. Alessandro Padovani reporter

    Commit 1db4edf does exactly as before here doesn’t seem to fix anything.

    Tried both the face controls and the facs units the eyelashes don’t follow for “eye look side-side” and “eye look up-down”. Test scene facs.duf included. Full import options as below.

    p.s. Tears don’t seem to follow either.

    steps:

    1. import the test scene facs.duf with the provided import options
    2. play around with the eyes controls

  9. Thomas Larsson repo owner

    Fixed in last commit. Before the shapekeys were transferred for G8, which I tested, but not for G81.

  10. Log in to comment