-
-
Notifications
You must be signed in to change notification settings - Fork 97
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add a setting to disable Select Mode manipulator gizmo #7834
Comments
I would prefer it if all of the following were true:
|
I Just mean that the current "select" mode isn't actually a select mode; it's an all-in-one transform mode. So, there would be five modes total:
Of course, there could also be a setting to disable selection in modes other than the dedicated select mode (either overall or one toggle per mode). But, I certainly wouldn't disable selection myself or consider the disabled state the default.
Hmm, I haven't seen this in Blender. If it's a thing, I must have long disabled it. In Blender, I use the |
I personally like being able to move and rotate nodes with a single mode, but I agree with removing the ability to move/rotate a node immediately after holding down the mouse button to select it. It's almost never something you intentionally do. Personally, with the G/R/S shortcuts (see below), I don't use the manipulator as much, but it comes in handy to drag a node across a 2D plane. Regarding the manipulator gizmo being visually obtrusive, we could hide it when the mouse cursor isn't located within the 3D editor viewport. (The orange selection box would remain visible.)
These exist in Godot, but aren't bound by default unless godotengine/godot#78148 is merged. |
Whoa, that's awesome! Just enabled the shortcuts, and the only thing missing for me is typing in specific offset values after the axis lock shortcuts. Very cool. Thanks for the info. Also, I suddenly find myself far more conscious of Blender's Z axis being up. |
When will this be addressed? It's a trivial fix but over a year since it has been reported. |
Whenever someone decides to work on it. Changes to Godot are partly driven by where volunteer contributors decide to direct their attention, and partly by what reviewers are able to review and find consensus on. For proposals especially, there is no guarantee that a proposal will ever be implemented, reviewed, and merged. For whatever reason, no one has chosen to implement the proposal in this issue yet. My guess is that no one has chosen to work on this yet because:
If you think so, and want to contribute a PR for it, feel free to do so. But be aware that the review process might not be straightforward, since reviewers would need to reach some consensus that the solution chosen is the right one. Note that there is some disagreement about the right fix even in this issue. |
We could support holding down a modifier key like Alt to select objects behind the gizmo. This could also temporarily hide the gizmo while held down. |
This once again doesn't address the main issue. Godot simply doesn't have a select mode, which is preset in nearly any other mainstream software with an interactive 3D viewport. The whole point of this mode is to explicitly prevent any interaction other than selecting. It's a mode that should allow you to just select entities in the 3D viewport and edit their properties, without possibility of accidentally transforming them. Aside from the absence of this mode, the second part of the problem is that Godot has a mode which is incorrectly called Select mode while it is in fact not a Select mode. |
godotengine/godot#87793 did include a shortcut that you can map any key to hide the gizmo. A pretty simple way combined with the linked PR to maybe achieve the goals of this proposal without significantly changing anything else, is that when the gizmo is hidden, and in Here is a related PR that addresses other accidental transforms: godotengine/godot#87756 |
I do not understand why is there such an insistence of doing literally anything else than what my post proposes. It's as if FOSS software had some hidden law to avoid good UX. It feels like any open source developer just looks at the most mainstream concept of doing something (left click to select item for example) and goes "That's way too simple and straightforward, we need to do it the FOSS way". I do not get why godotengine/godot#87756 and godotengine/godot#87793 reference my proposal when they once again have nothing to do with my proposal. The idea of my proposal is that you press the Select Mode shortcut key and are instantly in a mode where: And when you press a shortcut key of transform modes, like Move/Rotate/Scale, you are instantly in a mode where: What my proposal is absolutely !NOT! about is a solution where to achieve select mode, you need to:
And in order to return to a transform mode, such as move, you need to:
I am very much looking for one step process when switching between transformation and selection, not 6 step process There should be no transformation in a mode that is called SELECT mode. If your argument is that you should be able to select and transform at the same time, without having to switch the modes, then answer to that argument is this already implemented PR: godotengine/godot#86804 If you want to be able to select and transform at the same time, there are already transform modes, so you should be in one of them. The whole point of having a mode called Select mode is that I can rely on nothing being transformed by accident, Alt key pressed or not. With the past few patches mentioned, we got Godot bloated with quite a few more checkboxes while the basic UX request was still not addressed. We could have gotten away with not polluting Editor Settings with too much stuff simply by having ability to transform objects by click-dragging anywhere on the object surface available only in transform modes, and having a TRUE select mode. Instead of Alt key defining whether click-drag object surface transform is possible, Transform mode being active would define it. Such behavior would also address godotengine/godot#87608 while not adding UI bloat. The user who made the aforementioned report themselves says:
...literally the same request - to make Select mode actual Select mode. They say nothing about some Alt key shenanigans. Really, why is there some hidden rule to try to work around the request in 100 different ways but avoid just directly implementing the simple request at all costs. At some point, preferences in software become so granular customizing them is a frustrating task no one wants to do. And what's worse, many of these settings have often wrong defaults. |
I think you misunderstood my suggestion. If you bind a key to I actually do agree at least with the statement that it is confusing that the mode is called Here is a video below of me quickly switching on and off the transform gizmo using the shortcut. 2025-01-03.05-20-23.mp4 |
There's absolutely nothing complicated about UI/UX in this case. Unity is not the only reference for this. There's also Unreal, Cryengine and literally every 3D DCC out there (Blender, Maya, 3dsMax, Modo, etc...) On top of that, Unity does have something like a select mode. It's called a Pan tool but it fulfils the same purpose - prevention of accidental transform. It's the mode you can rest in without worrying you will transform something by accident. Your video still doesn't show solution to the request. To switch between modes I would still have to:
It still: Pressing a key to hide a gizmo would still not do for following reasons. Also, if it's done this way, then the click-drag movement by clicking anywhere on the surface of the object can not be derived from the mode. It should. It should always work in transform modes and never work in Select mode. You also haven't addressed how your Alt+LMB toggle will work with the Maya viewport navigation mode. Yes, having a switch for transform Gizmo in Select mode is a bandaid, but the reason the bandaid needs to exist is that "Select Mode Transform Gizmo" is a stupid oxymoron that should never have existed in the first place. Now that it unfortunately exist, there will be minority of the users whom would be very angry if it got completely removed, because they unfortunately got used to it. There's also sufficient consensus. There's 11 thumbs ups under my original proposal, and 4 under the post that shows the additional problem of the select mode is that we can't perform other action through the drawn gizmos. I went back and re-read the whole conversation and only disagreement about how to be implemented is from you, as opposed to ~15 other people. You are the only one of the idea that it needs to be implemented FOSS way, because simply doing the most straightforward thing people want, request and are used to from pretty much all of the other industry software would be too simple.
Reread this, what you wrote, and you will realize you perfectly described what select mode is. If we assume that godotengine/godot#86804 will be implemented, then this toolbar
|
Consensus on implementation, of which I seen a few different suggestions here including creating a whole new tool mode exclusively for selection, which goes directly against the original suggestion. I am one of those 11 people who gave a thumbs up to this proposal because I agree this is a problem in general that needs to be discussed.
I'm not sure what this means. The "FOSS" way is about having discussions and building consensus is my understanding, which is what we're doing, and I think works fine.
It would still work this way with my suggestions.
Fair enough. Although if my suggestion is implemented this could be quickly modified via an editor plugin (although not ideal, I do understand this, believe me). To be clear, my suggestion is not meant to invalidate other suggestions. Accidental transforms, the gizmo occluding objects behind it, and the naming confusion are real problems that can be addressed in a few different ways incrementally or all at once, The discussion is not only to come up with ideas on how this should be implemented overall but can provide people with some workarounds while consensus on a particular implementation has been reached, and someone commits to doing the work. |
I think we should avoid using the modifier keys as much as possible, they are likely used for navigation. For instance, people who uses a pen (e.g. artists) likely use the "Emulate 3 Buttons" mode, in which the modifier keys are activating a navigation type (pan, rotate, zoom). This is partly why I contributed to the GridMap editor; it was hardly usable with a pen tablet. An alternative solution would be to use Q to toggle the gizmo/transform visibility. Basically it would be like having a "select mode" and a "transform mode" both on the Q shortcut and we would toggle between the two by pressing Q.
I don't know how we can judge if there is a consensus? Even if there was 10 persons out of 10 agreeing here, there are thousands of users out there 😅 so there will always be some risk taking; trying something and see if users like it. For now, I think there are a few options to solve the problem:
Solutions 4 or 5 could make everyone happy because the users who like the old behaviour can stay forever in the "transform mode", while the users who like the new behaviour can stay forever in the "select mode". In terms of Solution 4, I am not sure we have ready-to-use drawer buttons in Godot (see below)? and we would have to at least add a sentence in the button's tooltip to explain that to press Q again will toggle mode. |
This is already standardized in so many different apps, there's really no need to reinvent the wheel to come up with inferior solution. Option 2. Why would you add transform mode to select mode when Godot literally has 3 separate trasnform modes? Option 3. That sounds horrible and is not how any reasonable 3D software behaves. It would interfere with Maya navigation mode which uses Alt+LMB for orbit. It would also not satisfy the requirement to have a safe mode where you can NOT accidentally transform. Having to hold Alt key at all times just to prevent accidental transformation is nowhere in the realm of sanity. Option 4: No one wants to constantly mentally track which mode they are in if it's cycles by same key. What would be benefit over simply having select mode key always be select mode and Move/Rotate/Scale keys be always transform mode? If the main purpose of the request is to avoid accidental transform and then having to undo it, then if I am in move mode, and I press select mode hotkey, I am still not certain I am in select mode. It will be either select or transform mode based on the last cycle state of the select/transform combined mode. So I will still make mistake, still have to undo it, and then press the select mode key again to cycle, and be super careful to not press it again. It does not decrease room for error, it increases it. It does not help user to avoid errors, it punishes user for making them. Option 5: Same issue as option 4... I am starting to lose my mind here. Why would you spend time and mental effort to figure even worse solutions? There is dozen+ different 3D apps that use streamlined combination of selection mode and transform modes, and you never see their userbases requesting any change. Here in Godot, we increasingly see userbase requesting a true select mode without any convoluted neckbeard FOSS twist to it. How could you possibly come with so many different worse ways to do it in contrast to a simple request, which would add one checkbox to 3D Section of Editor preferences, which would default to a state which would not change absolutely anything for existing users, but just merely toggling it would make Godot behavior aligned with most industry 3D software. Why would you try to replace that idea with some crazy mental gymnastics like having Select Mode key cycle modes, having additional transform mode of select mode alongside dedicated transform modes, or turning select mode in another transform mode, which only selects if modifier key is held...? I swear if this request was about adding a support for left click-drag to select span of text in text/code editor like it happens in nearly every single text editor, word processor or web browser out there, there would be people here arguing that left-click drag should actually scroll the text editor view horizontally and text selection should happen by something like alt+shift+right click drag. In the FOSS world, it feels like people think there's some medal or award for figuring weirdest way to do things. |
Which I'd say is part of the process. I agree that it can be difficult to judge the "vibes" of what a generally acceptable solution would be. So, in my opinion it's mostly just having the discussion, various people read through the different arguments and then someone being like "Yeah, I'll give this solution a shot and develop it. I can see it having a chance to be approved, merged and liked well enough by most the user base". Despite Rawalanche's
This is the part I'm trying to reconcile. Do we maybe rename the default to just |
@Rawalanche I never said I was against your idea; and I updated Option 1 to better represent your idea. Also, I personally don't like the Option 3, but I was trying to make a list of possible solutions. To try to summarise the options in a list is a way to make the conversation progress and help the decision making. I think it is indeed very important to look at how other softwares solve this problem. If you look at the screenshot of Blender I posted in the previous post, you can see that they have a "select mode", and a "transform mode" is addition to the move mode, rotate mode, and scale mode. It is important that you notice that the "transform mode" that combines move/rotate/scale is an industry standard, and appears in many 3D softwares:
It is an useful feature because it allows to place objects more quickly in a level. As your option (Option 1) is making it difficult to access the transform tool (i.e. combined move/rotate/scale), it does not seem to be the best option we can find yet. Option 2 is basically what is found in Unity and Blender. Hence, what about:
|
You are missing the point of what's being talked about, and what's being requested. It's not at all about combined/universal transform gizmo existing (which is not an industry standard still, but is very common indeed). It's about the modes. It is an industry standard to have a select (or navigate) mode which guarantees you can not transform your objects by accident when selecting them. The problem of Godot is that it simply has no Select mode, that is it. It has combined transform mode mislabeled as select mode, and it has no true select mode which can prevent accidental transformations. I am fine with option that adds 5th mode to the toolbar, which will be combined transform gizmo. I simply won't use it, and will only use the dedicated select mode. The reason I originally wanted to do it as an editor preference is that I've used most industry software, and the combined gizmo was there, but it was more of a gimmick. I never seen anyone actually use it, because it's super easy to accidentally trigger different transform tool since there are 10 of them concentrated in just one displayed gizmo. So I assumed that it is an user preference, where some people use it, while others never want to come in contact with it. Either way, as long as I can simply press Q key to be in reliable Select Mode, where I can't accidentally transform something by click-dragging and have no gizmo in way of me clicking on nodes and node-specific manipulators, I will be more than happy. I just don't want to have to first do something, like manually disable gizmo display or cycle modes. I even agree that 5th toolbar button for combined transform is a better solution, but I approached it conservatively since my experience with Blender, (another FOSS project) is that any request that wants to add actual UI element to main, non preference UI will get rejected automatically because "It would add UI clutter". |
100% fine by me. |
I already agreed with this part and I think there is a consensus there. The point needing to be solved is how we do it so that we still have a combined transform gizmo easily accessible. I agree that combined gizmo are sometimes a gimmick, but we can't really remove it now and level design might actually be the one use case for it 😄 !
Yes, that's why I suggested Option 4 where Select Mode and Transform mode are the same toggle button (toggled with Q), or using drawer buttons to combine several tools in one button. I still think I will give Option 4 a try if I get some time. The thing is that you don't need to remember in which mode you are: if you never went in Transform mode, you will always be in Select mode; furthermore, if you are in Select Mode, you won't see the gizmo (so it is pretty obvious you can't transform). Anyway, I guess we are getting to a consensus of trying Option 2 where we split Transform mode and Select mode in 2 buttons, and we see what are the feedback. To be honest, there still seems to be plenty of space in the toolbar for buttons on my screen! |
Created a PR, give it a shot: godotengine/godot#101168 |
I just built godot and tried it, and it works pretty well. Once you can get someone to make a proper icon (I assume there's someone who made the existing ones?), the only issue that will remain is the hotkey. It's usually standard that Q is the select mode hotkey, so the true select tool should be bound to Q. I personally don't care to be honest, because I can always just remap it, but users on average, especially new users will. Other than that, it's great. It works as expected and makes Godot feel one big step closer to using a normal 3D software. I finally have a simple mode where I can just simply select landscape and objects on it directly in the 3D viewport without any accidental errors: |
I believe @MewPurPur was involved with a lot of the icons in Godot. If you're interested and have the time Mew, I'd appreciate the help. Otherwise, someone else will have to volunteer since I don't think Godot has anyone specifically dedicated to making icons.
I agree, but I think it will technically break compatibility (since people are used to this) and similar things have prevented PRs from being merged: godotengine/godot#78148 (comment) |
You haven't given me a lot of guidance and I don't do 3D stuff, so I extrapolated. I guess you want something that looks close to the Generic6DofJoint3D icon? I made this:
|
Oh sorry, I probably should have provided a bit more context. This PR: godotengine/godot#101168 is looking to create a dedicated "Select Mode" for 3D that doesn't include the gizmo. I reused the original select mode icon for that, but now we need an icon for the mode that allows you to both translate and rotate objects. The Generic6DoFJoint3D was total placeholder that I figured was better than nothing when I decided on it. I was thinking more something that encompasses the shape of the full transform gizmo itself. Maybe just a quarter of the gizmo like this? |
I don't think it is a problem here. The PR you mention actually changed the rotate shortcut to CTRL+R which breaks the whole point of QWER shortcuts. As far as I understand, the QWER shortcuts are meant to keep everything useful under the left hand and minimise hand movements. The buttons in the UI and the keyboard shortcuts should follow the same order. ASDF is used as a second row of shortcuts and ZXCV is the third row. Sometimes the first row extends to T (as it is the case here with the Local Space shortcut). Based on that, the shortcut V does not make sense. If you keep Q for select mode, it will just be what it was meant to be, so I think it is good. You can probably have the transform mode move to T or A and move its icon to after the scale mode icon (so that the keyboard shortcuts corresponds to the button order ). |
Ehh maybe, maybe not. The other half of the problem is that I agree with your logic, however.
|
I had to double-check but, at the moment in Godot 4.3, the shortcut Q is linked to the right most UI button (arrow icon) and it is called "Select Mode". So I think we can argue that it was always meant to be a select mode. We could see this PR as decluttering the Select Mode, and moving the combined transform gizmo to a dedicated Transform mode. Hence, the Select Mode would remain on Q, and the new Transform mode would go to T or A. I would suggest that you do your PR with the shortcuts you believe are best, then if the reviewer worries about the shortcuts, you can change them to get the PR merged, and open a separate proposal to continue the discussion. This way we save a little bit of time by getting everything reviewed at the same time. |
Describe the project you are working on
General experiments with the engine's UX
Describe the problem or limitation you are having in your project
In Godot, select mode is not a select mode. It's a Move/Rotate/Translate mode which allows for object selection as a side effect.
In pretty much any other software with a 3D viewport, the whole point of select mode is to allow users to reliably select:
Describe the feature / enhancement and how it helps to overcome the problem or limitation
A simple ability to disable Select Mode transform gizmo in the Editor Settings->Editors->3D. Default value would be enabled so nothing would change on out of the box behavior.
Problems it solves:
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
If this enhancement will not be used often, can it be worked around with a few lines of script?
It can not be worked around. It requires engine changes on C++ level.
Is there a reason why this should be core and not an add-on in the asset library?
This is about improving the 3D editor usability out of the box.
The text was updated successfully, but these errors were encountered: