the hotkey problem

The interface, modeling, 3d editing tools, import/export, feature requests, etc

Moderators: jesterKing, stiv

Little_Cube
Posts: 23
Joined: Tue Oct 22, 2002 5:27 pm

the hotkey problem

Postby Little_Cube » Fri May 23, 2003 1:19 pm

IMO, the main and most important interface problem (and possibly the biggest Blender problem in general) is that many functions are available only as hotkeys. I agree that working with hotkeys instead of menus is the prefered way and can speed up the working process immensely, but restricting the workflow only to hotkeys presents a big problem to all new users and even to intermediate ones (me included). I can think of two things (one simple and one pretty complex) that would solve this problem and at the same time keep the current concept and interface of Blender intact.

First, a well-designed hotkey reference document, which also keeps track of the newest changes and additions, is a must and should be included with every Blender distribution. This can save hours of frustration, web searching and asking the same questions on chat channels.

Second and more important, the menus need a big overhaul. The most important thing is to include all Blender functions in both the User Preferences window menus and the space-bar menu (which should be easy). This would wreck chaos in the current menu system, so to prevent this, the menus (or at least the space-bar menu) should be made context sensitive depending on the situation (an object is selected, the edit mode is active, etc.). I'm not sure how hard it is to include this in the current code, but I'm pretty sure it would make Blender a much more user-friendly application.

Goran

cmccad
Posts: 48
Joined: Mon Apr 07, 2003 11:58 pm

Postby cmccad » Fri May 23, 2003 9:14 pm

Part 1 is partially implemented by intrr :) :

http://loom.intrr.org/blenderkeys.txt

This can be formalized and, as you said, included in the distribution. When I get some time, I'll try to track down where the code for hotkeys is located (any one know this already? ) and document them. This way, doxygen can extract a list automagically ;) .

Casey

SirDude
Posts: 941
Joined: Sun Oct 13, 2002 7:37 pm
Location: University of Minnesota (USA)
Contact:

Postby SirDude » Fri May 23, 2003 10:58 pm

blender/source/blender/src/toets.c
and you may also want to look at toolbox.c in the samedir. In the not too distant future I'm guessing someone will modify that bit though.

The way I would do it is abstract the actions so
users could define their own keys.
(provide a default layout that is the offical keyset)
With that done you could create an extra window type
that shows actions and the current keys mapped to
them. (and of course a button to reset to the default)

a couple of us talked about it on #blendersauce a bit
no ones just gotten around to doing it.

Little_Cube
Posts: 23
Joined: Tue Oct 22, 2002 5:27 pm

Postby Little_Cube » Sat May 24, 2003 1:55 am

cmccad wrote:Part 1 is partially implemented by intrr :) :

http://loom.intrr.org/blenderkeys.txt

This can be formalized and, as you said, included in the distribution.


Great! Although it's alphabeticly sorted the list is very, very helpful. IMO, the best way would be to sort the hotkeys depending on the active window/mode. But, please don't wait, include it in the distribution even in this raw state (just be sure that all hotkeys are covered). It would be of incredible help to everybody, especially newbies.

Goran

ideasman
Posts: 1000
Joined: Tue Feb 25, 2003 2:37 pm

Postby ideasman » Sat May 24, 2003 4:13 am

I use keyshortcuts all the time, but it help if they reside in a menu somewhere.

Adding menu items can't be the hardest thing in the world can it?

Dani
Posts: 251
Joined: Fri Oct 18, 2002 8:35 pm

Postby Dani » Sat May 24, 2003 5:49 pm

Hi guys...

I'm doing some restructuring in the toolbox...
I'm running a poll on a french newsgroup to find out all the hotkey commands and add them to the toolbox. I'll post the poll here if I have some time, and I'll compare data by hand.
that's really not so difficult...
I'll let you know when I finish this in order to let you test...
and when everything will be clean then...
:)

Ciao
Dani

dcuny
Posts: 68
Joined: Mon Jan 27, 2003 11:22 pm

Postby dcuny » Sat May 24, 2003 8:16 pm

I think this is a symptom of a larger problem: there are a ton of features available in Blender, but it's virtually impossible to present them all to the user, other than through a thick manual.

Traditionally, the answer has been to place most stuff in the menu. The problem is that you get huge, nested menus with stuff hidden deep in them. Microsoft Office is typical of this - it's feature rich (many would argue bloated), and it's difficult to for users to find features, or even find out about features.

Microsoft's solution has been the universally hated "Clippy" sort if "intelligent agent". While there are a lot of things wrong with "Clippy", it does present a number of features that are useful:
  • It offers the user a place to search for a keyword by feature.
  • When a user enters a mode, it offers information about features the user might find useful.
  • It actively watches what the user is doing, and offers shortcuts.
