Graph Formatter - Arrange Blueprint nodes automatically

Marketplace link Graph Formatter

Description This plugin offers you the possibility to arrange graph nodes automatically, including Blueprint, Material, and SoundCue.
It will place the nodes layer by layer and reorder the nodes in layers to minimize the crossing of wires.

Technical Details Base on the Layered graph drawing algorithm, this plugin do cycles removal, layering, ordering, and coordinate assignment to the GraphEditor graph.
It can deal with comment nodes (by collapse comment node into a single node with pins setup), and multiple isolated graphs (place graphs vertically evenly)
Currently, it support two coordinate assignment method: “Evenly in layer”, “Priority Method”.
“Evenly In layer”, simply place nodes in a layer evenly, don’t consider pins position.
“Priority Method”, use the in and out degrees of a node to determine the position of the node (make links as straight as possible).

Change log v2.0 (25/03/2019)
[INDENT=2]* Added “Priority Method” positioning algorithm.[/INDENT]
[INDENT=2]* Use self defined graph data structure instead of UEdGraph to avoid crash when remove “Create Event” node.[/INDENT]
[INDENT=2]* Added SpinBox and ComboBox on ToolBar to alter settings quickly.[/INDENT]
v1.0 (12/03/2019)
[INDENT=2]* Initial release.[/INDENT]

Future work Improve positioning, add this method “Fast and Simple Horizontal Coordinate Assignment”.

This is an awesome plugin, thanks for releasing it for free. Do you know if maybe you can integrate with the GraphViz library to get even better placement of nodes?

Hi, I have heard of GraphViz before I write this plugin. Since I didn’t know much about GraphViz, I prefer to implement the graph layout algorithms natively in UE4.
Better positioning algorithm (Fast and Simple Horizontal Coordinate. Assignment. Ulrik Brandes and Boris Köpf.) will be add in the next update. This method will produce a balanced and compacted result.

Very cool, really looking forward to it. I can’t believe you’re doing this for free. Thanks again for the great tool!

By the way, even if you don’t want to use the library, there are lots of great papers listed on the GraphViz site here you might be interested in. The dot layout engine for GraphViz seems to produce really good results and they have a paper listed there explaining how it works. The algorithm you found might be even better though, you seem to know more than me about this stuff, lol.

EDIT:
There are some good algorithms available in the Boost Graph Library. You might be able to adapt the source for some of the things in there to be useful for UE4 graphs.

I like this plugin but I usually have my nodes very close to each other, is there a way to set the spacing to lower than 100?