Can not import multipler (2nd stage) custom morph controller which drive other morphs value

Issue #450 resolved
engetudouiti created an issue

I do not know if it is current limitation of “import morphs” of this add on but I feel,, if it can be done without too many complex thing or you already make it work so, but not work with some condition. Anyway I tried to import multiple controlelr like this way.

1 make new controller which only multiple the value with G3 default expression morphs value, then adjust them.

2 The controller value simply multiple with current expression morphs value , then I can adjust current expression strength by one controller

The usage is, after make new expression with mix default expressions, then simply adjust current Expression by one slider. without make new morph individually. so the multiple controller (Expression adjuster) default value should be 1.0 (100%) Then I save the ERC formula as Controller file. so all formula are described in the Exression_adjuster.dsf

3. load G3female, then import base morphs (unit, expression etc), then I import the Expression_adjuster.dsf as custom morph.

Add on generate new slider “Expression adjuster” and raw property, fin property.. (so it work as usuall controller of add on), but any expression not driven by the” Expression adjuster” so it not work as multiple controller. (just work as empty morph)

I confirmed, all driver formula are saved in the Expression_adjuster like this,, (so even though I remove it, DS never show error)

            "group" : "/Pose Controls/Head/Expressions/TKexpress",
            "formulas" : [
                {
                    "output" : "Genesis3Female:/data/DAZ%203D/Genesis%203/Female/Morphs/DAZ%203D/Expressions/hiddentemp/eCTRLTriumph.dsf#eCTRLTriumph?value",
                    "stage" : "mult",
                    "operations" : [
                        { "op" : "push", "url" : "Genesis3Female:#Adjuster-expression?value" }
                    ]
                },
                {
                    "output" : "Genesis3Female:/data/DAZ%203D/Genesis%203/Female/Morphs/DAZ%203D/Expressions/hiddentemp/eCTRLTired.dsf#eCTRLTired?value",
                    "stage" : "mult",
                    "operations" : [
                        { "op" : "push", "url" : "Genesis3Female:#Adjuster-expression?value" }
                    ]
                },
                {
                    "output" : "Genesis3Female:/data/DAZ%203D/Genesis%203/Female/Morphs/DAZ%203D/Expressions/hiddentemp/eCTRLSuspicious.dsf#eCTRLSuspicious?value",
                    "stage" : "mult",
                    "operations" : [
                        { "op" : "push", "url" : "Genesis3Female:#Adjuster-expression?value" }
                    ]
                },

then I suppose, add on may generate (edit ) driver of all expressions (described in formula as output) which already imported as “Expression”. But it not work.. I do not see any info from console.

It not generate already imported Expression morphs, but not edit those expression (fin) driver.

If you need to test attached dsf file, The attached file need to be installed in your ds library,

“your daz library”\data\DAZ 3D\Genesis 3\Female\Morphs\TK\TKexpressCtrl\Adjuster-expression.dsf

then load G3, (you may find new category for Head expression as TK , when you select G3 root node)

Comments (13)

  1. engetudouiti reporter

    And how you manage those multiple slider morph, when import custom morph, it should effect when you try to use “Sum” type for driver expression to solve the 255 limit problem too. (though I do not make this topic for the limit issue), you may first try to solve this issue, with keep current driver expression (but need to add multiple variable in all morph(fin) driver expression, which described as “out-put” in the dsf formula “mult” stage.

    and you may concern how manage default value. (Only about multipler morph, we may need to set the default value for raw property (which we control the value in UI slider) (or user need to manually set default value in blender,.

    Though I test it with custom morph and drive default expression morphs. But usually those multiple controller, may be included in vendor new expression product. (and most of case they should be save the driver formula in the multipler but sometimes it may saved in each driven morph file of their package)

    Some vendor may not offer it as slider , but some vendror may offer it. then when user import the package morphs as custom morph, they may not carefully check it is multipler. (so add on may need to auto-set default value for the controller raw value = most of case 1.00 as default)

  2. engetudouiti reporter

    Of course add on already generate all prop (raw , fin and UI slider of the new controller). then I can manually edit imported expression morphs driver expression , one by one (the adjuster need to multiple with all default expression controller fin value , so I need to edit all expression driver if I make it work)

    the procedure need by add on when I import the multiple controller. (and set default value for the controller raw prop as 1.00 (or you may use the default value in the controller.dsf)

  3. engetudouiti reporter

    So to consider recent up-date,, I suppose all dsf morphs use same style expression and props.

    raw(user controll value), rest (1st stage sum values) and Fin (the final prop value of the morph)

    Fin = (Law + Lest(1st stage sum) ) * (2nd stage multipler(Fin) values)

    There are case,, the morph do not have Lest prop, then Fin = Law or there is case,, we do not have any multiple controller as 2nd stage ERC,

    but I think most of morph should be imported correclty. (there remain some up-date problem about expression though,,, Thomas almost solve those import morph issue.. I feel)

  4. engetudouiti reporter

    I test it again with import same custom morph. at current, I confirmed recent version add on can not import morph which multiple with then drive other morph value by import custom morphs.

    add on generate the slider, raw and fin property for the expression adjuster morph. but it not set driver which multiple with Expressions fin. console show like this

    Making morphs

    • Adjuster-expression
      Making missing morphs
      . ectrlangry.dsf
      . ectrlbereft.dsf
      . ectrlbored.dsf
      . ectrlconfident.dsf
      . ectrlconfused.dsf
      . ectrlcontempt.dsf
      . ectrldesire.dsf
      . ectrldisgust.dsf
      . ectrldrunk.dsf
      . ectrlexcitement.dsf
      . ectrlfear.dsf
      . ectrlfierce.dsf
      . ectrlflirting.dsf
      . ectrlfrown.dsf
      . ectrlglare.dsf
      . ectrlhappy.dsf
      . ectrlignore.dsf
      . ectrlill.dsf
      . ectrlincredulous.dsf
      . ectrlirritated.dsf
      . ectrlpain.dsf
      . ectrlpleased.dsf
      . ectrlpouty.dsf
      . ectrlrage.dsf
      . ectrlsad.dsf
      . ectrlsarcastic.dsf
      . ectrlscream.dsf
      . ectrlserious.dsf
      . ectrlsilly.dsf
      . ectrlsmile.dsf
      . ectrlsnarl.dsf
      . ectrlsurprised.dsf
      . ectrlsuspicious.dsf
      . ectrltired.dsf
      . ectrltriumph.dsf
      Building drivers
      Building sum drivers
      No rest drivers
      Folder loaded in 4.650 seconds

    all expression morphs are already imported as expression,. so I suppose it is current limit of add on import custom morphs.

    If Thomas next improve morph, consider it please (if there is way to add multiple value in direr expressions)

    (default multiple type morph already work. (like Eye Look On and Off of G8) so I guess if you can already manage them, but still not make it work for custom morphs)

  5. Thomas Larsson repo owner

    This is the first time that a multiplier is loaded separately from the morphs it controls, so of course it didn’t work. Seems to work now, both if the morphs are already loaded or not.

    A second problem with your attached file is that it expects the morph files to be in a non-standard location, in a “hiddentemp” folder - check the dsf file. Is that intentional? If the files are not found, the importer now tries to remove hiddentemp from the file path, so you shouldn’t make such a folder.

  6. engetudouiti reporter

    Thanks, though I do not set real morph which i currently used for daz, set as hidden temp.. but I do not remember attached one for test, I set path so..I may check again.

    but I do not know clear, add on think what directory is hidden temp though… I locate this morph as described “your daz library”\data\DAZ 3D\Genesis 3\Female\Morphs\TK\TKexpressCtrl\Adjuster-expression.dsf

    I may check the attached dsf again, and may understand what you means. though.

    ====

    mm,, Thomas please teach me, what you actually means,” non-standard location, in a “hiddentemp” folder - check the dsf file.” ?

    I simply make this morph in daz studio, and save as morph (as usuall way when user made custom morph and save it as morph.dsf) then set path it is for genesis3 female morph.. (vendor name), and produt name..directory..

    Then daz ,slider category is /Pose Controls/Head/Expressions/TKexpress

    or there is some new setting to import custom morph from directory. or you find data in attached dsf, to set as hiddentemp directory?

    I do not intend to save this morph.dsf as hiddentemp,, (I do not know what directory you means hidden temp,, so hope to know if I miss something to save morph file or to import it..) and all drive morphs are usuall expression morphs for G3… (it is imported by add on,, ) then I import this morph as custom morphs. (because it is not default daz morph, it is same as vendor morph (my private made). then i suppose I need to import it as custom morph..

  7. engetudouiti reporter

    Oh,,, now I find, I do not know why all expression morphs paths are set as hidden temp ^^; actually I do not know.. it is new thing for me..

    I do not remember what I did when I make this morph, but simply set ERC manually with hieralchy editor of DAZ… I have never seen hidden temp directory. actually.

    (so daz generate those temp directory, with case? but I did not locate all expressions in such directory,, I need to check again,, if I duplicate them before. then use it without inteniton..

  8. engetudouiti reporter

    Do you know, when daz generate hiddentemp directory ? or I do not remember to un-zip all files, temprally copy them and forget them ^^; anyway I seems set driver for those hiddentemp expressions, no I do not intend it,, I may need to check it in daz studio again..

    o

  9. Thomas Larsson repo owner

    No idea where the hiddentemp came from, I just saw it in the dsf file. But it sounds like something that DS may create behind your back, so the importer now tries to eliminate that string if it didn’t find the file in the first place. The risk that somebody would create such a directory deliberately seems very small to me.

  10. engetudouiti reporter

    It is somehow terrible for me,, I actually found those duplicate expression in hiddentemp directory, then it is not matter. (maybe I made them before, to easy check expressions, )

    the problem is, so I delete the hidden temp directory which duplicate all expressions, . then I suppose when I load genesis3, it may show message,, some morph missing etc, because my adjuster.dsf link with those delete morphs. but no.. ds no complain.. then even though I remove hiddentemp directory,, (but I do not edit adjuster.dsf which link with the path), ERC still work,,

    it is so strange for me, then I now edit the adjuster.dsf. change "output" path name as standard one.. (remove the “/hiddenmorph”, I confirm it work ..

    but I do not know why I remove duplicate morphs in sub-directory,, DS can set ERC and the driver work. (No error)

    I suppose if the output path in the expression is not matter for dsf, but only check op url

    { "op" : "push", "url" : "Genesis3Female:#Adjuster-expression?value" } No I can not imagine it.. (because formula output only describe path, which DS need to set ERC)

    or DS auto correct the "output" : "Genesis3Female:/data/DAZ%203D/Genesis%203/Female/Morphs/DAZ%203D/Expressions/hiddentemp/eCTRLTired.dsf#eCTRLTired?value",

    path when there is no such directory (because I removed them, but ds can keep ERC ..though I do not know if it is caused by cash etc,,) I actually re-load genesis3 scene to check it..

    if ds auto set such temp path when user made custom morph which set ERC manually it is terrible. (but maybe it is my mistake I suppose,, though I do not notice it long time.DS just load all expression as same as before, even though there were duplicate sub directory. (I supposed DS can not find them, then I made such copy directory to temporally extract files,,but I do not know why DS use the hidden sub directory path to describe the formula..)

    ===

    anyway thanks you up-date I test later ^^ (if it work well it is really interesting for me.. I can easy add full adjuster for each expresison group or vismes I suppose)

  11. engetudouiti reporter

    Yes I could import the adjuster, and it worked thanks (of course I needed to set default value (should be 1) manually. about this case. or all expression stop to deform ^^;

  12. Log in to comment