Pixel animation

Wondering how to accomplish a certain animation task? Ask here.

Moderators: Víctor Paredes, Belgarath, slowtiger

Post Reply
User avatar
Mikdog
Posts: 1901
Joined: Tue Jul 05, 2005 3:51 pm
Location: South Africa
Contact:

Pixel animation

Post by Mikdog »

Hiya,

So I'm doing an animated music video and I'm toying with the idea of doing pixel animation, making it like an old 8-bit video-game.

Here's a test:

http://www.youtube.com/watch?v=GZRBFiPbNhI

Image

I'm drawing it in Photoshop and then putting it together in AS. I wonder if anyone can give me any advice what would be an easy way to draw this directly in AS Pro? I could turn on the grid and fill each box with a vector fill colour but that's less than ideal. If only AS had raster drawing abilities like Photoshop it'd cut my work in half, because I'm always drawing in Photoshop, exporting to layers, then when I need to make changes when I finally see the animation, its fiddly and I need to re-export some images, re-import to AS, rename them, put them in new switch files, change the switch files, mess mess mess. It'd be so easy if I could just alter the raster images within AS. Then AS really would be an awesome complete animation package. Any suggestions here would be great, or any suggestions for other software to do this in. I'm trying to think of a way to do this with AS' drawing tools.

Thanks.
User avatar
slowtiger
Posts: 6245
Joined: Thu Feb 16, 2006 6:53 pm
Location: Berlin, Germany
Contact:

Post by slowtiger »

Well ... I would draw in AS, with the grid turned on. Draw squares in all the colours I need, then copy&paste.

OR draw in PS, and set the project size in AS to really small, like some 240x320. Render PNGs in that size, then do a batch job in Photoshop to enlarge (4x) without interpolation, then again batch down to desired target size (this time with interpolation). This way the sharpness of all pixel corners would be preserved best.
chucky
Posts: 4650
Joined: Sun Jan 28, 2007 4:24 am

Post by chucky »

I like the grid Idea, do you mean make a whole grid of square that represent the pixels and then just change the imitiation 'pixel' colour value using step interploation, or move and adjust size of the vector ' pixels' to the grid?
I can't see how it's that harsh mikdog, you will definately get a nice clean look anyway.
You always just draw in pS and use a pixelate filter , that might be lame sure
User avatar
Víctor Paredes
Site Admin
Posts: 5814
Joined: Wed Jan 26, 2005 12:18 am
Location: Barcelona/Chile
Contact:

Post by Víctor Paredes »

I think that an animated gif creator would be better for this task. With AS you will always obtain movements of "fractions of pixels", which you would have to correct all the time (even using step interpolation, if you want to pan, for example, you would have to make a ton of keys). I think the better is to use a software with real pixels, not try to emulate that in AS.
n.hurst
Posts: 45
Joined: Wed May 20, 2009 2:14 pm

Post by n.hurst »

I'd agree with what slowtiger advised: Just use a *ridiculously small* project resolution. And a very limited colour palette for shapes. Then you'll have full AS animation capabilities, with everything at your disposal, yet with a nice blocky, pixely result when exported. And yeah, after exporting, you'll want to carefully rescale the video so that it doesn't get resampled into a blurry mess. Keep it crisp.
JUBARU
Posts: 10
Joined: Thu Jun 15, 2006 11:06 pm

Post by JUBARU »

As already mentioned, you can achieve a very decent 8bit effect using 16x16, 32x32, 64x64, 128x128 resolutions in project settings and then exporting to quicktime with no antialias and no compression. Anything from 256x256 upwards loses the pixelly effect.

http://www.youtube.com/watch?v=h3TdNs93ImY - 64x64

http://www.youtube.com/watch?v=Igacna-2fzU - 128x128

http://www.youtube.com/watch?v=pnbD1lf8exc - 256x256

You can also do your animation keyframes, let anime studio create the inbetweens, keyframe those you like/need and then set the animation interpolation to 'step' so it looks more like a video game.

