ElithX,
Thanks for the comment!
Here's this weekend's snapshot:
http://youtu.be/vfb4rliNN4A
The main critique from my artist is that the dragon motion doesn't really follow the "line of action". As he flies about, he really should be looking in the direction of motion and have his body (arms, legs, head) react depending on where he is headed. This was kind of a sticking point for me because I wanted to keep the physics as simple as possible without having to introduce a bunch of "special-case" handling depending on whether he's carrying something or not (which is a key element of the game).
I decided on a compromise. When he's carrying an object (gem, sheep, or whatever), his line of action is minimized and he keeps his feet down to carry the object but still tilts slightly depending on his motion. When he's not carrying something, his body is more fluid and follows the line of action.
Doing this, I was able to nuke a bunch of the directional animations I had created, and just rotate the root bone around. I had two states: body and eyes (for eye blinking), and a bunch of individual animations depending on whether he was walking, flapping his wings, flapping his wings and carrying something, flapping his wings and carrying something and flying up, etc. etc. etc. I opted for a third animation state: wings, and was able to minimize the body state into just a few animations:
- walking
- idle
- idle flapping reaction
- soaring
- soaring flapping reaction
When the user hits the flap wings button, the reaction animation is assigned to the body state, and the wing flapping motion is assigned to the wing state. These are one-shot animations whose beginning and end are identical to the non-reaction animations... so I don't really have to do anything if the player isn't hitting the flap button. The idle / soaring animations are assigned based on how fast the player is flying, or if the player is on the ground. If the player is on the ground, and moving left / right, then walking is assigned to the body.
It took a lot of trial-and-error to get things to "feel" right. I wanted the smallish wyvern to have a lot of quick speed and changes, but wanted the large dragon to have a slower, more lumbering feel. Trying to balance these motions out and at the same time give the player a quick response to input was... time consuming.
Anyhow, I think things are looking a lot better than they were.
tim