Finger controls of bodymorphs of G8F broken?

Issue #2082 resolved
Yigazi created an issue

So, I’m not sure if this has already been reported, but the fist-grasp-etc. morphs of the Body Morphs category in G8F figures look like this:

Currently have 4.1 stable version.

It’s like that both on a fresh character out of Daz and an older one.

Seems like the finger morphs are like that, but others work just fine, even FACs and units.

Comments (8)

  1. Alessandro Padovani

    4.1.0.2148

    Works fine here, unless there’s specific steps. For mhx you have to disable “finger ik” and import “mhx compatible“ body morphs, either use IK or body morphs you can’t use both.

    my steps:

    1. easy import G8 with body morphs

    alt steps:

    1. easy import G8 with “mhx compatible“ body morphs
    2. convert to mhx without IK options

  2. Thomas Larsson repo owner

    This is actually the only thing that has changed in the dev version after version 4.1.0, cf issue #2070. The driver for the fist morphs use spline TCB drivers in DS, which are now translated into expressions with smoothstep in Blender. But something clearly goes wrong when we change the left hand fist slider.

    The driver for the thumb and fingers fist morphs are

    a+(smoothstep(0,0.3,2*(b)) if b<0.5 else smoothstep(0.3,1,2*(b-0.5)))
    a+(smoothstep(0,0.8,2*(b)) if b<0.5 else smoothstep(0.8,1,2*(b-0.5)))
    

    where a = 0 in this case and b is the value of the hand fist morph.

  3. Thomas Larsson repo owner

    OK, I had misunderstood how the smoothstep function works. After reading the docs the driving expressions for the thumb and fingers fists are now

    a+(0.3*smoothstep(0,0.5,b) if b<0.5 else 0.3+0.7*smoothstep(0.5,1,b))
    a+(0.8*smoothstep(0,0.5,b) if b<0.5 else 0.8+0.2*smoothstep(0.5,1,b))
    

    which gives a nice continuous fist.

  4. Thomas Larsson repo owner

    We can actually optimize the drivers to

    a+(0.3*smoothstep(0,0.5,b)+0.7*smoothstep(0.5,1,b))
    a+(0.8*smoothstep(0,0.5,b)+0.2*smoothstep(0.5,1,b))
    

  5. Alessandro Padovani

    4.1.0.2150

    My bad, I didn’t check for intermediate values I just scrubbed to zero and one and didn’t notice the in-betweens. The new commit works fine here thank you for the fix.

  6. Log in to comment