Add this expression in Path propery of the sahpe layer:
try{
timeStart = thisProperty.key(1).time; // начало - первый кифрэйм
duration = thisProperty.key(thisProperty.numKeys).time-timeStart; //вычисляем длительность
pingPong = true; //если пингпонг не нужен то false
quant=Math.floor((time-timeStart)/duration); //считаем номер цикла
if(quant<0) quant = 0 //не допускаем отрицательных номеров
if(quant%2 == 1 && pingPong == true){ //если цикл нечетный и пингпонг включен
t = 2*timeStart+ (quant+1)*duration - time; //предлагаю самим понять почему так
}
else{ //работает если пингпонг выключен или если цикл нечетный
t = time-quant*duration;
}
}
catch(err){
t = time;
}
thisProperty.valueAtTime(t)
https://aexpressions.ru/expressions/loop/loopout-path-ping-pong/