-
-
Notifications
You must be signed in to change notification settings - Fork 21.9k
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
Remove 2D view limits #25616
Comments
I dont think this is a good idea. Having infinite view is cumbersome for most use cases. Regarding each points:
|
That being said it might be provided as an option |
I tried it earlier today, it does not account for collision shapes; tried it with a sprite a few months back, and it did not account for that either. Sure, it could be fixed, but it seems like work for something that's not very useful; assuming it did account for these things, I still can't move the view further out to place nodes in a natural manner.
It happened to me a lot when building a large level. While true I can just enter values, it defeats the purpose of a visual editor (besides, entering values is exactly what I had to do with the dummy controls.)
I don't think your average user is randomly moving their view to a point where they might get lost, as their attention is focused on where the action is, and the action isn't empty space. If this logic holds, the 3D view should also receive limitations on where you can look and where you can move the camera based on where nodes are, as you could also get lost there--but I don't think anyone has this issue, at least not which is easily fixed by the above mentioned features, such as double-clicking a node to focus the view. It's going to be cumbersome not having a mouse any which way it happens. Further criticism: this feature has no settings to control it, from what I can tell. I can't turn it off. I can't set how far the limit will extend from the furthest node. Also: it favors the bottom of the origin, rather than the center, so even if you do zoom out, you can see plenty below, but almost none above. There should most certainly be a way to control this. |
Limit may need to be extended at least a screen to each side, or maybe a screen as default and leave it configurable in the editor. |
I also find this annoying, especially in the -x and -y as noted by mateusak. I tend to put a few dummy sprites on far reaches just to free up the navigation space. Haven't noticed this kind of restrictive behaviour in other 2d applications. |
@eon-s it is already the case :) |
Maybe we could increase the limits, and center the view when you unzoom, so that the -x and -y are more accessible. But I see definitely no point in making those infinite. But as I said, we could make it an option for those who find it useful. |
@groud this sounds good. An option for the limits being unlocked would be very useful. |
I just discovered that point 2. from OP is still relevant, even with the panning improvement. Placing nodes is no longer a problem, but when you edit a tilemap and want to place some faraway tile (for whatever reason), it is currently impossible. You need to make a "path" of tiles to that point. |
@groud Out of curiosity, what downsides would an infinite 2D view have? The 3D viewport navigation isn't limited, yet I can't think of any downsides that come from it being unlimited. |
@Calinou imagine you unzoomed a lot on your scene, which happens a lot with TouchPads zoom or free spining mouse wheel. When you want to zoom again you have to put your mouse in the correct spot to be sure you zoom on the interesting (thzt means including content) spot of your scene, and keep it centered at each step of the zoom. |
I agree with @Calinou that panning should work in 2d the same way that it currently works in a 3d orthographic viewport. For the game I am working on, I have 2d games mixed with 3d in the same project. It becomes quite annoying when I jump from working on something in 3d, which has no panning limits to then work on a 2d viewport which has the builtin limits. Surely if someone was to lose their position in the 2d viewport they can just hit the F hotkey to zoom back to the object they are working on? Or you could bind a hotkey to home that centers the viewport, as is done within Blender. Blender also has no limits in any of its' 2d areas such as uv or node editors and you can pan as far as you want without restriction. If you did happen to get lost then it is just a matter of hitting the home key. This gives a nice unified feel to Blender, since all of it's various editors have the same navigation feel. This is something I feel that is missing between the 2d and 3d editors in Godot in various aspects (most notably, multi object manipulation). I would also really like to see ctrl-middle mouse as a zoom control work in 2d the same way that it works in 3d. As someone that uses a Wacom tablet almost 100% of the time, this would be very useful. |
Honestly that's not really practical for most users. It requires learning a key that's not intuitive. Honestly I think blender is a really bad example, as navigating on the 2d interfaces is IMHO really unintuitive and annoying. Have instead a look to professional 2d software, like photoshop for example. You cannot zoom in the area outise of the canvas, because it does not make sense and it is not useful. Also, think again about people working on laptops with touchpads, which is a really common use case that should be taken in consideration. It's not possible on those devices to point the place you want to zoom in and to zoom in at the same time. Infinite 2d workspace would make the user experience considerably worse for those users which is not acceptable. |
I don't think comparing a 2d game engine layout to a 2d image editor is at all a good comparison. When creating a 2d level you generally don't know how large your game area will be (assuming it is an area that will be scrolled in game), and the size of the boundaries will expand as you progressively add to the level . Whereas in an image editor you know your canvas or document size from the outset and there would be little reason to add to the outside of these initial boundaries. A better comparison is to the other popular 2d game engines. GMS and Unity both allow you to freely pan without restrictions. Construct has the side scroll bars, but these dynamically resize if I remember correctly (has been many years since I touched that). I also use a trackpad some of the time, and just use either the hotkeys or the +- arrows to zoom in and out with no issue. Also the option to frame up the selected object is right there in the view menu, so the user doesn't have to hit the F key. The best solution would be to have the limits unlocked as a user defined option as you mentioned in an earlier comment. |
Then in that case it does not make sense to compare it to blender too. ^^ On the UV editors, if blender allows you to zoom outside of the texture, it is not useful either.
Still, comparing to what other game engine do is not an argument. Those engines are far from perfect, and IMHO what we have here is a better UX than what they have.
Well, you don't have a laptop with an AZERTY keyboard layout where you need to press shift key to push the + key. Not mentioning keyboard navigation is not practical for a lot of people, and are less discoverable. So keyboard shortcuts required to navigate without issue is not an option.
That's exactly what the current system allows, if you move something far away by unzooming and moving it, you will be able to scroll that far (+ a viewport width) to modify it. I am not against a setting for people that need to place elements far away all the time, but I wont be made as the default behavior, as it would impact people working on laptop too much. So for me, what should be done is:
|
The only reason I compared it to Blender is that many here only have 3d experience with Blender. The same goes for C4D, Houdini, Maya, Substance etc that also have 2d and 3d editors. The point being that they have unified navigation controls that work in their 2d and 3d editors, and they don't have limits when scrolling in a 2d view, regardless of whether is a uv editor, nodal view or painting view. Godot is the only 2d editor (aside from image editors like Photoshop) that I can recall that has this builtin constraint on panning.
Agreed, and that is why I use Godot! However I was only comparing the 2d panning functions in their editors, and not the whole ui. Whilst Godot is awesome, it is also not perfect :)
A user can just use the onscreen +- buttons to zoom when on trackpad if they don't want to use hotkeys.
And that is why all the users on here are complaining about it, as it is cumbersome.
Sounds great, would appreciate if you are able to do this! Would also love to be able to zoom using ctrl-middle_mouse in the 2d editor the same way you can in 3d ortho viewports. Cheers! |
I obviously meant this on the point discussed here, not on the whole engine. But to be honest, I read far more people being happier making 2D games on the Godot 2D editor than making 2D on Unity. The dedicated rendering engine and pixel units helping a lot. Just citing this for example:
Clearly not, this issue is the first issue raised in years on this topic, while most Godot users are still making 2D games with the engine. If this was a very important problem, it would have been raised a long time ago and have a lot more thumbs up.
Honestly, this kind of comments really pisses me off. What do you even know about how much something is hard to implement or not if you did not even have forked Godot on github ? |
The problem with that comment was not that you criticized, but that you criticized too generally. You said UX is bad. Cool, but why it is bad? What and how it can be improved? Non-productive criticism doesn't lead anywhere either and only makes people angry. If you have specific problems with Godot, create proper issues for them. And don't say that it's pointless due to how the issues just float out there without being fixed. They ARE going to be fixed at some time. You never know when some random contributor will pick your issue. But if it isn't there, it's not going to be fixed. Vaguely "bad UX" won't be fixed either, because everyone has a different view on "bad". For me personally, Godot is better than Unity and any other engine/framework I used in the past. So just be more specific in your feedback. |
Let's make things clear, commenting about the UX state is ok. It's better when it is a constructive comment (as @fracteed comment's is) than just throwing a simple "Godot's UX is horrible", but that's still ok. But this kind of rant :
Is definitely not acceptable.
Don't worry, I don't choose the thing I am working on depending on who asked for it. ;) |
Well, no, Godot is not even trying to compete with them at all. Godot is a free product, we are not fighting for market share or whatsoever. Unity and Unreal have hundred of paid developers, while we only have two. There's no competition possible here in fact. There's no way we can work on Godot at the same pace as Unity and Unreal developers do, it will never happen. So yeah, a lot of issue will stay unsolved for a long time. |
Yes, people work freely on whatever they want. There's no point in going against that. Once a contribution is proposed, it is reviewed by a subset of the main contributors, and eventually by whoever attends the IRC merging meetings. We don't merge everything, but PRs considered as an improvement are usually merged.
Yeah, that's one of the consequences of choosing Godot. But usually companies choose to instead pay one of the contributors to implement or fix what they really need. If you can't afford that, use Unity or Unreal instead.
That's how Godot (and most open source project) work. The more you invest yourself into the project, the more weight in the decision you have. |
I would like to add that topic #32163 actually contains solution : " Try unchecking Editors > 2d > Constrain Editor View. This setting was implemented in #30041; read the comments in #25616 to know why this is enabled by default. " Originally posted by @Calinou in #32163 (comment) Sorry for waking up that thread, but I just want to help other "me's" who only found that topic, thought that it is just dismissed as an idea and would left without searching more. |
Godot version:
16d4021
OS/device including version:
Arch Linux
Issue description:
The 2D view will clamp your ability to scroll it depending on where nodes are in it; if you add a node2d, or a control, for example, which extends beyond the view's current limits, the limits will extend such that you can move the view so that you can see these new nodes.
There's a number of issues with this:
The current workaround is to throw some dummy control nodes into the scene and set their positions to very high values so the view limits stop being a nuisance, but I think the better solution is to just not have limits to begin with.
The text was updated successfully, but these errors were encountered: