Промежутки постоянства

Предположим, мы хотим сделать для окружности следующую анимацию:

  1. окружность уменьшается
  2. окружность расширяется до прежнего размера
  3. окружность некоторое время не изменяет своего размера
  4. окружность опять уменьшается
  5. окружность расширяется до прежнего размера

Мы можем сделать эту анимацию, используя всего 6 ключевых кадров.

Файл анимации: constant_intervals.sifz.

Расставив все ключевые кадры и задав для них значения радиуса окружности, мы неожиданно обнаруживаем проблему с пунктом 3.

Пункту 3 в нашей анимации соответствует промежуток между 3-м и 4-м ключевым кадром.

synfig01.jpg

Несмотря на то, что на этих ключевых кадрах окружность имеет одинаковый радиус, её размер почему-то всё равно изменяется на промежутке.

То же самое мы можем наблюдать, посмотрев на график изменения радиуса окружности.

synfig002.jpg

На нём наглядно видно, что кривая движения стремится сохранить свою гладкость. Это из-за того, что для фиксаторов по краям интервала задан метод интерполяции TCB. Чтобы убрать гладкость в этом месте зададим для фиксаторов внутри интервала метод интерполяции Linear (Линейный) и всё будет как надо.

synfig003.jpg

Вывод: Для того, чтобы на каком-либо промежутке параметр оставался постоянным во время анимации, часто недостаточно просто поставить одинаковые фиксаторы по краям этого промежутка. Нужно ещё убедиться, что для этих фиксаторов установлена линейная интерполяция внутри промежутка.

Примечание: Можно также использовать и постоянную интерполяцию (Constant), но этот вариант имеет определённые минусы.


Комментарии:

Добавить комментарий