Adding Functionality to Nodes in SD

Rosen Kazlachev has published a post on playing with nodes in Substance Designer.

Take a survey

Rosen Kazlachev has published a post on playing with nodes in Substance Designer. Actually, there is a number of ways to add additional functionality, so let’s learn some tips from the artist. 

Here is a little piece to get you interested:

Back for some FX-map tips. This time- adding additional functionality to existing nodes. Our target is the Splatter Circular. I won’t be going into details how Allegorithmic set it up, but I’ll try to explain how to identify what you need to modify and how, to actually make our improved node.

So, what are we doing? We want to control the Pattern Amount by our ring number and as a bonus- to explicitly state the Pattern Amount per ring(going up to ring 5 only, didn’t think more was necessary). Our first control will be |Patter Amount * ring number|,giving us 0*n, 1*n, 2*n, 3*n and so on. I could’ve added a check not to have that 0 in there, but it still works fine without it, we just lose our first ring. The other control is pretty self explanatory, we set the Pattern Amount for each ring ourselves. That’s what the UI of my edited Splatter Circular looks like:

First thing we need to do- study how the node is set up. It’s not one of the easiest nodes and has quite some math in it. Starting top to bottom inside the FX-map is the way to go. Parameters set in topmost nodes can be re-used in bottom nodes. So starting from the top is the easiest way to see what we have available. As you can see, we have an Iterate, followed by a Switch, then 2 other Iterates and a Quadrant at the end. As I said, we won’t be going too much into the mathy stuff for the whole node. Our goal is to find where the Pattern Amount calculations are and get our math in there.

The top Iterate basically sets some variables for later use. The Switch does some mathy stuff, but we don’t have the Pattern Amount we need in here, passing by, nothing to see here people.  Then we have an Iterate with only a ring_amount inside, so that’s not it either. Then the final Iterate has what we need on the bottom left. See? No need to even go into the Quadrant to expect it. Here at the top, we can see the variable we need being set- ringNumber and ringNumberInverted.

Rosen Kazlachev 

You can find the full article here.

Join discussion

Comments 0

    You might also like

    We need your consent

    We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more