My main problem is as soon as I rescale or compress it all becomes blurry (like in the youtube videos) and have yet to find a proper way to work around this. Do you guys know a good way or program to rescale/compress without losing the nice sharp crisp pixel corners?
n.hurst
Posts: 45
Joined: Wed May 20, 2009 2:14 pm

Post by n.hurst »

Export as PNGs, scale each frame using Photoshop with the resampling method set to "Nearest Neighbor". Pretty much what slowtiger suggested. If that's too long-winded or can't be done in batch, then export as video and blow it up using VirtualDub with the Rescale filter, setting the Filter mode to "Nearest Neighbor". There might be better options depending on your toolset, but NN looks like the best method for avoiding introducing the unwanted, averaged pixels that lose definiton. From http://www.dspdesignline.com/201804323; ... ticle=true:
There are many methods for generating new pixels; the simplest is called the nearest neighbor method, or 1x1 interpolation. In this method a new pixel value is simply equal to the value of the preceding pixel. In a slightly more sophisticated approach, called bilinear scaling, a new pixel is equal to the average of the two neighboring pixels in both the vertical and horizontal dimensions.
User avatar
Mikdog
Posts: 1901
Joined: Tue Jul 05, 2005 3:51 pm
Location: South Africa
Contact:

Post by Mikdog »

Dummy test 64, the first one, looks really cool. (64x64)
Hmm...interesting.

I think maybe to set the FPS in AS to 12 so you needn't do any step interpolation, it will look steppy anyway. Still though, I like the fluidity of your walk cycle, so 25fps would also work well.

I was drawing everything in PS at small scale, like 64x64, then before exporting to PNG files for AS I'd scale it up in PS to 640x640 (must be a divisible number to get regular squares with nearest neighbor) and then animate in AS.

But, maybe to just animate away in AS at a small res, export to PNG's as slowtiger suggested, run a batch export in Photoshop to upscale them, and then batch down again.

It'd be cool if AS had options for how it renders the scene. At the moment its always bilinear I think, so a nearest neighbor setting would be cool.

Thanks for all the help guys.
User avatar
Mikdog
Posts: 1901
Joined: Tue Jul 05, 2005 3:51 pm
Location: South Africa
Contact:

Post by Mikdog »

Although I'd almost rather place my pixels manually. I tried that method with an existing scene and it looked a bit messy. You can't have too much detail going on there.

Image

Hummm...I think to do it all manually in PS, or to do the grid thing in AS might be best. That way there's no surprises for what the final output will look like.
chucky
Posts: 4650
Joined: Sun Jan 28, 2007 4:24 am

Post by chucky »

You could posterise that last image to limit the colours and remove that antialiasing maybe..?
just an idea
User avatar
Mikdog
Posts: 1901
Joined: Tue Jul 05, 2005 3:51 pm
Location: South Africa
Contact:

Post by Mikdog »

Works pretty well, but I'd need to limit my colour palette. Hard to see what's going on here.

Thanks. I never knew what posterize did. That's useful ;)

Image
JUBARU
Posts: 10
Joined: Thu Jun 15, 2006 11:06 pm

Post by JUBARU »

n.hurst wrote:Export as PNGs, scale each frame using Photoshop with the resampling method set to "Nearest Neighbor". Pretty much what slowtiger suggested. If that's too long-winded or can't be done in batch, then export as video and blow it up using VirtualDub with the Rescale filter, setting the Filter mode to "Nearest Neighbor". There might be better options depending on your toolset, but NN looks like the best method for avoiding introducing the unwanted, averaged pixels that lose definiton. From http://www.dspdesignline.com/201804323; ... ticle=true:
There are many methods for generating new pixels; the simplest is called the nearest neighbor method, or 1x1 interpolation. In this method a new pixel value is simply equal to the value of the preceding pixel. In a slightly more sophisticated approach, called bilinear scaling, a new pixel is equal to the average of the two neighboring pixels in both the vertical and horizontal dimensions.
Oooh! Thanks a lot! :)

In my experience, this whole automatic 8bit method only works well with simple shapes, no outlines and little detail inside. I'm still experimenting with outlines and detail, I'll post back if I find something interesting.
Post Reply