Here's an example: I wanted to do some box modelling in Blender, but I needed a number of features:
  • Face Select
  • Extrude along Normal
I wasn't aware that Blender offered either of those features. It would be nice if I could do a keyword search and find out about these.

Another example: I wasn't aware of the mouse shortcuts that Blender offered for selection, rotation and scaling (ie: left click and gesture to get into rotate or scale mode). It also wouldn't be too difficult to set up a series of hints, so that when RKEY was selected, the program could offer the mouse gesture as a shortcut.

I would think that neither of these features would be too difficult to add to Blender. The difficulty would be that someone would have to come up with the searchable database and hotkey hints.

That, and designing an interface that isn't as irritating as "Clippy". :roll:
Last edited by dcuny on Sun May 25, 2003 5:43 am, edited 1 time in total.

Little_Cube
Posts: 23
Joined: Tue Oct 22, 2002 5:27 pm

Postby Little_Cube » Sun May 25, 2003 12:56 am

dcuny wrote:I think this is a symtom of a larger problem: there are a ton of features available in Blender, but it's virtually impossible to present them all to the user, other than through a thick manual.

Traditionally, the answer has been to place most stuff in the menu. The problem is that you get huge, nested menus with stuff hidden deep in them.


That's exactly why I said that the menus should be context sensitive. Look at Wings for example. A right-click when faces are selected gives a (nearly) totally diferent menu then when edges are selected. Blender needs a similar approach. The menus should present only the functions that are available in the active window or mode. This would make navigating easy and still all the functionality will be there.

Also, adding the missing features to the menus should be easy. The question is: how difficult is it to make the menus context sensitive?

Goran

matt_e
Posts: 898
Joined: Mon Oct 14, 2002 4:32 am
Location: Sydney, Australia
Contact:

Postby matt_e » Sun May 25, 2003 3:47 am

Dani wrote:I'm doing some restructuring in the toolbox...

Hi Dani, Hos and I were talking about this issue in #blendersauce last night. The menu system in Blender is a bit of a tricky issue for a various reasons and rather than just adding on to the current (hackish) system we were trying to come up with some new implementation ideas. Right now, the current menu system is a bit weird in Blender - it's not really well suited to the 'multiple window spaces' design, and all the hotkeys, menus, toolbox code is very scattered throughout the source code.

One idea was to create an internal 'registry' structure, where all of blender's features/functions/whatever can register themselves, probably within some sort of heirarchy, with their hotkeys, menu labels, tests to check if they can be done in a certain window space etc. etc. By creating something like that, menus etc. could be built automatically by traversing through this list (rather than hard coded like they are now), and you could also then present this information in different ways (toolbox, menu, pie menu, hotkeys, help screens) and be able to check for things like context sensitivity. A design option for the future too could be to allow python scripts to register themselves in this list, so they could be accessed by hotkeys, menus, etc. In the current system, it seems to be quite difficult to integrate scripts with the rest of Blender.

Does anyone have any ideas on this? I think it would be a good idea to try and clean up the internals into a better system first, before hacking on to the existing stuff. Of course designing something new will take much more time though...

dcuny
Posts: 68
Joined: Mon Jan 27, 2003 11:22 pm

Postby dcuny » Sun May 25, 2003 6:24 am

The problem with context-sensitive menus is that stuff "magically" appears and disappears from the menu, depending on context. Think of how even more confusing Blender might be to a newbie - features are already context sensitive - when even the menus can change at whim. One person's blessing can be another person's curse.

I'm making a pitch for a built-in help system for a number of reasons:
  • Blender is now open source, and the documentation is following in that direction. If the help could be integrated into the documentation, it avoid duplication of work.
  • On-line documentation and tutorials are great, but they aren't always the best option. Internet access isn't always available, websites come and go, and Blender changes. You could be working on NURBS, not knowing that subdivision surfaces are available, or even that the C-Key isn't needed anymore.
  • As much as I disparage Microsoft's help agents, the really are useful. It's possible to have the same functionality in Blender without the cloying irritation of Clippy.
There are several things that I've seen in MS help that may or may not make sense for Blender:
  • Searchable help. The main problem with this is that you have to play "guess the magic word" - if you search for "extend" instead of "extrude", for example, you may end up with nothing. On the other hand, type in the right combination ("extrude" "normals") and Bingo, bliss as you discover how to do something without logging onto #blenderchat and find out that everyone's idle and gone to sleep ages ago...
  • Context-sensitive hints. Back to my example of the application being able to mention the mouse-shortcuts when you select RKEY. This is perhaps the most derided of the MS "help" features ("You appear to be writing a suicide note..." suggests Clippy). For the most part, people seem to ignore these hints, so I don't know how useful they might be.
  • Walkthroughs These are sort of "mini-tutorials", where the computer offers a step-by-step explanation of how to do something. This would be helpful in places like parenting bones to a mesh. (Do you select the bones or the mesh first? The menu is no help here.)
