Tools of the trade
I wanted it to do it in realtime, so I decided to go with Unity since that is the game engine I have used the most. But most of what I had in mind could be done in any engine.
To sell the clay feeling, I wanted to use PBR, and that meant some texture creation. You could probably find some great clay textures. Still, I wanted to create everything from scratch, Substance Designer has a workflow that I think is great and a pleasure to use.
Creating the Material Textures
After spending a little to much time on Youtube watching Claymation. I concluded that what gives those old animations their charm, and handcrafted aesthetics, is the visible fingerprints and how the oil from them catches the light. So this is where I opened up Substance Designer to create some oily fingerprints.
After a lot of trial and error, I had something that looked like a fingerprint, at least good enough for what I needed.
Here is where most of the magic happens. After that, it’s mostly about adding some noise and masking. As for the base, I went with these nodes as a starting point.
A light grey color for nice clay-like base smoothness. The fur I thought would look like the clay has been folded again and again as you work with it. Then we have some gaussian spots to represent dirt and other particles getting into the clay. And last but not least, some white noise represent the actual sand in the clay.
We blend these and scatter the fingerprints all over it, and we end up with something that is clay-like.
Putting it in a shader
Then it’s over to Unity to create a shader to animate and make our material come alive. The standard shader would work if I did not want some other effects on my clay shader. So I created a Surface shader as a base, but it is missing some of the features we want to use, so the first thing is to add those.
The first thing you will notice is that floats represent metallic and Smoothness. So I need to change that to use the textures created earlier. we do that in the surf function like so
and also change the properties to be sampler2D instead of float. Normals are also missing, so we add those as well.
And that is everything that is missing from Unity’s Standard Shader, so time for the special effects I wanted. First, I wanted the texture to change every few frames like the clay was repositioned. So to do this, I decided to scroll the UV’s to a random position. Some random function was needed, so I threw in a relatively simple standard one.
And to update, I wanted that to happen at a nice interval.
That looked good, but the surface is way too smooth. To fix that, I decided to modify the vertex positions using a cloud texture.
Now it has the rough handcrafted aesthetics I wanted. To test it out, I decided to make a small game.
I hope this helps to spark someone’s imagination.