Driver Workflow Design #54653

Open
opened 2018-04-16 13:03:48 +02:00 by Joshua Leung · 25 comments
Member

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

  • When the user right-clicks on a property and adds a driver, we display a non-modal, persistent Add Driver floating popup.
  • While open, all of Blender remains responsive, and the user can select any object in the scene.

From the popup, users can select a property to use as as a driver. No other steps are needed.

Screen Shot 2018-05-16 at 19.24.15.png

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:

Screen Shot 2018-05-16 at 19.34.02.png

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:

Screen Shot 2018-05-16 at 19.08.59.png

For Blender 2.8, we want to improve the workflow for adding drivers. Here's how: - When the user right-clicks on a property and adds a driver, we display a non-modal, persistent Add Driver floating popup. - While open, all of Blender remains responsive, and the user can select any object in the scene. # From the popup, users can select a property to use as as a driver. No other steps are needed. ![Screen Shot 2018-05-16 at 19.24.15.png](https://archive.blender.org/developer/F3376242/Screen_Shot_2018-05-16_at_19.24.15.png) 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: ![Screen Shot 2018-05-16 at 19.34.02.png](https://archive.blender.org/developer/F3376299/Screen_Shot_2018-05-16_at_19.34.02.png) 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: ![Screen Shot 2018-05-16 at 19.08.59.png](https://archive.blender.org/developer/F3376245/Screen_Shot_2018-05-16_at_19.08.59.png)
Joshua Leung self-assigned this 2018-04-16 13:03:48 +02:00
Author
Member

Added subscriber: @JoshuaLeung

Added subscriber: @JoshuaLeung
Author
Member

Added subscribers: @WilliamReynish, @pablovazquez

Added subscribers: @WilliamReynish, @pablovazquez

Added subscriber: @moisessalvador

Added subscriber: @moisessalvador
Joshua Leung was unassigned by William Reynish 2018-05-16 17:47:48 +02:00
William Reynish self-assigned this 2018-05-16 17:47:48 +02:00

Added subscriber: @LucianoMunoz

Added subscriber: @LucianoMunoz

Added subscriber: @yorch

Added subscriber: @yorch

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 ?

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 ?

Added subscriber: @DimitriBastos

Added subscriber: @DimitriBastos

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.

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, it will be possible to select objects in the outliner too.

Added subscriber: @0o00o0oo

Added subscriber: @0o00o0oo

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.

  2. 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.

  3. 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.

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. 2) 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. 3) 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.

Removed subscriber: @moisessalvador

Removed subscriber: @moisessalvador

Added subscriber: @zebus3dream

Added subscriber: @zebus3dream

Added subscriber: @juang3d

Added subscriber: @juang3d

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.

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

In #54653#503598, @WilliamReynish wrote:
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?

| | | data | | | -- | -- | > In #54653#503598, @WilliamReynish wrote: > 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.

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.

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.
Author
Member

@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 :)

@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.

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.

Added subscriber: @thornydre

Added subscriber: @thornydre

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

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

Removed subscriber: @zebus3dream

Removed subscriber: @zebus3dream

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!

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!

Added subscriber: @DuarteRamos

Added subscriber: @DuarteRamos
Philipp Oeser removed the
Interest
Animation & Rigging
label 2023-02-09 14:36:43 +01:00
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
11 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#54653
No description provided.