Miniature Sculpting in Blender: How to Use a Texture to Deform a Mesh When All You’ve Got Is a Material

3D model of Hyolee

Yesterday I finished up a 3D print model of Hyolee from GearHead (which will be uploaded to Patreon soon, then my itch and Cults3D shops later). I’ve been working on these games for over 20 years now, and all that time I’ve wanted miniatures of my creations- which, thanks to 3D printing, is now a possibility. Anyhow, the bit of this miniature that gave me the most trouble was adding the knit texture to her dress. First I tried drawing the cords by hand, but that was a Bad Idea. After that I tried using a texture brush in sculpt mode, but that doesn’t work great for textures that need to be evenly applied to an entire surface.

Eventually I learned how to apply a texture so it physically deforms the mesh it’s attached to, but it’s not as simple a process as I hoped it would be. So now I’m writing this blog post in the hopes that my onerous journey of pain and suffering experience might be useful to other sculptors. To demonstrate the steps involved I’ll be making a miniature of the Servitor, a synth monster from GearHead Caramel.

Two servitors protect the city core in a dungeon in GearHead Caramel.

I chose this monster for the tutorial because let’s be honest- it’s just a d20 with legs. So I start with a ico sphere with 1 subdivision.

Next, I choose a texture to apply to the model. I want to retain the geometric shape but give it an organic looking skin. I found this texture on pixabay.com/:

I add a material to the ico sphere, then set the Base Color of the material to an image (by pressing the circle that doesn’t really look like a button, but trust me it’s a button, to the left of the color selector). Then I set the Vector to “Generated” and the mapping method to “Sphere”, resulting in the following:

This looks pretty good to me as an organic texture. But right now it’s not a texture, it’s a material. Materials and textures are different. I don’t know why they are different. I have very little experience with 3D graphics and just want to make tiny plastic toys. Is that too much to ask? No, no it isn’t. But it is going to take a bit of work.

For the next step, I’m going to prepare the ico sphere to accept the texture. Note that we’ll be using the Deform modifier, and the Deform modifier only works with the vertices the model already has (in this case 12). You could use the Subdivision Surface modifier to split each face an arbitrary number of times, but instead I’m heading into Sculpt mode to Remesh the model with a Voxel Size of 0.05m. This will provide us with a metric crapton of vertices, which will come in useful later.

Go from Sculpt mode to Edit mode and UV/unwrap the ico sphere. You can use the regular unwrap menu item or one of the fancy ones. Don’t ask me; I don’t know the difference.

Alright, now our prep work is done. Next we need to convert our material to a texture. You’d think this would be one of those things that is a simple menu option. Oh, you innocent fool, you sweet pixel art child. We haven’t even started that process yet.

Step one: switch your render engine from Eevee to Cycles. Eevee doesn’t do this.

Next, go into the Shader Editor, where we will find the material we just created waiting for us.

We’re going to have to do a few things here. First, get rid of that Principled BSDF node and connect the texture directly to the material output. The Principled BSDF handles lighting for your scene, but we want to apply this texture without concern for lighting. We also need to add a new Texture/Image node with a new image- make sure the image is pretty big (I selected 4096 x 4096; I heard there’s some advantage to using a power of 2 but dunno why) and click the 32 bit float box.

Add a UV Map node, select the UV Map of your ico sphere (which should just be named “UV Map” unless you renamed it) and connect this to the Vector input of the Image Texture. Then, open up the Scene panel over on the right, and with the Image Texture node selected press the “Bake” button.

When the baking process finishes, you can find the baked texture in the image editor. You will note that it is quite different from the texture you started with. Save it to disk.

Head back into the 3D view. Create a new texture, and load the baked texture you just created (NOT the original texture! That’s important!).

Add a Displacement modifier to the ico sphere. Set the coordinates to UV and the UV Map to the UV Map created above (which, again, should be named UV Map unless you renamed it). Bam! Immediately the cube is deformed to match the texture, with bright/white areas being raised and dark/black areas being recessed.

You can play around with the Strength and Midlevel values until you are happy with the thickness of the deformation. In general, I try to make sure that texture extends at least 0.3mm above the surface. Details on miniatures should be exaggerated, so when in doubt go thicker than you think you need.

