Operating system or device - Godot version:
Arch Linux, Godot 3 master
Issue description:
I've been playing around a bit with UE4 lately, solely to investigate what small things it has, that I'd really like to see in Godot, too. One of the things that I noticed I liked most is how smooth and satisfying the camera movement in the 3D editor feels as opposed to Godot (especially when using freelook).
It's hard to explain, but there seems to be some sort of intertia or weight to the camera (similar to stabilizers in graphics programs) that allows for much more precise and less abrupt camera movement than in Godot. I played around with some of the editor settings in Godot but couldn't achieve the same effect.
Unfortunately, I can't provide a gif for comparison, but maybe people who have used UE4 before (or possibly also Unity) can comment on this. Would it be possible to implement something like camera inertia for the camera in the 3D editor? I think this would greatly improve its usability.
Yeah, I've also noticed that freelook in Godot is pretty jerky. Unity's freelook mouse sensitivity is a lot lower which results in it feeling a lot less "jumpy" than Godot's. Maybe the default sensitivity value can be lowered, if that is even possible.
I haven't noticed any mouselook acceleration in Unity and don't have Unreal to test this out with, but I think I understand what you're referring to: camera rotation speed being slow when the mouse is being moved slowly, and accelerating when the mouse is moved quickly. I think this is what gives Unreal's freelook that "weighty" feeling. Of course I'm only taking a stab in the dark, but I'm pretty sure that's what you're describing.
I just tested Unity's freelook for comparison and while it certainly feels much better than Godot's, it somehow doesn't feel quite as satisfying and "weighty" as the one in UE4 (which has some very slight delay, hence me referring to it as "intertia")
[edit]
Actually setting Godot's "Freelook Base Speed" to 1 (default is 3) feels pretty good for WASD movement, but the mouse-look sensitivity is still much too high and apparently can't be set anywhere.
CC @Zylann
The problem of not being able to adjust mouse sensitivity is already addressed by #10460.
Inertia definitely should be added to the freelook camera, but it should remain subtle by default.
I was thinking about that too. would be a beautiful feature.
For the normal orbit look too.
I wanted to post another application which has well executed 3d navigation.
https://sketchfab.com/models/3658a1d21013448eab56ac27818d9858
It maybe is too "soft" for a working environment (this level of smoothness fits better for observing... but at least the effect is really obvious)
SptialEditorViewport needs transform smoothing. Most 3d editors have it
nowadays. This will fix most problems.. maybe should implement it, it's
pretty easy.
On Aug 19, 2017 10:00 PM, "Timo" notifications@github.com wrote:
I was thinking about that too. would be a beautiful feature.
For the normal orbit look too.
I wanted to post another application which has well executed 3d navigation.https://sketchfab.com/models/3658a1d21013448eab56ac27818d9858
It maybe is too "soft" for a working environment (this level of smoothness
fits better for observing... but at least the effect is really obvious)—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/10463#issuecomment-323556580,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF-Z2_-uWS1NRjWvurrO-Pvfv7wLERkZks5sZ4U6gaJpZM4O8cGs
.
@reduz that would be great and would make it feel sooo much better!!
would you consider doing it for 3.0?
I don't see how useful mouse smoothing is, to be honest, apart from it looking good... or maybe having more precision, somehow. In a development process I mostly expect reactiveness, which actually is more noticeable in Godot than other engines:
Try to make the editor "update always", and you'll realize camera navigation feels better, just because the framerate gets higher (In Unity, navigation always feels like 60 fps)
Smoothing is very useful. It makes focusing on a objects or changing axis
aligned views a lot less confusing
On Aug 19, 2017 10:25 PM, "Marc" notifications@github.com wrote:
I don't see how useful smoothing is, to be honest, apart from it looking
good (if it's added, I'll disable it :p). In a development process I mostly
expect reactiveness, which actually is more noticeable in Godot than other
engines:
Try to make the editor "update always", and you'll realize camera
navigation feels better, just because the framerate gets higher.—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/10463#issuecomment-323557284,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF-Z269p8U_qX_sWGNsg35xMQCkjcO3mks5sZ4rxgaJpZM4O8cGs
.
I definitely see the advantage for focusing or axis-aligned change, but not so much for mouse orbit/look.
I suppose there will be an editor setiting to tweak the smoothing, so people who don't like it can turn it down or off. So I don't see any harm in having this feature.
Started playing around with Godot 3.0 Alpha 1 build and the jerkiness of the 3D navigation in the editor really threw me off - so I would say that this is a rather important tweak - especially if this is easy to fix.
@DjPale there are currently (on master) three ways to reduce jerkiness:
Having tweens for camera movements will also help.
@Zylann Tweens might be perfect. since that would be little additional code and they are built for things like that!
As of this commit https://github.com/godotengine/godot/commit/1894157c9fab05984428d83a743b0fe1d720c80c zooming and orbiting feels much smoother now. However, this doesn't seem to affect freelook yet.
I added general camera interpolation yesterday, but noticed that for
regular editing it's kind of annoying, so i just disable if a mouse button
is pressed. It works nicely for changing views or focusing on objects,
though.
On Sat, Aug 26, 2017 at 8:36 AM, novemberist notifications@github.com
wrote:
As of this commit 1894157
https://github.com/godotengine/godot/commit/1894157c9fab05984428d83a743b0fe1d720c80c
zooming and orbiting feels much smoother now. However, this doesn't seem to
affect freelook yet.—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/10463#issuecomment-325118030,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF-Z2wGDVzURy7JEHffFUXkE08VZn3eaks5scAMlgaJpZM4O8cGs
.
@reduz So combining camera interpolation and freelook is out of the question for now? I don't know if this will cause issues, because freelook and zoom are so closely linked as mentioned in: https://github.com/godotengine/godot/issues/10516
It also doesn't feel very consistent, if you switch between freelook and normal mode very often.
it's not out of the question, though my feeling was that it was laggy with
camera interpolation, which made me disable it for most cases
On Sat, Aug 26, 2017 at 9:06 AM, novemberist notifications@github.com
wrote:
@reduz https://github.com/reduz So combining camera interpolation and
freelook is out of the question for now? I don't know if this will cause
issues, because freelook and zoom are so closely linked as mentioned in:10516 https://github.com/godotengine/godot/issues/10516
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/10463#issuecomment-325120673,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF-Z27AWTKnCz7UA5UrevVKOUNnDPaiIks5scApfgaJpZM4O8cGs
.
woud you mind making enabling it optional via an editor setting?
no.. it just doesn't feel good. You might be having a different problem,
though
On Sat, Aug 26, 2017 at 9:22 AM, novemberist notifications@github.com
wrote:
woud you mind making enabling it optional via an editor setting?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/10463#issuecomment-325122027,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF-Z2xIGdX8t9B169SQRPoBDJp2EvQMRks5scA4XgaJpZM4O8cGs
.
Too bad. Well, my issue is that freelook still feels kind of jerky compared to the orbit/zoom camera, which is even more apparent now. But I can certainly live with the way it works now, so I think this issue could be closed unless there are other opinions.
I am working on smoothing camera translation in freelook mode, if it doesn't conflict with @reduz changes I will make a PR
@reduz just tried the latest build with matrix interpolation, here are some notes:
Here is a video of the inertia I implemented:
https://www.youtube.com/watch?v=jFpizpEM5o8&feature=youtu.be
It's basically a setting where 0 = no inertia, and the higher it is, the more inertia it applies.
It's still based on lerp, but I inverted the value, because using lerp speed would mean that "no inertia" would be +inf speed, while I find it more natural to have more inertia if the number is higher, zero consistenly turning it off as a result.
@Zylann What you show in the Video is exactly what I was hoping for. I don't really understand why anyone would not like this smooth movement over the way freelook camera moves right now, but since you created a setting for it, there shouldn't really be a problem...
I just tried Godot 3 for the first time. Holding the right mouse button to maintain freelook gets very tiring on the mouse finger. Is there any way to just use ASWD free look without having to hold the mouse button? Some kind of toggle to enter/leave freelook?
@erwincoumans that could be added easily, but which shortcut would be the default? (knowing that toggle mode would then ignore right-click mode)
@Zylann Blender uses SHIFT F to go into free fly mode, and ESC-key to exit it. I'm new to Godot, so I don't know what keys are mapped etc. I would like an option to maintain free-fly until you hit ESC key (instead of until you release the right-mouse-button).
I agree, the user interface should be kept simple, but repetitive strain injury as well.
@erwincoumans just F? No modifier? (I just tried in 2.78 but it doesn't do anything, that's the shortcut for making faces/edges) I wonder if that would conflict with other input in the editor, I remember issues about this, like https://github.com/godotengine/godot/issues/11997 so a pretty unique shortcut would be better.
Blender uses SHIFT+F to enter free fly, and ESC to leave it. The < and > was removed by the github GUI.
Again, I would love to see the option to hit ESC to leave free fly in Godot, instead of holding the mouse all the time (increasing the chances for RSI)
@erwincoumans I'll add these to give it a try.
One more thing to keep in mind is that the mouse must be warped too... Blender also hides it but for now I'll just try to do it the simplest way without changing too much code
I'd say add SHIFT+F as a toggle (both to enter and leave freelook) + also ESC to leave it as a panic button :) (so two ways to leave it).
Yes @akien-mga
There is one more subtle issue: in Blender, you have the option to return to the original camera location if you press ESC or click right-mouse while in free-fly. Only if you click LEFT mouse button, you exit free-fly AND update the camera to the new position.
Of course you don't need to mimic Blender at all, but the option to return to original location may be nice. The Blender free-fly also has the 'gravity' mode, which enables sphere-collision against a ground plane (if any) or fall down forever, so it becomes like a simple FPS character controller. Anyway, this goes beyond my intention.
@erwincoumans I was going to just leave the camera where it is for now.
Also I found @kubecz3k requested this option before, https://github.com/godotengine/godot/issues/9716 which got implemented:
editors/3d/freelook/freelook_activation_modifier
It basically adds an optional modifier to press in order to activate freelook, but implementing toggle mode would make it quite redundant (though it applies to the right-click mode). I would remove it because it complexifies settings and toggle mode would still solve the above issue (cc @kubecz3k ?)
I got it to work!
See the PR for details: https://github.com/godotengine/godot/pull/12499
i think godot is quite good in this regard now, so i guess this is fixed.
Most helpful comment
SptialEditorViewport needs transform smoothing. Most 3d editors have it
nowadays. This will fix most problems.. maybe should implement it, it's
pretty easy.
On Aug 19, 2017 10:00 PM, "Timo" notifications@github.com wrote: