Because the art of code allows us to code the art
Most programmers are probably unaware of how large a market waits for them in the world of 3D art.
We usually think of art as something more creative rather than technical, and it is easy to overlook the huge potential for automation, scripts, addons and procedural materials.
In my case, I have always loved the way the Max Payne games used 2D, comic-like cutscenes to advance the storytelling — and it just so turns out that Blender makes it possible to create your own. Here is the example I built, with dynamically-resizing speech bubbles that can be transformed in the 3D space:
Pretty nifty, isn’t it? To make it, I used freely available assets, the only thing I spent money on was the comic shader, because it’s absolutely worth the 20 bucks. That is like two hours at minimum wage, and it easily saved me that much just on this project alone.
To make the speech bubbles, I made use of the procedural “Geometry Nodes” that are pretty new to Blender. They allow you to visually script a ton of things that range from simple to mind-boggling (here is a guy who made a procedural abandoned-buildings-generator).
In essence, the process I used is based on a node called “bounding box”, which dynamically generates the smallest possible box that still surrounds all elements of the parent object. The object in my case is the text — also dynamic — which is a Blender feature that can be converted to 3D meshes in all kinds of fun ways.
With this bounding box, I could then create a plane, transform it to sit slightly below the text, then assign two separate materials for the text and speech bubble background.
I made the materials configurable from the outside, as well as the number of displayed characters based on a percentage value. This last part allows me to animate the text boxes, getting a typing effect for free that I did not even plan to include — just a side note of watching tutorials on text manipulation.
In the same way, I made speech bubbles and thought bubbles, with arrows pointing to the left or right. They can be fed up to three lines, and I did some if-then-else fuckery to work with different scale multiplicators based on whether all three lines are filled with text or not.
At the end of the day, this project was one of the most fun ones I have attempted, be it in regular programming or in 3D art — not to mention that it turned out successful.
The coolest part is that now, I can create comics all in Blender, both animated and static, without even needing another tool. And most importantly, being able to rotate and move the boxes in the 3D space allows for some really cool effects like parallax or making the bubbles fly through open windows and the like.
A lot can be done with this, for example, speech bubbles that hover over characters’ heads and follow their movements.
Here is a video tutorial showing the node setup in Blender: