I haven't implemented a 3D animation system myself, but a first step would be to look at how animation works in 3D packages. You can try to find tutorial for a run animation in Blender (free 3D package) for example.
Character animation is composed of several steps:
- modeling the character,
- creating a skeleton: placing virtual bones (joint) in a hierarchy that we will animate,
- rigging: adding constraints (like inverse kinematics or IK) and helpers to easily animate the skeleton,
- skinning: defining which vertex of the model moves with which bone,
- animating or creating reference poses.
- exporting,
- importing model and animations in the engine,
- setup an "animation controller",
- control the animations in the code.
I can't watch the video you linked (for some reason) but if it's the Overgrowth animation video here are some thoughts.
When animating in 3D you don't animate every frame of the animation, you create poses at important moments of the animation, and let the engine interpolate between the poses. You can control the interpolation by modifying the animation curves (
Casey's video on interpolation): how the interpolation happens overtime for position, rotation, and other parameters. You then can add more keyframes (poses) if you want to refine certain steps of the animation and then export (poses, animation curves...) to the engine. In the case of overgrowth, they use very few keyframes (like 3 for a run animation) and the animation process happens in the engine. Also a keyframe can be on individual parameter of a joint. For example only the y rotation component.
Then you need to interpolate between different animations to make transitions (idle -> walking -> running -> jumping) or "give character" to an animation depending on the environment (for example when walking next to a wall you could mix the walk animation with an animation of touching the wall with your hand). Animation blending is (in my small experience) a tricky thing to do right visually.
Then you can add realtime constraints to make the animation more anchored in the world: adding IKs so the feet always snap to the ground, adding physics to some element of the character...
Note that in the game engine you still have the model and the skeleton (but not all elements of the rigging). The animation are done on the skeleton. The skinning defines how the model will deform according to the skeleton.
So to do Overgrowth like animation you would need:
- to import model, skeleton, skinning, poses, rigging (IK, constraints) in your engine, unless some of those steps are done in your engine;
- to interpolate between the poses to create an animation
- to modify the animations curves;
- real time constraints like IKs, rotation limits, physics;
- to interpolate between animations;
- to apply the skinning to render the model.
Jonathan Blow has some video on
animation control but I haven't watched them so I don't know what they are about.