Статья внимание: В этом учебном пособии, Dan ebberts изучает, как можно использовать выражения в After Effects 5.5 строить достаточно сложные 3D частицы генератор. наши частицы будут реагировать на начальной скорости, гравитация, ветер, перетащить, и многое другое. Используя этот генератор частицы, Мы посмотрим, как можно создать взрывы, дым, пожар взрыв, снегопад, и даже жидкость типа потока. мы будем изучать, как сделать каждую частицу повторного использования, , который позволит нам моделировать фонтан-частицы, как потоки. это вполне современные.
Основная идея заключается в том, что мы будем импортировать графическое изображение одной частицы. мы перетащить его в нашей компании и сделать ее 3D. мы будем применять наши физические симуляции выражения нашего частицы, а затем дублировать этот слой достаточно раз, чтобы получить убедительные результаты. Мы набор выражений, с тем, что каждая частица (слой) будет вести себя иначе. мы будем применением выражений для многих частиц свойств, в том числе положение, Шкала, непрозрачность, и ротация.
Мы начали с простого взрыв и разработка более сложных выражений оттуда. она будет в конечном итоге связаны некоторые очень волосатые математической физики, а некоторые (жаль!), Но хорошей новостью является то, что вам не обязательно понимать, как именно выражения работу - вам просто необходимо знать, каким образом изменить их, чтобы они могли сделать то, что вы хотите. В первой части учебника, Что я пытаюсь сделать, как можно больше, заключается в том, чтобы охватить основные каким выражением работы и как вы бы изменить их. тогда, к концу, о решительной может последовать за Мной через волосистой математике и физике.
стратегии --- ---
Мы хотим, чтобы каждый из наших частицы имеют определенный срок, который будет случайным в определенном диапазоне. поскольку мы с применением выражений на нескольких свойств частиц, мы должны так или иначе сообщить информацию о частице в жизни для всех выражений, которые в ней нуждаются. мы будем делать это, выполняя жизни расчеты в выражении контроля (если Вы хотите узнать больше о выражения контроля, см. мой учебник здание в мире оператор). мы будем использовать выражение контроля, как только для чтения глобальная переменная которые могут быть доступны для всех других выражений применительно к нашей частицы.
--- Давайте начинать!---
пойти дальше и открыть файл проекта, а затем открыть "взрыв - основные" Комп. Вы заметите, графический слой, называемый "звездный факел", а также нулевой слой, , которые оба имеют 3D включен. мы будем использовать позицию нулевой установить в центре взрыва. мы будем ссылаться на нуль, как частица "эмиттер", а позднее мы будем двигаться в нуль в окрестности распространять "эмиттер скорости" для частиц. Выберите вкладку "Звезда ракету" слой и тип "U", чтобы показать все свойства, которые применяются для выражения им. Кроме того, тип Ctrl + Shift + T (PC) или CMD + Shift + T ( MAC ) Для отображения эффектов применяемых слоя. Вы увидите, что "точка" контроль был применен и переименована в "жизни". Вы можете быть удивлены, почему мы бы использовать точку управления вместо ползунок контроля провести "жизнь" Значение. Причина заключается в том, что в дальнейшем (когда мы получаем для повторного использования частиц) мы должны пройти как "жизнь" и "рождения" раз поэтому мы нуждаемся в контроле, что может пройти два значения. мы не могли использовать только два ползунка контроля? нет, потому, что расчеты за "рождение" и "жизнь" должно быть сделано в рамках одного слова, чтобы они работали. в сроки, щелкните twirly рядом с "точки", чтобы выявить выражение применительно к "жизни" точка контроля:
Lmin = 1.5 / / минимальная частица жизни
Lmax = 2.5 / / максимальное частица жизни
видетьd_random (1,True);
жизнь = случайная (lmin,Lmax);
рождения = 0;
[рождения,Жизнь]
это выражение будет генерировать случайные "жизнь" ценность для наших частицы, которые в период с 1.5 и 2.5 секунд. Это значение будет вставлен второй элемент нашей точки контроля переменных. первый элемент ( "рождение") это просто набор к нулю, поскольку для этого первого взрыва Comp все частицы будут рождаться в момент нулевой. THE "seed_random вызова просто рассказывает After Effects что мы хотим, чтобы получить тот же случайной величины для "жизни" каждый раз, когда мы сталкиваемся с выражением (в противном случае "жизнь" стоимость будет хоп вокруг на каждом кадре, - которые не помочь нам здесь). Если вы хотите узнать больше о "seed_random", см. мой учебник генерации случайных Motion. Если Вы хотели изменить в жизни частиц, Вы бы только изменить "lmin" и "Lmax" ценности.
щелкните twirly рядом с позиции раскрыть это выражение:
Vmin = 500; / / Минимальная начальная скорость
Vmax = 700 / / максимальная начальная скорость
рождения = эффект ( "Жизнь").Param ( "точка") [0];
жизнь = эффект ( "Жизнь").Param ( "точка") [1];
происхождения = this_comp.слой ( "нулевой 1").Позиция.Value_at_time (рождении);
возраст = время родов;
видетьd_random (1,True);
S = случайных (Vmin,Vmax); / / начальная скорость
A = degrees_to_radians (случайные (180)); / / угол от вертикали
R = degrees_to_radians (случайные (360)) / / вращение вокруг оси Y
X = S * математика.грех (а) * математика.COS (R);
Y =- S * математика.COS (A);
Z = S * математика.грех (а) * математика.SIN (R);
V = [X,y,Z];
происхождения + V * время
это основная позиция выражение "нулевого G" взрыв. наши частиц начнется в случайном направлении в 3D пространстве от "происхождения" (что это просто позиция нулевой слой) с начальной скоростью от 500 до 700 единиц (что примерно соответствует пикселей в секунду). частицы будут продолжены на этой скорости и направлении до тех пор, пока он умрет из. мы еще не учтены в ветер, гравитация, и перетащить. Я уверен, вы заметили трех линий, которые используют функции JavaScript наряжать рассчитать X, y, и Z компонентов частицы вектора скорости. этот вектор генерируется из случайных величин скорости ( "S"), запуск угол от вертикали ( "А") и вращение по отношению к компании в оси Y ( "R"). не слишком беспокоиться по поводу всего этого вектора вещи в данный момент - как я уже говорил, Вам не нужно понимать, как она работает, чтобы иметь возможность работать, и мы будем охватывать он более подробно позже. самое главное, вы должны знать об этой версии позицию выражения заключается в том, что вы измените "Vmin" и "Vmax" ценностей, чтобы изменить первоначальную скорость частицы. Позднее мы добавим ограничение на угол от вертикали, которая позволит нам создать фонтан типа струи.
нажмите маленький twirly рядом со шкалой для определения выражения:
Max_Шкала = 50 / / максимальный масштаб
S =.2 / / масштаб нарастить времени
жизнь = эффект ( "Жизнь").Param ( "точка") [1];
возраст = временем эффект ( "Жизнь").Param ( "точка") [0] / / возраст = временем рождения
если (возраст S) (
X = (возраст / с) * Max_Шкала;
[X,x,100]
() другое
[Max_Шкала,Max_Шкала,100]
}
Все это делает это выражение к съезду шкале от 0 до значения, указанного в "Max_Шкала" (50% в данном случае) в течение периода, который определяется по "S" (.2 секунд, в данном случае). Если вы хотите частиц достичь максимального размера быстрее или медленнее, Вы бы изменить значение "S". Заметим, что это значение должно быть меньше, чем "lmin" из "жизни" слова, если вы хотите быть уверены в том, что частицы достигают в полный размер, прежде чем он умрет.
Теперь нажмите twirly рядом с Z ротации, и вы увидите, это выражение:
рождения = эффект ( "Жизнь").Param ( "точка") [0];
видетьd_random (1,True);
R = случайных (rmin,Rmax);
жизнь = эффект ( "Жизнь").Param ( "точка") [1];
возраст = время родов;
если (жизнь == 0) (
0
() другое
R / * возраст жизни
}
это выражение Picks случайная величина (между -1080 градусов и 1080 градусов) для вращения вокруг оси Z на протяжении жизни частиц. Заметим, что это выражение используется "рождения" и "жизнь" ценности с точки контроля. также отметить использование "seed_random" функцию, чтобы убедиться, что случайная ротация стоимости выбранного остается тот же каждый раз, когда выражение вычисляется. Если вы хотели бы изменить, сколько частиц могут вращаться, Вы бы изменить "rmax" и "rmin" ценности.
наконец,, щелкните twirly рядом с непрозрачностью раскрыть это выражение:
DECAY =.75 / / частицы исчезают из времени
Max_непрозрачность = 100 / / максимальная прозрачность
жизнь = эффект ( "Жизнь").Param ( "точка") [1];
возраст = временем эффект ( "Жизнь").Param ( "точка") [0];
если (возраст жизни) (
0
() другое
если (возраст жизни распада) (
((жизнь возраста) / распад) * Max_непрозрачность;
() другое
Max_непрозрачность
}
}
это выражение обрабатывает исчезать из-частицы, в конце своей жизни. "Распад" настало время, в секундах, о том, что исчезают продолжается. Вы бы изменить это значение, если вы хотели бы изменить исчезать из времени. это значение должно быть меньше, чем "lmin" значение "жизнь" контроль. "Max_непрозрачность" является, Как вы можете ожидать, максимальное значение непрозрачности, что вы хотите достичь частицы.
что для выражения этого первого взрыва. Выберите вкладку "Звезда ракету" дубликат слоя и его кучу раз. Я, как правило, просто нажмите Ctrl + D (ПК) или CMD + D ( MAC ) Четыре или пять раз, выбор оригинальных и все дубликаты и нажмите Ctrl + D / CMD + да кучу несколько раз для получения по меньшей мере 50 частиц. просмотреть Comp. Естественно,, при том, что многие слои, каждая с пятью выражения применяются, это может занять некоторое время, чтобы сделать предварительный. При применении этого метода, Вам придется сделать остаток времени от использования достаточно частиц создать убедительный эффект. Вы должны в конечном итоге с красивым 3D взрыва которой частицы просто взрыв во всех направлениях без какой-либо силы, действующие на них, за исключением их первоначальной скоростью.
--нуль-G взрыва с 65 частиц
--- Давай получить физический ---
Теперь перейти в глубокий конец бассейна, и добавить физические воздействия ветра, гравитация, перетащить, эмиттер и скорость нашей позиции выражения. мы добавим все код сейчас, но мы вовсе не обязательно использовать все новые параметры для каждого примера. Мы пойдем через множество примеров, но, до тех пор, пока мы рассмотрели все. пойти дальше и открыть "взрыв с физикой" Комп. выбрать один из "звезд ракету" слоев и типа "С" для отображения позиции собственности. щелкните twirly рядом с "позиции", чтобы раскрыть наше новое выражение, которое включает в себя все области физики. это новый код:
G = 100; / / тяжести
W = 0; / / ветер
Wdir = 0; / / направление ветра (0 = слева)
Vmin = 700; / / Минимальная начальная скорость
Vmax = 1000 / / максимальная начальная скорость
Амин = 0; / / минимальный угол старта от вертикали
Amax = 110; / / максимальный угол старта от вертикали
D = 4 / / перетащить coeffecient
рождения = эффект ( "Жизнь").Param ( "точка") [0];
жизнь = эффект ( "Жизнь").Param ( "точка") [1];
происхождения = this_comp.слой ( "нулевой 1").Позиция.Value_at_time (рождении);
возраст = время родов;
видетьd_random (1,True);
S = случайных (Vmin,Vmax); / / начальная скорость
V_e = this_comp.слой ( "нулевой 1").Позиция.Velocity_at_time (рождения) / / эмиттер скорости
A = degrees_to_radians (случайная (Amin,Amax)) / / угол от вертикали
R = degrees_to_radians (случайные (360)) / / вращение вокруг оси Y
X = S * математика.грех (а) * математика.COS (R);
Y =- S * математика.COS (A);
Z = S * математика.грех (а) * математика.SIN (R);
V = [X,y,Z] + v_e;
New_speed = длина (V);
Unit_v нормализовать = (V);
если (D 0) (
Delta_p = new_speed * (1-математика.EXP (-D * возраст)) / D;
() другое
Delta_p = возраст * new_speed;
}
Delta_w = W * возраст;
Delta_g = G * Возраст * Возраст / 2;
Как вы можете видеть, мы добавили код тяжести, ветер (который мы не используется в данном примере), запуск угол, перетащить, эмиттер и скорости. не волнуйтесь, но о том, как все это работает. Вам просто нужно знать, что вы бы изменить первые семь параметров, чтобы изменить поведение частиц. все остальные выражения по-прежнему так же, как они были в "взрыв - основные" Комп.
Идите и просматривать Comp. Вы заметите, что наши частиц воздуха в настоящее время сталкиваются с сопротивлением (сопротивления) и страдают от тяжести. Кроме того, мы ограничили угол запуска частиц в диапазоне от 0 до 110 градусов от вертикали.
- Взрыв в тяжести (65 частиц)
--- --- произойдет ошибка
открыть и просмотреть в "засверкает взрыв" Комп. это более ранняя версия "взрыв с физикой" Comp которые ошибка в нем. Получается, что я оставил в призыв к seed_random на выражение точки контроля. В результате ошибки, где непрозрачность включается и выключается при случайном после частица жизни истек. С этой целью на самом деле довольно прохладно, Я решил держать его окрестности. Таким образом, "ошибка" становится "функцией". Вот ошибочного кода точка контроля:
Lmin = 1.5 / / минимальная частица жизни
Lmax = 2.5 / / максимальное частица жизни
жизнь = случайная (lmin,Lmax);
рождения = 0;
[рождения,Жизнь]
где есть дым .....
Теперь давайте попробуем нашей стороны, на создание некоторых дым идти с нашим взрыв. отсюда на, вещи получить немного легче. чтобы получить различные эффекты частиц, Сейчас в основном мы просто изменять параметры, которые были созданы в начале различные выражения. пойти дальше и открыть "дым" Комп. все, что я сделал для создания этой компании заключается в том, чтобы дублировать "взрыв с физикой" Comp и заменить "звезду ракету" изображения с "дыма" изображение. Затем я сделал эти изменения параметров в выражениях:
DECAY = 1.25 / / частицы исчезают из времени
Max_непрозрачность = 50 / / максимальная прозрачность
Я также изменил режим смеси слоя от "нормального" на "Экран".
параметр изменения отражают того, как дым по-другому ведет себя в ответ на различные физические силы. действие силы тяжести был значительно сокращен. воздействие ветра значительно возросли. Z-вращение значительно меньше. прозрачность каждой частице только достичь 50%. Вы прибываете на этих ценностях, взяв догадываться о том, каким образом следует реагировать частиц, , а затем настроить их до тех пор, пока она выглядит права. Идите и просматривать Comp. надеюсь вы увидите, каким образом изменения параметров внесли большой разницы в поведении частиц.
- курить с 40 частиц
На этом этапе вы можете быть удивлены, почему мы не только все эти параметры на ползунок контроля. мы могли бы сделать это и это, безусловно, сделать параметры легче настроить. проблема заключается в том, что если вы это делаете, Вы принимаете на довольно дюжий вынести хит. она может быть стоит, но мне хотелось сохранить вещи мяса и означает как можно больше, но вы можете попробовать сами, если вы хотите,.
--- Давай добавить немного мусора на смесь ---
открыть и просмотреть в "мусор" Комп. Это лишь одна из вариаций "взрыв с физикой" компании, где я изменил частиц на "спецификация" и изменили тяжести до 80 и ветер до 80. Max_Шкала имеет быть установлен на 75 и Z-вращение выражение был изменен лишь выбрать произвольный ориентации между 180 и -180 градусов. непрозрачность выражение была отключена, оставляя непрозрачность на 100%.
--- сдачи части вместе ---
открыть и просмотреть в "комбо взрыва Comp". этой компании содержит "засверкает взрыв", "Дым", и "мусор" comps вместе, чтобы продемонстрировать, как различные виды частиц могут работать вместе, чтобы создать сложный эффект. Заметим, что "крах преобразования" Ключи были включены. Это объясняется тем, что частицы из трех comps будет надлежащим образом переплетаются в 3D пространстве.
- объединение нескольких comps создавать сложные эффекты
--- изначально опять частиц ---
Сейчас мы будем смотреть на то, чтобы сделать нашу частиц повторного использования. то есть, частицы после смерти, Мы хотим, чтобы он возрождается с разными атрибутами, как если бы это были новые частицы. Это позволит нам генерировать непрерывный поток частиц. Для этого мы должны изменить наше выражение "жизнь" точка контроля. Вот новый код:
Lmin = 1.5 / / минимальная частица жизни
Lmax = 2.5 / / максимальное частица жизни
I = 1;
видетьd_random (I,True);
задержка = случайная (Lmax);
рождения = задержек;
смерть = задержек;
если (время задержка) (
[0,0]
() другое
время (время = смерть) (
I + = 1;
видетьd_random (I,True);
рождения = смерть;
жизнь = случайная (lmin,Lmax);
смерть + = жизнь;
}
[рождения,Жизнь]
}
это выражение было изменено включать вариации выражения, разработанные для моего "генерации случайных Motion "Учебник. есть первоначальный, случайная задержка перед поколение первой инкарнацией частицы. эта задержка будет составлять от 0 до максимального частица жизни. в противном случае, все "первого поколения" частиц бы быть получены в то же время (как в результате взрыва), , которая является не то, что мы хотим за фонтаном типа эффекта. в целом, это выражение работ путем деления времени строку в случайной длины "слои", которые находятся между "lmin" и "Lmax" в срок. каждый сегмент представляет собой новый срок для частиц. чтобы регенерированный частицы имеют разные атрибуты, чем первоначальная, в seed_random () требует в позицию и Z-вращение выражений было изменено на этом:
видетьd_random (рождение,True);
Это заставляет частицы в момент рождения, которые будут использоваться в качестве семян, в результате чего каждая "жизни" частиц в различных поскольку рождение раза всегда будут разными. другие изменения, которые были достигнуты в этой компании заключается в том, чтобы изменить "amax" (максимальный угол старта от вертикали) параметра в позиции 30 слова так, что все частиц будет запущен в восходящем направлении. пойти дальше и открыть "Фонтан" Comp и прослушать его. Теперь вы должны увидеть постоянной струи частиц. Заметим, что это Comp содержит 100 частицы слоев. если ваш процессор дроссели, Вы можете удалить несколько слоев и попробуйте еще раз.
- фонтан с 100 струи частиц
--- Перейти к физике ---
когда мы добавили код для выражения позиции включить физических эффектов, Мы добавили одно, что мы не посмотрел на еще. что эффект скорости прививаемых по "эмиттер" для частиц. на данный момент наш излучателей (NULL слоев) были стационарный. имеет смысл, что если мы будем двигаться через наш эмиттер 3D пространстве, частиц, которые выбрасываются должны иметь тенденцию следовать эмиттер до тех пор, пока последствия перетаскивания, гравитация, ветер и направлять их в другие направления. поскольку сейчас у нас есть фонтан частиц аэрозоля в нашем арсенале, Это хорошее время взглянуть на эмиттер скорости собственности. открыть и просмотреть в "Перемещение эмиттер 1" Комп. В этой Comp эмитента была keyframed перемещаться в 3D пространстве и скорости эмитента является прививаемых с частицами. Я основателями нового слоя ( "всплеска капля") с нуля, чтобы вы могли видеть, где это эмиттер. в отличие от, открыть и просмотреть в "перемещение излучателя 2" Комп. это точно так же Comp, однако код, который добавляет в эмиттер скорость была отключена. Вы должны заметить разницы.
- перемещение излучателя со скоростью прививаемых частиц
- перемещение излучателя со скоростью не придала частиц
--- больше удовольствия частицы ---
OK Теперь мы просто будет goofing вокруг. За последние четыре comps, что мы будем смотреть на это лишь вариации на тему. Я не собираюсь вдаваться много подробностей об этих, но я предлагаю вам рассмотреть выражение каждой компании, чтобы посмотреть, каким образом параметры (а иногда и код), были изменены для достижения иной эффект.
открыть и просмотреть в "снег" Комп. Есть несколько вещей до сведения об этой компании. Если вы посмотрите на выражение позиции, Вы заметите, что у нас есть новый параметр для эмиттер ширина. Что нам делать с этим в основном свою очередь нашей точки эмиттер в "линию" эмиттер. В данном случае мы установили эмитента ширина ( "РЭБ") до 600. когда частицы рождаются, свою первоначальную позицию в плюс или минус половину эмиттер ширина (в направлении х) с позиции на нуль. Это позволяет нам создавать новые частицы в любом месте вдоль этой линии. еще одна вещь, которая в разных об этой компании заключается в использовании нескольких частиц изображения. Я получил все выражения, созданный для одной частицы, дублируется три раза, и заменить каждую из дубликатов с другой снежинка изображение. Затем я выбраны все четыре из снежинка слоями и дублирует их кучу раз.
- снег с множеством изображений частиц
открыть и просмотреть в "пожар взрыва" Комп. В этой Comp ветер, гравитация, и перетащить были установлены на нулевом. все частицы запускаются в отрицательном направлении Z (к зрителю). это еще поработать, но она обладает потенциалом.
- пожар взрыв
Теперь открыть и просмотреть в "goop" Комп. Это была попытка создания жидкостного типа потока. этой компании используется "линия эмиттер" понятие "снег" Comp и "окраска" эффект используется, чтобы каждая частица немного разные цвета. это также является работа.
- Моделирование потока жидкости
наконец,, открыть и просмотреть наш последний пример, в "кольца" Комп. этот Comp похожа на "огонь взрыва" в том, что он запускает все частицы в отрицательном направлении Z. этой компании также имеется камера, которая keyframed, чтобы перейти от рода сбоку к более передней по мнению. Я включил этот Комп только для того, чтобы показать, что вы также можете использовать эти выражения как движение генераторы для объектов, которые вы, возможно, как правило, не думают о качестве "частиц".
- кольцевой генератор
--- --- с помощью камер
Вероятно, это хорошее место для поговорить немного об использовании камеры с этой системой. частицы образуются в AE 'S 3D пространстве, так движущейся камерой вокруг частицы действительно может добавить ощущение глубины вашей анимации. Если вы решите использовать движущейся камерой, у вас есть несколько полезных опций. Если вы ничего, кроме вращать камеру вокруг эмиттер, в конце концов станет ясно, что частицы сами 2D. Это может быть эффект вы после, особенно если у вас есть другие элементы расположены в 3D пространстве, что, безусловно 2D элементов. Другой вариант заключается в том, чтобы частицы всегда ориентированы на камеру. Вы делаете это через слой меню: слой трансформировать Ориент Авто "Ориент к камере". В зависимости от частиц, Это может служить убедительным иллюзию о том, что частицы сами 3D. Эксперимент. веселиться!
--- слова о частиц ---
эффективность этих симуляций зависит, в значительной степени, на качество частиц вы используете. Я рекомендую вам изучить те, которые я использовал в эти примеры и попробовать свои руки на то, чтобы сделать свой собственный, и заменить их на один из comps. например, попробуйте заменить снежинки с осенними листьями. или просто изобретать какой-то загадочный полу-прозрачным BLOB и посмотреть, что это выглядит, как в фонтане Comp. Эксперимент. веселиться! также играют примерно с различными видами смесь. Помните, что вы можете выбрать все свои частицы, а затем, когда вы измените режим сочетание одного, Все эти и другие изменения, а.
--- окончательный заглянуть под капот ---
ну, кроткими среди вас свободно выезжать сейчас. как обещал, Я собираюсь попасть в физике частиц, движение выражение немного, прежде чем мы обернуть эту деятельность. Возьмем еще один взгляд на типичный пример выражения позиции мы уже использовали (мы будем использовать одну из "перехода эмиттер 1" Comp):
G = 100; / / тяжести
W = 0; / / ветер
Wdir = 0; / / направление ветра (0 = слева)
Vmin = 500; / / Минимальная начальная скорость
Vmax = 700 / / максимальная начальная скорость
Амин = 0; / / минимальный угол старта от вертикали
Amax = 110; / / максимальный угол старта от вертикали
D = 4 / / коэффициент перетащить
рождения = эффект ( "Жизнь").Param ( "точка") [0];
жизнь = эффект ( "Жизнь").Param ( "точка") [1];
происхождения = this_comp.слой ( "нулевой 1").Позиция.Value_at_time (рождении);
возраст = время родов;
видетьd_random (рождение,True);
S = случайных (Vmin,Vmax); / / начальная скорость
V_e = this_comp.слой ( "нулевой 1").Позиция.Velocity_at_time (рождения) / / эмиттер скорости
A = degrees_to_radians (случайная (Amin,Amax)) / / угол от вертикали
R = degrees_to_radians (случайные (360)) / / вращение вокруг оси Y
X = S * математика.грех (а) * математика.COS (R);
Y =- S * математика.COS (A);
Z = S * математика.грех (а) * математика.SIN (R);
V = [X,y,Z] + v_e;
New_speed = длина (V);
Unit_v нормализовать = (V);
если (D 0) (
Delta_p = new_speed * (1-математика.EXP (-D * возраст)) / D;
() другое
Delta_p = возраст * new_speed;
}
Delta_w = W * возраст;
Delta_g = G * Возраст * Возраст / 2;
Я не эксперт по системам, но я видел несколько примеров кода, используемый для создания их. те, что я видел, как правило, делать дополнительные расчеты основаны на том, как много вещей изменились со времени последнего расчета цикла. много информации о каждой частицы хранятся и обновляются для каждого цикла расчет. в простом примере, текущая позиция, направление, скорость, цвет, возраст, и срок частицы могут быть сохранены. расчет смотрит на эти ценности, а также нынешние силы, действующие на частицы и вычисляет, где каждый из них должен быть в следующий раз, когда прирост.
мы подхода вещи немного иначе в After Effects. Как вы знаете, (особенно, если вы читали мои "генерации случайных Motion "Учебник) это не просто передавать информацию из одного цикла (кадр) в расчете на следующей. переменные не выживают от одного кадра к следующему. поэтому мы не можем хранить всю эту информацию о состоянии частицы на предыдущем кадре. Мы нуждаемся в различных плана. мы делаем, однако, есть несколько штук полезной информации, имеющейся у нас. С точки контроля, у нас есть частица рождения и жизненные ценности. поскольку у нас есть доступ к текущему времени, мы можем вычислить возраст частиц. используя следующее заявление, мы можем определить, где в 3D пространстве частица родилась:
происхождения = this_comp.слой ( "нулевой 1").Позиция.Value_at_time (рождении);
Аналогичным, первоначальная скорость эмитента могут быть получены с этим заявлением,:
уведомление о том, что "v_e" является вектор. она имеет масштабы и направления, представляющие скорости эмитента.
начальная скорость и угол запуска частиц определяется этими тремя призывает к случайная функция:
S = случайных (Vmin,Vmax); / / начальная скорость
A = degrees_to_radians (случайная (Amin,Amax)) / / угол от вертикали
R = degrees_to_radians (случайные (360)) / / вращение вокруг оси Y
чтобы убедиться, что мы всегда получите то же случайных величин в течение всего срока эксплуатации частицы, эти призывы к случайная функция предшествует следующий призыв к "seed_random" функцию:
видетьd_random (рождение,True);
мы используем "seed_random" для семей с генератором случайных чисел, с момента рождения частиц. этот показатель останется неизменным на протяжении жизни частиц, так что мы будем всегда иметь возможность восстановить первоначальные скорости и угла начала ценностей.
Вооруженные этой информацией, немного тригонометрия, и немного вектор математике, Мы готовы решать эту вещь. наш план состоит в том, чтобы вычислить современных условиях основывается на первоначальных условиях, и сколько времени прошло с момента частицы родился, который должен дать нам приемлемых результатов.
OK наш первый расчет будет преобразовывать скорость и угол старта нашей частицы на вектор скорости. Мы делаем это посредством расчета индивидуальных X, y, и Z компоненты вектора используется мало тригонометрия. Эти заявления рассчитать X, y, и Z:
X = S * математика.грех (а) * математика.COS (R);
Y =- S * математика.COS (A);
Z = S * математика.грех (а) * математика.SIN (R);
Вам придется принять мои слова для этого. Я пытался выйти