Bone drivers deforming the character when Ctrl+Z or updating character.

Issue #158 resolved
Chuki Cicha created an issue

When I hit Ctrl+Z at any time, or if I hit the Update All button, some bones see their W rotation (WXYZ) changed to 0, and some their scale to 1,0,0 or 0,1,0, they are on this layer:

And here’s an example of what happens, I think there are some drivers that are destroying these bones, but I don’t know how to find and fix them. Some of the facial bones, plus the Vagina bone from Golden Palace gets deformations like this one

On the attached video (2020-08-13…) I reproduced this error by just hiding the body pressing “H”, and then hitting “Ctrl+Z”

Edit: I tried with an old backup file I had, the bones were working, but as soon as I wanted to import morphs, when I went and clicked “Update morphs for 1.5” then it got destroyed, attached video to show what I mean, named “UpdatingMorphs.mkv”

Comments (12)

  1. engetudouiti

    Today I load some scenes, and click new morph system, then move some slider, now it break expression as same as you. And ctrl + Z not work for me.

    After all I need to select all bones (include drv bones, which are hidden as default), then tried to use zero pose to get default expressions.

    now it seems return. But most of morph not work correctly any more.

    I feel if I need to re-export character from daz again about those scene which I have exported before.Though I do not know if it caused by recent blender version or not.

    Then I check driver of each bone transform values. now it show “invalid python expression” error. Btw my blneder version is 2.83 beta 5

  2. Thomas Larsson repo owner

    This certainly looks like some drivers are not updating correctly. I added a driver update to the update morphs button, so maybe that is fixed. The Update All tool should take care of that, though.

    If you look at the drivers of a messed-up bone, does it complain about an Invalid Python expression? That should go away with Update Dependencies at the bottom of the same tab, or globally with the Update All button.

  3. engetudouiti

    Unfortunatelly the “update dependencies” not work to solve this new issues,,

    (so it is not old up-date problems what we have seen before,, I feel)

    I test 91a6f91 with g3f only, by export dbz again, import morphs not show any UI controller, any more.

  4. engetudouiti

    Hmm,, About my case new Commits solve issues. (I need up-date morphs for i05) then now it seems work correctly.

    I think if some recent gloval setting improvements related this issue to. because after I reset gloval setting as factory, then set directory paths by exported json, it seems solve some morph related issue to. (or I pefectly lost UI for morphs) and do not know if it work for others.

    No,,it return suddenly,,,

    what I see is

    1. my actor face broken
    2. I try select all bone, then reset pose
    3. now I lost controll of morphs
    4. I try update all.
    5. it break expressions (return to 1)
    6. loop

    the driver expression log this error

    Error in Driver: The following Python expression failed:
    '-0.0+evalMorphs2(self, 0, "Loc")'

    Traceback (most recent call last):
    File "<bpy driver>", line 1, in <module>
    File "C:\Users\TAKE\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\import_daz\daz.py", line 142, in evalMorphs2
    return sum([pg.eval(rig) for pg in pgs if pg.index == idx])
    File "C:\Users\TAKE\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\import_daz\daz.py", line 142, in <listcomp>
    return sum([pg.eval(rig) for pg in pgs if pg.index == idx])
    File "C:\Users\TAKE\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\import_daz\daz.py", line 104, in eval
    return self.factor*(rig[self.name]-self.default)
    KeyError: 'bpy_struct[key]: key "" not found'

  5. Chuki Cicha reporter

    Yes, it says invalid python expresion, although updating dependencies and updating all doesn’t work, besides, expressions, visemees, and some face units aren’t working either. I could delete them and reimport them, but the thing is that I merged the anatomy to the body and now I can’t import the face units and other things…

  6. engetudouiti

    Hm this problem seems only happen about scene which I imported morphs before.

    Then I often forget it,, but I recommend we keep default rig and meshes of import scene as

    character_def_scene. untill mesh merge. So we can re-import morphs easy when there is up-date about morph functions.

    Usually rig merge not cause issue with up-date, but once merge mesh with graft items etc,, up-date versions may cause issue. I sometimes, duplicate meshes then keep default actor mesh and graft items, as hidden collection. then pray with duplicated and merged actor with set actor name.

  7. engetudouiti

    And fot these case, I hope Thomas will add “import duf (or dbz) full path) when import duf scene ,for each object ID props. . so we can easy re-load them when we need. or we need to serch around root paths one by one with check dazUrl of meshes.

  8. Thomas Larsson repo owner

    Does this happen if you import a fresh character with the latest version, or only if you update a character from an earlier version? If the problem only arises with old characters, then maybe you have to start over again; sorry for the lost work in that case.

    In my own example, the problem was that the metatarsals are gone after merging toes, but apparently all drivers were not. I have tried to write a script that removes them, but apparently it is not so easy when the corresponding bones are gone.

  9. engetudouiti

    For me (with g3 characters only), when I re-export scene with dbz, these problem not happen.

    but about some blender scenes which I have already imported morphs, show this issue. it seems depend beta version which I have used. (and for me, it is scene which I imported a few weeks or das ago)

    About real old scene,, they seems lost morphs, then I may need to re-import morphs. but as Chuki Chicha discribed, most of them are already merged. then shape morphs can not be improted I feel.

    ( I know, it depend user who use beta versions, but I afraid even though new stable version released,

    I think we need to re-import morphs, or may need to re-import scene from start untill merge meshes.

  10. Chuki Cicha reporter

    @Thomas Larsson This doesn’t happen with new characters, and this is not the first time it has happened to me, it’s only with old assets. Anyways I’m still using them because I don’t want to start over from the beginning, though I know some ways to create a new character and pass all the data from the old one. But I can still do whatever I need, all I have to do to fix the deformation is going to the layer I said on this issue, select all bones, and clear Location, Rotation and Scale, and they’re good. but as soon as I press Ctrl+Z, Update All, or just opening the file, the bones go mad. I’ve also exported animations and other things, and they’re good, I just put a keyframe of those bones at first key and they’re good.

  11. Log in to comment