I've been thinking a lot about the blender interface - especially after opening the sources. i went throught many stages, including the "dismiss all buttons" and "i want my aqua interface".
It is fact that the interface, once you have learned all or at least most shortcuts, is very productive. But it is also fact that in comparison with other, commercial packages blender actually doesn't really have lots of features (modelling commands, deformation operators and such) and thus doesn’t require lots of buttons or shortcuts. I think this is the reason why people feel “home” so fast.
Now we have the situation that blender is being further developed, modified and enhanced – and watching the forums it is clear to me that most people need additional features. Unfortunately, more feautures require more interface controls, and simply mapping a not-yet-occupied keybord shortcut to the new command won’t make it any longer. This is when we should consider to redesign and enhance the present graphical interface and make it more suitable for a larger amount of controls.
I’ve played (actually worked for a long time) with most well-known 3D packeges such as Lightwave, 3ds max, Maya and Softimage. They all have different GUI philosophies and implementations for things that do the same thing (e.g. viewport switching, assignment for deformation operators etc.). All of them have advantages and disadvantages, all of them have features or ways of doing things which are superoir to other packages, but at the same moment provide poor useability at other places. After many different GUI’s and approaches I feel that for me I know what a productive package should look and behave like. And this is the part where Blender comes in.
Recently I started stitching together a GUI from present parts, and the picture shows what came out so far. It’s by far not finished, many things will be changed, but I think it’s a good starting point. If anyone should say “hey I saw that in Maya, you’re just copying things” he’s maybe right. I saw lot’s of things in other programs and it’s not a mistake to have them implemented in a blender-conform way. And even copying existent stuff is a good point to start, putting different things together in an intelligent way often leads to completely new solutions. This is my expirience.
The very basic and most important feature is a “control center” for common attributes. The present implementation with Light, Material etc. buttons isn’t necessary if we have a selection sensitive attribute editor (as called in Maya), or property editor or whatever some want to call it. The point is that this way the user has fast access to most relevant data of the currently selected object, be it a camera, light or deformation operator. The attribute editor is divided into different parts like “transform” (common for ANY object selected) and “plane” or “mesh”, which are – in this case - only available for a parametric plane mesh. The attribute editor for a light would have a part which gives us control over color, lighttype etc.. I’m currently working on a list with all controls needed.
All sections are expandable and collapsable.
Underneath the attribute editor I placed a shader tree window – the place where shading networks can be stitched together. Here the user creates different shader nodes (like a file node which points to a picture file, or a Uvchooser node, which chooses/definies an UV projection set for image placement, or a material node, where all other nodes are brought together) and connects them to build the desired material. Maya’s hypershade is a great place to start, but can be further enhanced, of course.
To the left you can see the action editor. The only big change here is a bar where the names of so called “saved poses” are shown. This feature allows the user to pick keyframes, group them together and give them a name. This way important key-poses can be easily picked, copied, moved and reused.
Nothing new about the 3D view so far.
The window bars have changed a little. Everyone will know what “Wintype” is for, I hope even a beginner. Not sure if all the layers should stay there, even not sure if we need 20 of them visible. But this is not important at the moment.
That’s it for now.
Last edited by solmax on Fri Jul 18, 2003 11:19 pm; edited 1 time in total
I like the "properties" idea,
It does not take away from what blender 'is', rather gives faster access to things we use.
The properties inspector works well in Macromedia apps- Director, Flash and Dreamweaver.
A ui point I will raise is that it would be good to be able to tab between gui wigets. Just means no clicking around when typing in numbers.
Anyway Way to go man
I love the "saved poses" idea. Fantastic.
The rest also, brilliant.
With ideas like these Blender is really going to kick butt.
the more i look at your screenshot, the more i like it. You too have come up with an very elegant idea to lift blender to the level where it should be (meaning: blender is a darn good software as it is right now and there is no reason that major productions are avoiding it because of "whatever" reason they have). I really hope that the coders and hackers will get inspired by your vision and maybe get moving in that direction soon.
ps: I like your comment about the layers. I never use more than 5 or so. One thing I noticed was, the 3D window has a natural feel/dimension to it. That's how we do most work and if there would be extra buttons to switch between front/side/top/camera view, that would really rock. For right handed people, the number buttons mean to let go of the mouse which means focusing on your hands.
Some big projects require lots of layers- I have used them all.
.. require more layers, indeed. still i think that there are ways to reduce the usage of layers. i'm thinking of light exclusion for special lightrigs - right now using layers is the only way in blender to accomplish this. a rather old-fashioned and tricky way, i think. a more sophisticated layer editor is required.
I would rather like lists instead of layers... for instance.. lights could have exclusion or inclusion lists and you could have lists for hidden or visible objects. I'm not sure how maya does this.. I know Max uses lists. They work very well and are fairly simple to understand as a user. And for the time being we could probably still keep the layers method as well. The lists would maybe be an advanced way.
actually i was thinking of the same things. maya uses a linking editor to include/exclude lights form objects. it's etiher light-centric or object-centric. but basically it comes down to include/exclude lists, as seen in max. this seems to be the easiest way.
i dont's know how you see things, but i wouldn't call that an "urgent" feature request. anyway i'm currently working an a quite large and complete interface mock-up (inflash, thus interactive), so stay tuned.
solmax, I think that this proposal of yours is brilliant, this new GUI will save me lots of time when working on Blender.
One downsize, what about the big database of tutorials out there? Should we include a 'Original Buttons Window' Wintype?
I don't know what I'm saying...