Page MenuHome

Nodes: Improve inserting nodes on existing links. (WIP)
Needs ReviewPublic

Authored by Jacques Lucke (JacquesLucke) on Feb 23 2022, 7:22 PM.
This revision needs review, but there are no reviewers specified.

Details

Summary

New Features:

  • Allow inserting nodes directly after using link-drag-search.
  • Allow inserting multiple nodes at the same time (although the auto-node-offset features isn't working well with that yet).
  • Allow inserting nodes that don't have inputs or outputs.

TODO:

  • Get user feedback on the behavior.
  • Fix auto-node-offset when multiple nodes are inserted.
  • Unexpected behavior when alt is already pressed when the transform starts. Might want to consider taking over parts of D12022.

Diff Detail

Repository
rB Blender
Branch
link-attach-improvement (branched from master)
Build Status
Buildable 20707
Build 20707: arc lint + arc unit

Event Timeline

Jacques Lucke (JacquesLucke) requested review of this revision.Feb 23 2022, 7:22 PM
Jacques Lucke (JacquesLucke) created this revision.
Jacques Lucke (JacquesLucke) retitled this revision from Nodes: Improve inserting nodes on existing links. to Nodes: Improve inserting nodes on existing links. (WIP).Feb 23 2022, 7:27 PM
Jacques Lucke (JacquesLucke) edited the summary of this revision. (Show Details)

Thanks for looking at this functionality Jacques!

I'm not a fan of the fact that you can only trigger this from the left end of the noodle that you want to place a node on. Personally I'd like to be able to do this from the middle of the noodle, or at least also from the right end. (Here default behaviour is just disconnecting the link, which makes sense.)
Also I don't like the added potential of annoying mistakes, when the node is accidentally inserted on an existing connection. (Solution for this could be introducing a modifier key for the insertion behaviour. But that should be consistent with how it works elsewhere.)

My proposal of leveraging the Shift + RMB Drag functionality hasn't found a lot of support and has it's issues as well. But I'm not convinced that this here pose the best option.

That said, I do think that this is really important functionality to add regardless of how exactly it ends up working. And as there doesn't seem to be a perfect solution, this might just work.
But I'm open for discussion.

I think this is overall a good improvement over the current behavior and in general worked as expected! :)

To me the "insertion point" for multiple nodes (the exact spot that triggers the activation for the link insertion) was sometimes unclear. At times it didn't seem to work at all:


Also I don't like the added potential of annoying mistakes, when the node is accidentally inserted on an existing connection. (Solution for this could be introducing a modifier key for the insertion behavior. But that should be consistent with how it works elsewhere.)

To me this is a general issue with the automatic node insertion and I would personally prefer it, if inserting and removing nodes from links would both be behind a modifier key.
I would also love it, if they could be triggered when transforming by simply pressing alt. Currently pressing alt before dragging a node allows to remove it from links, but it always felt a bit disjointed to me that I could not trigger that by pressing alt while transforming.

My proposal of leveraging the Shift + RMB Drag functionality hasn't found a lot of support and has it's issues as well. But I'm not convinced that this here pose the best option.

I think the biggest issue about that proposal was that it replaces a convenient way to insert a reroute, which - at least for me - is the thing I insert more often than anything else. Adding the ability to insert arbitrary nodes by allowing another modifier key combination like +alt+RMB-Drag, would probably be useful, and not as controversial.
(I'd propose alt+RMB-drag but that currently detaches nodes from links by default and is used by Node Wrangler, as well...)

  • use alt to disable insertion on link
  • slightly improve heuristic for inserting multiple nodes