-
-
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
Add 3D translation sensitivity to Editor Settings #81714
Conversation
|
||
real_t pan_speed = 1 / 150.0; | ||
real_t pan_speed = 4 / 150.0 * translation_sensitivity; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changed 1 to 4 since default translation_sensitivity
is 0.25
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Apologies in advance for the belated review - this PR should be mostly ready to merge, but I wanted to flag this. This seems to be fairly arbitrary, if I understand correctly 0.25
was chosen as the default simply because that's what orbit_sensitivity
uses?
orbit_sensitivity
seems to be in "degrees per pixel", so it's actually a meaningful unit.
Here translation_sensitivity
seems to be in 1/37.5-th pixels per second (I assume), which seems pretty arbitrary.
Maybe we can make this setting actually be the full pixels per second value? Or maybe with a factor 100 because editing small decimals precisely is tricky.
So:
real_t pan_speed = 4 / 150.0 * translation_sensitivity; | |
real_t pan_speed = translation_sensitivity / 100.0; |
And change the default value to 0.667
?
WDYT @Calinou?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe we can make this setting actually be the full pixels per second value?
There is no time unit when panning, so it can't be "pixels per second" but would be something like "units per pixel" instead.
I would prefer we make the default value 1.0
instead as these units are often difficult for users to understand. We could do the same for orbit and freelook sensitivity, but we'll need to multiply the old value by 4 when migrating editor settings to ensure the sensitivity doesn't suddenly decrease after upgrading.
Many games also use arbitrary values for mouse sensitivity (3.0
is the default in most id Tech and Source games), so there is no real standard here.
The only measurement that is somewhat standard is measuring how much distance your mouse physically needs to travel to perform a 360-degree turn, but this can't be done in software.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I updated the PR to change the default translation sensitivity to 1.0
, and thus make the formula translation_sensitivity / 150.0
.
e175fcf
to
81198af
Compare
Squashed everything and added missing entry to
So after running |
3aa8055
to
3388057
Compare
Are you building a double precision build? Then that's the reason, not a bug in that case |
Thanks for the info! Yes, you are right. After building and using the x86_32 version, no more extraneous xml updates were generated for me. So I think the doc is making it slightly confusing then. On the Updating class reference when working on the engine doc page, it specifically gives an example of running --doctool with the x86_64 version. If I'm not mistaken there, I can also try to contribute to the doc repo (adding a note about the possible doc generation difference between x86_32 and x86_64). |
Meant the |
Documentation output should be identical between 32-bit and 64-bit builds. (This isn't to be confused with the floating-point precision build-time option, which is entirely independent of the architecture's bitness.) |
On my end, running Running the x86_32 version does not produce any extra updates. |
Those are built with a different version I'm 99% sure, the |
Yes |
Okay finally got it. It's definitely my silly mistake. I must've mixed up the exe names (with/without ".dev") for some of the runs. Sorry for the trouble! 😓 |
Happy it got worked out! It's an extremely easy mistake that I've done myself a few times |
Hey! Who forgot about this? It's almost done and kind of a big deal for anybody working from a lap top with experience in other 3d software. It's not necessary by any means, but it's pretty bad feeling to not be able to navigate comfortably. |
3388057
to
8d910e6
Compare
I think it was ignored for a long time. Let me know if I can do anything more. I just pushed to the PR to resolve a recent conflict. |
I'm waiting for this. When will this be released? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should be good to merge but I left a comment on the formula used for the pan speed.
is it a matter of waiting for next release? |
8d910e6
to
174e659
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good.
I updated the PR to change the default translation sensitivity to 1.0
, and thus make the formula translation_sensitivity / 150.0
.
Thanks! Congratulations on your first merged contribution! 🎉 |
This for 3D Navigation. Currently in Godot, you cannot adjust Panning sensitivity. So for people who uses non-default Orbit sensitivity, the default panning speed will most likely feel off. This PR adds a Translation Sensitivity option that fixes this issue.
The max value increase also help addressing #75855 (for trackpad users). Original code change comes from @geminax from that thread. All credit should go to him; I just tested and prepared the PR.
I also want to add a bit more context as to why this is important to me. I have 15+ years of muscle memory from Maya and Unity. I tried to get into Godot in the past but the 3D navigation always felt off on my setup. I know Godot has been improving on this end as well. There are now more options I can tweak in this regard. And I think this Translation Sensitivity setting is the last missing piece I need.