godotengine / godot-proposals

Godot Improvement Proposals (GIPs)
MIT License
1.07k stars 68 forks source link

Improve multi-scale and-rotate editing of 2D nodes #10054

Open Arnklit opened 4 days ago

Arnklit commented 4 days ago

Describe the project you are working on

A game in production

Describe the problem or limitation you are having in your project

You cannot select multiple objects and scale them at once and if you rotate multiple objects, they rotate around their individual origins, which is not always what you want.

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

Add the option to scale when selecting multiple objects and add a toggle to go between individual origins and the centre (average) of the selected objects.

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

Scale needs to be implemented. An icon needs to be added that toggles the centre of the scale / rotation. I used the Blender Median Point one as an example here.

image

Note: This could also be added for 3D context.

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

This would be used often.

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

This is about improving 2D editing out of the box.

Calinou commented 4 days ago

Ideally, several options should be provided for defining the rotation/scale pivot. See Inkscape's options for align/distribute:

image

I think supporting individual rotation/scale and rotation/scale relative to selection center is a good start still.

JoNax97 commented 4 days ago

I think individual/center and first selected should be enough. The user just has to pick the object they want first, with any criteria they want.

Arnklit commented 3 days ago

I don't really like the idea of the first selected. I feel like Godot would need to get an "active selected" like Blender has for it to make sense so you could manupulate it, otherwise it will just feel bad.

JoNax97 commented 3 days ago

Fair enough

KoBeWi commented 2 days ago

Rotating around custom origin was implemented in https://github.com/godotengine/godot/pull/58375 It's available in 4.3 beta.