Thank you rxgeez, Too bad goalPPs are not paintable. I went with your second option. I used a locator like you suggested but used setRange and poci nodes to get the values.
Here is what I did. It looks more complicatated than it was because I kept the process dynamic so I could see the effect of the curvature control curve on the soft body. Also because I used linear curves as soft bodies then converted them to cubic surfaces at the end - for performace.
Create a linear, single span curve.
Rebuild keeping original, to a linear 4 span curve.
Rebuild keeping original to cubic.
Rebuild keeping original to 101 spans.
Rebuild keeping original to linear, with 101 spans (to get rid of the tangent controls) flatten out this curve and freeze transforms.
The CVs of the first curve controls the length
The CVs of the second curve controls curvature
The third curve is intermediate
The forth curve is used to derive goal values
The fifth curve will be the goal object for the soft body
Select the fifth curve and make it soft duplicate, hide original weight of 1
Connect the fourth curve to a pointOnCurveInfo node
Connect the poci node’s position to the translates of a locator
Connect the locators translateY to a setRange node
Set the parameter of the poci node to zero and set the setRange node’s old max value to the translateY of the locator
Set the parameter of the poci node to 50 (or whatever span lies at the center) and set the setRange node’s old min value to the translateY of the locator
Create a nurbs circle with a normal parallel to the soft body curve this avoids popping
Extrude the circle along the soft cubic curve rebuid the surface to cubic
for($i=(`particle -ct copyOfrope_softParticle -q`)-1;$i>-1;--$i)
setAttr pointOnCurveInfo1.parameter $i;
float $goalValue=`getAttr setRange1.outValueY`;
particle -e -id ($i) -at goalPP -fv $goalValue copyOfrope_softParticle;
Edit: This was modified because I forgot to put the extrusion values and I had written linear when obviously I should have said cubic.