Also: you’ll probably notice that using a straight black and white texture resulted in sharp deformations. For a more organic look, I should have used a texture that has smoother color gradation. For example:

I’m not entirely happy with this texture either, but I’ve got some more to try. Anyhow, that is how you transform a material to a texture to a mesh in Blender3D. Hooray!

GHC v0.820: War on the Highway

Me standing in front of the Unicorn Gundam in Tokyo in 2017.

I’ve just released v0.820 of GearHead Caramel, featuring the new Challenges system and the War on the Highway scenario. You can get it from itch, GitHub, and Patreon.

New Challenges for GearHead Caramel

I made a video this morning to show off the new procedural narrative system I’m developing for GearHead Caramel. The Challenge system is a further refinement of the Mechanical Tarot, which was based on Smart Terrain Causality Chains. Its big difference from those systems is the fact that instead of linking interactions to lead to a desired outcome, the challenge system can be used to construct scenarios with interactive parts and multiple or even no preset endpoints.

Here’s how it works. A Challenge can be defined in the scenario generator. This Challenge describes some aspect of the world that the player character can interact with- this is usually going to be a need or want that the PC’s actions can fulfill. The Challenge is described in sufficient detail that other parts of the adventure and the scenario generator can add opportunities and resources which the PC can use to complete the Challenge. Challenges can be linked, such that completing one Challenge is necessary before another Challenge is unlocked.

The completion (or defeat) of a Challenge will typically alter the game world directly. Political alliances may shift. The player character may gain friends or enemies. The state of a city may be altered, such that a previously wealthy town in thrown into ruin or a tyrannical ruler may be dethroned (or defenestrated). There may be unintended consequences depending upon which Challenges are completed and which are not.

In the video, and example is shown of two deadzone communities at war with one another. The war itself consists of two challenges- C1War and C2War, which control city 1’s military actions against city 2 and vice versa. The scenario creator adds a random factor into the war- a casus belli, the reason why the two towns are fighting. This reason may load its own challenges- maybe a diplomacy challenge to argue for peace, but that might not be possible unless other factors are addressed first. Maybe City2 can’t grow enough food and has attacked City1 to capture some arable land. Maybe the leader of City1 has their sights set on building a small wasteland empire and City2 is just the first city in their sights.

This brings me to another big difference between the Challenge system and the Mechanical Tarot- while the Mechanical Tarot attempted to build story components that could be used universally, Challenges divide the labor between the Challenge class (describing a very specific scenario) and the Opportunity/Resource events (which handle the mechanics of Challenge interaction, are mostly universal, and draw their specific details from the data contained in the Challenge object). The Challenge object itself is primarily a description of what’s going on. It’s the other parts of the system which bring that to life.

Anyhow, this is still a fairly new system, but I think it shows great promise. I plan to make a new release featuring the Challenge system soon after a bit more testing and polishing.

GearHead Caramel Year in Review

A BuruBuru mecha stuck in the snow.
A BuruBuru stuck in the snow.

It’s nearly the end of 2021, so I’d like to tell you about everything that has happened with GearHead, my other projects, and me personally in the past 12 months.

2021 was the first year that I really treated GearHead as a (sort-of) business project instead of art for art’s sake. One of the reasons for this is that because of Covid, I haven’t been attending conventions and therefore haven’t been making much money from comics since 2019. Though I did get a six cent royalty check from a book that I made almost twenty years ago. That one’s getting framed and going on the wall.

Between Patreon and Itch, GearHead earned close to $1000 this year. Most of that money was spent on GearHead related stuff- renewing my web hosting and domain names (around $200 for two years), hiring artists (Thomas Noppers and Nicky Rodriguez created loading screens; Lord Erin drew the pilot suits for all body types; around $400 total), registering a Steam page ($100 exactly), and hiring programmers to speed up some time-critical code (around $200 IIRC). Patreon brought in around $400 of that thousand. I don’t have a lot of patrons, but their support has been a huge help.

One of the reasons I don’t have a lot of patrons is that I have been awful at fulfilling rewards consistently. Sorry about that. I am thinking about changing the reward tiers for next year; possibly changing the GH Variations level to a 3D printer model reward. Making 3D models of the GearHead mecha is something that advances rather than distracts from GH1/2/C development since I have been adding mecha to GHC as I do the models for them and I am working on a method to use the 3D models to make sprites for all the mecha in GH1/2. Hopefully offering 3D print models will attract a few more patrons.

