"Clear Morphs" Doesn't Work with Keyframes

Issue #969 resolved
Midnight Arrow created an issue

Tested with v1.6.1.0966.

If you keyframe a morph like a FACS Unit, then go down the timeline and press Clear Morphs to start over then nothing happens. Looks like the “zeroed” morphs default to whatever is the last keyframe. (Set Morphs doesn’t seem to do anything.) Even if this is intended behavior it’d be useful to get a way to brute-force set all keyframed properties to 0 no matter what comes before it in the timeline.

Comments (26)

  1. Thomas Larsson repo owner

    You must enable auto keying for the change to bite. Otherwise the slider returns to its keyed value when the scene is updated. It is really the same thing as if you change the slider directly, except that the scene update takes place when the tool finishes.

  2. Midnight Arrow reporter

    I rarely use autokeying though. I’d prefer if there was a button that looped through all the sliders and forced them to reset to zero, but if you’d rather not let me know so I can close this.

  3. Thomas Larsson repo owner

    The X button does set all sliders to zero, but as soon as the scene is updated they return to the keyed values. That just how Blender works.

  4. Midnight Arrow reporter

    How about, as an alternate solution, the “Set Morphs” button has an option flag to create keyframes at that value? So I could type in “0.0” and then it would create 0.0 keyframes for all sliders?

  5. Alessandro Padovani

    There’s already a button to create keyframes for all the selected sliders, so you just have to clear morphs and set keys. Unless I misunderstand what you mean.

  6. Midnight Arrow reporter

    That only keyframes them at whatever value they’re currently at, not a value the users inputs.

  7. Thomas Larsson repo owner

    OK, I added an option to the Set Morphs button. I would not use that myself, but adding it was very little work, and since that tool already opens a dialog it doesn’t interfere with the workflow.

  8. Alessandro Padovani

    Yes now I understand. The issue is that both “set morphs“ and “clear morphs“ only work if autokey is on. I agree they should also work without autokey. I mean with autokey off we can change the values by hand then set keyframes, so I see no reason why the tools shouldn’t set the values the same as we do by hand.

    steps:

    1. Import g8f with some expressions.
    2. Set autokey off.
    3. At frame 1 move some sliders and set keyframes.
    4. At frame 10 press “clear morphs“, the sliders won’t change to zero so we can't set keyframes, same for “set morphs”. We have to change the sliders by hand to set the values.

    edit. note. may be solution. If for some reason this is difficult to implement it is not a big deal to set autokey on though. I mean if we know that the tools only work with autokey on. Or, the tools could turn on autokey, then operate, then turn off autokey again if it was off. This could be a easy implementation.

  9. Alessandro Padovani

    Commit e390e5a works fine here.

    As a minor note it is not clear to the user that “clear morphs“ only works with autokey. It isn’t mentioned in the docs either. The solution I pointed above would “automatically” work both with autokey on and off without the need for the “set key“ option in “set morphs“, that seems more elegant. But again this is minor.

  10. Thomas Larsson repo owner

    Actually we cannot change the values by dragging sliders in any meaningful sense. Yes, the appearance in the viewport changes, but as soon as we trigger a scene update, e.g. by rendering, the sliders reset to the keyed values. And that is really confusing.

  11. Alessandro Padovani

    Yes of course. That’s why you need to “autokey on + set values + autokey off” for the “set morphs“ and “clear morphs“ tools. Or always keep autokey on. I mean if the tools can work both with autokey on and off without extra options it will be useful and less confusing. But again this is minor, the actual commit is fine for me.

  12. Thomas Larsson repo owner

    That’s exactly what the Set Morphs tool does. I don’t want to add that to the clear and pin buttons, since launching an extra dialog would double the number of mouse-clicks.

  13. Alessandro Padovani

    No need of an extra dialog, you just have to autokey if autokey is off. The new keyframe option for “set values“ could be removed too this way. It would be automatic instead of asking to the user. This is not to push but just to explain, again the actual commit works fine anyway.

  14. Midnight Arrow reporter

    I tested out Set Morphs with keyframing enabled and it works well as far as I can tell. I wouldn’t mind @Alessandro’s suggestion but I’m content with this, so I’ll leave this issue open for debate for now.

  15. Alessandro Padovani

    I’m fine too. My suggestion is only a little “refinement” for better consistency and easy of use, but the main feature is there ..

  16. Thomas Larsson repo owner

    Are you suggesting that the clear and pin buttons should always insert keys, even if autokey is off? I think that would be a very bad idea. I often make a single pose with no keys at all, and I dont want some tool suddenly introducing keys when I didn’t ask for it. Which is easy to do by enabling autokeying.

  17. Alessandro Padovani

    Yes of course keys are only necessary for animation. That is, if there are keys in the timeline, as this discussion is for. Otherwise there's no need.

    if there are morph keyframes in the timeline
        "set morphs" and "clear morphs" are always keyframed, even with autokey = off
    

  18. Thomas Larsson repo owner

    Do you suggest that keys should be set for all morphs, or only those which already have a key? Either way I don’t like it at all. As it is now, everything behaves consistently: posing bones, dragging sliders, Set Morphs, Clear Morphs, Pin Morph, and Load Pose. Insert keys if autokeying is enabled, otherwise not. From this pov the new option for the Set Morphs button is an anomaly, but it is harmless since the dialog is lauched anyway.

  19. Midnight Arrow reporter

    v1.6.2.0981

    The tooltip says set morphs will not overwrite integer properties, but when I run it on FACS Units it overwrites Eye Look Automatic.

  20. Midnight Arrow reporter

    On a related note is there any way to make the FACS eyelid look morphs work with Rigify’s gaze bone? I can adjust them manually but it’s kind of tedious.

  21. Thomas Larsson repo owner

    Exactly what did you do to get Eye Look Automatic overwritten? It doesn’t happen here.

    However, the X button doesn’t seem to work quite right. It didn’t add new keys with autokeying, unless old keys were already there. Will look into that later, but probably not today.

  22. Alessandro Padovani

    Keys should be set for selected morphs, as usual.

    But again if you don’t like it it’s fine, since “set morphs“ works. We just have to be aware that “clear morphs” works only with autokey. Your concept is that to work in animation we must have autokey enabled, that’s not necessary the case.

  23. Midnight Arrow reporter

    @Thomas Not sure. It’s an old character I created a while ago. Did old versions of the exporter used to create floats for EYe Look Automatic?

  24. Midnight Arrow reporter

    I figured it out: I made this character back when there was an issue with sliders losing their min/max values. When I globally reset sliders from -1.0 to 1.0 from the Advanced menu it must’ve overwrote the integer property into a float.

    I’d still like to know if the FACS eyelid morphs could work with Rigify.

  25. Log in to comment