Prerendering, Blender to Sega Genesis


For my second Sega Genesis game, I wanted to try out prerendered 3D art, instead of trying to do pixel art by hand. I wanted this so I could achieve an angled overhead view for a driving game, and because I'm more comfortable working with 3D content creation tools than 2D.

My goal today was to build out a pipeline that's relatively repeatable. I still want to shrink the number of manual steps here, so I can get content in more quickly, but I'm reasonable happy with where I got to today.

I've been working on modeling my own car in Blender, but it's slow going, so I grabbed something off Turbosquid today to speed myself up, I started with https://www.turbosquid.com/3d-models/muscle-car-pack-3d-model-1605999

Next, I loaded this in Blender. I cleared out the other cars. I set up the camera at an angle I wanted. I knew that I needed a color to use as the transparency color, and magenta is normally a good choice for that, so I setup a background plane.

Because I'm not actually animating this vehicle yet, I decided to use the animation system to generate the frames. I set a start and stop frame at 0 and 360, and I wanted 5 degrees per frame, so I set the length at 72 frames. I set interpolation at linear, so it would be 5 degrees per frame.

I set up my export to render at a higher resolution than I was planning to use, so I could better manage the background color bleeding over a bit. I rendered this animation out to 1 image per frame.


Next, I loaded the first image in Aseprite. Aseprite recognized that it was an animation based on the other files in the folder, and loaded it up like so. I exported it out as a sprite sheet, which matches the easiest way I've found to get animations into SGDK.


After that, I wanted to get the color count down to something manageable. I also wanted to resize it to the height I'm using for sprites on the Genesis, 32 pixels tall. I loaded the image into Paint.net, and resized it. I tried to clean up the pixels a bit, I was getting some pinks that were nearly but not exactly my transparency color. Finally, I saved it out as a 4 bit PNG, so I would have a limited number of colors.


After that, I needed to load it in SGDK. I'm using the donut sample as a starting point, because it's an animated, spinning sprite. I added the image to my gfx.res file, created a sprite object for this car, loaded it, and stepped the animation every frame.


I built and loaded the rom into a Genesis emulator, which gave me a spinning car


You can see it in action here

At some point I might want to adjust this workflow to handle actual animations. At that point, I'll probably no longer rotate via animation and instead rotate through a Python script in Blender, and have the animation track itself. One of the reasons I chose vehicles here, is I can probably get away with no actual animation on the cars, or some minimal animations like a palette swap for spinning tires, and make use of visual effects that spawn behind the car to sell the illusion of motion.

Files

roguerider_v001.bin 128 kB
Sep 19, 2021

Get Redline Reaver

Comments

Log in with itch.io to leave a comment.

if you use eevee and set render tab's samples to 1 you won't get that color bleeding from the magenta that's meant to be culled out.