3D printed model of a BuruBuru mecha and a My Little Pony toy that I think we got from McDonalds.
.Friendship is mecha.

I will also mention that when the Steam page finally goes up, all patrons will get a Steam key.

Right now I’m working on a pitch document for a new comic. Reactions from the friends and other cartoonists I’ve shown it to has been good, so I’m going to see if I can find a publisher. I am also working on a new edition of Ataraxia Digest to be titled “Everyday Apocalypse”. This will be a collection of both new comics and retouched/colored old comics. I hope to get it finished before the start of the spring semester.

In personal news, my gouty foot is getting better. My OCD is remaining at a manageable level. My executive functioning isn’t functioning as well as I would like but in year 2 of Covid I’ll take what I can get. My family has a hamster now; his name is Peanut. My son is learning programming and told me last night that his ambition is to make a game more popular than GearHead; I told him that shouldn’t be a problem.

And that’s about it. May the new year bring us all good times. Happy holidays and merry new year!

GHC v0.810: Black Market Blues

GHC_BlackMarketRules

GHCaramel v0.810 has just been released. A lot of the work this time around was under the hood- things have been refactored and updated to make future development (especially of the scenario generator) easier and less bug-prone. The big visible changes this time around are the new Black Market Blues scenario for DeadZone Drifter, the fact that you can edit your character’s appearance, gender, and name any time from the FieldHQ menu, and also the fact that gender is now completely customizable. I will note that Caves of Qud beat me at being the first Roguelike with fully customizable gender by a couple of weeks, but it’s kind of neat that we both did it in the same month. If I had known what Brian was planning I would’ve made a v0.805 release earlier.

GHC_CustomGender

You can download v0.810 from GitHub, itch.io, and Patreon.

GearHead Caramel v0.800: Not a Roadside Picnic

I’ve just released a new version of GearHead Caramel. The big change this time around is random world map encounters-instead of fighting the same old foes on each stretch of road, there are now a bunch of different events that could happen. Other changes include more characterization for lancemates and the ability to make some powerful enemies.

You can buy the game from itch.io, or download it for free from Patreon or GitHub.

GearHead Caramel Narrative Trailer

I have just finished making this narrative trailer for GearHead Caramel. All the backgrounds are hand painted with acrylics on watercolor paper; the mecha were drawn in Gimp and animated using Blender. I’d kind of like to choreograph and animate a decent mecha action scene someday… after I recover from the making of this video.

GearHead Caramel v0.700: Plastic Island Panic

The scenario card for Plastic Island Panic. A seaweed-covered Chameleon mecha is surfacing near Naugalon Island.

I’ve just uploaded a new release of GearHead Caramel to github and itch.io. The big change this time around is the scenario editor- you can now create your own adventures for GearHead Caramel without needing to know Python. And if you do know Python, you can edit your adventure to add stuff that the scenario editor can’t handle yet. This release also includes the test scenario I created with the editor, Plastic Island Panic. The blueprint file is included so you can try modifying the adventure yourself.

As usual, try it out and let me know what you think.

GearHead Caramel Scenario Creator

A picture of the GearHead Caramel scenario generator.

It’ll be easy, I thought. Just throw some widgets together to link boilerplate code and you’ll be finished in a week. I really need to stop listening to my stupid brain.

Anyhow, I’ve been working on a GearHead Caramel scenario editor! In theory, this should allow players to create scenarios for GearHead Caramel without knowing a lick of Python. It should also allow player-created scenarios to be distributed without the intrinsic security problems of distributing Python scripts. The next release of GearHead Caramel (hopefully soon…) will have an early alpha version of this editor. Everything seems to be working, and it is possible to create simple scenarios in it. The big obstacle for now is the interface, which just lists every adventure component in an unsorted tree view and is therefore not very user friendly.

As soon as the scenario I’m currently building via the editor is somewhat playable, I plan to make a release. If you want to try the editor before then you can download the source from GitHub and try from there.

GearHead Caramel Cinematic Trailer

GearHead Caramel now has a cinematic trailer, created by the mega-talented cartoonist and animator Matt Sandbrook.