Add ability to transform nodes relative to the active node#104233
Add ability to transform nodes relative to the active node#104233ryevdokimov wants to merge 1 commit intogodotengine:masterfrom
active node#104233Conversation
e1c9e94 to
934d09f
Compare
66901c2 to
0e94194
Compare
0e94194 to
c0f5215
Compare
c0f5215 to
647c526
Compare
Calinou
left a comment
There was a problem hiding this comment.
Tested locally, it works as expected. Code looks good to me.
Some feedback:
- The default shortcut (A) will conflict with the physical Q shortcut from #103533 on AZERTY keyboards. I suggest making it use physical A, so that it becomes Q on AZERTY to avoid conflicts.
- The feature's state is not persisted when disabling Use Local Space. This also means that if you use Blender-style manipulation shortcuts, it's impossible to make use of the feature as you always have to go through global space before going through local space (by pressing the manipulation shortcut a second time).
- The tooltip should mention that the feature is only effective when Use Local Space is enabled (so users know why it appears grayed out by default).
647c526 to
ff79c80
Compare
|
Feedback addressed. Also fixed saving state when project is reloaded. |
ff79c80 to
a2b25bd
Compare
a2b25bd to
db680c5
Compare
db680c5 to
6b0246c
Compare
0690825 to
e6d081b
Compare
e6d081b to
49158e6
Compare
There was a problem hiding this comment.
If we're following Blender's gui, I think we should also allow setting the Origin separately. However, I understand the concern that this might add too many features.
Even so, the current this PR implementation seems inconsistent regarding position, rotation, and scaling, making it unclear what the intended purpose is. The icons are also unclear.
So as a proposal, how about implementing most operations the same as Global, but only setting the Gizmo's transform to Local:
- Ignore EachOrigin
- Set the Gizmo's position to match the leader object's Origin, not the average position
- Set the Gizmo's basis to match the leader object's Basis
Also, I think it's okay to make this Local Gizmo + Global Operation the default.
Then, representing the current Each Origin + Local Operation with the following icons would make the behavior clearer:
#102176 introduced the ability to select an
active nodeto determine the basis of the transform gizmo. This PR adds the ability to transform nodes relative to that basis now. This will the improve the usability of transforming several nodes at once.A new tool button has been added:
This button is only enabled when the adjacent
Use Local Spacetool is enabled, and the functionality is automatically disabled when switching back to global space.2025-03-16.17-29-11.mp4