Model animation

I’m curious about how most people handle
model animation. I can think of a few simple
ways of doing it, but there are things I like
and dislike about my ideas.

My first thought is to store vertex data for
each frame of the animation. This would be
simple to do and since each frame is static
a display list could be used for each frame.
It seems like it could be a waste of memory
if you have large models, though.

Another thought is to use keyframing and
interpolate the location of the vertices
between keyframes. This seems like it would save on memory, but be more processor intense
for large models.

I also like the idea of using bones for
driving the animation, but it seems you would
still have the overhead of calculating
vertices based on the bone information, plus
need a way to associate portions of the model
with the bones.

The models could be broken apart into static
objects, then just use transformations on the
individual objects of the model. It seems to
me that it would be hard to get smooth
animation at the joints of the objects for
certain models, though.

I would (and I do) use bones.

Here is a good article from Gamasutra: