Just like displacements, metaballs are a type of implicit surface that offers a new perspective on the possibilities for modelling and animation once you ignore the traditional constraints of skeletons and geometry.
For these tests, I’ve cribbed shamelessly from Preston Blair’s classic ‘double-bounce’ walk cycle. The limbs change proportion, shape and length throughout the loop in true 2d animation style. You could copy this animation with a skeleton hierarchy, but something is inherently lost in doing so- the fluid, rubbery nature of the original drawings which relies on a constant shape distortion that is awkward to do with rigid bones.
I rendered this one in glass to show that there’s no skeleton inside. ;)In the first test, his head came loose from his body in quite a fetching way. I polygonised the isosurface slightly further out for this one – making him a bit chubbier – but personally I like the first one better.
Two guys on paths in this one, and a couple of blobby obstacles for them to flow thru (as well as each other). Not quite as fluid on the intersections as I hoped, but its got a definite different feel from rigid or skinned cg.
Isosurfaces in 2D
3d Metaballs are just an extension of the 2d case. In fact, if the metaballs stay spherical, there’s no visual difference between 3d metaballs and 2d sprites with radial ramps on them.
So here’s the same Double Bounce animation done with sprites.
Putting all 3 layers together, and a simple toon shader is possible
Rendering the original sprites with pseudocolour gives us more control over isolating and manipulating specific parts of the character
Ultimately resulting in a more sophisticated graphic style, but still keeping both the fluid , goopy nature of the motion and the fast rendertimes of the sprite approach.
There is great potential in the types of look that can be achieved with this technique.
Very child-like and non-threatening. I’d love to see a realtime game looking like this!
One of the coolest things is that depth of field comes for free; in fact. you have to devote processor cycles to get rid of it !
Quite a fancy look can be achieved. In this case, Red and Green were offset in the sprite so that I could put a directional highlight in later and the Blue channel contained depth information so that I could depthcue the blobs.
This render shows the gag working in 3 dimensions. The sprites are rendered normally, and the look is a result of 2d image post- processing. Apart from a couple of bugs – whats that lump in front of his neck? – I think it holds up.