Snapping Keyframes on graph editor


I have read about the snapping abilities for F-curves, but it seems to be missing something really useful that is present in modelling.

We take it for granted, when in edit mode on a mesh, you can select a whole load of vertices and move them all together BUT STILL be able to snap ONE vertex among that whole load of vertices to something else (increment, vertex on another mesh etc), and all the other vertices in your selection move along with that, preserving the shape of the cluster has between it’s own vertices, albeit at their new overall location.

Similarly, I have a cluster of animation curves and key vertices that I want to duplicate tenfold along (time) and down (value) the Graph Editor’s timeline to create a hopping action for a character that traverses across the floor (each cluster is a hop across the next distance of floor). Each time I duplicate, I need the top vertex of the duplicate cluster to vertically align with bottom vertex of the original cluster and of course have all the other key vertices move in relation, maintaining the overall shape of the curves/vertices. And yet, snapping to value with a whole cluster of points selected makes all the points squish up onto the same value!!

It seems such a basic, common requirement that is so common in 3D animation - to repeat the same curves of movement just over a next region of distance, that surely there MUST be a way to do it?

Two methods: first, use two keyboard value moves, one for the X axis, then one for the Y. It would be nice to be able to do both in the same move, but it’s not terribly inconvenient. Keyboard sequence would be SHIFT+D, NUMPAD<X-shift value in frames>, then G-KEY, <Y-shift value in desired units>

Second, SHIFT+D to duplicate, then drag the new keys into place. Despite the status bar readout, the keys will move in X in single-frame units, and, if there is a common key at the end of the cluster that corresponds one at the beginning, these will snap to one another if properly placed. I use this for extending walk cycle curves during blocking, and it works fairly well, even when the curve repeats only on the X-axis but is progressive in value on the Y.

These actions don’t use the Snap tool at all – it sort of works around its limitations.