Driver Workflow Design
Open, NormalPublic

Tokens
"Love" token, awarded by antoniov."Like" token, awarded by codemanx."Love" token, awarded by iangchang."Love" token, awarded by looch."Love" token, awarded by ofuscado."Love" token, awarded by 0o00o0oo.
Authored By

Description

For Blender 2.8, we want to improve the workflow for adding drivers. Here's how:

  1. When the user right-clicks on a property and adds a driver, we display a non-modal, persistent Add Driver floating popup.
  2. While open, all of Blender remains responsive, and the user can select any object in the scene.
  3. From the popup, users can select a property to use as as a driver. No other steps are needed.

Optionally, users can then set a multiply and offset value, and add additional driver inputs. They can also click the Open Driver Editor button to open a Drivers window,

Users can also use the ID type picker to select from a list of Object and property ID's. They can also, using the eyedropper, directly select an object in the 3D View, or in the Outliner. When users select an object, they are presented with a basic list of commonly used properties, like so:

If the user has closed this window and wants to get it back, they can right-click on the property being driven and
select Edit Driver, like so:

Details

Type
Design
Joshua Leung (aligorith) triaged this task as Normal priority.
William Reynish (billreynish) changed Type from To Do to Design.

Sounds like an definite improvement to the current workflow which it has to be said is a little cumbersome.
I question I have is, will it be possible to also use the eye-dropper to select objects directly in the outliner ?

This is a much needed improvement. The currect workflow is way to clicky and uses a lot of space due to the graph editor interface.

Yes, it will be possible to select objects in the outliner too.

YES, much needed. I actively avoid drivers because they're so cumbersome to setup. I'm really curious about what "Open Driver Editor" will open.

Few questions:

  1. Will the Add/Edit Driver will also include the ability to modify expression in the popup window? Or maybe that's the plan with the "Open Driver Editor"?

As an example, After Effects provides such a quick and easy access to expressions (basically their drivers system), I use the feature quite frequently, which is opposite my behavior in Blender. Example here: https://vimeo.com/94981235#t=1m32s.

  1. After Effect's ability to quickly pick-whip desired targets into expression being written is really useful. In Blender, maybe the eyedropper could do the trick? And maybe auto generate variable names by default.
  2. Could expanding expression capabilities be a target in 2.8? Such as being able to define variables, using self's base value, logical operators, etc.
KiJeon (0o00o0oo) rescinded a token.
KiJeon (0o00o0oo) awarded a token.

Re. expressions, we discussed this during the design session. We may revisit it.

With this design, we wanted to strike a balance, where this interface remains lightweight and quick to use, while the full Drivers Editor remains as an area for full control.

We initially considered expressions more of a 'deep' feature, but perhaps we can find a way to include it here, as long as it doesn't take up too much space or is too cumbersome to use.

data

Re. expressions, we discussed this during the design session. We may revisit it.

With this design, we wanted to strike a balance, where this interface remains lightweight and quick to use, while the full Drivers Editor remains as an area for full control.

We initially considered expressions more of a 'deep' feature, but perhaps we can find a way to include it here, as long as it doesn't take up too much space or is too cumbersome to use.

cant you just write expressions in a property by using the "#" and just writing it there?

Yes, we discussed that actually. It's just that currently, the properties don't work like that. When you hit return, the result is applied, and you can't 'edit' the expression, as you'd want to do. But maybe we can make it work that way.

Would be possible to create a "bigger" box for expressions? It's a little difficult to handle a big expression by a one line entry box/form.

@Dimitri Bastos (DimitriBastos) In most cases, you really shouldn't need a very large space at all (though it's true that the current space may be a bit small). Really, if you aren't going in putting massive `bpy.data.blah["blah_name"].propname" paths everywhere (which you really, really, really shouldn't be doing), you shouldn't be running into any problems in general for most expressions :)

Not sure for the scope of this task, but I agree, Blender should allow for a more robust expression system.

After Effects is a good model for this. Being able to easily write multi-line expressions defining variables and logical operators really helps settings up dynamic scenes. I use expressions every chance I get.
In Blender, it's the opposite. It's really a hassle to setup drivers/expressions, I avoid doing that if at all possible.

Would it be possible to have a preview of the curve of the function if we create a driver using Python ?

would be nice to in that same panel be able to tell it to make it the standard 0.0 to 1.1, curve or the inverted :)
also this is very related but not exclusive, in 2.77 the pinning of the properties doesnt seem to work correctly, which is what really messes up the current driver creation workflow, if that gets fixed, then this will be even more powerful!