godotengine / godot-proposals

Godot Improvement Proposals (GIPs)
MIT License
1.12k stars 69 forks source link

Add color of NavigationRegion3D to Editor 3D Gizmo Colors, so it can be changed #8199

Open MichaelMacha opened 11 months ago

MichaelMacha commented 11 months ago

Describe the project you are working on

I'm currently working on a platformer starring a gummy bear, which uses many bright high-saturation colors and pastels. A lot of color language. This, unfortunately, is exactly what Godot's (otherwise amazing) NavigationRegion3D uses in the editor, to show the shape of the navigation mesh. That makes it very hard to find!

Describe the problem or limitation you are having in your project

Initially I thought I could get around this by simply changing the default color to something earthier, but surprisingly, the NavigationMesh color is not present in Godot's editor settings. It doesn't appear to be using any of the other colors, either. This is going to lead to a lot of squinting.

image image

Describe the feature / enhancement and how it helps to overcome the problem or limitation

If I could simply change the default editor color of the NavigationMesh, preferably in a predictable place like Editor Settings, this issue would be resolved. It appears to be hard coded somewhere.

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

User opens Editor Settings, jumps to 3D Gizmos, and finds an entry called "Navigation Mesh" that provides a navigation mesh parameter color.

If this enhancement will not be used often, can it be worked around with a few lines of script?

Unfortunately, the best workaround I've got (other than eye strain) is turning off the background environment, and changing materials temporarily for greater contrast. If there's another way to do this, I would love to hear about it.

Is there a reason why this should be core and not an add-on in the asset library?

This feels like an intrinsic part of the front end for navigation meshes, and likely doesn't warrant an extension.

Calinou commented 11 months ago

cc @smix8

theraot commented 11 months ago

I believe you asked this, or you have a doppelganger: https://gamedev.stackexchange.com/q/207586/10408

I'll answer here too, as this have not been brought up here, there is configuration for the navigation color under debug shapes:

image

MichaelMacha commented 11 months ago

@theraot Got my hopes up, but as you can see here, none of these colors seem to affect the navigation mesh. It's still that light blue, after changing every one of them to something far from it:

image

I tried some of the ones further down, past Navigation, which seemed to resemble the color, but no luck there either. If there's a specific one I should tinker with, do let me know!

smix8 commented 11 months ago

Those Debug Shape colors do affect the navigation mesh and everything else in the Editor. The problem is more general in that not everything is reactive to (all) ProjectSetting changes. You would need to change the color / setting, save and reload the Editor/Scene to see some of the changes.

Navigation debug is a little more complex debug with a running Server (edge connections), e.g. part of the color that you see is baked into the mesh as vertex colors so you would need to trigger a mesh rebuild to see a color change. E.g. the main navigation mesh face color can be changed and reacts to ProjectSettings because it changes a global material albedo. Meanwhile the randomized face color or edge color does not change because those are baked as vertex color inside the meshes so require the meshes to be remade / reloaded.