Scale Nodes

Scale: Biased


Hotkeys

Ctrl+Shift+Right Arrow, Ctrl+Shift+Left Arrow, Ctrl+Shift+Up Arrow, Ctrl+Shift+Down Arrow, Ctrl+Shift+Plus(+), Ctrl+Shift+Minus(-), Ctrl+Shift+Home

About

This script allows you to quickly scale nodes with a bias to one edge of the selection. The scale amount is based on your node graph zoom level, so if you are zoomed out a lot, it will scale a lot, and if you zoom in close, it will scale a little. The Bulldozer Physics engine will push neighbouring nodes out of the way. The bias can be changed by opening the settings

How It Works

Increase Width Biased: Select nodes and press Ctrl+Shift+Right Arrow to increase their width away from the left side of the selection

Decrease Width Biased: Select nodes and press Ctrl+Shift+Left Arrow to decrease their width towards the left side of the selection

Increase Height Biased: Select nodes and press Ctrl+Shift+Down Arrow to increase their height away from the top side of the selection

Decrease Height Biased: Select nodes and press Ctrl+Shift+Up Arrow to decrease their height towards the top side of the selection

Increase Width & Height Biased: Select nodes and press Ctrl+Shift+Plus(+) to increase their width and height away from the top left corner of the selection

Increase Width & Height Biased: Select nodes and press Ctrl+Shift+Minus(-) to decrease their width and height towards the top left corner of the selection

Open Settings: Press Ctrl+Shift+Home to change the side to bias to. Changing from left to right or top to bottom will invert the above hotkeys to maintain logical consistency. Change if scaling uses bulldozer physics or not (More on Bulldozer Physics below)

Don’t Change Nested Backdrops Scale: When enabled if you have smaller nested backdrops they will not change scale, and just move with the larger scaling backdrop

Demo Video

Scale: Center


Hotkeys

Shift+Right Arrow, Shift+Left Arrow, Shift+Up Arrow, Shift+Down Arrow, Shift+Plus(+), Shift+Minus(-)

About

This script allows you to quickly scale nodes from the center of the selection. The scale amount is based on your node graph zoom level, so if you are zoomed out a lot, it will scale a lot, and if you zoom in close, it will scale a little. The Bulldozer Physics engine will push neighbouring nodes out of the way

How It Works

Increase Width Center: Select nodes and press Shift+Right Arrow to increase their width away from the center of the selection

Decrease Width Center: Select nodes and press Shift+Left Arrow to decrease their width towards the center of the selection

Increase Height Center: Select nodes and press Shift+Up Arrow to increase their height away from the center of the selection

Decrease Height Center: Select nodes and press Shift+Down Arrow to decrease their height towards the center of the selection

Increase Width & Height Center: Select nodes and press Shift+Plus(+) to increase their width and height away from the center of the selection

Increase Width & Height Center: Select nodes and press Shift+Minus(-) to decrease their width and height towards the center of the selection

Open Settings: Press Shift+Home to change if scaling uses bulldozer physics or not (More on Bulldozer Physics below)

Don’t Change Nested Backdrops Scale: When enabled if you have smaller nested backdrops they will not change scale, and just move with the larger scaling backdrop

Demo Video

Bulldozer Physics


About

In BuddySystem 1.05 a new 2D sweep based continuous collision detection (CCD) physic engine was added called “Bulldozer,” which the scale and move scripts can now use to push neighbouring nodes out of the way, expand or contract backdrops based on padding. For scaling this is enabled by default because I ran out of hotkeys to bind a fast vs physics version to, like with the Move hotkeys. I think in most cases this has been fine, but if you find it slow to scale, or you don’t want the extra physics logic, you can disable the physics engine in the Settings menu, and it will go back to the older faster model

How It Works (Use the Open Settings Hotkeys mentioned above)

Enable Debug Mode: This will turn on debug mode for the physic engine. It draws the sweep area, primary/secondary movers with backdrops, and prints info for debugging

Purple BBox Bystanders: Draws additional backdrops around nodes that are seen by the simulation but are not part of it yet. This is slow

Verbose Debug: Prints a lot of extra debug info. This is very slow

Clean Up Debug Nodes: If the automatic clean up fails for some reason, you can use this to remove any lingering debug backdrops

Use Zoom Level For Size: When enabled, movement and scaling size dynamically adjusts based on the Node Graph zoom level

Zoom Multiplier: Base multiplier for the move/scale step distance

Max Iterations: Maximum number of collision passes allowed. Higher values resolve complex collisions better, but are slower

Max Step Size: Maximum distance nodes can move in a single sub step. When set to 15, if you move a node 150 pixels, the engine runs 10 sub steps

Treat Primary Movers As One: Groups selected nodes into one fast bounding box for the simulation. The same thing as if they were on a backdrop

Node Padding: Padding added around standard nodes to push bystanders away

Backdrop Padding: Padding added around backdrop nodes to push bystanders away

Group Loose Nodes: If nodes are within this distance, group them together to speed up physics calculations

Group Loose Backdrops: If backdrops are within this distance, group them together to speed up physics calculations

Side Padding: Side padding added to the sweep area

Rear Padding: Rear padding added to the sweep area

Forward Multiplier: The amount to expand the sweep area forward based on forward movement

Forward Base Pad: Base padding added to the front of the sweep area

Forward Min Pad: Minimum length for the forward sweep area. If this is set to 0 the Forward Multiplier determines the sweep area. If it’s not 0 the Forward Multiplier does nothing, unless it would have exceeded the min pad value anyways. The Forward Multiplier was the original sweep area logic, but in testing I found using a fixed min pad more predictable (for now)

Center Scale Min Pad: Minimum length for the center scale sweep area. Works the same as Forward Min Pad, but that value was too large when used in all directions, so I split it for optimization

Demo Video

Version History

More!


Download the full BuddySystem, including all the scripts & tools here!

Buy Me A Coffee?

The BuddySystem is free!… but takes a lot of work… and work needs coffee

3% Cover the Fee