Open MikeFrom opened 2 years ago
Panning the 2D editor with the right-mouse button was removed in https://github.com/godotengine/godot/pull/53471. See the PR description for rationale:
- Removes RMB panning, as it got in a way of properly using RMB in the editor (see #51695 for example). We had 3 ways to pan view anyways
As for adding yet another navigation mode, I'm not sure if it will be used often enough. This is especially the case since using the right mouse button to toggle various navigation modes will prevent you from entering freelook mode with your mouse. Toggling freelook can't be moved to the left mouse button, as it would prevent 3D selection (including box selection) from working.
You would still be able to toggle freelook mode by pressing Shift + F, but it's much less convenient when you have to do it frequently.
@Calinou, in blender 2.8 I've swapped all RMB (Right Mouse Button) with MMB (Middle Mouse Button) commands, which works fine. Sure, all current RMB functions (context menu, freelock,...) have to be also swapped with MMB.
In my opinion all 3D/2D programs should let the user choose which buttons and key-combinations(+Shift,+Ctrl) should be used for zoom/pan/orbit. Zoom/pan/orbit are so essential, that you get soon annoyed, when programs work differently.
Is it difficult to make this a user setting? One of my favourite pieces of software, a DAW called Reaper, allows you to map any key or mouse command to any action. I would LOVE to see something like this in godot, but I'm not clear about what the difficulty of implementing this would be... it seems godot already uses InputMaps... could this piggyback on that? or is there some reason that would cause problems?
Is it difficult to make this a user setting? One of my favourite pieces of software, a DAW called Reaper, allows you to map any key or mouse command to any action. I would LOVE to see something like this in godot, but I'm not clear about what the difficulty of implementing this would be... it seems godot already uses InputMaps... could this piggyback on that? or is there some reason that would cause problems?
This is already possible for most editor shortcuts, but 3D editor navigation uses a different hardcoded system. This allows for premade presets to be quickly chosen by the user, which is arguably faster than having to look up the shortcuts from the software you're trying to replicate.
@KoBeWi Can we make it so the right mouse button pans after a 8-pixel hysteresis threshold, and the right mouse button opens a context menu on release if it moved by a distance smaller than the hysteresis threshold? This would allow keeping both behaviors without having them conflict with each other.
The popup menu appears on button press, not release, but changing that should be possible, yes.
This allows for premade presets to be quickly chosen by the user, which is arguably faster than having to look up the shortcuts from the software you're trying to replicate.
The problem with this is that Godot doesn't support all the control schemes of other programs. There should be a way to allow users to customize their controls so that they can reproduce their desired control scheme.
Any updates or plans on this? having the zoom in-out button be different than the mouse pan button would greatly help navigate the 2d scene. It can also be good for people coming from Unity.
A PR exists, but it's stuck in limbo: https://github.com/godotengine/godot/pull/58371
I would like to add here that the option to assign these to the desired mouse buttons would be very useful to me- and I personally feel that conflict warnings are a great way to give me the option and keep me informed of potential outcomes. - I do like the 8 pixel solution too!
For me - I use middle click to pan around various other editors, including godot's shader editor, many of my raster image editing software, Figma - and, of course, coming over from unity, their 3D Scene navigation allowed for middle click to act as pan.
I have an information processing disability - I depend on creating a cohesive navigation language between my software in order to keep the ship sailing - so-to-speak - I understand that everything is in progress so I'm hoping this change makes it through at some point!
Hey all, I've now submitted a PR which addresses full customization of 3D navigation here: https://github.com/godotengine/godot/pull/85331
For @MikeFrom you should be able to recreate your Rhino navigation with this by setting orbit, pan, and zoom to Right Mouse and then setting the Shortcuts "Viewport Orbit Modifier" 1 and 2 to none, "Viewport Pan Modifier 1" to Shift, and "Viewport Zoom Modifier 1" to Ctrl. If Rhino controls are common enough and requested often we could also add it as a preset, but unfortunately I'm not sure that's the case. Still though, I hope this should be enough to satisfy the 3D part of the proposal and you can check out @KoBeWi 's PR for the 2D aspect of it, though it seems to need more testing before getting merged.
Describe the project you are working on
I am a Rhino user, Rhino uses right mouse button for navigation in 3D and 2D. I propose an editor setting for right mouse button navigation in the 3D and 2D editors. This would make Godot accessible to more users.
Describe the problem or limitation you are having in your project
Mouse navigation works differently in a lot of 3D/2D programs, this is annoying. In some programs you are able to configure mouse navigation, like in blender now. Also 20 years ago computer mouses had often just only two buttons, and there are still some 2 buttons mouses around, which you can read here: https://github.com/godotengine/godot-proposals/issues/2706
Describe the feature / enhancement and how it helps to overcome the problem or limitation
I wish in 3D editor navigation like this:
Right Mouse -> nav_mode = NAVIGATION_ORBIT Right Mouse + Shift -> nav_mode = NAVIGATION_PAN Right Mouse + Ctrl-> nav_mode = NAVIGATION_ZOOM
I wish in 2D editor navigation like this:
Right Mouse -> nav_mode = NAVIGATION_PAN Right Mouse + Shift -> nav_mode = NAVIGATION_PAN Right Mouse + Ctrl-> nav_mode = NAVIGATION_ZOOM
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
I am not a C++ programmer, but I think I would for
3D: add to the Editor Settings/Editors/3d/Navigation/Navigation Scheme "Godot", "Maya", "Modo", a fourth scheme called "Right Mouse". A search for "Modo" finds the C++ code files: https://github.com/godotengine/godot/search?q=Modo
2D: add to the Editor Settings/Editors/Paning a new boolean setting called "Right Mouse Navigation". Sorry, I don't know the code files for this.
If this enhancement will not be used often, can it be worked around with a few lines of script?
I don't think so, this seams to be core.
Is there a reason why this should be core and not an add-on in the asset library?
because 3D and 2D editors are core