material-maker icon indicating copy to clipboard operation
material-maker copied to clipboard

[Proposal] Automatically chain nodes placed on top of existing connection

Open fccDunce opened this issue 5 years ago • 7 comments

Feature/enhancement description:

Perform automatic chaining of nodes when dropped on top of connection wire.

Example- A Perlin Noise node's output is connected to a Warp node's input. Dragging a new Tones node over the connection wire highlights it, and if dropped the nodes are automatically rewired such that the output from the Perlin noise node is connected to the input of the Tones node, and the output of the Tones node is connected to the Warp node's input.

Two extra behaviors to complement it: a) Deleting the middle node should keep the connections when possible. This may be the desired/expected behavior but can also be performed only when holding down a modifier key.

b) Right-clicking a connection wire should launch an "add node" command, and automatically place the new node at the middle of the existing connection.

(Similar behaviors already exists in several other node-based editors.)

fccDunce avatar Aug 24 '20 14:08 fccDunce

That would be great, but I think none of those behaviors are supported in Godot's GraphEdit. These will definitely implemented, but I cannot guarantee this will be short term improvements.

RodZill4 avatar Aug 24 '20 20:08 RodZill4

What is the status here? I believe that even a small step in this direction could be absolutely groundbreaking. Therefore, for example, the feature of Blender can be taken as a model. If you observe the absolute basic interaction of the user with nodes, connecting new nodes is a constant repetition and costs unnecessary time and clicks.

ikonnow avatar Nov 07 '22 03:11 ikonnow

That would be great, but I think none of those behaviors are supported in Godot's GraphEdit. These will definitely implemented, but I cannot guarantee this will be short term improvements.

So there is no optimization or automatic connection of the nodesockets until today? I find that really hard to believe... 🤔

ikonnow avatar Nov 07 '22 22:11 ikonnow

That would be great, but I think none of those behaviors are supported in Godot's GraphEdit. These will definitely implemented, but I cannot guarantee this will be short term improvements.

So there is no optimization or automatic connection of the nodesockets until today? I find that really hard to believe... 🤔

Connectiung programmatically is possible, but there's no way of detecting a node has been dragged into a connection (AFAIK).

RodZill4 avatar Nov 09 '22 07:11 RodZill4

What is the status here? I believe that even a small step in this direction could be absolutely groundbreaking. Therefore, for example, the feature of Blender can be taken as a model. If you observe the absolute basic interaction of the user with nodes, connecting new nodes is a constant repetition and costs unnecessary time and clicks.

I generally connect into an empty space to create (and automatically connect) nodes. that's different from Blender but better than nothing.

RodZill4 avatar Nov 09 '22 07:11 RodZill4

What is the status here? I believe that even a small step in this direction could be absolutely groundbreaking. Therefore, for example, the feature of Blender can be taken as a model. If you observe the absolute basic interaction of the user with nodes, connecting new nodes is a constant repetition and costs unnecessary time and clicks.

I generally connect into an empty space to create (and automatically connect) nodes. that's different from Blender but better than nothing.

True, this is super good and is used almost "constantly" (probably not only by me), - in blender a small + is displayed for this, as soon as you pull a cable from a Nodesocket into the "empty". To briefly describe my observation of the current function: There is already a "highlighting" of the connection as soon as connected nodes are clicked/moved, which is why I assumed that the connection can be controlled individually and triggered by nodes that are moved over a connection (just like the logic in blender). Anyway, I'm curious, because in fact you do that all the time - you connect nodes and realize, oh, I need another node in between, then comes the "rewiring".

ikonnow avatar Nov 09 '22 08:11 ikonnow