New category morph multipler not work for facial pose

Issue #544 resolved
engetudouiti created an issue

Thanks Thomas return category morph multipler, to adjust each category morph at once.

Then I found , you set driver (multipler) for shape keys only…

Though it may work for most of standard moprhs, (so that means fin value keep same value, but only shape keys will be multipled)

the way may not work for pose controllers like face unit or custom pose controller which change bone pose.

I suppose to work for all morphs, you need to add those adjuster value , in fin props expression. of all category morphs.

I understand you make it so with insight, so but basically if you add multipler expression for fin props, it should work. without change shape key expression + pose controller strength(fin) for each slider(raw)

Comments (32)

  1. engetudouiti reporter

    The same logic which you use to import multipler morpsh (custom morph) can use it.

    (actually at first time, you add gorup slider, it change each prop fin value (pose controller + shape key morph controller (and maybe drive others too)

    I believe all daz morph multipler only multiple with fin value. from formula description.

    Fin prop A = (raw prop (slider)A + drv (b ….g) ) * multiple h * mulitple* i

    so basically you can add global adjster slider value, , and group adjuster slider multiple value as multipler anytime you need..

    Fin propA = (slider propA value + drv(b + c….) * mutiple h * mutliple i …. * ( gloup slider value ) * (global slider value)

    as you can see now I test pose with custom morphs only. it include some pose controller (bone move) + some shape key morphs in same group.

    Then I can clear see, only shape key morphs multipled with the group slider value = only effect shape keys, but not effect for the pose controll (because Fin keep same value)

    I undersatnd, (maybe you have intention to limit it work only for shape key type morph like character jcm)

    but I thiink user can group it when they import jcm (if they need it only work for JCM of some specific morphs) Current way can not make it work for any pose controll group slider.

  2. engetudouiti reporter

    About global scale (in pose section) option, I do not know all detai.(because you need to separeate it for bone translate only or shape keys only)

    But the group adjust , you may not separate , it is same you import multipler type morphs from daz.

    (you just auto generate them for each group, then if user do not need it , just remain as 1.0 = no harm)

    if user need to use it for each purpose (someone need to it to adjust jcm effect, someone need to use it for custom (user made) morphs adjuster etc) user may group it as it need.

    if it only work for shape key, it maybe make more difficult to easy use the option. if user who hope to import character JCMs with weight, the user may group (import) jcm morphs only. (so I said it depend user, then you just offer option = leave it the user who use it.

    If you make things work auto-mate for all user, without care which type morph user import,, I suppose it make things un-stable.

    So I recommend at least about group slider, not try destinguish shape keys only etc, just multiple with fin value of the gorup morphs. if user import pjcm or ejcm, with not show hidden slider, it may only generate the group slider as user defined category. it is OK I believe.

    And one thing, the slider multipler main merit is usually not expect to show huge deform morph. (so multiple with 2 or 3 for all morphs)

    (it mostly used to adjust current expression more weak , so usually the adjust only need to work 0 to 1 limit. basically. if you hope to show strong expresison, you may adjust each morphs with change the limit as you need,

    and for most of case, they may keep it as 1.00 (for user who think the setting break their work flow when they tweak it)

    and if you keep shape key expression = fin props, you can still set same limit for shape keys and fin as same as before even though you need to change limit for fin. or you need to offer different limit for shape keys and fin property I suppose. (though I may need to check, how you set expression for global scale , shape key and fin later to clear understand your intention)

  3. Thomas Larsson repo owner

    Adjustment affects channels which have the dimension of length, i.e. bone translations and shapekeys, but not rotations and scalings. So you can use it to mix jcms for different characters, or to use morphs for a characters with different size, which is difficult to achieve otherwise. You seem to use it to change several sliders simultanously, but that can just as well be done by changing the separate sliders themselves.

  4. engetudouiti reporter

    I understand global adjuster (scale or shape key) is not need for each category so you add it as global option. for translations and shape keys. then it need to work when user change scale + apply for the user load character. but it did not work for mixing jcms for one character.

    Then I asked you to (return) multipler (it is different tool), which change each category morphs strength at same time. then it can use for mixing character morphs with each ratio which used for current character. (when user import character morphs separatelly, I set strength)

    at same time if you just multipled with the strength for each category morph fin (not only about shape key), it could use  to change several morph effect simultanously (as user defined group)

    eg I make morphs category which only effect upper face. (it may sometimes adjust shape keys, sometimes, bone move) after all , those controller only deform the upper face. a

    then I make morphs category which only effect lower face. then I planed to use it, to adjust current expression by each part.

    And You add those multipler not only custom but also basic morphs category, so I expect it to adjust expression only, or vismes only about current character pose. .Though I can adjust it by tweak each slider one by one

    if you multiple with fin value those adjuster ( not say about the global multipler to correct the scale problem) I could use it for many usage. (use it to mixing character jcm with weight, or use multipler simulateneously)

    without it I do not know why I need it for face unit or each custom group. because I may not remember, which category morph only change shape keys or pose bone, or sometimes both. do not expect it only effect shape keys.

    Then any driver (controller) meaning is change “other morphs strength or several bones position simulaneously (not need to changing the separate sliders themselves. but we use it .If you recommend me, to adjust them one by one. (= set multiple value for fin by myself)

  5. engetudouiti reporter

    Or it is more difficult ? I do not think it must need. so if it make things more complex or it cuase new issue, I do not keep this request (because first purpose requested by other topic was mixing jcms) but if it is not so diffiulct I do not know why you hope it only work for shape keys. (the global adjuster is need for scale change only then I do not think the group multiple slider need to work same way = there usage and purpose are different but you make it work as same manner.

  6. engetudouiti reporter

    I can understand, we can not set “shape key value = fin” any more for the new global scale adjuster.

    but I means, (I expect so),

    you change groupA morph1 fin = raw * group multipler first.

    after that, adjust shape keys = fin * global scale or adjust bone translate separatelly for global scale,

    If you have reason which you need to make group slider (multipler or strength) only work for shape keys I hope to know the reason.. and if you make it work for all controller strength (bone pose morph , shape key morphs, and mixing type morphs) for the group, will it cause problem?

    If it not cause problem, but just you think it may need not work for pose controller, I feel there is not many merit generate it for each groups. (if it only need to import character jcms with wegiht)

    at current anyway you offer the tool for all group (default and user custom), so I hope it work for all morph by each group.

  7. engetudouiti reporter

    At least I think, if you make group slider work so, (work for all morph), it can still import character jcm as group, and set the weight (which used for the character eg vic 0.6 and aiko 0.3 etc)

    because it is perfectly same how daz apply many character JCMs for current mixiing character (daz just multiple with each character JCM fin value (hidden slider) with the character FBM value)

    daz do not multiple with morph data only. but just use multipler as same as other props.

    then to make it work for this add on, we manually set the FBM value as multiple slider value. (of course user need to import each character jcms as separate group) . So I do not know reason, why you make things differently. (though it should show same effect about JCM)

  8. Thomas Larsson repo owner

    OK, so now there are two types of adjust properties: adjusters for each morph type, and a global adjuster for morph strength (shapekeys and translations) in the Posing panel. Currently the default is adjusters for morph type only, but I might change that to neither to avoid generating extra complexity for people who did not ask for it.

  9. engetudouiti reporter

    Thanks, For mixing jcm already you offer option.

    Then if new option work as multiple slider for each category morphs (not only about shape key type ), how you show them (as advance or show as pose etc) is not matter.

    (anyway, I simply hoped add on generate mutliple slider which can adjust all morphs in same category just mulitpler,, , then I plan to use it for mixing jcm (set weight) or sometimes just use to change some morphs value of each category as I need.

    About scale, and translate new global setting was I simply did not notice the problem long time. (so now I practically avoid those scale morphs in daz studio, which change scale value)

    Anyway I temporally this open untill confirm it work (and not cause new complex problem). then if it really make things mess, change as you need, but anyway I just hope you remain jcm mixer. (because it was first purpose. for other topic request)

  10. engetudouiti reporter

    Now I finally could find the new setting options. thanks. so it decided as global setting = I think it is OK for me. at same time. I think, to make things clear for user and report easy, devide these 2 issue more specific case. not merge them. (ideally may better separate as different option. not gather one same options)

    What I means

    issue1 “scale morph options for baked root bone scale”

    it maybe sometimes critical for user workflow. who bake bone scale in daz scene, or after import rig and change bone scale, and bake scale as rest pose. , (about both case, bone scale change from default daz figure) to import morphs.

    I do not know how we should call the option (or setting), but maybe we can call it “scale morph options for baked root bone scale” to import morphs correctly. Then to avoid this issue, we need to use new global scale adjuster (and which may need to effect shape keys and bone translate only)

    at same time, I do not think add on need to care, when user import some morphs >> change bone scale>> apply the bone scale >> import new morphs. Such workflow maybe really un-stable, without user remember when they change bone scale. (though I suppose Thomas still adjust it when user need.

    issue 2 “strength adjuster for each category morphs”

    The purpose may differ for each user. basically it only need when user hope to set weight for specific morphs only.at same time, It can be used, as morph adjuster which you specified groups. (each default morphs, and user custom group) . it simply multiple the input strength for all same category morphs (custom or default) (any type morphs)

    So these 2 tool (options) do almost same thing, but the purpose and logic is different. then I hope Thomas will clear devide these 2 options, not merge as one options. (at current these 2 actually mixing as one tool options) = user really think difficult which option they need to choose and can not suppose how it work.

    at least strength adjuster just do same thing = when we import multipler morphs which only work for specific morphs. add on kindly auto-generate for user with user specific category morphs (if you do not like it, not generate at all)

    Then one purpose (usage) is we can use it for import some character specific JCMs, with set the strength. (as same as daz studio) when we import mix character. (so it will show more reliable jcm effect)

    but about other morph category,, user may just use it as same as other morphs slider. (it work to adjust all morphs strength, as ctegory morph slider)

    ====

    so these 2 options may better clear separate as UI and options, and need info separatelly for user. they not relate with each other as usage and purpose. (though as add on code, they may try to multiple with for same props or shape keys, case by case)

    (Though It depend Thomas, how you show those UI slider and options, but for me both option need. (though I have requested only about “the strength adjuster for categroy” so do not hope remove one of these 2.

    at least we can choose it. (generate those or not). I think the issue1 is more critic, because there should be case, un-epxected scale arelady included when import daz character. without user check the root node scale. when export scene. (some character morph auto change it without any inform)

  11. engetudouiti reporter

    And as my private question,, so I now only test about the case 2 “strength adjuster for each category morphs”, which option I really need to choose? 🤔 about global option?

    morph type or morph strength? or anyway if I hope to get morph multipler for each category, I should choose both?

    (I import character without change root node scale. so I need not issue1 options about this character. (I believe so, all used morph not change bone scale prop but adjust edit bone with fine tuned by good vendor = good products shape morphs for me )

  12. engetudouiti reporter

    Now I confirm Morph Strength generate “all morph strength slider” which ignore group. (so I suppose it need for issue 1 adjustment)😅

  13. engetudouiti reporter

    Then I suppose, (maybe) it seems bug of issue2.

    I now use Morph strength option. then import by favorite morphs, now it generate the multipler for some category, but not generate the multipler for some morph category (eg face unit have multiple slider, expression is not, I see same issue for face morphs of my custom morph. too. (so do not know if this option do, what Thomas made before = only work for shape keys only etc)

    I may need to test, it is caused by I use import favorite morphs (I already made it with different version)

    I tried the final option. both. it generate global slider as pose. but not generate multiple slider (case 2) for some category morphs (like expression or my custom pose controll)

    I do not know how add on decide it, now vismes and custom vismes show multipler. (they do not have shown before)

    I may try import them one by one. with both option. (to make things clear. I recommend separate issue. with global scale).

    (or if it really complex. at first. only offer option for global scale. I recommend. (then make UI or options separatelly as group slider. )

  14. engetudouiti reporter

    No how I import morphs with each option, it not generate the multiple slider for G3 expression and my custom face congroller. but about other category, it generate multipler (for face unit ,vismes, custom PBM ) ^^;

    Anyway I may hope Thomas once clear devide these 2 different things which adjust props. so I suppose it make things more simple.

    my thinking way is,,

    when import morphs with category (we actually do so),, add on simply generate multipler then change expression for all the morphs fin props of the category (just multiple with )

    it is all about issue 2.

    after make it work,, may better offer global slider or option for issue 1 (it seems more complex for me).

    ( actually I suppose most of us not notice the problem. or is there report we need to make global slider for baked scale thing? though after I understand, why you made it , I believe it actually important option. but after you mentioned about it, somehow tool meaning change or merged as new one . then now it effect for both problem.

  15. Thomas Larsson repo owner

    This is starting to become really complex, but I think the last commit does a better job.

  16. engetudouiti reporter

    Just to confirm,

    my priority is,

    1 “ offer tool which can mix character jcm easy with set each weight”

    2 “ if use multiple slider for mix jcm, I hope it work for all category morph multipler”

    about global scale and drv translate (shape key) is different problem for me ^^;

    (so I feel sorry, if my request make things complex. but actually I did not know about global scale things, then you tried to make it work, at same time)

  17. engetudouiti reporter

    With test new commit build it still not generate multipler for g3 default expression.

    (I test with all way, to import expression of G3,, easy import, import standard morph only. or import favorite morphs)

    I suppose if you try to avoid, global scale multipler and each morph adjuster work same morph?

    it need not if you only change fin vallue expresison for category slider.

    you can separate, where you need to modify.

    for global scale things, you need to modify, shape key driver expression. and may need to set drv bone transform props. but about both case, I do not think you need to change each morph fin prop expression.

    global scale >> modify shape key driver, and modify each bone prop driver (for translate scale)

    category slider >> modify fin prop driver expresison

    though I think, now add on try to do it. (what I mentioned)

    becausse about category which generate slider, it show fin value correctly. (I test it with set zero .then it drive all fin value as 0 = it work as I expect)

    AI import 5 category morphs as custom morphs. but only my handmade bone controller group (facial) which mix shape key morph or bone transform. not generate multipler. other hand made vismes or hand made PBM seems work with generate new multipler.

    Then if I import my custom multipler.duf (which I made it only work for expression), I can import it as custom morph. ^^: like this. (yes 2 props do same thing, mutlipler * multipler but do not care. it work as it should be)

    so when you frist time offer, I expect there will be case. category morph slider and my import multiple slider may do same thing. so I requested, if you add option when we import each morph category. select category multiple slider or not. but I do not request it anymore (not hope to make things complex by my requests)

    At current just hope if you can make it work for all category (when generate slider and jcm as same logic, only multiple value for fin prop. and leave it off about other driver (shape key or bone property driver expression (it may need to be modified with global option) ^^;

  18. engetudouiti reporter

    And I could find miss expression.

    you multiple K * a + b + c but it should be (a + b + c)*K

    as you can see. I only tweak one property of both Brow inner up-down as 0.8

    then it usually change r and left as 0.8.

    even though I keep default setting, now it change as 1.0 it should not.

    so I said before, if add on set 2nd multiple expression, you may better always use “()” for expression.

    then multipler can add as “( expression) * value” without break it.

  19. engetudouiti reporter

    So to consider these new problem caused by category multipler (I afraid if same thing may happen when I import custom multipler though)

    I think if you can make it as function. (so not generate them untill user click the button)

    that means.. as default you only concentrate new global scale things. I suppose you do not touch fin value expression for the purpose.

    then when user need to generate multipler, add on do it with check the category. of course once user generate it he can not import new morph or it will brea driver expression easy..

    I think complex thing may happen, when add on generate slider and multipler at same time. so after finish import morph. then user add multipler for their purpose, it may not break things.

    (from start, user set it as global option, then add on try to add new multipler, when generate each morph or props may make things more complex)

    if you need to solve it and take many time, I may apreciate, you remove those new multipler script once. and just remain old shape key weight. (which we set when import morphs, though I seldom use it, but at least it do same thing when we need to mix jcm without new UI sliders. (it may just make things complex if not work )

  20. Thomas Larsson repo owner

    No, your way leads to double counting. I do

    fin1 = adj*raw1 + fin2

    You suggest that

    fin1 = adj*(raw1 + fin2)

    But fin2 and fare already multiplied with the adjuster. If

    fin2 = adj*raw2

    then your expression is the same as

    fin1 = adj*raw1 + adj*adj*raw2

    which makes no sense to me.

  21. engetudouiti reporter

    I do not think so. actually daz simply make it so, even thoug you feel no sense.

    and it is reasoanble for me. we only multiple any controller effect. = fin value.

    so if user double use, close eyes(L and R) and close eye(L) only anyway, multiple with both fin value.

  22. engetudouiti reporter

    first al all adjust never need to multiple with slider (raw value). without multipler,

    fin = raw + (drv values)

    then if we make new ERC (multiper) it only multiple with fin.

    (raw + (drv value)) * multipler1 * multipler2

    it is not matter, how each prop drive each other. after all daz always multiple with each parameter fin value.

    it may show sometimes strange issue, with the limit (blender may restrict as fin value which we see, but real driven value are not limitted, then it will be multipled by multipler)

  23. engetudouiti reporter

    Actually it need to work so. you do not need to care if it not work as you expoected when user put multipler.

    of course, like r only or l only morph will be double multipled if user mix use morph which controll them.

    but we do not need to avoid it, (because user use both property. then multipled with may dobule circulated. but it not break the tool usage at all.

    on the other hand, if you keep current way, it simply show un-expected result.

  24. engetudouiti reporter

    You already confirmed, daz property value (which we set any ERC multipler or addictive) only use current prop fin value. (not raw value). so if we generate multiple slider, it not multiple with raw (user input value), but need to multilpe with fin value of the prop. it is design, when we make one prop as raw slider + fin prop.

    r eye close(fin) = (r eye close raw + close eyes(fin))

    then if we make multipler which work all fin,

    r eye close = (raw + close eyes(fin)) * multipler

    you do not need to care close eyes(fin) are already multipled with or not. As fact, of course close eyes already multipled with the adjuster, but it not matter.

    close eyes(fin) = (close eyes raw) * multipler. you may think it is strange, but it not strange as daz importer. it is because user set multipler and it work for all fin. then close r happend to double multiple with the adjuster because it is driven by close eyes. too. (so it is user responsibility, how use those)

    if you only use close eye r, close eye r(fin) = (raw + 0 ) * multipler. = raw * multipler.

    if you only use close eye = 1 , multipler = 0.5,

    close eye r (fin) = (0 + (current close eyes fin = 0.5) * 0.5 why it work so?

    it is simply because, close eyes r is driven by close eyes both. if you do not like it you should not import close eyes both. or you should avoid to multiple with close eyes. but I do not request such complex thing.

  25. engetudouiti reporter

    See do same thing in daz (add multipler which multiple with close eyes, close r, close l)

    it is usuall workflow for most of all multipler morphs which vendor may offer.

    multipler default value shold be 1.00

    after set close eyes as 1.0, I only tweak multipler as 0.5

    close eyes = 0.5 (should be)

    closer r eye = 0.25

    close l eye = 0.25

    you complain about this. (but I think it is perfectly usuall)

  26. engetudouiti reporter

    The problem (if you think it is problem and nonsense), you may strictly group those morph. with category.

    eg if you do what isuggested (then I ask you offer option which generate those slider only about user defined category), then user can carefully load morphs as same category, which not driven each other.

    If I only use vendor multipler, they may try to make multilper witch not multiple with morph A and morph B which driven by morph A. they may avoid ti.

    but you genrate multipler for each category once. then if it circluate correctly for all morphs it may show such case.

    (it only happen, when there is subcomponent morph and dirver morph as same category = multipelr target

  27. engetudouiti reporter

    Then why current way should cause problem even though user not set adjuster at all. it effect driven morphs.

    with un-expected way.

    when close eye as 0.5 (but keep adjuster as 1.00 = user not need adjuster effect any circulation)

    I expect r eye close as 0.5, but it add 1.00 for r-eye and l-eye so I said it is wrong expression. it never happen if you make adjuster as same as daz way (then all import prop designed so. so it work as same as daz way at least for final value = actuall effect.

  28. Thomas Larsson repo owner

    OK, if you say so. Now adjusters multiply the whole expression.

    That the expression adjuster did not show up was a different problem, which has also been fixed. When making missing morphs the morphset is changed to make the missing morphs appear in the right panel. However, that also changed the adjuster property, so the expressions where adjusted with the “Adjust Head” instead of “Adjust Expressions”. Now the morphset is changed but the adjuster always remains the same.

  29. engetudouiti reporter

    Thanks after confirm d. (at least if I keep multipler as 1.00, it not change anything), I can close this topic thanks you take time much. about such issue.

    I may not add new request about morph any more. (I think it maybe difficult to get all user content with same effect, it depend how user use daz parameter, and noticed how it work)

    so some user may hope it work as original manner. (but it make things more and more complex when import daz morphs)

    but blender never forgive us, to change driven morph value. so to make it work we restrict our thinking.

  30. engetudouiti reporter

    Yes now it work should be, I confirm thanks .. as my side I do not have any request about this category scale more. . only one thing I can say,, . if user do not like it, do not use option. or keep all category weight as 1.00 do not touch it.

    For user who may need to import jcm user. use it. (you must separate each character JCM as each group first)

    then set character weight (check in daz studio), and apply it .

  31. Log in to comment