change Blender's interactivity model?

Hey Blender heads,

This is something I’ve wondered about for a long time now. Is it possible to change Blender’s interactivity model?

I’ll explain:
I’ve been working in 3D for many, many years now. I started back in the early 90’s with LightWave. While working as a freelance 3D artist/animator I’ve had the chance to work in most other 3D program over the years since. Max, Maya, Softimage, Modo and C4D in particular. They are all surprisingly similar; you just have to learn what a particular feature is called in each program and they will work the same for the most part. Especially if you are just focused on a specific aspect of the 3D process like Modeling or animating.

Ever since the UI changed in 2.5 I’ve become more interested in Blender. I’ve had my eye on since long before but it seemed more like a toy with really strange user interaction and UI. As Blender’s features became more robust and mature, my interest increased too. But, every time I tried to use it, it’s crazy view/object/element manipulation has repelled me. I’d love to know if there is anything that can be done about it?

What bothers me is that the user interactivity model of every other 3D program that I have used works in a specific way. Even though the names of tools, key commands and user interface are different, they all have the same user interaction model: Activate the tool, click and drag a mouse button and watch the change, let go when you are done. This is the same whether it’s view navigation, dragging points, using tools like extrude or tweaking keyframes in the graph editor. Every single 3D program I’ve used works this way.

The issue is that obviously this isn’t how Blender works. Instead, you activate the tool and it instantly puts you in that tool’s mode then you move the mouse and watch the change and finally click the mouse the confirm. It may not seem like such a big deal to some but it’s a huge thing for me. And, I have a feeling that it has been a major stumbling block for a lot of potential professional users too. Because, if you use Maya or Max or Modo all day and then come home ti use Blender, the last thing you want to do is fight your built in muscle memory of tool interaction just to learn a new program. I have no issue learning what new keys I have to push to get the same functionality out of a new program. But if the user interaction is totally different then it’s going to be making it even harder.

I realize that for most of you (especially those who have been using Blender for a long time or have just started out using 3D programs), it seems fine and “Right” to you. What I’m proposing is not to change the current working model to a new one. Rather, allow users to choose and have it propagate down to all levels of the program. For instance, there is a Maya preset for viewport navigation in Blender. That’s great. I use it all the time. But guess what? it doesn’t work in all windows. The Maya keys for W,E,and R are also very useful but again, only in the 3D view. I noticed too that this way of working breaks the usual way of interaction in Blender so there must be a way to do this for all tools. Right?

Am I totally alone in this? I’d love to hear your input on the subject.

So far there hasn’t been a need to change interactivity models. In fact many blender users prefer blender’s model over other programs.

In blenders interactivity model fewer precise mouse clicks are required, there is rarely a need to move the mouse to different views while working, and you can change parameters of the command without leaving it. As such there is a significant speed increase when compared to most other programs and you can compare parameter differences much easier. Everyone I know that has come over from another program has fallen in love with blenders interactivity model within a month or so of using it.

All that said, I could see why this might be a useful addition to blender. While it would be a large undertaking I believe the code would be fairly simple. The interface in 2.5 is written in python which would allow for the change you are looking for. However, every command would need to be changed, you can’t do the entire thing at once. A proper implementation would create a switch for this in the user preferences, which may be difficult as blender dose not support multiple interface models at once yet.

Tyler

try my SuperMaya Keymaps…

http://www.mediafire.com/?j5ai9ylp3fm4wh2
updated link
In the zip, i have a picture that shows the shortcuts…
also, not shown in the picture(i need to update it), but is in the readme file
that i added support for
G(grab)
S(scale)
Shift+R(rotate)

it also has the regular Maya WER as well… it also has ome other goodies
like 1234 for face, vertex, edge select, and occlude geometry in edit mode.

it also has the setting for the specials menus…

Ctrl + W = Main Specials Menu
Ctrl + F = Face Specials
Ctrl + V = Vertex Specials
Ctrl + E= Edge Specials


you could use these as a base then update and change it as needed then export them as you like.

You are totally alone on this.

Ha ha. Seriously though, I have worked only a little with Max, but the people that I have worked with used Max extensively. But, during some intense modelling sprints, the workflow was actually faster with Blender. They continously had to move the mouse from the viewport to the tools to the viewport to the numerics. Blender is extremely keyboard shortcut intensive. There is a steeper learnign curve, but actually, it works fairly well

oh, its also nice to enable the addon, “dynamic spacebar menu” as well,
(which i think should be enabled on by default…)

