A while ago, I created a method of rendering out fixed direction Normal and Depth information from 3D models in milliseconds, rather than the seconds or tens of seconds that it would take using most common methods. That might not seem like a lot, but if you start rendering out animations, those seconds stack up.
I thought that I would mostly use this technique to make brushes and details for texturing 3D models. Sort of like 3D stickers. I’ve found a new use for it.
If you look up baking out maps using Blender or really any 3D software, there will likely be a convoluted method that you have to follow, because hey, that’s just how doing anything in 3D goes. It’s a set of difficult to memorize steps and processes and when anyone new to 3D asks why, 90% of the time the answer will just be ‘because’. Odds are, the person you ask will either not know why, or they will and the answer will be too tedious and convoluted to get into. It will probably involve some decision about rendering made in 1994. So, rather than asking why, you follow those steps and you get a result, but if your particular use case or problem is even slightly different than the tutorial, well good luck to you. You have strayed well into the realm of the technical artist.
The thing is, most applications don’t need the long route. The standard route. Sometimes you can ‘cheat’. Sometimes cheating is the best option. Cheating is what technical artists do.
I have been working on an old school arcade game project. Something that looks and, more importantly, feels like it came from a late 80s or early 90s arcade. But, just because I want it to feel that way, doesn’t mean that it has to be made that way, or even be possible on old hardware.
I started out by creating some hand animation, to test if what I wanted would be possible. It seemed like it was. Then I moved on to 3D art and animation. My experience very definitely lies in 3D animation, but I had to make sure that I could replicate a look similar to the 2D animation. After some work and some very distorted proportions, it worked. I made a set of 3D animations, that when rendered out, resembled my 2D tests.
Now that the art and animation was in the 3D space, I could get weird. I had already created the Normal and Depth techniques, so what would happen if I tossed those at the problem? Turns out, it works pretty well.
Rendering out an entire set of test animations from all the required angles takes a few seconds. Rendering out the extra Normal and Depth passes only adds another second or two. So, while the setup and animation times might be longer than a strictly 2D approach to art creation, for this project iteration takes almost no time at all. I can change an animation, change a model, change colours, and on and on with very little extra effort. I can change lighting on the resulting 2D sprites in realtime, thanks to the Normal and Depth maps. The result is probably not something that arcade hardware could do in 1990, but that’s not important. What’s important is that it feels like it could really be from that time. I’m probably going to waste more memory space than any of those old machines had just on a single character sprite.
This project is only just getting started, and I’m not exactly sure where it will end up, but small successes like this are what move the whole thing forward. Now I know that the process works. The type of graphics I want are possible, and more importantly, possible by me as a solo developer. Maybe I will get to the place where I want to pay someone else to work on this with me, but right now I have to do what I can to make it real on my own.
I thought that I would mostly use this technique to make brushes and details for texturing 3D models. Sort of like 3D stickers. I’ve found a new use for it.
If you look up baking out maps using Blender or really any 3D software, there will likely be a convoluted method that you have to follow, because hey, that’s just how doing anything in 3D goes. It’s a set of difficult to memorize steps and processes and when anyone new to 3D asks why, 90% of the time the answer will just be ‘because’. Odds are, the person you ask will either not know why, or they will and the answer will be too tedious and convoluted to get into. It will probably involve some decision about rendering made in 1994. So, rather than asking why, you follow those steps and you get a result, but if your particular use case or problem is even slightly different than the tutorial, well good luck to you. You have strayed well into the realm of the technical artist.
The thing is, most applications don’t need the long route. The standard route. Sometimes you can ‘cheat’. Sometimes cheating is the best option. Cheating is what technical artists do.
I have been working on an old school arcade game project. Something that looks and, more importantly, feels like it came from a late 80s or early 90s arcade. But, just because I want it to feel that way, doesn’t mean that it has to be made that way, or even be possible on old hardware.
I started out by creating some hand animation, to test if what I wanted would be possible. It seemed like it was. Then I moved on to 3D art and animation. My experience very definitely lies in 3D animation, but I had to make sure that I could replicate a look similar to the 2D animation. After some work and some very distorted proportions, it worked. I made a set of 3D animations, that when rendered out, resembled my 2D tests.
Now that the art and animation was in the 3D space, I could get weird. I had already created the Normal and Depth techniques, so what would happen if I tossed those at the problem? Turns out, it works pretty well.
Rendering out an entire set of test animations from all the required angles takes a few seconds. Rendering out the extra Normal and Depth passes only adds another second or two. So, while the setup and animation times might be longer than a strictly 2D approach to art creation, for this project iteration takes almost no time at all. I can change an animation, change a model, change colours, and on and on with very little extra effort. I can change lighting on the resulting 2D sprites in realtime, thanks to the Normal and Depth maps. The result is probably not something that arcade hardware could do in 1990, but that’s not important. What’s important is that it feels like it could really be from that time. I’m probably going to waste more memory space than any of those old machines had just on a single character sprite.
This project is only just getting started, and I’m not exactly sure where it will end up, but small successes like this are what move the whole thing forward. Now I know that the process works. The type of graphics I want are possible, and more importantly, possible by me as a solo developer. Maybe I will get to the place where I want to pay someone else to work on this with me, but right now I have to do what I can to make it real on my own.