Are you animating from the graph editor? If not I’d suggest doing that. The best way to use less keys (which I’m not saying you necessarily have to do, but it can make things easier occasionally) is to visualize the movement in terms of the graph. If your graphs are the shape you want them, then the keys matter not at all (not entirely true, but close enough ;-). You’re making good progress here.
If I were you I’d do two things: I’d buy the animator’s survival kit (that’s just my generi-advice… it’s the best book ever) and I’d get a version of a pixar movie that I could step through single frame by single frame. I’ve been doing this all year as part of my thesis project, and it’s been really helpfull. Oh, one thing that can really smooth out your animation is using “limits”. Remember in calculus, the curves that approach zero and never quite get there… well, if your curves look like that, you get nice moving holds, so parts of your character don’t suddenly look dead when they stop moving. I tend to make the “jerky” version, then I add a key 5-20 frames out the outside of my existing keys, drag the old ones up or down a bit, to get it to curve around to nothing like that.
What’s your animation process? I’ve been developing too, and what’s working for me (and is reccomended by my advisor, a former pixar guy) is to start by animating JUST the root node, just the butt, so that the character flies around the scene spread eagle with his leggs trailing behind him on IK.
It looks silly, but if you get that to look really nice and snappy, I swear to you it’ll pay off. Once the timing is just right (and trust me, it’s more clear than you’d think), you add the chest, then head, then arms, then legs. This way you don’t waste time before you know what your timing will be.
The key is to overestimate what the center of gravity will be doing when the rest of the body does stuff, you’d be surprised how much you move your waist when you turn to look over your shoulder
Sorry, tired and rambly,