What I'm trying to do specifically is animate a punch. With the default Bezier curves, the interpolation between the "wind-up" and "contact" poses gets eased in AND eased out. This effectively makes it appear that the punch is being pulled. The character accelerates into the punch just as he should, but then begins to slow again right before contact. I'd like to have the interpolation such that he eases in and then continues to accelerate through. In principle I know how to do this with the graph editor, but this action involves a shift in balance so almost every bone in the body changes position between poses, and I really don't want to tweak the graphs for each property on each bone individually. Is there a way to fine-tune keyframe-level interpolation in Blender? Perhaps by animating a single property that represents a 0-1 weighting between poses? I feel like I could probably hack something together with drivers, but I'm really not sure how to do that in the context of poses and figured there might be a better way anyway. What's the proper approach in a situation like this?
EDIT: One solution I've found is to use a Python script to automatically position the left handles of all selected keyframes to sit on top of their respective control_points. This basically achieves the effect @cegaton was suggesting.
import bpy C = bpy.context.object for fcurve in C.animation_data.action.fcurves: for kf in fcurve.keyframe_points: if kf.select_control_point: kf.handle_left = kf.co[:]
I'd consider this a quick hack though and not really resolution to the original question. I'm still wide open if anyone has any other ideas.