Answer derived from the comments:
Hooks
One solution for animating a curve using keyframes, instead of shape keys, is using the Hook Modifier
.
Short list of steps
- Select the curve points you want to create a hook for;
- Add a hook (CtrlH
Hook to New Object
);
- To have a control for the tilt, add an empty;
- RightClick one of the
Rotation
Transform
and Copy as New Driver
;
- Tip: lock all transforms except for the value you copied as driver!
- Go to your curve, and select the vertex;
- RightClick the
Tilt
Transform
and choose Paste Driver
.
You're all set! Repeat for all curve vertices.
Steps in full detail
To do so, go into Edit Mode
on your curve. Then you can either select the vertex with handles and hook them:
Or you hook the vertex and handles to separate objects for more freedom (to be able to select the vertex only, you'll need to use Select Box
(image))
After you've selected all the points you want to hook to one object, go to Control Points > Hooks > Hook to New Object
or use the the shortcut CtrlH.
Now you've got your curve handles and/or vertices hooked to some empties. If you have an empty per point (handles separate) then it's useful to parent those to the vertex they belong to (CtrlP).
To be able to Tilt
your curve points from outside, you can use Drivers
. You can use the existing empty to do so, but I suggest adding a new one, e.g. an Empty Circle
. Align it to the curve point for easier use, and parent it, like the empties for the handle, to the hook of your curve point.
Then go to its Rotation
Transform
, right click the value you want to use as control for the Tilt
, and select Copy as New Driver
(small tip, lock all other transforms, as you won't be needing them on this empty).
Final step is to paste the driver. Select your curve, go into Edit Mode
, select the vertex you want to add this driver to, RightClick on the Tilt
Transform
, and select Paste Driver
.
Repeat these steps for all your curve vertices for full freedom!