When you haven’t updated in a long time, and you have a lot to say, where do you start?
Apparently you don’t say anything, and you put it off. Or you invent some random topic and post, but that’s only when you’re in a weird mood. OK, some friends inspired me to draw a picture, so lets talk art. Art, and what I’ve been investigating for a 2D art pipeline.
And there we have it. It’s been called a radish, it’s been called a Potato Warrior. Cool. It’s my usual routine of vectoring a sketch in Paint Shop Pro X. Tracing around edges with a pen/polygon tool, and picking a nice line thickness. Simple and quick.
The rough sketch was done in Sketchbook Pro. Not that Sketchbook Pro does anything special for you that other software doesn’t. It’s a sort of “nicety” program that does a lot of things conveniently. So when I save a file for the first time, it automatically by default has the name of the last file I saved, +1. “Sketch096.tif” for example. It does sub-pixel tablet pen positioning, for nice smooth non pixel rigid lines (which is however, a useful feature of Paint Shop Pro for pixel art). Photoshop probably does that too, but I grew up with PSP. All it’s menu’s are radial stroke menus, so you click an option, and your options appear around the pen. Then you just stroke the pen in the direction you want for the respected option. Neato. Really, as I’ve said, it’s just a very convenient program.
Pipeline! Up until recently, what I’ve been doing with my textures is making 512×512 image files in Paint Shop Pro X. Using as many layers as I need, raster or vector, and saving my originals in the “.pspimage” format. Then, for bringing them in to the game, using the built in PNG exporter, which conveniently remembers the last directory I exported this image to (so long as I save my file). And that process actually works great for static images (textures).
Part of what I’ve been exploring with the game and engine is something capable of utilizing 3D hardware to create a 2D game, with groovy 2D physics (yes, groovy). We’ve had a custom Blender exporter for quite some time, and we’ve used Blender for building static elements, and backgrounds. We build our static elements in 3D, often boxy shapes so we can extrapolate our collision (everything that crosses the z axis if flagged becomes a 2D collision polygon). Blender also lets us arrange several “layers” for parallaxing effects, without the need for specific tools. Unfortunately, for dynamic objects (i.e. the groovy), Blender and the way my physics work don’t mesh. So we have our custom object editor for building our 2D collision, and building an aligned 2D mesh. To make these 2D meshes dynamic, we use a sort of dirty bone like system where vertices are weighed to a pair of points in the collision, to calculate an orientation. And for the early Spider stuff, this was adequate, and we’re finding many neat looking uses for this. But even for as dynamic and cool looking as physics is, there’s something to be said for the added detail and predictability of an animation.
Animations then. 2d animations to be exact. I’m sure this part would better if I had a cool animation to show off, but I’m trying to find the right software for me. Since I’m the Paint Shop Pro nut, I started with Animation Shop, the cheesy “gif animator” that came with pre-Corel versions of PSP. It’s alright software, if you liked the Paint Shop Pro 5 interface. It does onion skinning, but no layers (yeah yeah Photoshoppers with your Image Ready, quit yer laughing). Not to mention, like Paint Shop Pro, it’s brushes are pixely in the low resolutions. It’s usable, but so is MS Paint without any means of testing your animation.
So next up in my quest to find the right 2D animation software, we hit Plastic Animation Paper. PAP is a little piece of software I’ve been fascinated with for years. It’s interface is very much like Sketchbook Pro. Simple, flexible, and nice smooth lines. Good for sketching roughs. Unfortunately, it’s pretty noticeable that it uses a software renderer for display that lacks alpha. You can see this in the layers and blue/red pencil modes, colors that are nearly white aren’t transparent, but colors that are fully white are. Much like single color transparency paletted graphics in games and on the web. It also has a relatively new rotation tool (in the expensive version of the software), which unfortunately is really slow (2fps?). However I still think it’s great for roughs, as the interface is very configurable and a simple matter of strokes like Sketchbook Pro. The full version exports to a large number of image formats, and seemed flexible enough to set up export directories. But you’d still have to bring the assets in to another application to color them.
Finally, where I’m at right now is a piece of software called ToonBoom. I considered checking this one out in the past, but it was a bit pricey. Thinking a lot about my process lately, I decided to check it out again. Well well, it’s apparently on sale for $250. And not to mention, it comes highly recommended by Mr. Theoretical Games, who posted some interesting demonstrations in weeks past. What really inspired me to go back and look at it were tweens. I toyed with TweenMaker some time back. TweenMaker is neat software that generates the in-betweens. But the problem is you need to draw you parts the same way, as it uses the strokes to calculate the in-betweens. Technically cool, but I don’t think it’s process I’m looking for. There was also Moho, which was cheaper ($99), but … well… I’m really not sure. OK, you know what? ToonBoom has a printed manual. I have a thing for technical books, that’s what sold me, OK!? Erm… Alright.
So back to ToonBoom. Alright, so it’s more than the book that sold me. It seems to be completely vector based, so exporting native flash vector, quicktime video, and image files (what I care most about) is at my disposal. Speaking of the image exporter, a huge nicety, it exports transparent PNG files (Millions of Colors+ it’s called). That and the rendering configuration are the technical pipeline related reasons I adore the program. The camera options are simply the resolution in pixels (512×512 pixels in my case). Easy. I type that in, and I’m ready to render usable PNG files with the outsides all nicely transparent. It also does in-betweens via linear interpolation and a bone structure. So unlike TweenMaker it wont calculate the in-between art, but in-between positions seem fine to me. After all, I’m also here because I want an easy way to make a 4 frame animation look better.
And then there’s those little interface things that make me go “… oh, wow, holy shonk!?!”. The biggest “shonk” would have to be, work area rotation! Yes, unlike Sketchbook Pro and Paint Shop Pro, because everything is vectors, I can non destructively rotate my view. It’s been a long time since ALT and CTRL together have made me smile. Also, there’s the grid. It’s not just any grid. It’s a 2D grid with an origin, and numbers along each edge. Sure, nothing fancy yet, but it also has diagonal lines going through the origin, and like the edges, they’re also labeled. A very slick design that doesn’t get in the way, and saves you from having to look at the nearest edge and trace your eyes across to find out what numbered line your on. The vector tools more or less work as I’m used to as well. But one nicety over PSP is the paintbrush vector tool. The paintbrush is your means of doing variable thickness painting, and it works like a pressure sensitive digital paintbrush. What it produces is a vector outsides of the shape you drew, with the insides filled with your brush color. So in other words, unlike your normal fuzzy brushes in the paint packages (PS, PSP), you get a nice clean antialiased edge from normal painting. I suppose it would be nice to have the flexibility of the normal vector tools, where you can move the control points of the spline, but also control the line thickness, but I’m sure there’s some design issue why a combination spline/line thickness tool isn’t in there. Coloring is very cool as well. As expected, you use a flood fill paint bucket to color a region. But that’s exactly the point, it colors regions. Regions being any area broken up by lines, or strokes (invisible lines). Adding shading/shadows becomes really clean then. You simply add a stroke or series of strokes that cross edges creating closed regions. Then you paint bucket each region, and you’re colored. Very cool.
So from all that, I was sold. The thing is, it’s also a fully capable application for compositing and layering scenes elements in 3D, with camera controls too. Not that it’s anything I’ll be needing any time soon, it’s quite encouraging. I’ve barely scratched the surface, as it has a solid librarian content management/organization tool built in. It’s no replacement for SVN or Perforce for backups, but when it’s as easy as dragging files in or out of a window to get assets, the process really flows.
OK, so obviously this analysis of tools for a 2D game art pipeline has gone off on a bit of a tangent. I’m still getting a feel for ToonBoom and all it can do. While at first I was strongly considering the old favorite of mine Plastic Animation Paper for roughs, a tutorial I was doing with ToonBoom actually suggested using the paint tool on a pseudo separate layer for roughs. It actually seems to work well, and not to mention, keeps you in the same app for all your animation needs. Now if it could only export each part you build as a texture, and the positions/scales/orientations of each part per frame in a readable format… Haha, that’d be too useful.
Alright, I’ve had my fun.