Huge bug last commit convert to morph remove everything!

Issue #1661 resolved
bouich jules created an issue

Hi!

Major bug here with the 1.7.1 when you advanced -) convert morph to shapekey you will lose all the drivers! and all the previous shapekey will be deleted!

No bug with the 1.7.0

Steps:

  1. IMPORT A G9
  2. import standard moprh
  3. convert morph to shapekey

if you have previous shapekeys it will be deleted, and also all the drivers will be deleted.

Comments (10)

  1. Alessandro Padovani

    daz studio 4.21.0.5, blender 3.6.1, diffeomorphic 1.7.2.1706

    When you convert to shapekeys there’s an option to “delete existing shapekeys“ that’s on by default because this is what you usually want to do. As for drivers they work fine here I don’t see anything deleted, you have to delete them by hand if you want to. Be sure to update to 1.7.2 since Thomas is fixing things there.

    steps:

    1. easy import G9 with jcms and facs
    2. convert facs to shapekeys

  2. DomDomk

    I have the same problem as Bouich, with the latest version and the latest stable version, I have tested with both G9 and G81.

    Easy Import G9/G81F check JCM and Facs, then select the mesh, convert facs to shapekeys.

    Is the addon supposed to delete only the properties of controllers of facs with the option, on, "delete existing shapekeys"? which is enabled by default. If you do not check this option, you will have to delete them manually from the Blender Drivers menu, all controllers will be preserved.

    But, on “ticked the option” does not only delete these properties, it also deletes all other properties, JCMS, custom morphs, all other shapekeys. Only the facs that have been converted to shapekeys without driver properties remain.

  3. bouich jules reporter

    Exact please note that i have absolutely 0 problem with the 1.7.0 ( which i still use to avoid all bugs)

  4. Alessandro Padovani

    daz studio 4.21.0.5, blender 3.6.1, diffeomorphic 1.7.2.1707

    I can confirm that the option deletes all the existing shapekeys including jcms. Perhaps it should only overwrite/delete the shapekeys that are converted, not all of them. As for the drivers I don’t get them deleted. This needs @Thomas Larsson to look at it.

    p.s. As a workaround we can load jcms after converting morphs to shapekeys.

    p.p.s. May be this is the intended behavior, that is, after conversion it removes everything and rebuilds the drivers for the new shapekeys. That’s what I get here. IIRC Thomas stated that it is not possible to remove only some drivers but all of them must be removed together. If so we have to do the workaround, first load the morphs we want to convert then load the morphs we want to keep.

  5. Thomas Larsson repo owner

    The Delete Shapekeys option has been changed to an enum, with three values: None, All, and By Name. If the latter is chosen, shapekeys whose names start with pJCM are kept. This keeps the standard JCMs and flexions for modern characters.

    This tool was originally made for somebody who wanted to use the morphs in game engines. Morphs that are driven bones don’t work then, since drivers are application specific, But JCMs are also driven and don’t work either outside of Blender, so keeping JCMs doesn’t make much sense to me.

  6. Alessandro Padovani

    Commit 3563c5d works as intended.

    The tool can also be used to make the rig independent from the addon. That is, jcms will work fine without the addon but morphs will not since they require the drivers. Then if we convert morphs to shapekeys we can use the rig without the addon. At least for the daz rig or the simple rig in ik mode, while mhx will not work without the runtime.

    p.s. It is also reported in #1646 that morphs don’t work with NLA because of the drivers, so to fix it they need to be baked to shapekeys. Though it is always possible to do NLA with baked actions, that I understand it is mainly what NLA is for.

  7. bouich jules reporter

    Thank you Thomas, i mainly use this tool for game engine, but i wanted to know except this change is there something different with the 1.7.0, i was using this funciton in the 1.7.0 perfectly without any problems for my game engine,

  8. Alessandro Padovani

    note. about games.

    As for games, the blender fbx exporter bakes bones and shapekeys when you export an action, so there’s no need to convert morphs first. It is likely that 1.7.0 didn’t work but you didn’t notice it because of the fbx exporter.

    steps:

    1. import a daz figure with jcms and morphs
    2. animate body and face
    3. export to fbx
    4. import back the fbx, you will see that jcms and morphs work fine because bones and shapekeys are baked, there are no drivers

  9. Log in to comment