godotengine / godot-proposals

Godot Improvement Proposals (GIPs)
MIT License
1.16k stars 97 forks source link

Change the editor theme default joints color to be more visible #9572

Open patwork opened 7 months ago

patwork commented 7 months ago

Describe the project you are working on

Skeletal animation

Describe the problem or limitation you are having in your project

Joints and shapes are difficult to distinguish in the editor.

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

A slight change in the color of joints will make them stand out better in the editor.

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

Before:

col-before

After:

col-after

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

The setting can be changed manually by modifying editors/3d_gizmos/gizmo_colors/joint in Editor Settings.

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

n/a

Calinou commented 6 months ago

What color code did you settle on for the joints?

I plan to go through all 2D/3D gizmo colors at some point to give them a treatment similar to https://github.com/godotengine/godot/pull/48644. This should hopefully make them easier to distinguish from each other.

patwork commented 6 months ago

I mean I simply chose a different Hue for a greener one, so that it would stand out. The green colours in the gizmo palette are Voxel3D and LightmapGI, which shouldn't likely interfere with skeleton editing, but I'm not a UX designer so it's hard for me to suggest specific rgb.

However, if a larger change in the display of gizmos is in the plans, perhaps it would make sense to adjust their size on occasion? For example:

Skeleton with default pinjoints:

pin

Skeleton with all joints changed to conejoints:

cone

After scaling skeleton 10x and zooming out:

cone-10x

Calinou commented 6 months ago

However, if a larger change in the display of gizmos is in the plans, perhaps it would make sense to adjust their size on occasion?

Gizmo size is a difficult problem to figure out. We don't know in advance on which scale the user is working on (human, small vehicle, large building, planetary scale...) so it's hard to pick a good gizmo size that works in all situations out of the box.

I think the best thing we can do is provide editor settings for gizmo sizes (perhaps these should even be project settings, working as multipliers). How does Blender handle this in comparison?

bar-ji commented 1 month ago

I think for joint constraints it would make sense to shade them based on their axis, especially for 6DOF. The current setup makes fine tuning constraints very difficult. Is it possible to implement something similar to this for currently selected nodes with joints?

image