plussing morphs ?

Issue #480 resolved
Alessandro Padovani created an issue

daz studio 4.15, blender 2.92, commit a43bd27

I see there's custom limits and no limits in the global panel to go outside the daz limits. Then even in daz we can remove limits if we want to. The thing with it is, the reference with the original morph limits is gone and we can also do odd things with values that the morph was not designed for, thus essentially "breaking" the geometry. But this is what remove limits is for.

Now it is also quite common in animation to plus morphs to emphasize them for squash and stretch or other effects. This is different than custom or no limits because it respects the original morph design, just plussing it. For example if the AA viseme goes from 0 to 1 in daz, the we go from 0 * 2 = 0 to 1 * 2 = 2 in blender, and the slider should clip from 0 to 2 too. This is a good way to extend morphs without breaking everything.

So may we have a "plussing morph" value too in the global settings ?

Comments (11)

  1. Alessandro Padovani reporter

    As a side note I see that with custom limits the slider doesn’t clip the value. For example below I have custom limits set from -2 to 2, but the slider displays any value, though the morph effect is limited from -2 to 2. When we use the daz limits the slider is correctly clipped.

    edit. Never mind I see I have to set raw limits instead of final limits to get the slider clipped. For some reason I thought “final” was the displayed slider and “raw” was the internal value. Not a good name choice in my opinion since “raw” is usually intended as an internal value.

  2. engetudouiti

    you may better keep show fin value = daz show values of current parameter as Fin value. so user can see how each morph are curently applied with use raw slider. to use blender raw slider (if you add slider for blneder ui, it auto show the slider =raw value)

    you need to check current fin value as main value. All sider now you tweak from add on UI is raw prop. so naming is correct.

    so you can free move them. but when we set range for fin value there should be range as if morph is clipping with other driver morphs. but it is normal. and necessary. On the other hand, once you set limit for raw slider, there will be range which you can not use for fin value. because fin value auto limitted. with other driver morphs range.

    in daz each parameter are composed like this

    Raw + (other morph driven value) = Fin value ( then you see Fin value as daz parameter value and min and max are set only for fin value)

    raw is your move delta of slider but the value not be shown as value, without you check parameter setting and check raw value.

    at same time there is clear difference, because daz can directly input fin value and not input raw value.

    if you set range for daz slider = fin value it auto lock user movement untill fin value in the range. so we do not clear see such clipping issue in daz.

    but we can not do same thing for blender (we need separate, raw slider (user delta) and fin value to user still add delta at same time we can not use min and max as same as daz , but actually daz set raw and fin then use limit for fin value only.

    so there is case raw = -15 (user do not notice they move slider so ), but fin value = 0.7 (set correctly in fin value range)

  3. engetudouiti

    So I asked Thomas to add option show fin value even though others not like it, if I use slider correctly I need to know the fin value. not current raw value. because fin value is auto set with many raw slider value. It is not matter current raw value to get the deform what we need. raw value only show how you move the slider.

  4. engetudouiti

    I recommend user not limit for raw value, it may show un-necessary move often, (even thouhg you move slider, you can not see effect untill it reach the fin value range) but it is normal. you only need to care how current fin value are , then keep moving slider untill fin value strat to change.

    and I recommend custom range for fin value. (set min and max for fin) if you need more effect.

    I do not say you should not set range for raw value. but at same time you can not compain when there is case you can not controll fin value what you need with mix other morphs. if you only use one or two morph , it not matter. you may not notice problem.

    I can offer many case it cause problem when you set limit for raw slider. at same time I know, we hope to set limit for slider easy move. so if you really annoying to move slider without range, I recommend use wide range more than fin value range every time.

    eg fin value need to set -1 to 1 you may better set raw as -5 to 5. (if the morph will be driven by other 4 morphs at same time like 4 expression move 1 face unit ), so you can still controll the driven morph and set the morph fin value in range which you decided. like 1.0 if you set same raw range as fin, you may notcie you can not return the morph as 0 anymore.

    because you limit slider when raw (slider movement) need -6 to get fin = 0 (plus 6 = other morph which you used then it drive as + 6. to return the morph as 0 (fin) you need to set raw as -6. but you limit it so you can not.)

  5. engetudouiti

    One small thing is Thomas may better change global setting option name I feel.

    We do not show Final slider for add UI all are raw slider. but you add option which show Final value of the morph on the side of raw slider to represent daz slider value. so rename it show final value of morph

    I do not care how we call slider value (which user input or move ) of add on UI slider. so if there is user raw is not good, change it as Thomas like (as same as you do not set all raw prop name as prop(raw) it was just need to test and describe how each morph driven and work. but about blender slider (and driver), raw is user move value. then fin is driven value. as same as Res etc.

    when you can move slider, the value only represent daz raw value. when there is property which driven the value = daz fin value.

    Then all UI slider value, which user move when import daz morphs. = raw value for the morph.

  6. Alessandro Padovani reporter

    Thank you Engetudouiti for the inside look on the inner workings of daz studio. I didn’t understand a word you’re much more advanced than me on these things and I can’t follow you.

    Anyway what I’m asking for has nothing to do with it. It is just a different way to set global limits for the sliders. That is, other than having custom min max intended as absolute values as it is now, we may also have custom min max intended as multipliers of the daz limits. To allow for a easy slider controlled animation “emphasis” or “plussing”.

    This could be implemented by adding another option for final and raw. For example if the daz limits for a slider are -1.0 to 2.0, then having custom min = 2 and custom max = 2 the new option would result in the blender slider having min = -1.0*2 = -2.0 and max = 2.0*2 = 4.0.

    options: daz, custom absolute, custom multiplier, none.

  7. Thomas Larsson repo owner

    New Multiply option for the final and raw limits implemented. I was skeptical about this at first, but it is actually quite useful. Driving the face units to twice their daz limits is quite fun.

  8. Alessandro Padovani reporter

    Commit 205130f works fine.

    As for the multiply option, it is the only one that makes sense in my opinion. As having absolute values doesn’t take into account the morph design. For example “brow compression“ goes from 0 to 100, while “brow up down“ goes from -100 to 100 in daz. If we have absolute values then we can’t follow this.

    Also please update the user docs about final and raw. Honestly I didn’t understand a thing of what Engetudouiti kindly tried to explain. But it seems to me that “raw“ is the slider value, while “final“ is some inner daz value used for computations. So I have to set the limits for raw to get them in the sliders. That is, I see the limits for final don’t affect the sliders. And I wonder if it makes any sense to set limits for final.

    edit. Then, if what I guess is right, may be this “final” thing should be in the debug section ? Also I understand that “final” and “raw” may be the internal technical daz names, but from a user perspective they make little sense. So, always if what I guess is right, in the global panel that’s intended for the user we may use “daz internal limits“ and “daz slider limits“ as names instead of “final“ and “raw” that nobody understands.

    Please Thomas let us know how this final vs raw thing is intended to be used if I’m right so I’ll mark as resolved.

  9. Thomas Larsson repo owner

    The options have been renamed in the last commit. Instead of raw/final properties, they are now called slider/internal. Also, the multiply option has been merged with the daz option, since the latter is just a special case with multiplier = 1.

    Note that the custom option is necessary if you want to set some value slightly negative if the daz minimum = 0. This can be interesting for some special effect, but also to undo the effect of some other morph. E.g., if you set EyesBlink = 1, you can open the left eye by setting EyeBlinkLeft to a negative value.

    You could set the limits to None, of course, but then a slider can easily go haywire.

  10. Alessandro Padovani reporter

    Commit 942b328 works fine thank you Thomas for the explanations.

    When you get some time it would be useful to update the user docs to explain why the internal limits are exposed to the user and what "show final values" is for. I mean how these options are supposed to be used.

    Then personally I'll go with the slider limits that I understand what they are for.

  11. Log in to comment