ability to promote Inputs to Local variables for node groups.
Description of the problem:
even with reroute nodes and frames, organizing complex--or even relatively small ones-- node trees can often be too complicated (see image one) when a noodle (or more likely more than a singular noodle) has to be pulled across large distances and criss-crosses other noodles and nodes.
Current workaround and its drawback:
what i found to be a good way to avoid having to drag a noodle across too large a distance, is to copy the input driver into a node of the same type and connect that into the node that the input references. (images 2 and 3).
the result while negligible in this example, i believe is well illustrated and can be easily applied for larger node groups (image 4)
please ignore my poor editing skills, i just want to point out that even in a limited fashion, it already makes it much clearer to follow visually what is happening.
to be clear, this IS something very similar to my proposal, but it has two major drawbacks:
one: you cannot follow this approach if the input of the node group has something connected to it.
as it stands, using the scale input works with this approach (image 5)
but having a noodle going into that input, doesnt (image 6)
the second problem is more subjective, but having to use a workaround just doesn't feel cohesive enough as you'll have to manually search for a value that matches your input's type and apply constraints and drivers manually
proposal:
for this, I propose for blender to automatically promote the input values of a node group to a local variable that exists only within the context of the group that matches the type of the input.
this way, whenever you are inside of a node group, you can press shift + a and search for the name of the input to add a "local variable" node that matches the input. of course, in order to do this you would need to enforce unique input names.
a good point of comparison could be unreal engine's visual scripting blueprints.
i hope this explanation was clear. if you have any thoughts or comments on this, i'd love to hear them.
1 Comment
You can duplicate the Group Input node and use it anywhere you want:
You can also select it and hit Ctrl H to hide the unused sockets to make it look tidier: