вход
Примечание: Это автоматический перевод; воспользуйтесь понятном языке без сленга.

генерации случайных Motion с AE 5.5 в выражениях

Dan Ebberts
Обучение :
генерации случайных Motion с AE 5.5 в выражениях
генерации случайных Motion с AE 5.5 в выражениях


from CreativeCow.net's ''25 Cool Things about After Effects 5.5'' Series


Generating Random Motion with AE 5.5's Expressions
Dan Ebberts Dan ebberts,
Сакраменто, Калифорния, сша

© 2002 г. Dan ebberts и CreativeCOW.net. Все права защищены.

Статья внимание:
В этом учебном пособии, Dan ebberts демонстрирует способ создания движения, случайные во времени и пространстве, и позволяет быстро собирать состав с приятным жидкости, хаотического движения.


скачать фильм файл проекта (в том числе АИ-файл) скачать StuffIt Expander для Windows

проблема:

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

если (время = 0) (
X = 10
}
еще (
X = X + 1
}

эта отлично работает на первом кадре. на втором кадре вы получите сообщение об ошибке, поскольку х не определено. выражение не вспомнить, что X 10 на предыдущем кадре. Это становится серьезным препятствием, когда вы пытаетесь сделать что-нибудь более случайное количество времени, потому что после того, как вы решите, как долго она должна принять, Вам нужно проверить в каждом кадре, чтобы, если вы сделали еще. Трудно делать, если вы не можете пройти, что из стоимости одного кадра к следующему.


Seed_random к спасению:

Получается, что вы можете обойти эту проблему с расширением (для AE 5.5) seed_random функции. Эта функция позволяет вам установить повторяемость последовательность случайных чисел, и восстановить их по своему желанию, только путем восстановления семенного на предыдущее значение, а затем позвонить в случайных () функции. Это дает нам решение проблемы, поскольку, даже если мы не можем передать наши случайные значения от одного кадра к следующему, мы можем восстановить их, используя seed_random. Давайте посмотрим, как работает seed_random.

открыть файл проекта, а затем открыть "основные Comp". Это просто 640x480 Comp с 50x50 твердого слоя добавил. выберите "твердые 1" и свидетельствуют о состоянии имущества. Alt-клик (вариант кнопки) на секундомер для включения выражения этой собственности. введите следующее выражение:

[случайной (0,This_comp.ширина),случайная (0,This_comp.высота)];

Это приведет к площади, чтобы перейти к случайной позиции в компании. просмотреть Comp. Вы заметите, что квадратные прыжки на новую позицию на каждом кадре. не очень полезно. добавить новую строку с таким выражением, что он сейчас читает:

Seed_random (1,True);
[случайной (0,This_comp.ширина),случайная (0,This_comp.высота)];


Заметим, что еще раз квадратных прыжки в случайное положение, но если вы предварительно его пребывания там. это новое поведение обусловлено изменением, что Adobe внесенные в seed_random функции AE 5.5. они добавили второй параметр, Если установлено, что на "истинную" задается случайная функция так, что случайные числа порожденных не зависят от времени. случайных чисел зависит от количества слоев, собственностью число, значение первого параметра в seed_random звонка (в "семени"), и сколько раз случайная функция называется. Это означает, что то же выражение будет генерировать различные случайных чисел в другой слой или собственности (в дальнейшем мы будем использовать это быстро добавить сложности для нашей компании). попробуйте "семени" параметр в некоторых других номера. Вы заметите, что квадрат перемещается в другое место, и остается там. изменить второй параметр на "ложных" и заметили, что когда вы предварительно, площадь прыжков всего место опять.

добавить немного кода на выражение тем, что он выглядит так:

если (время 1) (
Seed_random (1,True)
}
еще (
Seed_random (2,True)
}
[случайной (0,This_comp.ширина),случайная (0,This_comp.высота)];


Сейчас вы увидите, что когда вы предварительно, площади остается на одном месте для первой секунды, а затем прыгает в другое место, на оставшуюся часть Comp.

Итак, как мы можем использовать эту новую, более мощные функции seed_random? Вот основные концепции: со второго параметра установлено значение "истина", для заданного слоя, собственность, и стоимости семян, случайные числа вы получите при вызове случайных () функция зависит только от того, сколько раз у вас называется функция, поскольку установление семян. то есть, Впервые вызов случайная (), после установления семян вы получите particlar случайное число (назовем его Х). второе слово будет генерировать второй случайных чисел (назовем этот один год) и т.д.. Но если вы называете seed_random опять с оригиналом семян, последовательность начнет более. то есть, следующий случайных () слово будет восстановить первоначальное случайное число (X в данном случае). используя различные начальные значения приведет к совершенно иной последовательности, которые будут созданы. Рассмотрим следующий пример:

Seed_random (1,True); / / задать начальные значения
A = случайных ();
B = случайных ();
C = случайных ();

Seed_random (1,True); / / сбросить семена на одинаковую ценность
Я = случайных ();
J = случайных ();
K = случайных ();

Seed_random (2,True) / / новые семена
Q = случайных ();
R = случайных ();
S = случайных ();

Seed_random (1,True); / / восстановить оригинальные семена
X = случайных ();
Y = случайных ();
Z = случайных ();

В этом случае, A,B, В и С будут разными случайных чисел. однако, А и Я буду то же, B и J будет таким же, и C и K будет таким же, потому что семена были сброшены (к 1, в данном случае) и случайная последовательность начинается за. Q,R и S будет новая последовательность случайных чисел, так как семена была изменена на 2. последовательность X,Y,Z будет таким же, как,B,с и я,J,K поскольку семян была установлена в 1 раз. так что мы можем вернуться в последовательность случайных чисел восстановления семенного значение, порожденных этими номерами.

Как это поможет нам? генерировать наше случайное движение, на любой кадр нам необходимо знать несколько вещей по поводу нынешней сегмент движения: время старта, Начальная позиция, Время окончания, и в конце позиции. эти будут случайных чисел, что мы будем создавать с помощью различных семян стоимости для каждого этапа движения. и мы будем основывать семян стоимость сегмент, на котором мы в настоящее время. так что все мы должны сделать, это есть выражение смогут выяснить, какие сегменте он находится в (из которой он сможет выяснить семян стоимость), набор семян, и восстановить последовательность случайных чисел, что дает нам время старта, Начальная позиция, Время окончания, позицию и в конце значения для текущего этапа.

ОК - давайте обзор того, что наша цель будет заключаться в это выражение. мы хотим, чтобы на площади, чтобы плавно перейти от одной случайной позицию на экране в другое. Мы также хотим, чтобы время, которое потребуется для этого быть случайной (скажем, между .5 и 2 секунды). это выражение, что будет делать:

Seg_start_time = 0; / / начальные условия
Seg_конец_time = 0;
I = 1;
Tmin = .5 / / минимальное время цикла (не может быть нулевой)
Tmax = 2; / / максимальное время цикла
время (время = seg_конец_time) (
Я = I +1; seed_random (I,True);
Seg_start_time = seg_конец_time;
Seg_конец_time = seg_конец_time + случайная (tmin,Tmax);
}
проц = (время - seg_start_time) / (seg_конец_time - seg_start_time);
Target_x = случайных () * This_comp.ширина;
Target_y = случайных () * This_comp.высота;
Seed_random (I-1,True);
X = случайных (); / / это бросок-за стоимости
Old_x = случайных () * This_comp.ширина;
Old_y = случайных () * This_comp.высота;
легкость (в процентах,[old_x,Old_y],[target_x,Target_y]);

Копия этого выражения, и вставить его в позицию выражения (или просто открыть "основные Comp + выражение"). просмотреть Comp. Вы заметите, что на площади в настоящее время хорошо, жидкости, движения, что является случайной продолжительности и направленности.

