Глобальные переменные и графики функций в выражениях After Effects
var markerTime = thisLayer.marker.key(1); // Маркер для анимации
var AniTimeIn = markerTime.duration; // Длительность
var AniStart = markerTime.time; // Время начала
var AniStop = markerTime.time + AniTimeIn; // Время окончания
var newValues = BezierEasing(.25,0,0,1); // Сюда добавьте свою функцию графика cubic-bezier.com
var AniTimerange = linear(time, AniStart, AniStop, 0, 1); // Сопоставление AniStart и AniStop к 0-1 так как функция BezierEasing ожидает значение между 0 и 1
// Функции анимации
OutX = linear(newValues(AniTimerange),0,1, 0, 1000);
OutY = linear(newValues(AniTimerange),0,1, 0, 1000);
[OutX, OutY]
Создаем переменную newValues в которой определяем аргументы функции BezierEasing. Далее создаем переменную AniTimerange присваивая время анимации по маркеру. В переменные OutX и OutY соответственно ставим функцию анимации newValues() где время по которому идет это переменная AniTimerange, которая будет менять значения от 0 до 1 (100%), которые будут определены 4 и 5 аргументами.
Для построения графиков и получения их значений можете использовать удобный онлайн инструмент cubic-bezier.com или при наличии плагин Flow. Вписывать значения функции на 6 строке для BezierEasing(.25,0,0,1).
Вписывать свои значения для анимации можно в последних переменных OutX и OutY. 0 и 1 естественно не трогаем, так как они определяют своего рода процент выполнения, изменяйте только два последних аргумента. Время анимации задается маркером в функции AniTimerange вторым и третьим аргументом, тут его меняйте при необходимости.
Теперь вы можете анимировать выражениями по любому графику функций, не ограничиваясь лишь линейной и плавной.