Understanding Key Frame Animation :: CPU / Mem / Disk

I’m trying to wrap my head around HOW a key framed animation is stored by Maya or Blender then imported / used for animation within Unity 3D (v3.5 or v4.0). The target device will be Mobile.

#1. I understand when i create a key frame i am noting the X/Y/Z location of every vertex of the model at a specific time. When i go to animate for 10 seconds, the 3D modeler (Maya or Blender) will use its algorithms and my CPU to interpolate between keyframes to determine where each vertex should be thereby creating a smooth animation throughout the sequence. When i save my model (+animation) to disk within the 3D modeler it only stores the keyframes NOT the full animation of the vertex changing over time. Is everything above correct?

#2. When i import the saved package (.MB or .FBX) into Unity3D it will read in the animation. Does Unity 3D read in the keyframes like the 3D modeler then interpolate between keyframes to perform the animation dynamically each time on playback OR does the animated file contain the full movements of all vertices over time making the saved model file large and memory consumption huge but the playback less CPU intensive (since no dynamic interpolation is performed)?

#3. How does this differ wrt CPU / Memory/ Disk space usage if i were to bypass creating animations within the 3D modelers and instead use Unity3D’s built-in key framing engine?

Thanks for clearing things up.

  1. Correct. When you are animating a skinned object via a skeleton you are just animating the bone’s transforms, not all the vertices associated with them. That vertex weight data is stored only once in the mesh file as an array and is driven by the animation file.

  2. Yes if you animate a cube with 3 key frames on for example: frame 1,12 , and 24 and import it into Unity it will still only have 3 keyframes (unless you have bake animations check on in the import settings which will create a keyframe for every frame).

  3. No difference, Unless you bake your animations which will increase file size a lot because of all the keyframes.

Ok so when i create keyframe animations and move a boned body part, the transform of the bone is stored for each keyframe created. This keyframe information (eg. 3 key frames, frame 1, 12, 24) are stored in the file. When Maya / Blender / Unity (during production on Mobile device) goes to animate the character it will use these 3 key frames and “dynamically” interpolate between them to create the animation? So no matter what the CPU is always being used to dynamically animate a character which makes use of keyframing (3 stored frames translates to dynamically calculating and moving the bone and in effect all the associated vertices generating-displaying 24 frames) as opposed to playing back a preanimated stored sequence of 24 frames like a 2D cell?