Now I have the opposite problem. I have the chance to learn Maya and Max, but the whole tool selection, click, drag, release, thing seems slow and not as intuitive as Blenders simple hotkey, drag, release. It would be nice for others to have this option, but I think the Blender way is more productive.

Hi Tyler, Thanks for your input! Being able to change parameters during tool use was actually adopted in 2.5 from observations of other 3D programs like Modo. If you go back and look at the early UI redesign presentations before 2.5 came out, You’ll see Modo used as the example of good working practices. In fact, the window layout of the tool pallet with the parameters below was taken directly from Modo. Also, C4D, Maya, XSI, etc. all follow the paradigm of being able to change tool parameters while using the tool to some extent. In fact, in programs like Maya and XSI you can even go back after you have used the tool and change the parameters. And yes, given a few month of using Blender exclusively, one would probably become quite familiar with and enjoy it just fine. :wink:

However, this isn’t really the issue. What I’m talking about is being able to switch between different 3D program as smoothly as possible. I can deal with changing keymaps. That’s not really a big deal and usually only takes an hour or 30 minutes to get used to. What I find jarring is the “activate, move mouse, click to finnish” (or in the case of loop cut, “actiavte move mouse, click and drag and then click again.”) witch is really no more or less actions then “activate, click and drag, let go to finnish.” It’s really the same just different. No better or worse. However, it goes against my built in muscle memory that I have built up from using a host of other 3D programs. Heck, even 2D programs use this paradigm. in Photoshop, you activate the tool click and drag to use and let go to finish. So you see, it’s all about muscle memory. This is also why almost all 3D programs use the “Alt” key to manipulate the view (except *#%&! Houdini!). They understand that people are coming to their program from other programs and have tried to make the transition as smooth as possible.

PS. I’m glad that you at least see a use for such an enhancement. Thanks! :slight_smile:

This is true and I agree that more programs should have better “in tool” keyboard shortcuts. However, this isn’t really effected by the user interaction model. Any program could use this paradigm too. They just don’t. Also, Max uses a modifier stack just like Blender but for all of it’s modeling related tasks. This is why you need to go in and out of the panel all the time. Just like Blender, by the way. In Blender you still need to go into the panel to change parameters too. :wink: It’s actually a very liberating way to model because you can be as destructive or non-distructive as you need to be. Of course, Max has it’s issues but there are a lot of very powerful things that It does just fine. I worked in Max for many years at Bent Image Lab and we were able to do model, rig, animate and render characters on a regular basis. I would normally choose Max for small studio use because I feel it’s more well rounded and less technical then Maya. However, Maya is hands down better at animation. :slight_smile:

I would actually say this could become a really big issue for you if you want to get a job at a studio that doesn’t use Blender. Also, all 3D programs have hotkeys. Hit the hotkey, click-drag, let go. Not any more steps or slower then Blender. Just different.

Another thing I wanted to point out about Blender’s interaction model is that it makes natural drawling with tools more difficult. As soon as you activate a tool (like the armature) it automatically starts drawing. You have to use the 3D cursor and position it before you even use the tool if you want it to happen at a specific point in space.
This is also why Blender doesn’t have what I think of as a proper curve drawing tool too. You have to start out with a curve segment, move it to where you want and start extruding points. I like the paradigm of other programs because it feels more like you are “Using” an actual tool instead of executing a command which requites some input from the user. But really, it is just personal preference I guess. :wink:

Thanks for your input guys!

Cool, thanks holyenigma74! I’ll check this out.

@indy_logic I don’t think I fully understand what you are getting at but would toggling confirm on release solve some of your problems.

Oh Also if you dont already have it, get the
“Blender Cheat Sheet” from BlenderGuru.com

http://www.blenderguru.com/blender-2-5-cheat-sheet

All other Keymaps should be the same, i only changed the main Maya ones.

I think that he wants a modal workflow option for the tools, similar to what you find in most commerial software. Blender uses a non-modal approach to the tools, like:

select objects -> operator

eg: translate: select objects -> operator -> select destination and exit.

What indy_logic wants is:

operator -> select objects -> confirm selection -> do operation -> exit operator (if doesn’t exit already, some tools/software requires this)

eg: translate: operator -> select objects -> confirm with <some key> ->select destination ->exit or repeat operation.

Of course you see inmediately the disvantage of using modal tools, but also the difficulty for someone used to this to change to a non-modal approach (the same applies for Blender users that haven’t seen other software outside Blender BTW). For me was also the most difficult thing to get used to when i downloaded 2.28a quite some time ago… Memory muscle is not a easy thing to overcome.

Yes, probably would be a good option to add to Blender, but considering that Blender design paradigm is to be “non-modal”, and the operator design was designes specifically for this, probably is hard to recode tools to have modal behavior.

Can some developer enlighten us if this can be possible using, let say… some python-fu trick??.. Although i personally think is a step backwards (you’re asking for a way slow method of work), it can ease the transition for some people used to the “rest of the world” method of work (read: some method Xerox developed in the 197x’s and for some reason, survived until nowadays).

As far as workflow goes I find Blender tremendously efficient in respect to many other apps I tried.
What I miss is a specific feature here or there, but really what I wouldn’t touch at all is the Blender’s “interactivity model”.

Sorry, Indy_logic, but there’s a mountain of ToDo’s for the developers to deal with, let’s not distract them with something that has less to do with Blender than with how other apps work. I say that as someone who switched to Blender after a good number of years with Cinema 4D. So I kind of know what you’re talking about. But after a fairly gentle initial learning curve (it’s not as difficult as some make out), I find Blender’s mode of operation faster and more pleasant. I always hated modelling, but in Blender, despite some missing functionality, I catch myself enjoying it because the process can be so transparent and the interface is so “right”.

If I were you and really felt strongly about having an alternative mode available, I’d look into paying for a patch to be developed. After all, the issue is “other software at work/ Blender at home”. That means you’re not skint.

@stargeizer thanks for the explanation.

I used 3dsmax for many years and i’ve had no problem configuring Blender to work the way i want it to.

Your descriptions are far too vague, please provide some specific examples of how you want specific tools to behave. “Confirm on release” seems adequate for what you need, and if not, there are plenty of ways to edit the modal behavior through the modal keymap.

Hmm. I guess I’m having a hard time explaining it.
In Blender, to translate you hit ‘G’, move the mouse (without clicking) and then Click the mouse button to confirm. If I want to move again, I have to repeat the process.

In Modo, I hit ‘T’, Click and drag on the object that I want to move and let go to confirm. I can keep moving it around or drag on another object to move it around while in Translate mode until I hit the space bar to drop the tool. It doesn’t seem any faster or slower to me in either program. They are both 3 steps. It’s all about what I’m expecting to happen once I execute a command.

The interesting thing is that some of Blender’s tools do work this way. For instance, if I hit Ctrl-R I then move my mouse over the object and click and drag to slide the cut along the edges of the object. If I want to add more Loop cuts I need to hit CTRL-R again.

Perhaps there is some simple tweaks in the Preferences that I just don’t know about. And initially, this was the perpous of creating this thread: So people could offer me some help in making Blender and more comfortable place to be. Pesho, you seem to know something about this. Care to enlighten me?

i think Blender’s “model” is fine with my SuperMAYA keymaps
(also in the “input” section make sure you have it set to Maya on the left side under “preset”)
that changes it to “select with left”, and “turntable orbit”… <br>
Another nice thing to check is in the “interface” section of the options menu,
and thats “Rotate Around Selection.”

remember when you make changes to these settings do it from a fresh open of Blender,
then when you re done click “save as default”(doing so will keep the default cube scene, etc)

:slight_smile:

Well… i’m not Pesho :), but i think if you go to FILE -> USER PREFERENCES -> EDITING -> and turn on the “Release confirms” option, you will be more at home i think. Be aware that this affects only the actions done with the (by default) right button on your mouse. If you want to select/move with the left button of your mouse, just change the “Select with” setting in the “input” tab. This way, for example, if you are in object mode, you select an object, drag the mouse to move it and release to confirm (Works in edit mode also). You can use the manipulator also for the grab/rotate/scale actions and they respect your settings, but NOT the keyboard or the shelf translate/rotate/scale buttons (they still requires that you confirm your action with a click. Makes sense, since once you select the object, you press G (for example) and you’re already moving the object, so clicking to confirm makes sense here.).

The manual has more detailed help: http://wiki.blender.org/index.php/Doc:2.5/Manual/Preferences

Remember to save as default and you’re set to go, and don hesitate to ask when you are stuck with something, although i think moderators would like better to ask questions in the proper sections of the forum :).

Hope it helps.

@Indy_logic just turn on release on confirm, I gave it as a solution early on when I wasn’t a 100% sure of what you wanted to do but now am certain that is the setting you are after. I also turn it on by default as it makes tweaking when modelling a whole lot faster as I just have to click and hold on a vert drag and release.