I think integrated help would make Blender far more useful for idiots like me, without having to dumb-down the user interface.

More importantly, it provides a feature that's not available even if the menus were reorganized, and all the hotkeys documented.

matt_e
Posts: 898
Joined: Mon Oct 14, 2002 4:32 am
Location: Sydney, Australia
Contact:

Postby matt_e » Sun May 25, 2003 6:46 am

dcuny wrote:The problem with context-sensitive menus is that stuff "magically" appears and disappears from the menu, depending on context. Think of how even more confusing Blender might be to a newbie - features are already context sensitive - when even the menus can change at whim. One person's blessing can be another person's curse.


I totally agree about that point - the changing menus in MS Office are the source of endless frustration and immense confusion for users. Perhaps an idea could be to have a global menu (File/Edit/etc.) that contains all the available functions (greyed out when not applicable) and turn the toolbox into something more context-sensitive, for quick, efficient access. I'm not entirely sure what the point of duplicating everything in both the toolbox and the menu is.. Maya does it and it makes their 'toolbox' quite cluttered:

Image

For something that's supposed to be used for fast, frequent access, I hardly see the point in including some things like the File and Help menus in there when it's not that much more difficult to use the main menu bar...

Little_Cube
Posts: 23
Joined: Tue Oct 22, 2002 5:27 pm

Postby Little_Cube » Sun May 25, 2003 11:24 am

broken wrote:
dcuny wrote:The problem with context-sensitive menus is that stuff "magically" appears and disappears from the menu, depending on context. Think of how even more confusing Blender might be to a newbie - features are already context sensitive - when even the menus can change at whim. One person's blessing can be another person's curse.


I totally agree about that point - the changing menus in MS Office are the source of endless frustration and immense confusion for users.


My mistake. Although when talking about presenting only the available functions I was refering to the space-bar menu (i.e. the toolbox) I was not clear enough and my posts read as if I was talking about all menus. Sorry for the confusion.

broken wrote:Perhaps an idea could be to have a global menu (File/Edit/etc.) that contains all the available functions (greyed out when not applicable) and turn the toolbox into something more context-sensitive, for quick, efficient access. I'm not entirely sure what the point of duplicating everything in both the toolbox and the menu is..


Definitely a great idea. The menu system you suggest would make Blender much more intuitive and much more usable.

Goran

leinad13
Posts: 216
Joined: Wed Oct 16, 2002 5:35 pm

Postby leinad13 » Sun May 25, 2003 1:03 pm

SirDude wrote:The way I would do it is abstract the actions so
users could define their own keys.
(provide a default layout that is the offical keyset)


Firstly i think that the ability to change the hot keys would be great, in every 3D modelling program the Hot-Keys are different, (Just to make it ackward) In maya and lightwave for example they dont even relate to the feature. At least in Blender (R = Rotate, G = Grab.....) these are good hotkeys, but say for instance an experienced user of another program wants to give Blender a try, it might be useful if they could have a Hot-Key set that they are used to. This is probably something for the artists to decide not the coders tho.

Another point about documentation is that it can often increase the size of a program dramatically, if there were intergrated help, i think it should be a sort of upgrade. Not everyone wants integrated help but it could be provided for newbies. Also the point about websites coming and going is brilliant, how often have we all found a great site for whatever reason, then in a weeks time we go back and its gone.

Also i heard something about a complete re-write for version 3, if this is true then we need a code design, the registry like menu sounds great because then with plugins features could be added. Also i really wish that python scripts could be binded to buttons. There are some great python scripts knockin about on the net, maybe we could bundle a few of them in the realease, such as the tree making one, and maybe makehuman.
-------------
Over to you boffins

L!13

Dani
Posts: 251
Joined: Fri Oct 18, 2002 8:35 pm

Postby Dani » Sun May 25, 2003 6:31 pm

hehe,

Hi broken!
Yeah, I was wondering how to make the toolbox dynamic (content/container-wise)...
It's quite rigid right now... (and my lack of coding knowledge doesn't help me... though i'm getting better at it... the opposite would have been frustrating :)
You're idea about a registry seems to be very good. And it even opens the way to giving customizable menus and hotkeys... but that's at the end of the way i think :)
This would be saved to the B.blend file I guess.

But I'll let you do this cause you're surely better at this than I am!
And in might indeed need some discussion

Erm... has anybody used Max's "quad" system? alt-rightclick, ctrl-rightclick.... Arg! I never got used to that even though I thought it was nice to try to put commands two clicks away from your work....

I'm definitly addicted to blender's hotkeys ;)

Ciao
Dani


Return to “Interface & Tools”

Who is online

Users browsing this forum: No registered users and 3 guests