<div>A couple of small changes should keep it at “Start” initially:</div>
Pos0 = thisComp.layer("Start").transform.position;
Pos1 = thisComp.layer("Position 1").transform.position;
Pos2 = thisComp.layer("Position 2").transform.position;
Pos3 = thisComp.layer("Position 3").transform.position;
moveTime = effect("moveTime")("Slider");
m = thisComp.marker;
n = 0;
if (m.numKeys > 0){
n = m.nearestKey(time).index;
if (m.key(n).time > time) n--;
}
if (n > 0){
t1 = m.key(n).time;
t2 = t1 + moveTime;
if (m.key(n).comment == "Start"){
Pos0;
}else if(m.key(n).comment == "Pos1"){
ease(time,t1,t2,Pos0,Pos1);
}else if(m.key(n).comment == "Pos2"){
ease(time,t1,t2,Pos1,Pos2);
}else if(m.key(n).comment == "Pos3"){
ease(time,t1,t2,Pos2,Pos3);
}else{
Pos3;
}
}else{
Pos0;
}
As far as easing goes the only control you currently have is the “move time” slider, unless you want to replace AE’s ease() with your own ease function, which wouldn’t be too hard–you could use one of the Penner eases, but you’d have to pick one.