WIP: Node Editor: Improve frame joining during transform #105457
No reviewers
Labels
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
4 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: blender/blender#105457
Loading…
Reference in New Issue
No description provided.
Delete Branch "lone_noel/blender:node-editor-frame-joining"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Improve frame joining during transform:
Shift
Motivation
The current behavior does work well enough in most simple cases, but there are some issues, that could be improved:
Point (1.) and (2.) are problematic because during transform there can be a huge disconnect between the position of the transformed nodes and the frame they are joined into. The cursor isn't necessarily in the users focus while positioning the nodes.
This can be especially confusing when combined with inserting nodes into links which actually is based on the node's position.
Video of the issue: frame-node-join-issue.mp4
In a strange way, when I recalled previously seen examples of this, for some reason my brain told me that the nodes of the frame were animatedly growing to show that they were now the parent of this node...
d0974fd25e
to38d4153b8e
@blender-bot package
Package build started. Download here when ready.
38d4153b8e
to74e7e20ea3
@blender-bot package
Package build started. Download here when ready.
74e7e20ea3
to8ec8733806
@blender-bot package
Package build started. Download here when ready.
8ec8733806
to17c3d10a4e
17c3d10a4e
to069b5156d0
069b5156d0
toe2c4e057c4
I updated the PR according to some feedback here: #108358 (comment)
The behavior works as follows:
Shift
Here's a quick screenshot of what that looks like:
I really like this approach a lot more, it feels quite natural to me!
Highlighting the frame works great and I'm super happy that moving with G doesn't care about the cursor position anymore.
My only gripe with this would be that the dot doesn't look very elegant/has some readability issues. It should always be drawn on top (which I think it already is). Maybe drawing it a bit thicker and in (selection) orange would look better and more clear.
Additionally I think the unparent behavior should be the same when holding shift before dragging, as I mentioned in #108358 .
Once those two things are figured out and signed off (and code is reviewed) this is ready to merge imo.
The dot is now a bit thicker and using the selection color.
Still not great but I haven't come up with anything better, yet, and there doesn't seem to be a similar concept of "selection center indicator" elsewhere in blender to cheat off of.
I'll have to let that simmer a bit to see if I can come up with something better:
I also improved the behavior when pressing shift before dragging, but it isn't quite there, yet.
Since
Shift + Press
is toggling the selection it works nicely whenshift + Drag
-ing an unselected/inactive node - but unfortunately it will still deselect when dragging the active node...After tinkering with the keymap I'm unsure if this is something that can easily be worked around. It seems like a more general issue.
E.g.
ctrl + Drag
-ing a node will just select it rather than moving all currently selected nodes with the "invert snap" option. And the only reason pressingAlt
and the dragging works to detach a node is because it happens to not conflict with the selection keymap...But the whole keymap code seems pretty complicated so I might have mssed something.
Thanks for the update! This helps a lot with readability. Would be good to run this by the UI module, maybe someone has a good idea. For me a similar equivalent would be the origin point in the 3D viewport or the sequencer. It's not too bad as it is imo.
I think there is still some tweaking that can be done though. The none highlighted version imo is more important to see clearly than the highlighted one. Right now it's the other way around. Maybe they should both be filled, but highlighted changes the color slightly. We already have the frame highlight to indicate this anyways.
I tweaked the dot a bit to make it more prominent. Will bring it up with the UI module now that 4.0 is in bcon3.
During my attempts to tweak the keymap I've also looked through some of the other editors it seems like
shift + drag
-ing something never actually triggers the transform operator. So while this is not great, it's consistent and changing this probably has to be discussed separately...Just to test the behavior for now I've changed the node editor selection keymap so that pressing
shift
always adds the node to the selection when clicking on it, while pressingctrl
will always deselect it. This is consistent with the behavior of the other selection modes (box, lasso, circle) and works as desired for unparenting nodes, but it's different from all the other editors whereshift + click
is set to togge the selection state.So I'm not sure this is a viable option. But I wonder what's the reason for toggling the selection on
shift + click
rather than having the same behavior as the other selection modes.I couldn't get things to work via the keymap. So I've now added a macro operator mapped to
shift + drag
that first selects the node and then calls the move operator.So now you can hold
shift
even before clicking to pull nodes out of frames.@SimonThommes, I'd like to hear your opinion on the selection behavior when
shift + drag
-ing a node:shift+ drag
-ing extends the selection since is is closer to the "toggle" behavior thatshift
is usually associated with. Soshift + drag
-ing a node will move the dragged node and all other selected nodes.shift + drag
-ing could mimic the "tweak" behavior:Checkout
From your project repository, check out a new branch and test the changes.