2.8: Optimizing Workflows
The main goal of the Blender 2.8 project is to improve workflow support, this invokes optimizing workflows. Optimized workflows can greatly increase efficiency, which again results in an improved user experience.
A common way to optimize workflows is using task oriented environments. Such tasks can be modelling, retopology, animation, VFX, game creation, ... In a task oriented environment, access to relevant tools and options is facilitated, optionally while hiding irrelevant ones.
I can think of these 3 approaches:
- Context Sensitivity- Context sensitivity can be one solution to optimized workflows, however software history tells us that context sensitivity almost never works in a user satisfying way.
- Modes - More reliable than context sensitivity are modes, which can be easily changed on user's desire. We simply put it into the user's hands to select the right state for the task he's trying to accomplish, he's smarter than Blender anyway ;) The issue with modes is that they are not entirely error free, in fact they can easily become dangerous if not designed/implemented thoughtfully. Mode errors appear when the user tries to invoke a function by an action (pressing shortcut, clicking button, ...), but a different function is invoked, or even nothing at all, because of the different behavior of the current mode. To solve that, the currently active mode has to be clearly communicated to the user and the individual modes have to be fundamentally different so that it's easy for the user to memorize the differences.
- Presets - By selecting a preset, options and interface are automatically set based on a pre-configured state. Current screen layouts are an example for this. They are simple and don't suffer from mode errors. They are pretty primitive though and changing to a different preset might override previously set options. A nice way to solve this has to be found, e.g. by storing the previous state when changing and allowing to toggle back, or by not changing values that have been modified by the users before (which is not always wanted either).
- Which is the most attractive solution for optimizing workflows in Blender?
- How could the mentioned issues be solved in practice?
- How would an actual integration into Blender look?
- How would the viewport work with this? (Could become a separate task, but should be considered in the decisions.)