Ah, OK. That’s a little trickier. This assumes that the number of points on the path doesn’t change, but other than that I think it will work:
markerTime = thisLayer.marker.key("End").time;
if (time > markerTime){
p1 = points(markerTime);
p2 = points(key(numKeys).time);
i1 = inTangents(markerTime);
i2 = inTangents(key(numKeys).time);
o1 = outTangents(markerTime);
o2 = outTangents(key(numKeys).time);
c = isClosed();
p = [];
i = [];
o = [];
for (j = 0; j < p1.length; j++){
p.push(ease(time,markerTime,markerTime+1,p1[j],p2[j]));
i.push(ease(time,markerTime,markerTime+1,i1[j],i2[j]));
o.push(ease(time,markerTime,markerTime+1,o1[j],o2[j]));
}
createPath(p,i,o,c);
}else{
value;
}