Иногда наличие физического движка может быть серьезным излишеством для вашего проекта, и вы можете гораздо проще создавать простые анимации, используя анимацию движения. Или у вас могут быть элементы, не связанные с физическим движком, и ими будет проще управлять с помощью твинов.
Анимация или переход между ними — это процесс создания промежуточных кадров между двумя статическими кадрами (начальным и конечным), часто называемых ключевыми кадрами.
Твины в компьютерной графике создаются путем интерполяции различных свойств от начального значения до конечного значения. Некоторыми примерами наиболее часто используемых свойств анимации являются положение (координаты x, y), масштаб, вращение и т. д.
Ослабление — это тип интерполяции, который используется для любого заданного перехода, также известного как синхронизация анимации. Самый популярный тип замедления — линейная интерполяция — это означает, что сгенерированные значения между началом и концом равномерно распределяются по кадрам. Например, если бы мы интерполировали между 1 и 10 в интервале из 10 кадров, результатом было бы [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].
Но есть и другие типы замедления (интерполяции), такие как замедление, ослабление, замедление и многие другие. В таких смягчениях значения распределяются по кадрам неравномерно, что добавляет динамику движению/анимации.
- Линейный
- Упрощение
- Упрощение
- EaseInOut
Почему мы используем подростков?
Как упоминалось ранее, анимация обеспечивает гораздо более простой способ достижения сложных движений и последовательностей анимаций с гораздо меньшим количеством кода по сравнению с использованием физического движка. Другой способ анимации — использовать покадровые таблицы спрайтов, но представьте, что вам нужно отрисовывать каждый кадр каждого движения персонажа для нескольких персонажей. 😵 Итак, сегодня мы рассмотрим GSAP — библиотеку анимации JavaScript, которая может создавать удивительные и сложные анимации с небольшим количеством кода.
Что можно анимировать с помощью GSAP?
Все! Воспринимайте это самым буквальным образом. Любой объект JavaScript можно передать в анимацию GSAP, и она анимирует для вас все указанные числовые свойства. Для анимации изображений в основном мы используем анимацию положения, масштаба, поворота и непрозрачности. Но есть и другие применения, например, изменяя значение текстового поля с 10 до 0, мы получаем эффект обратного отсчета, похожий на те, что вы видите в старых фильмах.
Давайте создадим несколько рабочих примеров
Начиная с основ, код для перемещения изображения по экрану выглядит так:
Создание последовательности временной шкалы
Давайте создадим анимацию нашей ракеты, которая взлетает и улетает вдаль. Мы создадим последовательность твинов, также называемую временной шкалой. Временная шкала — это контейнер твинов, поэтому позже мы можем воспроизвести/обратить/масштабировать все их твины как единое целое.
Несколько подростков одновременно
В этом примере мы расширим нашу временную шкалу, комбинируя масштаб и положение анимации для достижения эффекта глубины, также называемого 2,5D-анимацией.
Бонусный контент — Твининг анимации 😲
Мы можем сделать анимацию движения или временную шкалу целью анимации, а затем анимировать ее прогресс или шкалу времени, точно так же, как масштаб изображения!