Details

Medium:
Digital 3D
Custom Tool/Modifier
All Categories:
3D Modeling
Graphic Design
Production Art
All Tools/Software Used:
Blender

Download for free on my Itch.io page: https://evankurtzart.itch.io/clgen

At its core, the Channel Letter Generator converts either the curves from a font file or the curves from an imported SVG file to a mesh which gets processed into the returns, face, and trim.

Anatomy of a Channel Letter (Trim/Cap Style Varies) - litasign.com

What is a Channel Letter?

Channel Letters are one of the cheapest ways to attract attention at storefronts all over the world. Their production has become pretty streamlined over the years, so they're real simple things... The challenge is the actual real world part—getting them installed!

Node Group Curve to CL Parts

There are four basic parts that we're concerned about at the beginning of the node tree: the back, the return, the face, and the trim.

The very first node in the chain is where the text input from the modifier gets processed (the end result of which is just a flat 2D mesh, which basically becomes the back piece). We can generate everything we need from it, so we take care of any scaling and positioning needs before doing so.

To make the returns, we can extrude forward from the back pieces to generate both the returns and the faces together, which we can separate into two separate meshes by isolating the sides from the top/bottom. Making the trim is similar to this extrusion, (and hopefully I can provide an updated version soon) so I wont go over it here.

Node Group Create Multiple Raceways

This is one of the last node groups in the whole node tree (and the one that took me the most time to figure out). I sort-of-kind-of know how Named Attributes work now, but like... not totally.

An issue that became apparent with some logo lockups when I was making the SVG modifier lied in the vertical stacking of text. How do you procedurally generate a raceway for each (if any!) line of text?

My answer: just generate up to 5 raceways and expose the position and size controls to the modifier for manual placement.

I'm sure if you knew what you were doing (or used a newer version of Blender(5.1 is already in Beta)) you could do it recursively and sample the mesh to guess optimal placement, but I just wired up a'bunch'a switch nodes... and it seems to work!

The way we're getting away with all this is with delicate use of Fields

Fields Explanation - The Blender Foundation

So each generated raceway(s) can be individually controlled by assigning them Named Attributes at the end of the node tree, then using those Named Attributes to control certain aspects of the new meshes that we "instantiate," at the time we generate them.

For instance, to generate multiple raceways, we first need to define what it is we want to generate, determine how many copies to make, determine where to put them, and expose position and scale controls to be independently adjusted at runtime from the modifier tab.

The actual last step is to apply materials and color overrides to said materials, but by that point, all the geometry has been generated.

Videos:

3D Modeling
Graphic Design
Production Art
Blender
Peace symbol