Node Align | Addon for Organizing Nodetrees (Blender 3.0+)
An add-on that provides tools for organizing Blender nodetrees.
Installation
Download the .zip file from the release page and install via Edit > Preferences > Addons > Install
. Blender should automatically recognize the file as an add-on.
Supported Versions: Blender 3.0 and up
Usage
Once enabled, the add-on should create a menu category within node-related workspaces - (shaders, geometry nodes, compositing, etc.).
Within the menu, the following functions are available:
>
Align Nodes
- Aligns nodes according to a specified direction.>
Distribute Nodes
- Evenly spaces nodes along a specified axis, also automatically aligns them along the opposite axis.>
Evenly Space Nodes
- Evenly spaces nodes along a specified axis, while keeping their positions in the opposite axis.
Preferences
Options:
>
Emboss Operator Buttons
- When enabled, it ensures the active node (if one is selected), remains on the same position when distributing nodes.>
Enable Conform to Grid Snapping
- When enabled, it conforms nodes to the grid during alignment/distribution when snapping is enabled in the node editor.>
Hide Align Center and Middle Operators
- Due to the lack of icons and hotkeys that match with the rest of the alignment operators, the Align Center and Align Middle operators are set to be hidden as long as this option is enabled.
Display Mode:
>
Sets how the operator buttons are displayed in the N-panel.
(Options: - Text, Icon, Text and Icon)
Padding:
> X/Y
- Sets the gap size between nodes when distributing them on the corresponding axis.
Anchor on Active Node:
>
Toggles whether the active node remains in the same position when the operators are applied. Anchoring forAlign Nodes
,Distribute Nodes
,and Evenly Space Nodes
are toggled separately.
Preferred Alignment:
> Horizontal
- Sets how nodes are aligned when distributing horizontally.
(Options: - Top, Middle, Bottom)
> Vertical
- Sets how nodes are aligned when distributing vertically.
(Options: - Left, Center, Right)
Import/Export Preferences:
>
Allows current user preferences to be read from/written to an external file.
Useful for syncing settings across multiple instances of this addon.
Hotkeys
The following are the default hotkeys for the addon:
Align Nodes:
>
Align Left
: Ctrl + Left Arrow>
Align Right
: Ctrl + Right Arrow>
Align Top
: Ctrl + Up Arrow>
Align Bottom
: Ctrl + Down Arrow
Distribute Nodes:
>
Distribute Automatically
: Ctrl + NumPad 1>
Distribute Horizontally
: Ctrl + NumPad 2>
Distribute Vertically
: Ctrl + NumPad 3
Evenly Space Nodes:
>
Evenly Space Automatically
: Ctrl + Alt + NumPad 1>
Evenly Space Horizontally
: Ctrl + Alt + NumPad 2>
Evenly Space Vertically
: Ctrl + Alt + NumPad 3
Changelog
v2.0
- - Added "Evenly Space Nodes" operators, for spacing nodes evenly on a specified axis while keeping their relative positions on the other axis.
- - Related operators are grouped under corresponding collapsible panels in the N-Panel Sidebar.
- - User Preferences (excluding hotkeys) can now be imported/exported via JSON.
- - Added a Preferences panel in the N-Panel Sidebar, for easier access to user preferences when in the node editor.
- - Added a callable context menu for Node Align operators.
- - Each operator type (Align, Distribute, Evenly Space), now have separate toggles for whether their calculations should be anchored on the active node or not.
- - Added support for node editors from other addons.
(Tested on: Animation Nodes, Sverchok, Malt, but in theory, any node editor should now be compatible with Node Align's functionality.) - - Fixed bug where nodes don't properly align on non-default UI resolution scales.
(Note: There is still a tiny bit of imprecision left when the UI's Resolution Scale is set to anything that isn't 1.00 or 2.00. This seems to be a limitation of Blender's coordinate system for nodes, as measures have already been taken on the addon's part to reduce floating-point inaccuracies. )
(For the average user: This simply means that if you're using non-integer UI resolution scales and you want pixel-perfect alignment, you may have to call the alignment operators twice. As the first application of the operators would only result in "almost-exact" alignment.)