1. Рух по колу
Відкрийте файл Trig Circular Motion.aep з папки Circular
У цьому прикладі ми задамо обертання по колу якогось об'єкта. Відзначте, що при обертанні об'єкт не буде змінювати орієнтацію, чи не буде повертатися і навколо своєї осі. Якщо ви захочете, то зможете додати і цю можливість.
1. Необхідно визначити центр нашої окружності:
center = this_comp.layer ( "Center"). position;
2. Тепер визначаємо довжину радіуса. Задаємо її в пікселах:
radius = 120;
3. Тепер визначимося з кутом. Ми використовуємо як керуючу змінну, "час". Саме час буде визначати кут A - кут в центрі кола. Крім того, завжди можна буде зробити обертання швидше, "помноживши час", скажімо на 2: time * 2. В такому випадку повний оборот буде здійснюватися за Pi секунд, так як повна окружність дорівнює 2Pi радіан, а кути вимірюються саме в радіанах.
angle = time * 2;
4. Тепер напишемо основу нашого вираження:
x = radius * Math.cos (angle);
y = radius * Math.cos (angle);
5. Якщо Ви все ж хочете, що б обертання відбувалося саме навколо нашого центру, то потрібно змінити центр координат, точніше кажучи зрушувати кожну точку, складову окружність. І зробити це можна за допомогою наступного оператора:
add (center, [x, y]);
2. Розміщення об'єктів по колу.
Відкрийте файл DUBLICATE.AEP
Для отримання цього ефекту ми не будемо створювати новий вираз, а лише модифікуємо вираз з попереднього прикладу.
У вже розглянутому нами вираженні вхідної змінної був час. Час минав, змушуючи змінюватися кут, і об'єкт рухався по колу. У новому ж прикладі, в вхідної змінної буде індекс шару, його становище в стеці вікна Timeline. Так як індекс від шару до шару зростає, то і кут буде змінюватися, зростати. Надубліруйте шари, і вони самі розташуються по колу.
1. Ось вам основна ідея вираження:
layer_num = index-1;
interval = 30;
angle = degrees_to_radians (layer_num * interval);
Отже, перший кут розміститься під кутом в 0 °, наступний - 30 °, далі - 90 ° і т.д.
2. Після того, як ви створите стільки копій, скільки треба, краще за все буде за допомогою перетворити вираження в послідовності ключових точок: Animation / Convert Expression to Keyframes. Тепер у вас не буде потреби кожного разу при прорахунку включати режим ігнорування виразів.
3. Ось повне вираження, прив'язане до параметру розташування (Position):
center = this_comp.layer ( "Center"). position;
radius = 80;
interval = 30;
layer_num = index-1;
angle = degrees_to_radians (layer_num * interval);
x = radius * Math.cos (angle);
y = radius * Math.sin (angle);
add (center, [x, y]);
У темі "Кругла функції" ми створювали рух по колу, використовуючи функції синуса і косинуса для знаходження x- і y-координат точок, які складають коло. У цій темі ми за допомогою функції синуса (або косинуса) будемо витягувати, наприклад, вертикальну складову об'єкта, що рухається по колу.
У наступній анімації точка, що рухається по колу, буде керувати "пером" віртуального плоттера. Ми ізвлечём вертикальну компоненту обертається точки, абсолютно ігноруючи горизонтальну. І саме в залежності вертикальної компоненти обертається точки рухатиметься "перо".
Як ви, напевно, звернули увагу, "перо" рухається не в постійному ритмі. У мінімальних і максимальних значеннях перо уповільнює свій хід так, як би це відбувалося при застосуванні функцій інтерполяції "Easy-ease". Такий рід руху називається простим гармонійним рухом. Найбільш часто використовуваний приклад такого руху - рух хитається маятника.
Розпізнати такий тип руху в наступному прикладі легко, звернувши увагу на жовті точки, одна з яких рухається горизонтально, інша - вертикально. Ці дві точки - демонструють відповідно горизонтальну і вертикальну складові руху. Рухаючись по синусоїді, вони демонструють просте гармонійне рух:
Ще один приклад простого гармонійного руху - це рух об'єкта на пружині. Тут треба враховувати, що в реальному світі дію пружини поступово зменшується, зменшується амплітуда руху пружини. Про амплітуді і піде далі мова.
Довжина хвилі, частот і амплітуда
Будь-яке хвилеподібний рух, в тому числі і просте гармонійне рух, характеризуються двома базовими характеристиками: довжиною хвилі і амплітудою. Довжина хвилі, це як би швидкість коливань, амплітуда, це як би сила коливань. Довжина хвилі визначається, як відстань між двома мінімумами або максимумами функції. Амплітуда - це відстань від нульової лінії до мінімуму або максимуму функції.
Під частотою розуміється кількість мінімумів (максимумів) за певний інтервал часу, найчастіше за секунду.
point1 = this_layer.position;
point2 = this_comp.layer ( "Drag Me"). position;
delta = sub (point1, point2);
distance = length (delta);
linear (distance, 0, 80, 40, 0);
ps працює на cs5
Дуже корисно все. Прости за можливе дурне питання. Ти весь час відправляєш читачів за довідкою в "Довідник по мові виразів Adobe After Effects". Може я що недочитав, де це? Дякуємо.