В этом выражении, "Я" это наш сегмент борьбы, , которые мы будем также использовать в качестве семенного значения для этого сегмента. "tmin" и "Tmax" определить круг возможных случайных раза в течение каждого сегмента. В этом случае, сегмент будет длиться от .5 и 2 секунды. на "а" петля находится выражение цифры сегмент, который она в. он делает это, увеличивая семян и накопления случайных сегмент длительностей до значения больше, чем текущее время будет достигнуто. На данный момент он знает начало, конец, и текущее время в настоящее время сегмент, чтобы он мог рассчитывать на долю этого сегмента, который будет завершен. Он призывает случайных () функции более двух раз, чтобы получить целевую X и Y координаты конца позиции этого сегмента. следующей части немного мудреный. выражение еще нужно знать, на стартовую позицию в этом сегменте, чтобы он мог рассчитывать (исходя из доли дополнено) текущей позиции. С самого начала положение такое же, как в конце позицию предыдущего этапа, мы просто декремента семян, чтобы вернуться к семи предыдущего этапа. выражение затем звонки случайных (), чтобы получить конце X и Y координат предыдущего этапа. Вы заметите, что есть одно "бросить-за" призыв к случайным () до предыдущего X и Y значения определяются. Это объясняется тем, что для каждого семени, первый случайных () слово всегда используются для конца времени (который мы уже знаем) - 2-й и 3-м вызовов используются для X и Y координат.

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

Seg_start_time = 0; / / начальные условия
Seg_конец_time = 0;
I = 1;
Tmin = .5 / / минимальное время цикла (не может быть нулевой)
Tmax = 2; / / максимальное время цикла
время (время = seg_конец_time) (
Я = I +1; seed_random (I,True);
Seg_start_time = seg_конец_time;
Seg_конец_time = seg_конец_time + случайная (tmin,Tmax);
}
проц = (время - seg_start_time) / (seg_конец_time - seg_start_time);
Target_непрозрачность = случайных () * 100;
Seed_random (I-1,True);
X = случайных (); / / это бросок-за стоимости
Old_непрозрачность = случайных () * 100;
легкость (в процентах,Old_непрозрачность,Target_непрозрачность);

и замена выражения:

Seg_start_time = 0; / / начальные условия
Seg_конец_time = 0;
I = 1;
Tmin = .5 / / минимальное время цикла (не может быть нулевой)
Tmax = 2; / / максимальное время цикла
время (время = seg_конец_time) (
Я = I +1; seed_random (I,True);
Seg_start_time = seg_конец_time;
Seg_конец_time = seg_конец_time + случайная (tmin,Tmax);
}
проц = (время - seg_start_time) / (seg_конец_time - seg_start_time);
Target_rotation = случайных () * 360;
Seed_random (I-1,True);
X = случайных (); / / это бросок-за стоимости
Old_rotation = случайных () * 360;
легкость (в процентах,Old_rotation,Target_rotation);

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

Здесь происходит самое интересное. дубликат "твердой 1" стаей раза (или просто открыть "Мульти" Comp ") и предварительный просмотр Comp. помните - вы можете сделать это очень быстро, используя Ctrl + D ярлык (Command + D на MAC ). Теперь, когда вы прослушать есть один шквал деятельности. случайных чисел для каждого слоя различны, хотя выражения точно так же для каждого.


Сейчас вещи становятся все более интересными


открыть "весело Comp" и прослушать его. Для этого Comp, Я дублируется "твердые 1" два раза, а затем заменить каждую из твердых веществ, с одной из иллюстратор файлы. Затем я дублировал каждый из слоев кучу раз. Вы можете видеть, что как только вы создали выражений, дублируя слои быстро добавляет сложности в вашей компании.


можно легко создать сложные Comp быстро эти выражения


Вы можете вскрыть выражения посмотреть, как они работают, или вы можете просто скопировать и вставить их в свой comps. три примера я уделяется (положение, непрозрачность, и вращение) должны дать вам очень хорошее представление о том, как приспособить выражение для других свойств. Я надеюсь, что это внушает некоторые из вас играют примерно с этим и создать что-то круто!

# # Dan ebberts

Вы можете обсудить эту технику в After Effects форум Здесь на CreativeCOW.




пожалуйста, посетите наши форумы и просмотреть другие статьи на CreativeCOW.net Если вы обнаружили на этой странице от прямой ссылке.


ФорумыОбучениеЖурналУслугивидеоклипыНовостиБлоги


© CreativeCOW.net Все права защищены.

Creative общин мира

[Верх]

Englishالعربية中文FrançaisDeutschעבריתहिन्दीItaliano日本語PortuguêsРусскийEspañol