Перейти к содержанию

Добро пожаловать в сообщество творческих людей - ARTTalk.ru!

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

Для новых пользователей доступна регистрация.

Тема для обсуждения новой версии сообщества.

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

Авторизация  
Trofei

Тригонометрия для ботаников (от vistly)

Рекомендуемые сообщения

Тригонометрия для ботаников

Спасибо автору урока за предоставленную для ARTTalk'a информацию из личного ЖЖ.

 

t65tz6.gif

 

Задача: повторить меню макоси в After Effect'е, применительно к обувной косметике

 

а именно: сделать "волну" вырастающих тюбиков, с возможностью контролировать все параметры "волны"

 

засада: тюбики не должны друг на друга залезать

 

решение: напишем экспрешшен в афтереффекте, и всего делов

 

мувик

 

1. морщим лоб, уясняя задачу: нужно чтобы при приближении некоего контрольного объекта наши баночки плавно вырастали, а при удалении - плавно принимали исходный размер. плюс надо чтобы баночки раздвигались при вырастании, чтобы не перекрывать соседей.

 

2. рисуем на бумажке, или еще где, графики изменения размера и позиции баночек в зависимости от приближения контрольного объекта.

 

rhvkvq.gif

 

на графиках:

 

ось Х - расстояние между баночкой и контрольным объектом

ось У - изменения позиции (зелененькое) и размера (красненькое)

а - расстояние на котором баночка начинает "чуять" контрольный объект по поводу сдвига

b - изначальный размер банки

с - максимальное изменение размера банки (высота волны)

d - максимальный сдвиг баночки

e - расстояние на котором баночка начинает "чуять" контрольный объект по поводу роста

 

3. вспоминаем тригонометрию из школы, получается что в серединке у графиков куски синусоиды и косинусоиды:

 

если расстояние до контрольного объекта меньше а - банка сдвигается по формуле Y(X)=-d

 

если расстояние до контрольного объекта больше а - банка сдвигается по формуле Y(X)=d

 

если расстояние до контрольного объекта укладывается в интервал от -а до а - банка сдвигается по формуле Y(X)=sin((x*pi)/(a*2))*d

 

если расстояние до контрольного объекта меньше e - банка растет по формуле Y(X)=((cos((x*pi)/e)+1)/2)*c+b

 

если расстояние до контрольного объекта меньше e - банка растет по формуле Y(X)=b

 

4. осталось это перевести на язык экспрешшенов афтереффекта

 

делаем композицию из всех банок и добавляем в нее дамми-слой, который будет у нас контрольным объектом.

у всех банок смещаем анкор-пойнт к основанию, чтобы они росли только вверх

выстраиваем банки в линию

 

2rlzy52.gif

 

на дамми-слой накладываем четыре эффекта Expression controls - Slider Control

переименуем их попонятнее. они будут отвечать за переменные a,c,d и e. переменная b будет равна 1.

 

на position каждой банки применяем expression:

 

pos = thisComp.layer("Null 1").effect("Shift")("Slider");

if (thisComp.layer("Null 1").transform.position[0] - transform.position[0] < 0) {pos = -thisComp.layer("Null 1").effect("Shift")("Slider");}

if (Math.abs(thisComp.layer("Null 1").transform.position[0] - transform.position[0]) <thisComp> thisComp.layer("Null 1").effect("Affect scale")("Slider")) {scl = 1;}

transform.scale*scl

 

в которых нетрудно узнать наши формулки :)

 

потянем за контрольный объект и насладимся результатом!

 

30cbzgw.jpg

 

осталась ерунда, фон, тени и глосси-отражения.

 

Автор: vitsly

Источник: Урок в ЖЖ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

Авторизация  

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек. Условия использования