godot icon indicating copy to clipboard operation
godot copied to clipboard

Use subgizmos for Path3D position editing and declutter the UI

Open pohy opened this issue 1 year ago • 1 comments

Implements 3-axis gizmo translation of 3D curve points.
As well as "contextual" displaying of handles. In an attempt to declutter the UI.
Inspired mainly by Blender and Affinity Designer's curve editing UX.

The proposal (https://github.com/godotengine/godot-proposals/issues/527) has accumulated many ideas, this PR aims to be a step towards improving the 3D curve editing UX and does NOT intend to satisfy everything mentioned in the proposal.

This PR:

https://github.com/godotengine/godot/assets/2036806/7809c274-9140-4f0f-98b3-6d8ee1bcb8f6

4.2.1:

https://github.com/godotengine/godot/assets/2036806/e6fa6021-6e94-4add-8974-aa91e4673e92

pohy avatar Feb 03 '24 15:02 pohy

Implemented frustum intersection (region selection) and grouping of undo/redo for multiple points into a single action.

Undo/redo withOUT grouping:

https://github.com/godotengine/godot/assets/2036806/cfb6a649-d8eb-4aeb-b1c1-960ec7c34898

Undo/redo with grouping:

https://github.com/godotengine/godot/assets/2036806/4104e1e1-9659-45d0-8327-67a0170b7203

pohy avatar Feb 04 '24 15:02 pohy

Thanks for implementing it! This is a huge UX win for those of us that make use of Path3D nodes 🙌

FabriceCastel avatar Feb 12 '24 15:02 FabriceCastel

Bumped :+1: with love :heart:

TontonSancho avatar Feb 20 '24 09:02 TontonSancho

After making the style edits requested above, could you squash the commits? See PR workflow for instructions.

akien-mga avatar Feb 20 '24 18:02 akien-mga

Thanks for the review! Implemented the style edits and squashed the commits.

pohy avatar Feb 22 '24 21:02 pohy

Thanks! And congrats for your first merged Godot contribution :tada:

akien-mga avatar Feb 22 '24 22:02 akien-mga

Not sure if it'e because this PR, but on the latest master branch, the secondary handles in/out are not there.

https://github.com/godotengine/godot/assets/32012330/d057dfe2-8a5e-46c7-86a2-892627835e8e

jejopl avatar Feb 24 '24 11:02 jejopl

@jejopl Well, yes. That is a tradeoff so that you can select the curve points. The in/out handles were overlapping the curve point subgizmos and preventing the subgizmo selection. You can "drag out" the handles in the inspector, for now. Thanks for the video. We should likely display the in/out handles when the "Select Control Points" mode is active. I will try to look at this issue within the upcoming week.

pohy avatar Feb 24 '24 12:02 pohy

Not sure if should discuss this here or in another proposal, but this seems to prove that Select Points mode and Select Control Points are too similar, and in general Path3d editing needs to be refined.

I will mention here my proposal to implement another mode for tilt handles, as this seems imo the right direction to declutter the viewport handles: https://github.com/godotengine/godot-proposals/issues/8890

Regarding the specific issue of @jejopl, I was thinking that maybe while Select Control Points mode is active, the 3d gizmo should be disabled, and only available in Select Points mode.

GreenCrowDev avatar Feb 24 '24 12:02 GreenCrowDev