Как сделать эффект лупы в after effects
В этом видеоуроке мы изучим loopIn и loopOut, луп свойства Path, loopIn и loopOut вместе, луп композиции через time-remap, луп фона, бесконечное движение фона.
Таймкоды (Timecodes):
00:00 – loopOut, cycle
04:51 – loopIn
06:05 – pingpong
08:24 – continue
09:45 – offset
10:58 – continue vs offset
12:24 – Второй аргумент экспрешена лупа (Second argument of loop expression)
14:51 – loopOutDuration, loopInDuration
15:44 – loopOut и loopIn вместе (loopOut & loopIn together)
20:29 – Луп свойства Path (Looping path)
22:42 – Луп композиции (Looping composition)
24:52 – Бесконечное движение фона (Loop Background)
Виды
loopOut(); – Цикл начинается после последнего ключевого кадра и заканчивается на конце слоя.
loopIn(); – Цикл начинается на начале слоя и заканчивается на последнем ключевом кадре.
Аргументы
1-ый аргумент – тип цикла.
2-ой аргумент – количество кадров которое будет использоваться для зацикленной анимации.
loopOutDuration и loopInDuration
Второй аргумент – это длительность которую нужно брать для цикла, в секундах.
Типы
Cycles – Луп по умолчанию. После последнего ключевого кадра, анимация начинается заново от первого ключевого кадра до последнего, и так до конца слоя.
Pingpong – Луп, в котором анимация идет от первого ключа до последнего, затем обратно от последнего до первого, а потом снова от первого до последнего.
Offset – Cоздаются циклы и каждый последующий цикл смещается на разницу значения свойства между вторым и первым ключевыми кадрами.
Continue – Данный аргумент не создает новых циклов. Он вычисляет с какой скоростью и в каком направлении слой подходит ко второму ключевому кадру, а затем с той же скоростью и в том же направлении продолжает двигаться.
Зацикленный Path
LoopIn & loopOut вместе
Если мы хотим использовать пинг-понг:
Луп с одинаковым первым и последним состоянием
Используем луп типа Cycle, но только убеждаемся в том, чтобы первый и последнее состояние объекта были одинаковыми.
Луп композиции с Time-Remap
Используем луп типа Cycle, но только убеждаемся в том, чтобы первый и последний кадр пре-композа были одинаковыми.
В этом видео уроке (а также и статье) я покажу как создать эффект увеличения лупы в программе Adobe After Effects. Для создания нужно использовать футаж высокого разрешения, чтобы при увеличении не было видно пикселей и/или других "артефактов".
Для начала подготовим наши футажи - это лупа и собственно то изображение которое будет увеличиваться. С последним все понятно - фон должен быть в высоком разрешении как я говорил выше, а вот лупа (или другой инструмент, пенсне или монокль например) должны быть подготовленными. То есть фон у картинки лупы должен быть прозрачным, ну и стекло лупы тоже прозрачным. Картинку сохраняем в формате PNG.
Затем открываем программу AE, создаем новую композицию кидаем наш фон на тайм лайн, затем сверху фона кидаем нашу лупу.
Слой с лупой мы увеличиваем и поварачиваем как нам надо и ставим значение Ancor Point по центру там где стекло лупы. Для этого надо перейти к вкладке transitions в верхнем слое (лупа)
Теперь переключаемся на нижний слой-фон, во вкладке эффекты выбираем effects->distort->magnify. В настройках эффекта изменяем параметр center (просто перетаскиваем на центр лупы) и параметр size меняем его так чтобы наше увеличение было во всю рамку лупы (смотрите картинку)
Теперь опять переключаемся к лупе заходим во вкладку transitions - position. Ставим первый ключик в начале на тай лайне, затем меняем положение лупы (простым перетаскиванием на тот участок где вы хотите чтобы лупа проходила, ну как на рисунке ниже)
Затем чтобы увеличение двигалось за лупой мы должны перейти к нижнему слою выбрать вкладку effects -> center, потом alt-левый клик по "часам" открывается меню зависимости параметра, там находим иконку "загогулинки" нажимаем на нее левой кнопкой и удерживаем, видим что появилась линия, эта линия позволяет использовать параметры другого значения, то есть мы эту линию перемещаем на показатель position во вкладке верхнего слоя в transitions. (Рисунок ниже)
Теперь мы видим что наше увеличение движется соответственно с лупой. Все эффект готов.
Теперь детальный видео урок этого эффекта:
В этом видео уроке (а также и статье) я покажу как создать эффект увеличения лупы в программе Adobe After Effects. Для создания нужно использовать футаж высокого разрешения, чтобы при увеличении не было видно пикселей и/или других "артефактов".
Для начала подготовим наши футажи - это лупа и собственно то изображение которое будет увеличиваться. С последним все понятно - фон должен быть в высоком разрешении как я говорил выше, а вот лупа (или другой инструмент, пенсне или монокль например) должны быть подготовленными. То есть фон у картинки лупы должен быть прозрачным, ну и стекло лупы тоже прозрачным. Картинку сохраняем в формате PNG.
Затем открываем программу AE, создаем новую композицию кидаем наш фон на тайм лайн, затем сверху фона кидаем нашу лупу.
Слой с лупой мы увеличиваем и поварачиваем как нам надо и ставим значение Ancor Point по центру там где стекло лупы. Для этого надо перейти к вкладке transitions в верхнем слое (лупа)
Теперь переключаемся на нижний слой-фон, во вкладке эффекты выбираем effects->distort->magnify. В настройках эффекта изменяем параметр center (просто перетаскиваем на центр лупы) и параметр size меняем его так чтобы наше увеличение было во всю рамку лупы (смотрите картинку)
Теперь опять переключаемся к лупе заходим во вкладку transitions - position. Ставим первый ключик в начале на тай лайне, затем меняем положение лупы (простым перетаскиванием на тот участок где вы хотите чтобы лупа проходила, ну как на рисунке ниже)
Затем чтобы увеличение двигалось за лупой мы должны перейти к нижнему слою выбрать вкладку effects -> center, потом alt-левый клик по "часам" открывается меню зависимости параметра, там находим иконку "загогулинки" нажимаем на нее левой кнопкой и удерживаем, видим что появилась линия, эта линия позволяет использовать параметры другого значения, то есть мы эту линию перемещаем на показатель position во вкладке верхнего слоя в transitions. (Рисунок ниже)
Теперь мы видим что наше увеличение движется соответственно с лупой. Все эффект готов.
Теперь детальный видео урок этого эффекта:
В этом уроке After Effects Tutorial и Element 3D Tutorial научитесь создавать VFX эффекты(визуальные эффекты) в видео. Покажу как загружать 3D модели в Element 3D.Разберем как сделать VFX эффекты для видео - портала, тряски и эффект исчезновения самолета. Сделаем настройки Element 3D в обычном окне программы Adobe After Effects.
Эффекты After Effects :
1:39 - Как загрузить 3D модель в Element 3D
4:25 - Как сделать вспышку
5:42 - Как сделать визуальный эффект портала
7:14 - Как добавить эффект дыма
12:25 - Как создать эффект тряски в After Effects
А модели с blender добавляются?
Parallax переход между страницами сайта
Photoshop + After Effects
Визуальный обман
Забавно, как благодаря небольшому наклону досок цвет дороги на набережной меняется. По классике, все зависит от точки зрения.
Думаю, помните прикол с кубом и клеточками, где один и тот же цвет кажется то белым, то серым?
Как сделать турбо-тоннель эффект в Unity с помощью Particle System
Я не знаю, как назвать такой эффект: дыра, пещера, турбо-тоннель, wormhole или, может, пищевод, но результат выглядит так:
Для реализации этого эффекта подойдёт практически любой игровой движок: мой первый вариант был сделан ещё на флеше. Здесь же расскажу на примере Unity (Version 2019.2.4f1).
Я добавил такой эффект во вступительном ролике и тизере своей игры про атаку вирусов на иммунную систему «Listeria Wars».
ПОШАГОВАЯ РЕАЛИЗАЦИЯ
Создание сцены
Я использовал 2D темплейт при создании проекта, но можно использовать и 3D. В любом случае понадобится ортографическая проекция в настройках камеры и сплошной чёрный фон.
Создание материала
Для Particle System понадобится материал со спрайтом тоннеля. Я нарисовал вот такую картинку, не особо заморачиваясь, так как эффект динамичный и мало кто успеет оценить вашу невероятную детализацию. Но всё, конечно, на ваш вкус. Изначально спрайт был красный, но для динамического цвета стоит перевести его в черно-белый режим.
Закидываем наш спрайт в папку для спрайтов в Assets и создаём новый материал Tunnel Wall (создаём папку Materials, по ней кликаем правой кнопкой мыши → Create → Material). В настройках выбираем шейдер Mobile/Particles/Alpha Blended (в старых версиях Unity Particle/Additive). Затем в Particle Texture кликаем по нашему спрайту тоннеля.
Добавление основной Particle System
Добавляем в сцену пустой объект и называем Tunnel. В него мы будем помещать все необходимые партиклы и контроллеры. Кликаем правой кнопкой мыши и выбираем Effects → Particle System, который назовём Tunnel Wall по аналогии с именем спрайта. Начинается самое интересное! Настройка и эксперименты.
Основная суть данных настроек — это поочерёдное появление стенок тоннеля с последующим увеличением, где каждый последующий партикл находится за предыдущим. За счёт этого и получается эффект движения вперед по тоннелю.
* Material: Tunnel Wall;
* Sort Mode: Oldest in Front;
* Max Particle Size: 5 (для возможности увеличения спрайта на размер больше, чем на пол экрана, где 5 — это разрешение экрана * 5).
Основные (Появляются при клике на хедер настроек, если скрыты)
* Start Lifetime 2.5 (Время жизни партикла, так же определяет скорость увеличения);
* Start Speed: 0 (Скорость не нужна);
* Start Size: 100 (Зависит от размера спрайта, выбираем на глаз, регулируем вместе с Size over Lifetime);
* Start Rotation: от 0 до 360 (Выбираем Random Between Two Constants, крутим партиклы как хотим);
* Start Color: Выбираем на вкус, если спрайт Tunnel Wall чёрно-белый. Осторожно, со слегка оранжевым цветом турбо тоннель рискует превратиться в задний проход;
* Gravity modifier: 0.02 (Партиклы будут слегка падать, задаём немного динамики в движении);
* Simulation Space: World (Мы будем двигать точку создания партиклов, чтобы не перемещалась вся конструкция, ставим World);
* Max Particles: 10 (Смотрим итоговое количество партиклов в панели Particle Effect и устанавливаем столько же).
Emission: Rate over Lifetime: 4 (на вкус)
Shape (форма, которая спавнит партиклы)
* Radius: 0.05 (Чем меньше радиус, тем более ровными получаются стенки. Выбираем на вкус).
Color over Lifetime
* Я выставил такие настройки для плавного появления и менее плавного ухода
Size over Lifetime
* Размер должен увеличиваться примерно по экспоненте, но не с самого нуля
Результат на текущий момент
Другие партиклы
По аналогии я добавил другие частицы в виде клеток и вен. Расписывать подробно не буду, так как работу я проделал примерно аналогичную — настройки отличались лишь слегка. Следует учесть, что частицы должны быть поверх стен. Для этого необходимо задать Order in Layer в Renderer. Ещё я использовал Velocity over Lifetime, с этим тоже можно поиграться. Ну и добавил виньетку. Получилось так:
Немного динамики
Простым перемещением объекта Tunnel мы получим нелинейный тоннель. Добавим компонент Mover к Tunnel и удивимся результату
using UnityEngine;
public class Mover: MonoBehaviour public float rangeX = 2;
float rangeY = 1.5f;
public float timeDelimiterX = 4f;
public float timeDelimiterY = 3f;
void Update() transform.position = new Vector3(
Mathf.SmoothStep(-rangeX, rangeX, Mathf.PingPong(Time.time / timeDelimiterX, 1)),
Mathf.SmoothStep(-rangeY, rangeY, Mathf.PingPong(Time.time / timeDelimiterY, 1)),
0
);
>
>
Так же в коде можно менять каждый из параметров. Цвет, плавное вращение, скорость, да всё что угодно. Вот пример динамического света. Добавляем компонент и прикручиваем наши партиклы к аргументам.
using UnityEngine;
public class Colorizer: MonoBehaviour public ParticleSystem tunnelWall;
public ParticleSystem cellBig;
public ParticleSystem cellSmall;
public ParticleSystem cellVessel;
void Update() Color color = new Color(
Mathf.SmoothStep(1, 0.5f, Mathf.PingPong(Time.time / 10f, 1)),
Mathf.SmoothStep(0, 1, Mathf.PingPong(Time.time / 15f, 1)),
Mathf.SmoothStep(0, 1, Mathf.PingPong(Time.time / 5f, 1))
);
var tunnelWallMainSettings = tunnelWall.main;
tunnelWallMainSettings.startColor = color;
var cellBigMainSettings = cellBig.main;
cellBigMainSettings.startColor = color;
var cellSmallMainSettings = cellSmall.main;
cellSmallMainSettings.startColor = color;
var cellVesselMainSettings = cellVessel.main;
cellVesselMainSettings.startColor = color;
>
>
Весь код и ассеты тут: Github
Возможно есть более простые и качественные способы, как это сделать, но мне очень понравилось то, что получилось, вот и решил поделиться с вами.
Добавляйте игру в вишлисты!
Магия шейдеров 19: ASCII Art Шейдер а-ля Watch dogs от Мэтта Старка
Я возвращаюсь к Магии шейдеров и сегодня хочу, как обычно, не вдаваясь в детали, рассказать как бы я сделал шейдер для такого post-эффекта.
Но, давайте, сначала вспомним: что это за ASCII-арт такой. Как сообщает нам Википедия: ASCII-графика — это форма изобразительного искусства, использующая символы ASCII на моноширинном экране компьютерного терминала или принтера для представления изображений.
🤔 А причем здесь хакеры и Watch dogs? ASCII-арт, помимо демосцены, частенько встречался в .nfo файлах с crack и keygen архивами. В этих nfo-файлах создатели crack'ов и keygen'ов указывали всякую информацию о своей команде, рисовали теги команды или просто какой-то симпатичный арт. Часто можно было увидеть там символьные черепа, монстров и другую симпатичную жуть, которой, наверняка вдохновлялись Ubisoft для создания логотипа группировки DeadSec.
Так как бы я сделал?
Сделаем fullscreen post-эффект: 1) Вычисляем Luminance 2) Сжимаем картинку до размеров нашей ASCII-картинки в символах. Сколько символов мы хотим чтобы у нас было на экране? 3) Делаем 1D LUT-текстуру с, отсортированными по количеству белого, символами 4) В последнем пассе используем картинку из шага 2 и LUT-текстуру из шага 3 чтобы отрисовать символы в экранную текстуру.
Простор для применения
- Можно блендиться между исходной текстурой и полученной в результате такого пост-эффекта, чтобы сделать какой-то красивый fade-эффект.
- Можно затенять пиксели символов, я предполагаю будет гораздо более объемная картинка
Всем привет! В этой статье я хочу поговорить с Вами о 5 простых, но тем не менее очень полезных выражениях. Эти выражения я использую чуть ли не в каждом втором проекте и они существенно облегчают мою жизнь.
1) Итак, первое из них - это loopOut(). Простенькое выражение для зацикливания анимации. Допустим, у нас есть бабочка, собранная из трех частей: левое крыло, правое и тело.
И нам необходимо сделать так, чтобы крылья без остановки вращались вокруг оси Y, создавая тем самым эффект реалстичных махов крыльями. Но представляете, сколько ключевых кадров нам нужно поставить, чтобы анимировать крыло на протяжении маленькой пятисекундной композиции. По моим подсчётам около 60! И, чтобы не возиться с этим огромным количеством ключевых кадров, разработчики программы придумали одно простое выражение - loopOut.
Поэтому, мы находим параметр Rotation Y и слева от него кликаем по значку с секундомером. После чего, в начале композиции появится ключевй кадр, измените значение параметра для этого ключа на -80. После этого мы переходим на 4 кадра вперед и изменяем значение параметра Rotation Y на 80. Затем ещё 4 кадра вперед и меняем значение параметра обратно на -80. Таким образом мы получили 3 ключевых кадра.
После этого мы зажимаем клавишу Alt и кликаем ещё раз по значку с секундомером. Появится текстовая область для выражения. В ней мы пишем loopOut().
Всё, теперь наша анимация продолжается до самого конца композиции без всяких ключевых кадров.
2) Ок, правое крыло мы анимировали. Теперь займемся левым. Не будем повторятся, и левое крыло анимируем немного другим способом. Все Вы, наверно, ещё со школьной скамьи помните замечательную математическую функцию синус. Так давайте воспльзуемся ею и здесь. Делаем Alt+клик по значку с секундомером слева от параметра Rotation Y левого крыла. В появившемся окне пишем Math.sin(time).
Крыло перемещается, но совсем незаметно. Попробуем увеличить частоту вращения, для этого в скобках time умножим на 15.
Отлично частоту мы увеличили, но, как Вы помните, значения синуса находятся в диапазоне от -1 до 1. Поэтому и амплитуда вращения крыла у нас такая маленькая. Чтобы увеличить её умножим всё это выражение на 80.
В итоге получим: 80*Math.sin(time*15). Можно, конечно, немного увеличить частоту, но это уже на Ваше усмотрение.
3) Wiggle. Наверно, самое используемое выражение в среде After Effects, и всё-таки не все знают для чего оно предназначено. Wiggle отвечает за хаотичные перемещения. Вообще функция wiggle имеет целых пять аргументов, но в основном используются только два. Первое - это частота, второе - амплитуда колебаний. Рассмотрим на примере. Я анимировал положение бабочки, теперь она перемещается из левого нижнего в правый верхний угол.
Движение ожидаемо смотрится линейно и неправдоподобно. Если мы хотим сохранить направление движения, но при этом добавить немного органичности, то нам не обойтись без wiggle. Итак, делаем Alt+клик на значке с секундомером слева от параметра Position и в текстовой области вбиваем wiggle(3,400). Смотрим и видим, что полёт бабочки стал более реалистичным. Что же означает написанное выражение wiggle(3,400). А означает оно то, что три раза в секунду с амплитудой в 400 пикселей в любом направлении будут происходить случайные колебания. Самое интересное это то, что wiggle можно применить практически к любому параметру в AE.
4) Данный пункт является не столько выражением, сколько очень интересным приёмом при работе с wiggle. Многие меня спрашивают, как можно изменять настройки функции wiggle с течением времени, или по-другому, как анимировать один из аргументов функции wiggle. Очень просто! - отвечу я Вам. Создаём нуль-объект. Затем идём Effect => Expression Controls => Slider Control. Пускай у нас будет изменятся амплитуда. Переходим к выражению, которое мы создали в предыдущем пункте. Выделяем амплитуду,
берём pickwip и тянем его до параметра Slider нуль-объекта.
Вот такое выражение мы получим в итоге:
Теперь Вы можете с легкостью анимировать значение параметра Slider и таким же образом будет менятся амплитуда.
5) И последнее о чем я хотел Вам сегодня поведать - это наипростейшее выражение с управляющей переменной time. Вы, наверное, не раз сталкивались с такими выражениями. На пример, у нас есть какой-нибудь сплошной слой, мы применяем к нему эффект Fractal Noise и, чтобы данный эффект не был статичным нам нужно анимировать параметр Evolution.
Да, можно поставить 2 ключевых кадра в начале и в конце композиции, но есть и другой путь. Делаем Alt+клик по значку с секундомером слева от параметра Evolution и пишем time. Теперь, если мы перемести индикатор текущего времени в позицию одной секунды, то значение параметра Evolution будет равнятся одному градусу. 1 секунда = 1 градус - всё очень просто!
Если нам нужно ускорить анимацию, допустим в пять раз, то мы пишем time*5.
Читайте также: