on raw and final slider

Issue #535 resolved
Alessandro Padovani created an issue

Thank you Thomas now I understand what “show final” is for. But what is “final limits“ for ? Shouldn’t they always be “none” since this is an internal value computed by daz ? I mean, when do we need to set limits for final, may you make an example please ?

Comments (20)

  1. Thomas Larsson repo owner

    In the eye blink example, if you set the raw values of both the combined and left sliders to 1.0, the final value of the left property would be 2.0 unless you limit it. That would break the mesh.

  2. engetudouiti

    Almost all visible property ,daz vendor make limit. so at least (I do not hope make things complex) fin value basically need limit. then as already confrimed, fin value = daz property value, at same time, daz set limit for fin value >> internally auto set raw limit (how user can move slider) to keep fin limit = property limit.

    But there is no way for blender to auto set slider limit from fin limit. so it is really techinical problem. to work all limit with many morphs, basically we can not set limit for raw.

    (then fin can range with user decide limit), but many user feel it make difficult to controll, so as option user decide slider limit as you like. then if you find problem, try to set no limit for raw .

    But usually we need to set limit for fin. (even though you expand range as -5 to 5 etc)

    when I set option to show JCM slider, (though it is only for a few user I understand), and set custom limit for fin (like -1 to 1 ) it easy cause issue. because blender JCM really depend limit, to control morph effect for each range. so it only work well when user set limit for fin as same limit which daz vendor set for each JCM.

    if we set JCM fin (and shape key) limit as same as daz (use DAZ limit), there will no issue. I planned to ask Thomas to offer option which can exclude custom limit for JCM only. (eg,, I must keep Daz Limit for JCM fin, but not hope to use same limit, for other simple morphs, at current I do not have way, when I show hidden slider,,)

    but it seems only happen, when I show JCM slider, then I hesitate to ask it.

  3. engetudouiti

    Then the real case, user may not hope to set limit for slider, is,,, when eye closed L is driven by many other morphs.

    like angry, cry, shout or user import custom morphs. (I do not know, actually it is driven or not, it is one example. so you imagine, actually there are many morphs which drive eye closed L. )

    1. user hope to set limit for eye closed L -1 to 1. so set range for slider as -1 to 1.
    2. . user do not know how many morphs drive eye closed L. then use other expression morph.
    3. then user do not input any value for eye closed L, but 3 morphs drive the eye closed L final value. then it becom 3
    4. user only set limit for eye closed L slider, >> so eye closed L final can get 2.5 or 2.2 etc .
    5. user think mesh break in blender, but in daz studio, it not happen, because daz set limit for fin. as -1 to 1. then it auto stop even though other morph drive the value.

  4. engetudouiti

    And one more important thing (I believe even though I mentioned it , many user do not believe it, I sometimes felt if I miss something, but actually it work so)

    Why I recommend not set limit for raw or slider.

    1. eye closed L driven by 3 morphs, so if there is no limit, and other 3 morphs range is -1 to 1,, eye closed L fin will move -3 to 3.
    2. to avoid it, user set eye closed L final limit as -1 to 1. then it not happen
    3. with set all other morph as 0.8, >> eye closed L fin = 2.4,,(but set limit so it stop as 1) user hope to return eye closed L value as 0 = do not close L eye for the character, but keep other morph expression (exclude L eye only).
    4. user have set limit for eye closed L slider min = -1 and max = 1 , then set slider value as -1.
    5. user think eye closed L fin value =1 , then user set slider value = -1. so eye closed L fin value will return as 0 (it is fault)
    6. Unfortunately blender do not circulate so.. other morph drive eye closed L as 2.4. then it limit as max 1.0, but to return it as 0, user need to set eye closed L slider as -2.4

  5. Alessandro Padovani reporter

    Thank you Thomas and Engetudouiti. I believe I understand it now, and it’s not that counter intuitive once you get it. That is, the slider limits are for single sliders, that correspond to the daz sliders. Then when multiple sliders interact to drive the same morph, the final value and limits come into play to control the morph value.

    Then for a practical use the slider limits are probably enough, since the user gets a visual feedback on the mesh anyway. But final provides extra control.

  6. engetudouiti

    No. user can not get the visual. because when you set limit for slider,, it not set limit for actual morph effect at all.

    It is OK, how each user use limit for their purpose. but I never think, practical use the slider limits are probably enough,  it is useful to control how slider move.

    but we really need to set limit for fin, (actually) , then set limit for slider or not is depend on user.

  7. engetudouiti

    Alessandro, when you hope to limit as visual how morph close eye effect, you need to set limit for final. because final morph effect is decided by other morph too.

    user do not know how other morph will effect to close eye. but hope to limit the effect.

    Fin value is main value. then user add effect for fin value by use slider. so for most of user, final limit is more important. or they can not limit the morph. So I do not agains how each user use limit or morph, but if Thomas guide same thing as you mentioned I simply deny ,it is not true. if user only care how move slider, you set limit for slider only. but it not limit real morph effect at all. (it depned by other morphs first then you adjust the effect by slider in blender)

  8. Alessandro Padovani reporter

    Thomas, Engetudouiti, to simplify things we could keep a single option for limits. That is, if I understand correctly there’s no need to have separated raw and final limits. If the user wants limits on raw he will probably want the same limits on final. And if he doesn’t want limits on raw he will probably don’t want them on final too.

    This will end up in a single “slider limits” that affects both raw and final, plus the “show final” option. And will also retrieve the user to understand the final thing, that is, he will use it properly without even know.

    It’s just a proposal but seems good to me please let me know what you think. If you’re not interested I’ll close again.

  9. engetudouiti

    No. each limit have different meaning.

    As for me, I must avoid to set same limit for raw and fin. your procedure only work, when the morph not driven by other morph. (Fin = Raw)

    but usually many morph will be driven by other morph (Fin) = (raw) + other morph drive value

    if I hope to set Fin min -2 to max 2 for morphA., I can not set raw -2 to 2 for the morphA . it should not.

    it change how other morph drive the morphA it always change with other driver morphs.

    The main difference is, daz auto set raw limit, (you do not notice it) for morphA to user slide value easy, when other controller morph drive it.

    Daz check value, which controller drive the morphA, now call it as drv value of morphA.

    then daz check the min and max (set for final value) of the morphA , after that, auto set raw min and max (internal) from the drv value , min, and max of the morphA.

    if drv value was -9, then to get fin range as -1 to 1 (which is dicided when vendor make morph or user set it) morph A raw need to set min 8 to max 10 .

    if current drv value was 5 , to get same fin range ( -1 to 1) , morphA raw need to set min -6, and max -4. then final morph A value can keep the range (min -1 to 1)

    to do same thing for blender, add on need to circulate current drv value. then auto set min and max for slider, everytime other morph change,, (it never happen)

    then even though it work so,, after all we use different min and max for raw(user slider) and final value.

  10. Thomas Larsson repo owner

    No, I think you need two separate limits, because there are at least four different combinations that make sense to me:

    1. Final = DAZ and raw = None. This is the theoretically correct combination that may be preferred by people who understand what they are doing (a group that currently consists of a single person in Japan).
    2. Final = raw = DAZ. This works well as long as you only change the basic morphs, or adjust the combined morphs when needed.
    3. Final = DAZ, raw = Custom. Almost as correct as 1, but the raw sliders cannot move too wildly.
    4. Final = raw = None (or custom). Corresponds to turning off limits in DS for extreme expressions.

    However, we should choose good defaults that works well for the beginner. Final = raw = DAZ is the current default and I think that it is the most intuitive one, even if it has limitations.

  11. engetudouiti

    Thomas at least I know there were more than 15 users who use this add on in may country, (because they sometimes make topic about this add on, though I do not check them ), and usually they know how ds work well, so I suppose they may think same thing as me ^^;

    but as practically, I think it is not bad , if offer raw and fin use same value as default . (when someone report, it not work with case, you can recommend to change slider limit more wide)

    Then as serious question is,, I believe you add option which forgive me to change limit for Slider and final,, separately (adbance option),

    but I can not find it,, even though I download recent version..

    I do not open almost same topic again, so untill alessandro close topic, hope to know.. (you not plan it, or you simply forget it^^;)

  12. engetudouiti

    I now hope to change it, (I already import morphs ) then I could import multiple adjuster morph. it work thanks. then now I hope to test it, with minus expression value .. (at current expresison fin limt is 0 to 1 = daz default, then I change it from -1 to 1 for expresisons temporally) or I can not do it , once import morphs?

  13. Alessandro Padovani reporter

    And I don’t follow again .. if final = daz then what good is raw = none ? I mean, raw will be limited by final anyway. Plus you lose control over the slider that will range everywhere in a nonsense. But I’ll be happy as it is. May be this is just not for me to get.

    Engetudouiti let me know when you’re ok so I’ll close. Thank you again for all the explanations.

  14. engetudouiti

    Alessandro, follow these. then think if you set limit for raw, it will work or not. if it not work, it means you better not set limit for raw

    1. moprh A value (final) min = 0, max = 1 you set limit for final.
    2. It means you keep morphA value range from 0 to I. at same time, whenever you hope to set value as you need from 0 to 1 for morphA value (final)
    3. you set raw as you like. but not None. so eg min = -2 and max = 2. or use same value if you like set min = 0 and max = 1

    Then start to pose with morphs in blender.

    1. morphA is driven by other many morphs (B, C, D…… ) then you will set those morph values.
    2. you do not slide morphA value in blender.. so morphA raw = 0, morphA driven value is decided by other B.C, D….. morphs .
    3. without you circulate and memorize, other morphs current value , you do not know driven value.
    4. even though you set morphA fin, and other morphs fin limit as 0 to 1, morphA driven value have almost no limit (actually)
    5. but blender use limit for morphA final value.
    6. on frame 1 other morphs driven value for morphA = 5
    7. morphA fin = morphA raw + 5,, but you already set limit for morphA fin. then you may see morphA fin value as 1.0
    8. now you hope to change morphA (fin) value as 0 = hope to remove morphA effect. but keep other morphs value. becayse other morphs drive other morphs too.
    9. so what value you need to set for morphA slider/raw ? actually it is -5
    10. But you set limit for raw, -2 to 2,, you can not input -5 for morphA raw anymor. . always morphA fin value keep as 1, untill you change oher morphs. or manually serch morphA prop and change limit temporally.

    so now you think, you only needed to set limit for -5 to 5 for morphA raw slider. not “None” yes it will work about the case.

    but it only work if driven value <= 5. if driven value was 8, you actually need to set limit for raw as -8 to 8.thenyou can input -8 for raw.

    so you do not know which min and max may work well for all case. and once user import multipler morphA it drastically change limit for morphA to keep same range for final value. (sometimes you may need to set morphA raw as 50 to get morphA final as 1 , with use multipler.

  15. engetudouiti

    to avoid case which lost control for fin value range (which I decide), I prefer to use None limit for raw as default. others may use custom limit to easy set value or use default min and max for simple morphs. (they not mix use 2 or 3 morphs which drive same prop or not need to adjust morphA value only, it depend each user.

    But it is annoying if add on force to set min and max for raw.

    it seems same for me, blender dev not expect, one morph will be driven by 20 or 24 morphs then lost driver expression string limit. even though it is not usuall, we may complain blender dev, then same reason, I complain, if remove none option to set limit for raw.

  16. Alessandro Padovani reporter

    Ok, I believe I get it now.

    basically:

    1. morph X has a final limit of 0-100% in daz
    2. some other morphs A B C drive X so we get X = A + B + C = 500%
    3. now we want to bring X back to zero with morph Z, that is, X = A + B + C + Z = 0%, so we need Z to be unlimited

    In daz studio a situation like this requires to unset the limits for Z. Personally I tend to avoid point 2 in the first place. That is, my workflow is to use one expression at a time (not to mix expressions) then some units to fine tune. Or the FACS controls for G81. And I believe this is the way to go to avoid lose control of the animation.

    I mean, if you reach the point where you don’t know anymore what you’re doing and you need a way back then your description makes sense. But this is to be avoided in the first place.

    That said, now I understand what unlimited raw is for. Thank you Engetudouiti for taking the time to explain it, your help is really useful to me.

  17. engetudouiti

    I do not think all user have same thinking about how to use raw and fin limit, or fin value need to be shown ? etc.

    but basically I do not have any problem if add on keep option to set separately. (with no raw limit option = it should work for all morphs, and how user set strange values for slider, the real morph effect will be controlled by fin limit)

    my current request is, so if I can see same option, as advance “update slider limit” . As for me, it only need to change fin props limit, to change effect range. (because I do not set limit for raw/slider)

    at same time ideally, I think (for me), it should not up-date jcm morphs limit. (because, I have never seen good thing, when I change JCM or MCM limit in daz studio which used to set erc formula. (so vendor only concentrate with in limit values formula or curve)

    I suppose if I may better to make new topic about specific thing (advanced option > update slider limit) then please close free when (or keep) Alessandro need.

  18. Log in to comment