Maniphest T82226

NLA: Animated Influence/Time Property Sliders Unresponsive
Confirmed, NormalDESIGN

Assigned To
None
Authored By
Wayde Moss (GuiltyGhost)
Oct 29 2020, 6:44 PM
Tags
  • Animation & Rigging
Subscribers
Brad Clark (RiggingDojo)
Wayde Moss (GuiltyGhost)

Description

Task: T76549: NLA Strip influence slider doesn't respond to autokey correctly.

Source of Problem: (anim_sys.c) nlastrip_evaluate_controls() -> animsys_evaluate_fcurves(): I believe the issue is due to NLA evaluation, where the animated strip properties are evaluated and flushed at the same time the action strip channels are evaluated. Since autokeying doesn't insert a keyframe as the value changes, that's probably why the slider is unresponsive.

Solution: Perhaps we should separate (despgraph-wise) NLA strip animated property evaluation from when we evaluate the NLA system for general animation? Animated strip properties would only be evaluated and flushed on frame change or when the whole frame needs refreshed. Then normal non-NLA animation evaluation will just read the strip properties as is. This would allow the slider be responsive. It also allows the user to change these properties and view their changes without having to keyframe, just like any other Blender animated property.

Potential Problems with Solution: What do we do when strip influence is animated and the user changes it (without keying) then inserts keys on character bones. When we remap the keyframes, should we re-evaluate and use the strip's animated influence? Or should the new keys be remapped using the unkeyed strip time?

Event Timeline

Wayde Moss (GuiltyGhost) created this task.Oct 29 2020, 6:44 PM
Wayde Moss (GuiltyGhost) updated the task description.
Wayde Moss (GuiltyGhost) updated the task description.
Wayde Moss (GuiltyGhost) updated the task description.Oct 29 2020, 6:55 PM
Sybren A. Stüvel (sybren) moved this task from Backlog to Design on the Animation & Rigging board.Oct 30 2020, 11:18 AM
Wayde Moss (GuiltyGhost) changed the task status from Needs Triage to Confirmed.Oct 30 2020, 9:23 PM
Brad Clark (RiggingDojo) added a subscriber: Brad Clark (RiggingDojo).Apr 11 2022, 6:57 AM

" What do we do when strip influence is animated and the user changes it (without keying) then inserts keys on character bones. When we remap the keyframes, should we re-evaluate and use the strip's animated influence? Or should the new keys be remapped using the unkeyed strip time?"

Right now if you have a new action and adjust the influence value it just blends... the influence is just the "action layer" weight, blend.. IF once the action is in a clip form, the influence/"weight" mixing values of that clip no longer evaluate the same as when the action isn't yet in a clip is that accurate, are they handled differently?

Second, if they are different, is it an issue with the NLA evaluation or is the current "animated influence" a workaround for that instead of a design/best user interaction choice?

This is the first time using layered systems I have experienced this limitation/behavior.

To answer your question about the keys..short answer, remap with current value..NOT animated.

Long answer if a user on an animated influence, were to adjust the slider to a different value but NOT change frames causing that value to update back to it's keyed value, and still has a new unkeyed value, then the key frames created should be showing the true value of the slider at that moment in time, not what was animated.

influence animated value = 10, current value is 5, no frame change/time change has happened, I create a key frame, visual the result of those keys should be SHOWN with the Current value, not the animated value... I might see that new result and decide after seeing the result that I want to key frame the influence there but only when I have decided I do want a key there.

Wayde Moss (GuiltyGhost) updated the task description.Apr 11 2022, 7:08 AM
Wayde Moss (GuiltyGhost) added a comment.Apr 11 2022, 6:25 PM

I agree to insert keys with the current value, not the animated one.

Right now if you have a new action and adjust the influence value it just blends... the influence is just the "action layer" weight, blend.. IF once the action is in a clip form, the influence/"weight" mixing values of that clip no >longer evaluate the same as when the action isn't yet in a clip is that accurate, are they handled differently?

NLA evaluation always handles influence the same way. The difference is where the effective influence gets it value from. The nonstrip Action always gets its influence from the "Edited Action" nla panel. For strips with "Animated Influence" checkbox ON, they always get theirs from fcurves. If the strip influence has the checkbox OFF, then its forced to a value of one (even if the UI value differs) if BlendIn/Out is zero (it usually is with the workflow where we set Zero Keys to control per-channel blending). Things appear (are?) broken because the UI value isn't always the effective influence, or atleast doesn't always affect the effective influence.