To create a shape key of a curve we need to start with the curve's base geometry and then move the points in edit mode to have the new form, that's assigned to shape key. Is there a way I can directly assign a curve to another curve as shape key? I can then draw the two curves (or maybe import them from an external file) freely and assign one as the shape key of the other.
Found the answer here:
Here's the add-on that does this:
As per the suggestion in the comment, here's the brief description:
The add-on descried in the video above imports svg paths directly as shape keys. So if I have a rectangle and circle in the svg file and if I group them with rectangle at the top in the xml group, circle will be imported as shape key and rectangle as the target. Apparently, there are no limitations about the number of nodes, as texts can also be imported as a shape key. There can be many shape keys for one target.
Download link: https://github.com/Shriinivas/shapekeyimport
I don't know a way to do this in native Blender, but with the addon Animation Nodes you can look at the control points of each spline and mix their coordinates. If the splines don't have the same number of control points, you can also evaluate an equal number of points of each spline and mix their coordinates.
You can start with a loop that takes two vector lists an mixes pairs of vectors according to the float factor.
A Spline Info node is used to extract the coordinates of the control points for each curve. The previous loop is invoked three times to mix control points and left and right handles. A Spline from Points node will create a new spline from these mixed coordinates. Finally, a Curve Object Output will create a object out of this spline.