![]() |
Partical Flow для 3d Max [подборка уроков]
Переводы официальных уроков....
Работа с Particle Flow В этих уроках, Вы научитесь использовать систему частиц Particle Flow в 3ds Max, чтобы создавать специальные эффекты, такие как водные брызги, аэрозольное облако, взрыв астероида при столкновении с поверхностью планеты, управляемые ракеты со следами дыма, которые поражают цели и другое. Возможности, представленные в этом уроке Среди особенностей 3ds Max, представленных в этих обучающих программах, находятся следующие:
Файлы для этого раздела Файлы для этого обучения можно по ссылке http://hotfile.com/dl/75355777/d0251...EC_FX.exe.html \само распаковывающийся zip-архив\ Уроки Столкновение астероида с поверхностью планеты Создание управляемых ракет |
Столкновение астероида с поверхностью планеты
Столкновение астероида с поверхностью планеты ![]() Этот урок Вы начнете со столкновения относительно большого астероида с поверхностью планеты. Фактически, в наше время, более точнее его можно было бы назвать метеоритом, но раз мы уже назвали "астероид", будем придерживаться этого названия. Столкновение создает множество следующих за ним эффектов, включая ударную волну с большим количеством обломков, вылетающих из ведущей кромки, и оставляя за собой следы огненных частиц. Важно: Мы рекомендуем Вам не выполнять рендер этой сцены, как здесь написано. Основная цель этой обучающей программы состоит в том, чтобы показать Вам, как устанавливать относительно сложную систему частиц. Перед тем, как выполнить рендер этой сцены, Вы должны будете определить формы для частиц и материалы для многих событий. Это действие не описывается в этой обучающей программе, а скорее оставлено для Вас, в качестве избирательного упражнения. Обратите внимание: Это - обучающая программа для промежуточного уровня. Вы должны знать основы Particle Flow и функциональные возможности 3ds Max, такие как выравнивания объектов. Уровень знаний: Средний Время обучения: 2–4 часа Возможности, представленные в этом уроке
|
Создание столкновения
Часть 1: Создание столкновения Система частиц Particle Flow, которая управляет событиями, позволяет Вам создавать очень гибкую анимацию частиц. Эта система очень гибкая, в смысле, что Вы не должны определять свойства частиц и их действия, для которых необходимо явно указывать ключевые кадры, как это было в более ранних системах частиц. В Particle Flow, Вы можете создавать последовательность событий, которые вызываются условиями. Когда условия изменяются или обновляются, это также происходит и с системою частиц. Это облегчает корректировку движений и свойств, без применения “сложного кода” к этой системе. Например, если Вы создаете ряд событий, которые вызывают единственное столкновение частицы, то что, если Вы добавите больше частиц? С системой, которая управляет событиями, не имеет значения, сколько раз это событие будет вызвано. Один из способов представить систему частиц, которая управляет событиями, это вспомнить такое устройство, как Rube Goldberg или домино, выстроенное вряд: Одно событие вызывает следующее, и так далее. Точно так же и в этой обучающей программе, Вы используете единственное событие, чтобы вызвать ряд сложных событий. В этом случае, объект астероида разбивается о поверхность планеты. Когда астероид сталкивается с поверхностью, генерируются события, которые создают шаровую молнию, фрагменты со следами дыма, ударную волну, вторичные воздействия, и так далее. Откройте файл сцены: Откройте asteroid_impact_start.max. Кроме планеты и объектов астероида, эта сцена содержит две деформации пространства: Drag и Gravity. Так же в сцене находится сферический дефлектор (отражатель) (SOmniFlect01). Создайте систему частиц Чтобы начать, Вам необходимо создать источник потока: астероид, который будет нарисован по направлению к поверхности планеты. 1. В области просмотра Left, создайте сферический объект PF Source, с диаметром 1000 единиц. Выключите Show: Logo. ![]() 2. ![]() ![]() Это установит частицы на некотором расстоянии поверхности. По умолчанию, система содержит некоторые операторы, которые Вам не нужны, поэтому Вы их исключите. 3. Откройте Particle View. Вы можете сделать это из вкладки Modifier для объекта PF Source или нажав клавишу 6. 4. В Particle View, щелкните оператор Render в глобальном событии объекта (PF Source 01) и установите Type к None. Эта сцена не подходит для рендеринга; она - только для того, чтобы продемонстрировать установку системы частиц. Перед рендерингом, Вы должны были бы определить различные формы и материалы для множества событий, которые не затрагиваются в этой обучающей программе. 5. Удалите операторы Speed, Rotation и Shape в событии birth: Event 01. ![]() По умолчанию, событие рождения (birth event) содержит оператор Position Icon, который находится там, откуда Вы начнете излучать частицы астероида. 6. Выберите оператор Position Icon и установите его метод location к Edges. Это запустит частицы с внешних границ значка, а не в пределах его объема. 7. В группе Uniqueness, установите Seed к 12517. ![]() Это размещает начальную частицу таким образом, чтобы она ударялась о планету в нужном местоположении, около источника света. Анимация относительно длинная (если быть точным, то 1000 кадров), поэтому Вы откорректируете параметры оператора Birth. 8. В операторе Birth, установите Emit Stop к 700 и Amount к 1. ![]() Это заставит одну частицу зародиться между кадром 0 и 700; а именно, в кадре 0. В остальных кадрах, начальная частица породит другие частицы. Затем, Вы определите, какой будет геометрия астероида. В этой сцене Вы найдете объект Asteroid, простой мэш с модификатором Noise. Модификатор анимирован и принимает в каждом кадре новую форму. Эта процедурная генерация мэша может быть полезна, когда Вы хотите использовать несколько уникальных астероидов, не создавая при этом отдельные мэши для каждого из астероидов. 9. Добавьте оператор Shape Instance, под оператором Position Icon и установите объект Asteroid, в качестве объекта на который ссылаются. ![]() Совет: Так как при открытии этой сцены объект Asteroid находится вне видимости областей просмотра, вероятно Вам будет легче выбрать этот объект, использовав диалог Pick Object: Когда Вы нажмете кнопку Particle Geometry Object в операторе Shape Instance, нажмите клавишу H и затем дважды щелкните в списке объект Asteroid. 10. (Дополнительный шаг), Посмотрите на параметры Shape Instance; сначала, Scale %. Вместо того, чтобы добавлять отдельный оператор Scale, Вы можете установить относительный масштаб для экземпляра геометрии, так же и с Variation, чтобы рандомизировать масштаб с каждой последующей частицей. Соответственно, не бойтесь корректировать любой из параметров. Кроме того, если бы Вы должны были использовать несколько астероидов, но оставили бы Acquire Current Shape, приведенная в качестве примера геометрия всегда выглядела бы одинаково. Включив этот параметр, оператор Shape Instance будет использовать текущее состояние геометрии, назначая ее на недавно родившуюся частицу. Это не дает Вам возможность создавать уникальный объект для каждой частицы. Но для этой обучающей программы, Вы запускаете только одну первоначальную частицу, таким образом Вы можете не использовать эту опцию. Кстати, проще визуализировать то, что происходит, когда Вы фактически можете видеть форму объекта. 11. Выберите оператор Display и установите Type к Geometry. Используйте гравитацию, чтобы направить астероид на планету: В данный момент, частица реально ничего не делает. Чтобы заставить ее упасть на объект планеты, все, что Вы должны сделать, это - определить деформацию пространства Gravity, как силу, которая применяется к этой частице. Чтобы создать этот эффект, в этой сцене Вы найдете сферическую Gravity, выровненную к объекту планеты. 1. Добавьте оператор Force под оператор Shape Instance и назначьте Gravity01, в качестве Force Space Warp. Также, установите Influence % к 100.0. ![]() Если Вы запустите анимацию, Вы увидите мэш, падающий на объект планеты. Этот мэш должен упасть на поверхность планеты в месторасположения источника света (Direct01.Target), видимый в области просмотра Perspective. ![]() Мэш астероида ударяет поверхность планеты около источника света (область просмотра Perspective). Чтобы иметь более естественный вид, астероид должен падать, вращаясь. Вы можете достигнуть этого с помощью оператора Spin. Оператор Spin похож на оператор Rotation, за исключением явного управления ориентацией, вместо этого, он применяет угловую скорость к частице. Поэтому, иногда Вы будете использовать оператор Spin, вместе с оператором Rotation, но не в этом случае 2. Продолжайте пополнять событие, добавьте оператор Spin под оператором Force. Его параметры позволяют Вам управлять угловой скоростью на различных осях. Но в этой сцене, Вам только необходимо придать частице толчок в случайном направлении. 3. Проверьте, установлен ли Spin Axis к Random 3D, а затем установите Spin Rate к 90 со значением Variation в 30. ![]() 4. Это заставит частицу вращаться каждую секунду на 90 градусов, плюс или минус 30 градусов. Щелкните правой кнопкой заголовок Event 01 и переименуйте его на CreateAsteroids. ![]() Это событие в данный момент только зарождает частицы астероида и заставляет их притягиваться к объекту планеты. Что касается количества частиц, то для Вас, и для простоты применения, в этой обучающей программе мы рекомендуем использовать единственную частицу. Создайте столкновение: Следующий шаг должен заставить частицу астероида сталкиваться с поверхностью планеты, в этом месте он разбивается и вызывает ударную волну. Эта сцена включает сферический дефлектор (отражатель), который примерно соответствует размеру поверхности объекта планеты. Причина для использования этого дефлектора, вместо дефлектора на основе мэша - из-за скорости и простоты. Дефлекторы на основе мэша, такие как UDeflector, должны проверять многоугольники на пересечении, что медленнее, чем проверка ограниченной сферы. Так как объект планеты - это сфера, то все, что необходимо для более быстрых вычислений столкновения - это выравнивание их центров и соответствие масштаба. В этой сцене, все это уже сделано. 1. Добавьте тест Collision, в самый низ события CreateAsteroids. ![]() Поскольку столкновение вызовет рождение частиц, Вы могли бы применить тест Collision Spawn, однако вместо него Вы будете использовать тест Collision, таким образом Вы сможете взглянуть на его добавленную гибкость. 2. Щелкните этот тест, чтобы выбрать его и в его параметрах, назначьте в качестве дефлектора SOmniFlect01. Оставьте остальные элементы управления Collision в их значениях по умолчанию, но обратите внимание на то, что этот тест содержит довольно небольшое количество функциональных возможностей. Частицы не должны проверять True только при столкновении. Фактически, Вы можете иметь частицы, которые проверяют True, когда они собираются сталкиваться с дефлектором, или только, если они замедлились или набрали скорость после столкновения. Дальше, Вам необходимо будет новое событие, чтобы перейти к столкновению частиц. Это событие выполнит несколько различных функций. Сначала оно породит частицы, генерируя группу частиц из единственного астероида. Затем оно разобьет поток частиц на некоторые зарождающиеся фрагменты, которые полетят в атмосферу, а другие, сформируют ударную волну, которая пройдет по поверхности планеты. 3. Создайте новый тест Spawn, отдельно от события CreateAsteroids. ![]() Также будет автоматически создан и оператор Display. Измените название нового события на RocksShockwave и свяжите его с тестом Collision, когда он создаст камни и взрывную волну. ![]() 5. В параметрах теста Spawn, установите Offspring # к 200 с установкой Variation % в 15. 6. В группе Speed, измените Variation % к 30 и угол Divergence к 60. ![]() Таким образом, столкновение астероида с планетой сгенерирует приблизительно 200 новых частиц, скорость каждой из этих частиц будет между 70 и 130 процентов от первоначальной скорости, и с угловым разбросом в 60 градусов. Обратите внимание: Хотя Spawn - номинально тест, в этом случае Вы используете его строго в качестве оператора, чтобы определить результаты столкновения. Позже, Вы примените два дополнительных теста в этом событии, добавив второй Spawn, чтобы направить частицы к другим событиям. 7. Измените тип и цвет оператора Display. К примеру, попробуйте оранжевый цвет для меток. ![]() 8. Запустите анимацию. ![]() При столкновении, астероид создаст взрыв частиц. Уроки от: 3ds Max Перевод: Касилов Евгений При размещении этого материала на других ресурсах, обязательно указывать место первоисточника. Первоисточником публикации данных переводов является форум foxter.ru |
Создание взрывной волны
Часть 2: Создание взрывной волны Начните урок:
Создайте взрывную волну: Чтобы заставить частицы распространяться радиально и охватывать поверхность геометрии планеты, Вы используете оператор Speed By Surface. Иногда это может происходить медленно, особенно с плотными объектами, но на примере нашей сферы, все должно хорошо сработать. 1. Под тестом Spawn, добавьте оператор Speed By Surface, а затем щелкните этот оператор, чтобы увидеть его параметры. ![]() Этот мощный оператор предоставляет довольно большое количество элементов управлений. По умолчанию, поверхность объекта воздействует на движение частицы только в одном кадре. Но если частицы должны оставаться на поверхности, лучше выбрать другую установку. 2. Выберите из первого выпадающего списка Control Speed Continuously. 3. Дальше, установите Speed к 30 с variation в 5, чтобы не слишком разбивать форму ударной волны. Оператор Speed By Surface позволяет Вам ссылаться на множество объектов, даже на объекты, форма которых анимирована, так же как и определять значения скорости по поверхности, основанной на материале. 4. В группе Surface Geometry, щелкните Add и выберите объект Planet. ![]() 5. Установите Direction to Parallel To Surface. Это заставляет частицы двигаться по поверхности этого объекта. У Вас также есть опция для движения по нормалям (normals), но в этом случае, это заставило бы частицы съезжать по поверхности планеты. Группа Continuous Speed Control содержит некоторые важные элементы управления. Accel Limit позволяет Вам ограничивать изменение скорости и направления частиц. Если значение слишком высоко, частицы могут ненамного выйти из-под контроля. 6. Установите Accel Limit к 10. ![]() Дальше находятся элементы управления Range и Falloff Zone, которые позволяют Вам ограничивать степень эффекта. Range определяет расстояние, в пределах которого этот оператор будет воздействовать на частицы; Falloff Zone - это ослабление эффекта между начальной и конечной точкой. Но в этом примере эти элементы управления не имеют значение, потому что поверхность должна всегда воздействовать на частицы. Иначе, как только бы они достигли предела диапазона, они скользили бы по поверхности нереалистично. Поэтому, Вы можете оставить опцию Unlimited Range включенной. 7. Запустите анимацию. ![]() Астероид создает кольцо частиц, похожее на ударную волну, которая движется по поверхности планеты от места падения астероида. Иногда, этот процесс медленно обрабатывается в этом событии, поэтому Вы могли бы добавить оператор Cache, когда это событие будет закончено. Оператор Cache "выжигает" движение частицы в память компьютера для более быстрого воспроизведения. Он чем-то напоминает предварительную обработку анимации, таким образом компьютер думает только о представлении частиц, не выясняя при этом, где они должны находиться. По истечению некоторого времени, реалистичная ударная волна в атмосфере планеты должна замедлять свое движение; для этого типа эффекта хорошо подойдет деформация пространства Drag. 8. Добавьте оператор Force под Speed By Surface и назначьте на него деформацию пространства Drag01. Установите Influence % к 500. 9. Снова запустите анимацию. Ударная волна замедляется по истечению некоторого времени, воздействие Drag01 вполне реалистично. Вскоре, Вы усилите эффект ударной волны, но сначала Вы закончите это событие. Вы разобьете поток частицы таким образом, чтобы некоторые из частиц стали ударной волной, а другие стали бы осколками камней. Это можно сделать с помощью теста под именем Split Amount. Создайте осколки камней: Тесты Split очень полезны в Particle Flow, потому что они позволяют Вам делить частицы в пределах события и отсылать их в новые события. Вместо того, чтобы создавать два отдельных потока, Вы можете разбить поток в любой момент и ссылаться на все эти потоки или по отдельности. В этой сцене, при ударе астероида о планету, рождается определенное число частиц. Вы разобьете эти частицы на две группы: одна группа станет частицами ударной взрывной волны, а другая станет осколками скал, выброшенными в атмосферу. 1. В событии RocksShockwave, добавьте под тестом Spawn тест Split Amount. ![]() Split Amount позволяет Вам подразделять поток частицы в процентном отношении, каждую энную (Nth) частицу или все частицы выше или ниже определенного количества. Это предоставляет Вам достаточно большой контроль над делением потока, таким образом, с помощью одного из потоков мы только собираемся запустить волну по поверхности планеты. Размещение этого теста как раз под тестом Spawn позволяет ему отделять частицы до того, как них воздействует какой-либо из операторов в этом событии. 2. Используйте опцию по умолчанию Fraction Of Particles, установите Ratio % к 20. ![]() Так как Split Amount - это тест, частицы, которые расщеплены, отсылаются к следующему событию, в то время как другие остаются. Скоро, Вы настроите этот тест так, что 20 процентов из расщепленных частиц станут осколками гранита. Если Вы не подключите вывод теста Split Amount к любому другому событию, Particle Flow просто проигнорирует его. Вы можете проверить это, установив Particle View > Options menu > Track Update к Particle Count. Это добавляет вкладку к каждому событию, показывая сколько частиц оно содержит. ![]() Опция Particle Count добавляет вкладку к каждому событию, которая показывает текущее количество частиц этого события. Разложите взрывную волну на детали: Вы могли бы перейти к осколкам скал, но будет лучше изложить в деталях один поток событий сразу. В этом случае, существует еще несколько изменений, которые можно было бы добавить к этой ударной волне. Сейчас, ударная волна - это только связка частиц, двигающихся по поверхности от эпицентра столкновения. Следующие два изменения, которые можно сделать, это добавить частицы, которые будут тянуться позади ударной волны, плюс другие частицы, которые будут вылетать вверх, при движении волны. Представить это можно таким образом, частицы ударной волны вероятно должны будут рендерированы в виде пылающей раскаленной формы с пламенными следами столкновения частиц и искрами. Вы захотите, чтобы можно было управлять отдельно каждым из этих эффектов, кое для чего и был спроектирован Particle Flow. 1. Добавьте тест Spawn на низ события RocksShockwave. ![]() Вы настроите этот тест таким образом, чтобы частицы в пределах этого события, при движении эмитировали больше частиц. 2. Щелкните новый тест Spawn и в группе Spawn Rate And Amount, выберите By Travel Distance. ![]() Как и в уроке Boat Splashes, этот метод полезен, потому что он управляет числом частиц, которые родились, взяв за основу расстояние начального пути частиц. Таким образом, рождаемость быстро двигающихся частиц больше, чем частиц, которые двигаются медленней. 3. С помощью опции By Travel Distance, процент рождения частиц контролируется значением Step Size, которое Вы должны установить к 0.5. ![]() По умолчанию, значение Offspring # установлено в 1 - этого достаточно, потому что у Вас имеется достаточное количество частиц для ударной волны, чтобы запустить ее. Однако, Вы всегда можете увеличить это значение, если этот необходимо. 4. В группе Speed, установите Inherited % к 15 со значением Variation в 5. ![]() Это важно, потому что со значением по умолчанию в 100, все рожденные частицы сохранят полную скорость первоначальных частиц. Уменьшая это значение к 15%, мы заставим их тянуться позади на приличном расстоянии. Дальше, Вы создадите событие, которое будет определять поведение и появление этих рожденных частиц. 5. Добавьте новый оператор Force за пределами события RocksShockwave. Добавьте Drag01 к его списку Space Warps и установите Influence % к 100. ![]() 6. Назовите новое событие ShockwaveTrails и установите его оператор Display в Dots и измените этот цвет на темно-красный или любой другой цвет, который поможет отличить рожденные частицы от первоначальных. 7. Свяжите вывод нового теста Spawn в событии RocksShockwave с входом этого нового события. ![]() Теперь, когда Вы запустите анимацию, сила Drag замедлит движение тянущихся фрагментов. ![]() Тем не менее, чего-то не хватает, а именно того, что в этих рожденных частиц нет жизненного цикла: они никогда не умрут. Если они должны представлять следы плазмы, вероятно Вы захотите использовать материалы, которые будут управлять возрастом этих частиц; к примеру материал Gradient. 8. Добавьте оператор Delete к событию ShockwaveTrails, прямо под оператор Force. В параметрах этого оператора, выберите By Particle Age и оставьте по умолчанию значение Life Span в 48 с Variation в 8. ![]() Теперь Вы увидите, что следы частиц умирают после двух секунд существования (эта сцена использует скорость передачи кадров фильма 24 fps). Это должно быть достаточно, но Вы можете всегда откорректировать эту скорость. В этом месте, ваша диаграмма частиц должна напоминать следующую иллюстрацию. ![]() Уроки от: 3ds Max Перевод: Касилов Евгений При размещении этого материала на других ресурсах, обязательно указывать место первоисточника. Первоисточником публикации данных переводов является форум foxter.ru |
Генерация вторичных событий
Часть 3: Генерация вторичных событий Начните урок:
Создайте частицы, которые выстреливаются из ударной волны: Чтобы создать новые частицы, которые начинают свое рождение, при вылете из идущей кромки ударной волны, Вы можете выполнить несколько различных действий. В этом случае, Вы уже рождаете частицы из частиц, поэтому, почему бы не разбить эти же частицы и сделать из них новые частицы? Для этого, Вы используете метод, такой же, как и в событии RocksShockwave. 1. Добавьте тест Split Amount на верх события ShockwaveTrails и оставьте его установки по умолчанию: Fraction of Particles > Ratio %=50. ![]() Теперь каждая другая рожденная частица будет частицей следа, а остальные частицы будут этими же, более новыми частицами. 2. Создайте новое событие в Particle View, клонировав оператор Force в событии CreateAsteroids, в качестве образца (Instance). Чтобы сделать это, нажмите и держите клавишу SHIFT, а затем перетяните оператор Force из события CreateAsteroids на пустую область Event Display, ниже события ShockwaveTrails. ![]() Появится диалог с запросом, как клонировать этот оператор. Выберите Instance и щелкните OK. Новый оператор появится курсивом, указывая на то, что он сейчас был произведен как образец от другого оператора. Это - хороший способ многократно использовать операторы и применять к ним изменения. 3. Переименуйте новое событие на ShockwaveBurning и измените в этом событии новый оператор Display на что-нибудь особенное, типа желтых линий. ![]() Тип отображения Lines - особенно полезен для того, чтобы перемещать частицы, потому что, в отличие от других типов отображения, он показывает не только расстояние, но также и направление и скорость. Каждая линия указывает направление движения частицы, а длинна линии указывают ее относительную скорость. Эти частицы будут выстреливаться далеко от поверхности планеты. Вы примените деформацию пространства Gravity в операторе Force, чтобы постепенно замедлить движение этих частиц и сделать так, чтобы они падали на поверхность, если время их существования окажется долгим. В данный момент, кроме влияния гравитации на новые частицы в событии ShockwaveBurning, с ними ничего особенного не происходит. Вы заставите эти частицы двигаться вверх от поверхности с помощью другого оператора Speed By Surface. Но на этот раз, вместо того, чтобы обволакивать поверхность планеты, эти частицы будут выстреливаться далеко от поверхности. 4. На верх события ShockwaveBurning, добавьте оператор Speed By Surface. В его параметрах, оставьте значение по умолчанию Set Speed Once, и установите Speed к 5 и Variation к 1. Это даст единственный толчок частицам, которые входят в это событие. 5. Для параметра Surface Geometry, назначьте объект Planet, и и оставьте для параметра Direction значение по умолчанию Surface Normals. ![]() Это вытолкнет частицы перпендикулярно к поверхности объекта. Когда Вы имеете очень неровную поверхность (не в этом случае), это может придать частицам несколько интересное движение. Как и в предыдущем событии, Вам необходимо установить для этих частиц время их существования. 6. На низ события ShockwaveBurning, добавьте оператор Delete. Выберите By Particle Age и установите Life Span к 20, а Variation к 1. ![]() Это заставит эти частицы быстро исчезнуть. Последнее, что Вам необходимо сделать, чтобы закончить эту часть ударной волны в этом уроке, это связать новое событие. 7. (Дополнительный шаг), Если Вы до этого момента уже создали и разместили событие ShockwaveBurning далеко от события ShockwaveTrails, то возможно Вы захотите подвинуть его поближе, прежде чем перейти к следующему шагу. 8. Соедините выход теста Split Amount в событии ShockwaveTrails с новым событием ShockwaveBurning. Если Вы сейчас запустите анимацию, у Вас должна получиться радиальная ударная волна, двигающаяся по направлению от эпицентра падения астероида и оставляющая следы частиц, запуская некоторые из них в атмосферу. ![]() Создайте каменистые осколки: Работа над ударной волной закончена и Вы можете возвратиться к каменистым осколкам, которые Вы оставили ранее. Помните, при создании ударной волны в событии RocksShockwave, Вы добавили оператор Split Amount, чтобы разбить частицы, рожденные в том событии. Двадцать процентов из них станут скалистыми осколками, которые будут взрываться и вылетать в атмосферу, в то время как остальные сформируют ударную волну. Вы не связали выход Split Amount в новом событии, так до этого момента, по существу в этом не было необходимости. Теперь пришло время создать событие, который определит каменистые осколки. 1. С левой стороны от события RocksShockwave, создайте новое событие, копировав оператор Force от события CreateAsteroids, а затем вставив его, в качестве образца (Instance). Назовите новое событие EmitFragments. 2. Измените тип конечного результата для оператора Display к оранжевым точкам (Dots). 3. Свяжите выход оператора Split Amount в событии RocksShockwave с входом нового события. ![]() В этом месте, все еще преждевременно проигрывать анимацию. Фактически из-за того, что формирование ударной волны в данный момент завершено и может стать довольно таки процессороемкой для процессора вашей машины при воспроизведении анимации, хорошей идеей было бы отключить несколько операторов, чтобы сохранить на данный момент хорошую производительность. Вы можете отключать события и операторы с помощью щелчка кнопки. Операторы теста в действительности не выключаются, но вместо этого Вы можете заставить их всегда возвращать истину или ложь, обходя условную часть теста. Чтобы выключить и включить событие, щелкните кнопку лампочки, с правой стороны от имени события. У операторов такой возможности нет, но взамен, при щелчке по значку оператора, Вы можете блокировать и разблокировать этот оператор. Когда оператор заблокирован, он недоступен. При размещении курсора мыши на значку тестовых операторов, Вы можете заметить, что курсор изменяет свой рисунок на алмазную клетку. Если Вы устанавливаете курсор по левой стороне значка, клетка показывает стрелку, направленную влево, указывая при этом, что "все частицы возвращают True.” И наоборот, на правой стороне значка рисунок клетки остается закрытым, указывая, что все частицы автоматически проверяют False. Чтобы проверить, что все частицы проверяют True или False, щелкните соответствующую сторону значка. После щелчка по значку, он изменяет изменяет отображение на зеленый индикатор для True или красный свет для False. Чтобы ускорить интерактивность при построении каменистых осколков, перейдите к событию RocksShockwave, отключите оператор Speed By Surface, а затем переместите на низ этого события оператор Spawn, который передаст событию ShockwaveTrails значение False. Следующая иллюстрация указывает местоположение двух щелчков и конечный результат. ![]() Это должно значительно ускорить обработку в данный момент. Но не забудьте отменить эти изменения, когда Вы закончите работу со сценой. Если Вы теперь запустите анимацию, Вы увидите первоначальную частицу, которая запустит ударную волну, а так же новые частицы, выстреливающиеся в атмосферу и обратно падающие на планету. ![]() Создайте следы, оставляемые каменистыми осколками: Дальше, Вы создадите огонь и дымящиеся следы для каменистых осколков. Эти следы могут отображаться динамически с помощью градиента, на протяжении всего существования частицы, чтобы это напоминало огонь и дым. Вы также создадите новые вторичные ударные волны, которые будут вызываться падением каменистых осколков на поверхность планеты. 1. На низ события EmitFragments, добавьте тест Spawn. Установите его режим к By Travel Distance с Step Size в 0.2. В группе Speed, оставьте выбор по умолчанию в Inherited % и установите значение к 10 с Variation % в 10 и Divergence к 30 градусам. ![]() Это заставит частицы оставлять и распылять позади себя большой след, конической формы. В этой точке, тест Spawn в событии EmitFragments генерирует частицы. Однако, эти новые частицы будут вести себя точно так же, как и уже существующие частицы, и на них так же будут воздействовать операторы в этом событии. Если Вы запустите анимацию, то обратите внимание, что частицы выглядят одинаково и на всех них одинаково воздействует гравитация. Чтобы иначе управлять новыми частицами, Вы определите отдельное событие для этих следов. 2. Под событие EmitFragments, добавьте новый оператор Delete. Назовите созданное новое событие FragmentTrails и установите для оператора Display красные точки (Dots) или что-нибудь другое, особенное. 3. Установите оператор Delete к By Particle Age, а затем свяжите вывод теста Spawn в событии EmitFragments с этим новым событием. ![]() Когда Вы запустите анимацию, осколки начнут свое падение, оставляя позади себя хвосты из красных точек. Единственной проблемой будет слишком короткое существование частиц. По умолчанию, оператор Delete устанавливается в кадре 48, и в данном случае, этого недостаточно. Оператор Delete важен для этого события, потому что, иначе, следы существовали бы на всей протяженности этой сцены и, что еще более важно не были бы в состоянии получить эффекты из материала, основанного на возрасте, типа градиента. 4. В параметрах оператора Delete, установите Life Span в 80, а Variation в 24. ![]() Создайте вторичные очаги пламени: Одна последняя, незначительная проблема с этим эффектом состоит в том, что каменистые осколки падают на планету и проходят через поверхность. Выглядело бы намного лучше, если бы они вызвали новые столкновения и ударные волны, как вторичные взрывы. Вы можете легко достигнуть этого с помощью теста Collision и нового события. 1. Вы можете повторно использовать тест Collision из события CreateAsteroids: Щелкните по нему, чтобы выделить, а затем щелкните его правой кнопкой и из контекстного меню выберите Copy. Затем расположите курсор прямо под оператором Spawn в событии EmitFragments, щелкните правой кнопкой и выберите из меню Paste Instanced. Альтернативно, Вы можете только SHIFT+потянуть этот тест на новое место, а затем выбрать Instanced из диалога Clone Options. ![]() Вы определили тест столкновения, чтобы решить, когда каменистые обломки упадут на поверхность планеты. Без связи вывода из теста Collision, частицы только подпрыгнут при столкновении. Чтобы создать вторичные вспышки при столкновении, Вы должны создать новое событие, только для того, чтобы определить их. 2. Добавьте новый тест Spawn за пределами события EmitFragments. Назовите новое событие SecondaryFlames и измените тип для Display на желтые Ticks. Это позволит легко увидеть, что случиться при вторичных вспышках. 3. Соедините вывод теста Collision в событии EmitFragments с новым событием. ![]() 4. В параметрах теста Spawn, оставьте по умолчанию опцию Once в Spawn Rate и включите Delete Parent. Это важно, потому что Вы бы не хотели, чтобы каменистые обломки продолжали подпрыгивать вокруг; вместо этого, они должны породить новые частицы, а затем умереть. 5. Установите Offspring # к 50 со значением Variation % в 30. ![]() Это позволит каждому каменистому обломку родится между 35 и 65 новыми частицами. 6. В группе Speed, установите Inherited % к 50 со значением Variation % в 30 и значением Divergence в 90. ![]() Это заставит рожденные частицы двигаться в сторону, приблизительно со скоростью в половину меньшей от скорости столкновения, по широко распространяющейся области. В данный момент, событие SecondaryFlames реально ничего не делает, кроме как рождает новые частицы. Чтобы создать вторичные вспышки, Вы добавите такие операторы, чтобы эти частицы создали область радиальной ударной волны, прошлись по поверхности, при этом замедляясь в течение долгого времени, и в конечном счете умерли бы после нескольких секунд. 7. Добавьте оператор Speed By Surface в событие SecondaryFlames под тестом Spawn. Это заставит частицы следовать поверхности объекта планеты. 8. Установите оператор Speed By Surface в Control Speed Continuously со Speed в 30 и Variation к 10. ![]() Это вытолкнет частицы со скоростью 30 единиц в секунду. 9. Выберите объект Planet, в качестве Surface Geometry и установите Direction к Parallel To Surface. ![]() Это заставит частицы пройтись по поверхности планеты, начиная свое движение в сторону от места падения. 10. И наконец, установите Accel Limit к 5. ![]() 11. Дальше, копируйте оператор Force из события RocksShockwave и вставьте его в качестве образца (Instance) в событие SecondaryFlames. ![]() Это - тот же оператор, который воздействует на частицы с 500 процентами Drag. 12. Добавьте новый оператор Delete внизу события SecondaryFlames и установите его в By Particle Age, оставив по умолчанию установки: Life Span=48 и Variation=8. Это заставит новые частицы умирать примерно после двух секунд. 13. В событии RocksShockwave, включите блокированный оператор и тест. На этом все! Вы можете сравнить ваши полученные результаты с нашими, в файле asteroid_impact_final.max. Подводим итоги На этом установка Particle Flow закончена. Так это и останется, потому что нет операторов Shape или Material, кроме начального Shape Instance, все частицы будут рендерированы, в виде формы Asteroid. Вместо этого другие события должны использовать другие формы и операторы Shape Facing. Однако, это выходит за рамки этой обучающей программы и остается за Вами. Перед Вами открываются безграничные возможности. Мы бы предложили Вам создать каменистые обломки, с помощью анимированной геометрии образцов (Instance), созданных тем же самым методом, что и при создания астероидов. Вы могли бы сделать эффекты для следов, с помощью операторов Shape Facing и Material Dynamic, чтобы создать эффекты с картами градиента в течении жизни этих частиц. Уроки от: 3ds Max Перевод: Касилов Евгений При размещении этого материала на других ресурсах, обязательно указывать место первоисточника. Первоисточником публикации данных переводов является форум foxter.ru |
Создание управляемых ракет
Создание управляемых ракет Цели - это обычная возможность современных систем частиц, определение точки в пространстве, к которой направляются частицы или которую они ищут. Это может показаться простым, но хорошие инструменты для определения цели весьма сложны и требуют некоторых возможностей, чтобы сделать их полезными в работе. Эти возможности включают: поиск среди множественных целей, ускорения и замедления движения частиц к целям и от них, так же как и дальнейшие события, после достижения цели. Все это обрабатывает Particle Flow, используя тест Find Target. Вы можете считать тест Find Target, системой наведения для частиц, который делает ее совершенной для создания анимации управляемой ракеты. ![]() Эта обучающая программа содержит испуганный биплан, который пытается подстрелить некоторые чайники мятежника. Этот биплан был модифицирован ракетной подвеской на каждом крыле, которая запускает частицы. Каждая ракетная подвеска запускает одну частицу. Каждая частица будет использовать унаследованную геометрию ракеты и искать чайник наугад, оставляя позади себя частицы дыма. Когда частица (ракета) достигает своей цели, вызывается событие взрыва. В прошлом, использование частиц по умолчанию не возможно было обработать процедурно. Сначала, Вы не могли заставить частицы искать цель, уже не говоря о случайной цели внутри группы. И в то время, как Вы могли породить частицы при столкновении с объектом, рожденные частицы должны были совместно использовать те же самые свойства. Это означало, что взрыв должен был быть сделан с помощью отдельной системы частиц, устанавливаемой вручную. А это уже крах для цели процедурной системы. Уровень знаний: Средний Время обучения: 2–3 часа Возможности, представленные в этом уроке
Файлы этого обучения Все необходимые файлы для этого урока находятся на Tutorial Files CD, в каталоге \tutorials\particle_effects\. Прежде чем начать это обучение, копируйте папку \tutorials в корневую папку \3dsmax8. |
Создание ракет с использованием частиц
Создание ракет с использованием частиц
Откройте файл сцены:
Эта сцена содержит биплан, три чайника и скрытую ракету. Биплан имеет четыре экземпляра объекта на крыльях; названия которых от MissileRack01 до MissileRack04. Полигоны спереди каждого из этих объектов уже выбраны на уровне подобъекта, чтобы определить место, из которого будет запущена его ракета. Когда Вы определите их, в качестве источников частиц, Вы сможете указать Particle Flow генерировать частицы только в этих выбранных полигонах. Создайте систему частиц: В области просмотра создай эмиттер частиц. 1. На панели Create, щелкните выпадающий список и выберите Particle Systems. 2. На свитке Object Type, щелкните PF Source, а затем в области просмотра Top оттяните значок эмиттера около биплана. Сделайте размер значка, примерно на половину меньше размера крыльев. ![]() Значок эмиттера в области просмотра Top Значок эмиттера имеет два компонента, логотип и значок. Логотип имеет стрелки-указатели, чтобы помочь Вам визуализировать генерацию частиц. 3. На панели Create, найдите свиток Emission > группа Quantity Multiplier и установите Viewport % к 100.0. Выровняйте эмиттер: Дальше, Вы будете вращать и позиционировать эмиттер, чтобы выровнять его по биплану. Вы используете значок, чтобы управлять скоростным вектором/курсом ракет. Эмиттер будет связан с бипланом таким образом, чтобы ракеты выстреливались в том же самом направлении, куда летит самолет. 1. ![]() 2. В диалоге, который появится (Align Selection: Fuselage), в группе Align Position и Align Orientation, включите X/Y/Z Position/Axis. Это выровняет как позицию, так и ориентацию эмиттера с фюзеляжем биплана. Щелкните OK, чтобы подтвердить это выравнивание. Обратите внимание: Здесь нет необходимости выравнивать масштаб. ![]() Эмиттер присоединен к биплану Дальше, выполните вращение эмиттера на 90 градусов, чтобы его указатель был направлен в сторону движения биплана 3. ![]() ![]() 4. В области просмотра Perspective, вращайте значок эмиттера частиц на 90 градусов по оси Y, чтобы стрелка этого эмиттера была направлена в том же направлении, куда и летит биплан. Совет: Нажмите клавишу знака равно (=), чтобы увеличить размер Transform гизмо, затем выберите зеленый горизонтальный круг и вращайте его по оси Y. ![]() Локальное вращение эмиттера. 5. ![]() ![]() Затем нажмите SHIFT+Z, чтобы отменить изменения для области просмотра. 6. ![]() Используйте Transform гизмо, чтобы переместить эмиттер на верх биплана. Затем перейдите к панели Modify и в свитке Emission, в группе Emitter, выключите Show: Logo. ![]() Размер значка не столь важен, потому что он не будет использоваться, в качестве эмиттера, но его размер должен быть достаточно большим, чтобы Вы легко могли выбрать его в области просмотра. ![]() 7. Смените название эмиттера на Guided Missile. 8. ![]() ![]() Теперь движение биплана будет управлять движением эмиттера. 9. Откройте диалог Particle View, нажав на клавиатуре клавишу 6. Вы сможете увидеть название Guided Missile, для глобального события. Создайте частицы, используя выбранные полигоны (Selected Faces): Дальше, Вы создадите условия для запуска ракет. Вы создадите четыре частицы, которые будут вылетать одна за другой из выбранных поверхностей ракетных труб. Измените название для Event 01: щелкните правой кнопкой заголовок события, выберите Rename и напишите Launch Missiles. Щелкните оператор Birth и установите Emit Start к 30 и Emit Stop к 100. Также, установите Amount к 4. С этими установками, система запустит четыре частицы (ракеты) между кадрами 30 и 100. ![]() Значение Amount определяет, сколько частиц равномерно будет запущено между указанными кадрами. Вы часто используете системы частиц, чтобы создавать большое количество таких же частиц, но в этой сцене будет использоваться только четыре частицы, которые создадут четыре ракеты. 3. Дальше, щелкните оператор Display и установите его Type к Geometry. Возможно, Вы захотите увидеть эти ракеты, чтобы убедиться, что они сориентированы в нужном направлении. 4. Замените оператор Position Icon на Position Object. Из набора операторов (Depot), перетяните оператор Position Object на Position Icon в событии Launch Missiles. Когда увидите красную линию, отпустите кнопку мыши. ![]() 5. Щелкните оператор Position Object, чтобы увидеть его параметры и включите Inherit Emitter Movement. Это важно, потому что Вы хотите, чтобы скорость запуска была относительна движению эмиттера; в данном случае, биплана. 6. В группе Emitter Objects, щелкните By List и добавьте все четыре объекта MissileRack. ![]() 7. В выпадающем списке Location, выберите Selected Faces. ![]() Без этой установки, частицы будут запускаться из всех полигонов на этих объектах. В этом файле, полигоны спереди ракетных подвесок уже были выбраны. 8. Прокрутите вниз этого свитка. В группе Uniqueness, установите Seed к 10527. ![]() Uniqueness Seed предоставляет неограниченные возможности выбора для различных кванторов. Изменение этого значения дает индивидуальный эффект. Установите скорость ракет: Дальше, Вы установите скорость частиц. 1. В событии Launch Missiles, щелкните оператор Speed. 2. На свитке Speed 01 установите Speed к 1200. 3. Установите Variation к 24.0. Оставьте установку Direction в Along Icon Arrow. Этот выбор использует ориентацию значка эмиттера PF Source, чтобы определить направление выброса частиц. Выполните замену частиц на экземпляр геометрии - ракету: Теперь, Вы используете оператор Shape Instance. Он заменит простые формы в операторе Shape на ссылку объекта геометрии в вашей сцене. В данном случае, четыре частицы будут заменены четырьмя ракетами. 1. Замените оператор Shape 01 (Tetra) на оператор Shape Instance. Перетяните оператор Shape Instance из набора операторов, на существующий оператор Shape. ![]() Красная линия означает замену оператора Оператор Shape Instance позволит Вам выбрать объект, чтобы использовать его вместо частиц. Но сначала Вам необходимо показать скрытую геометрию ракеты в области просмотра. 2. Активируйте область просмотра правым щелчком мыши и выберите Unhide By Name. Из списка выберите Missile01, затем щелкните Unhide. В области просмотра Top Вы сможете увидеть скрытую ракету впереди биплана. ![]() Геометрия ракеты 3. В событии Launch Missiles, щелкните оператор Shape Instance 01. На свитке Shape Instance 01, в группе Particle Geometry Object, щелкните кнопку с меткой None, а затем щелкните ракету в области просмотра или нажмите на клавиатуре H и выберите объект Missile01 из списка, щелкните OK. Обратите внимание: Фактически, Вы можете использовать множественные объекты и пройтись по ним в том порядке, в котором запускаются частицы, но в данном случае, в этом нет необходимости. Удобный набор параметров в Shape Instance - это встроенные элементы управления для масштабирования. Используйте эти параметры для простых корректировок размера. Если бы Вы создавали стаю птиц, был бы смысл немного рандомизировать их масштаб, но все ракеты должны быть одного размера. Оставьте Scale % в 100.0. 4. Проверьте, чтобы Acquire Mapping и Acquire Material были включены. Это важно, если Вы не хотите отменять существующую картографию и материалы на этом экземпляре геометрии. 5. Выберите объект Missile01 в области просмотра Top, затем щелкните правой кнопкой и выберите Hide Selection. Когда частицы заменены на экземпляр геометрии - ракету, Вы можете скрыть ее, в ней больше нет необходимости. 6. ![]() ![]() Ракета направлена не в ту сторону Хотя ракеты и вылетают в нужном направлении, экземпляр объекта (Instance) не установлен по направлению движения. Это стает необходимым, когда они начинают крутиться и поворачиваться, чтобы найти свои цели, поэтому, чтобы установить направление, Вы должны откорректировать оператор Rotation. 7. Щелкните оператор Rotation 01, затем установите Orientation Matrix к Speed Space Follow. Измените Y к 90.0 градусам. Это повернет экземпляр геометрии внутренне, примерно на 90 по оси Y и сориентирует его по направлению движения. Теперь, когда Вы отмените анимацию, все станет как надо. ![]() Направление ракеты, правильное Сохраните работу
|
Анимация ракет, ищущих цели
Анимация ракет, ищущих цели
![]() На данный момент, ракеты летят прямо, без какого-либо направления. Как заставить ракеты найти группу чайников? Ключ ко всему - тест Find Target. Тест Find Target создает мишени или цели для частиц в пределах события. Частицы будут искать мишени в списке, который основан на скорости или времени достижения мишени, с разным набором параметров, чтобы контролировать попадание частиц в цель. Это - очень мощное действие, которое может использоваться для довольно многих уникальных эффектов. Например, когда установлен параметр No Control, Find Target действует, как бесконтактный тест, посылая частицы к новым событиям, которые начинаю свое действие, основываясь на расстоянии частиц от объектов мишени. Поэтому, в некоторой степени это не только инструмент для попадания в цель, но также и тест для нахождения цели. Начинаем:
Это файл снимка конца первого урока. Если Вы откроете этот файл, нажмите клавишу 6, чтобы открыть Particle View . Добавьте и откорректируйте тест Find Target: 1. Добавьте желтый тест Find Target на низ события Launch Missiles. Когда добавите Find Target, щелкните его. В этом месте урока, диаграмма частиц должна напоминать следующую иллюстрацию. ![]() Определите цель: 1. В группе Target, выберите Mesh Objects, а затем щелкните By List. В диалоге Select Target Objects, выберите все три объекта чайника, затем щелкните Select. ![]() Названия объектов чайников (Teapot) появится в списке Target. 2. Дальше включите Follow Target Animation, таким образом частицы будут постоянно искать двигающиеся цели. Иначе, частицы будут искать место в пространстве, где находилась мишень при запуске частицы. 3. Проверьте, чтобы опция Lock On Target также была включена, чтобы частицы выбрали себе цель и следовали бы за ней, чтобы не случилось. 4. Проверьте, чтобы поля Point и Object были установлены в Random, чтобы каждая частица искала случайную точку на случайной мишени. ![]() Это создает предел хаотической неоднородности. Однако Вы можете откорректировать это так, чтобы частицы приближались к другим местам мишени, но так как размер чайников небольшой и они далеко расположены, на данный момент в этом нет необходимости. 5. Проверьте, чтобы Docking Direction была установлена в None Specified. Это важно, так как другие параметры установки будут изменятся по мере того, как частицы будут приближаться к целям. Эта опция более полезна при моделировании простой группы. 6. В группе Uniqueness, измените Seed к 10739. ![]() 7. Если Вы теперь запустите анимацию, Вы должны увидеть, как вылетают ракеты и ищут мишени. ![]() Поиск частицей мишени ![]() Ракета находит чайник Сохраните работу: В меню File выберите Save As. Сохраните ваш файл, как myguided_missile_target.max. Остается два главных шага. Первый, вероятно Вы обратили внимание на то, что трудно уследить за траекторией ракет. Добавление следов дыма придаст сцене реализма и поможет проследить за полетом ракет. Следующий, так как Find Target - это тест, он не имеет вывода. Что же случится, когда ракеты уничтожат свои цели? Вы можете создать новое событие, которое вызовет взрыв или что-то другое, что Вы хотите. В двух последующих уроках, Вы добавите следы дыма, а затем создадите взрыв. |
Добавление следов из дыма
Добавление следов из дыма
Добавление следов дыма от ракет в этой обучающей программе относительно просто, все дело только лишь в рождении частиц из частиц, которые представляю собой ракеты. Использование рожденных частиц Одно из больших преимуществ в Particle Flow над дочерними (наследными) системами частиц - то, что рожденные частицы являются полностью независимыми от родительских частиц (кроме эмиссии). Поэтому они могут иметь различные формы, на них могут воздействовать различные деформации пространства, так же как и можно применять к ним совершенно другие тестовые операторы. ![]() Начнем урок: Продолжайте предыдущий урок или откройте guided_missile_trails_start.max. Обратите внимание: Если Вы открыли предоставленный файл, нажмите 6, чтобы открыть Particle View. Добавьте Spawn тест: Для того, чтобы создать рожденные частицы из частиц Missile, сначала Вам необходимо создать тест Spawn в событии Launch Missiles. 1. Перетяните тест Spawn из набора операторов на низ события Launch Missiles. ![]() Перетяните тест Spawn на низ этого события. ![]() 2. Выберите тест Spawn 01 в событии и в группе Spawn Rate And Amount, выберите By Travel Distance. Установите Step Size к 3.0 единицам. Это - полезный метод для создания эффектов следов, потому что скорость с которой рождаются новые частицы, базируется на пройденном расстоянии, а не на установленное количество в секунду. Этот метод эффективно заставляет рождаться частиц, беря за основу скорость, чтобы таким образом избежать промежутков, созданных между стремительными или сгруппированными частицами и медленными частицами. ![]() 3. Проверьте, чтобы Offspring # был установлен к 1. Это означает, что только одна частица будет рождена в этом тесте. Увеличивая это значение, Вы можете сделать рождение частиц интенсивным или групповым. 4. В группе Speed, выберите In Units и установите это значение в 50. Это устанавливает явную константу скорости для выброса частиц, которая не основана на унаследованной скорости от родительских частиц. Основная причина так сделать, это - вопрос темы для разговора: ракеты будут гореть на постоянной скорости, поэтому выброс дымного следа будет постоянным. Конечно, Вы могли бы откорректировать это значение, как Вам нравиться, но меньшее значение, заставит рожденные частицы сильно отставать друг от друга, а большое значение, разбросает частицы далеко от источника выброса. 5. Чтобы было естественно, добавьте немного случайности, это важно, поэтому установите Variation % к 10, так же и Divergence к 10. Variation добавит случайность в скорость выброса, а Divergence в направление. ![]() 6. В группе Uniqueness, установите Seed к 9227. Важный момент, чтобы обратить на него внимание, использование теста Spawn может очень быстро создать много частиц. В этом случае, все новые частицы - такие же, как и частицы ракет, то есть, унаследованная геометрия. Поэтому, если бы Вы сейчас запустили анимацию, определенная масса новой геометрии очень бы повлияла на работу системы, при дальнейшем обучении. По этой причине, перед продолжение, рекомендуется временно выключить систему частиц. Позже, в этом уроке Вы упростите геометрию рожденных частиц и после этого, Вы сможете без проблем запустить анимацию. 7. Нажмите клавишу знака ; или щелкните иконку лампочки на панели заголовка глобального события (Guided Missile). Это выключит активный статус системы частиц. Создайте оператор Force: Вывод теста Spawn не соединен еще с новым событием, таким образом, как уже было сказано, рожденные частицы - это те же самые частицы, что и частицы ракет. Чтобы изменить их, Вы используете новое событие. 1. Перетяните оператор Force из набора событий (Depot) на окно для событий. Это создаст новое событие, которое будет иметь новый оператор Force, а также новый оператор Display. ![]() 2. Измените название нового события, на Missile Smoke Trails. 3. Щелкните оператор Force в событии Missile Smoke Trails, чтобы увидеть его параметры. В группе Force Space Warps, щелкните By List и добавьте деформации пространства Drag01 и Wind01. ![]() В то время, как ракетные частицы не подвержены деформациям пространства, на движение следов дыма будет влиять торможение и турбулентность, независимо от родительских частиц. Придайте частицам особый вид: ![]() Добавьте оператор Delete: Частицы дыма должны формировать следы, а затем постепенно исчезать. Вы используете оператор Delete, чтобы произвести подобный эффект. ![]() Это заставит следы дыма быть на виду достаточно долгое время и формировать следы, но не навсегда оставаться видимыми. 3. В группе Uniqueness, измените Seed к 28692. Определите геометрию частиц и материалы: Чтобы закончить этот эффект, Вам необходимо выполнить последнюю серию действий - это определить геометрию и материалы для частиц. Для следов дыма, полезно использовать оператор Shape Facing, который создает полигоны, которые постоянно ориентируются на камеру. Затем, к ним применяется картография с радиальными градиентами и шумом, чтобы создать реальный вид дыма. 1. Чтобы начать, добавьте оператор Shape Facing под оператор Force в событии Missile Smoke Trails. Когда добавите оператор Shape Facing, выберите его. ![]() Это простой оператор, всего лишь с несколькими параметрами. 2. На свитке Shape Facing 01, в группе Look At Camera/Object, щелкните кнопку “None,” а затем нажмите на клавиатуре H. Выберите из этого списка Camera01. Это заставит частиц, во время анимации, постоянно находится перед Camera01. 3. В группе Size/Width, оставьте выбор по умолчанию в In World Space и установите Units к 5. ![]() Опция World Space позволяет Вам определять абсолютное значение. Другие опции выборы работают по-другому. Опция In Local Space работает от существующего масштаба. Опция In Screen Space создает постоянное значение, основанное на процентном соотношении ширины экрана, таким образом частицы всегда имеют тот же самый размер независимо от их расстояния от камеры. 4. В группе Uniqueness, установите Seed к 235. 5. В событии Missile Smoke Trails, выберите оператор Display 02. 6. На свитке Display 02, измените Type к Geometry. Существует одна проблема, а именно: Все частицы имеют одинаковый размер. В идеале, было не плохо, чтобы частицы расходились (увеличивались) бы по истечению определенного времени. В Particle Flow, Вы имеете очень явное управление параметрами анимации. Частицы могут анимироваться на всем протяжении анимации, во время события или во время существования частиц. В этом случае, Вы собираетесь анимировать увеличение размера частиц еще при их жизни. Это делается с помощью оператора Scale с анимированным каналом масштаба. Добавьте оператор Scale: 4. Перейдите к кадру 120. Анимируйте масштаб: 1. ![]() 2. На свитке Scale 01, в группе Scale Factor, измените значение X% к 200. Это автоматически установит ключ для каждого канала оси в кадре 0 и в текущем кадре. ![]() Совет: Это можно сделать и по-другому, щелкнуть правой кнопкой мыши в поле параметра и выбрать Show In Track View. Это откроет Curve Editor с этой же отдельной дорожкой. Там, Вы можете установить ключи и сделать с ними то, что Вы захотите. Совет: Вы рассмотрите эту методику чуть позже; Вы не должны экспериментировать с этим на данный момент. 3. ![]() Откорректируйте параметры мастаба: Дальше, Вы откорректируете изменение масштаба и Animation Offset Keying. 1. На свитке Scale 01, в группе Scale Variation, измените значение Scale Variation X % к 10. Так как опция Scale Variation содержит три пропорции, Y % и Z %, они также изменятся. 2. В группе Animation Offset Keying, установите Sync By к Particle Age. ![]() Это важно, потому что эта опция контролирует передачу параметров ключевых кадров в систему частиц. Обратите внимание: Если бы Вы использовали Absolute Time, то все частицы начинались бы со 100 процентами в нулевом кадре и масштабировались бы к 200 процентам в кадре 120, независимо от того, когда они были бы выпущены. Частицы, испускаемые после кадра 120 всегда масштабировались бы к 200 процентам. Однако в данном случае, Вам нужно, чтобы эти ключи были относительны к жизни частиц. Таким образом Вы и используете Sync By Particle Age и масштаб начнется со 100 процентов и увеличится к 200 процентам к тому времени, когда частицы умрут. Свяжите следы дыма с ракетами: Так как это событие еще соединено с какими-либо другими событиями, оно пока еще ничего и не выполняет. Вы соедините следы дыма и ракеты. 1. В окне событий, потяните вывод теста Spawn 01 к входу события Missile Smoke Trails. ![]() Это свяжет ракеты с следами и ракеты начнут выбрасывать частицы со следами дыма. 2. Включите выключенную Вами систему частиц: Нажмите клавишу знака ; или щелкните значок лампочки на панели для заглавия глобального события (Guided Missile). Теперь, если Вы запустите анимацию в области просмотра Camera, то увидите испускаемые квадратные полигоны, которые постоянно ориентируются на камеру. ![]() Откорректируйте ключ интерполяции: Существует проблема, ключи для масштабирования постоянно интерполируются линейно. Чтобы все смотрелось более реалистичным, анимация масштаба должна замедляться, когда увеличивается масштаб. Это можно легко сделать в редакторе Curve Editor, с помощью диалога Key Info. Если Вы установите ключ интерполяции к Fast, программа создаст кривую, которая будет постепенно сужаться, когда она будет приближаться к ключевому кадру 120. 1. В окне Particle, щелкните правой кнопкой поле параметра Scale Factor X % на свитке Scale 01 и выберите Show In Track View. Появится Curve Editor, показывающий кривую для дорожки масштабирования. Совет: Если необходимо, используйте Zoom Value Extents, чтобы увидеть эту кривую. 2. Щелкните ключ в кадре 120, затем щелкните правой кнопкой, чтобы отобразить диалог Key Info. 3. Измените интерполяцию (вставку) In к Fast. ![]() 4. Используйте стрелку с указателем вправо между интерполяциями In и Out, чтобы также скопировать интерполяцию Fast в значение Out. ![]() 5. Щелкните стрелку с указателем вправо с правой стороны элемента Out, чтобы скопировать интерполяцию Fast в In, значение ключа # 1. Щелкните стрелку с указателем влево с левой стороны элемента In, чтобы также скопировать интерполяцию Fast в Out, значение ключа # 1. ![]() 6. Повторите этот процесс для дорожки Y Scale Factor и снова для дорожки Z Scale Factor. 7. Закройте Track View. Примените материал: Когда Вы создали частицы для ракет, они унаследовали картографию и материалы от геометрии, потому что Вы унаследованную геометрию. Но с частицами Smoke Trail, все обстоит иначе. Вы должны будете назначить оператор Material на это событие. Существует три варианта: Static, Dynamic, и Frequency. Поскольку материал анимируется, Вы должны будете использовать материал Dynamic. 1. Добавьте оператор Material Dynamic прямо под оператор Scale Operator в событии Missile Smoke Trails. 2. На свитке Material Dynamic 01, убедитесь, что опция Assign Material, включена, затем щелкните кнопку “None.” 3. В Material/Map Browser, измените выбор в Browse From на Mtl Editor. ![]() Теперь, Вы сможете видеть все материалы, которые находятся в Material Editor. 4. Выберите материал smoke и щелкните OK. 5. Проверьте, чтобы Assign Material ID был включен. Причина, по которой, вместо Static используется Dynamic - прежде всего та, что мы собираемся анимировать материал по возрасту частицы. Сам материал не анимируется, но он использует карту Particle Age, в качестве маски для непрозрачности. Когда используется оператор Material Dynamic, он применяет эту карту по всему времени жизни частицы, создавая при этом постепенное смещение непрозрачности от белого цвета к черному (непрозрачный к прозрачному). Сохраните вашу работу:
Теперь, если Вы прогоните анимацию, то ракеты будут лететь к своим мишеням и оставлять позади себя следы частиц. ![]() Однако, все еще существует проблема: Ракеты проходят прямо сквозь чайники. Чтобы активировать новое событие, при попадании ракет в свои цели, Вы должны будете с чем-то связать вывод оператора Find Target. Этим "чем-то" может быть что-угодно, даже кое-что, такое неясное, как оператор Script, который включает подсветку или увеличивает масштаб объектов из чайников каждый раз, когда происходит столкновение. В следующем уроке, Вы добавите еще одно событие для выброса частиц, которое создаст взрыв частиц. |
Создание взрыва при столкновении
Создание взрыва при столкновении
При достижении частицами-ракетами своих мишеней, Вам необходимо будет новое событие для создания взрыва. В этом уроке Вы создадите это событие, используя оператор Spawn. Вы повторите те же самые методы, которые Вы использовали, чтобы создать следы дыма, только с некоторыми небольшими изменениями. ![]() Начнем этот урок: 1. Продолжайте предыдущий урок или откройте guided_missile_explosion_start.max. 2. Если Вы откроете представленный нами файл, выберите эмиттер частиц в области просмотра , затем нажмите на клавиатуре 6, чтобы отобразить диалог Particle View. Создайте оператор Spawn: 1. Перетащите тест Spawn с набора операторов на окно для событий. Это создаст новое событие. 2. Измените полученное новое событие на Explode. ![]() Установите параметры для взрыва: 1. На свитке Display 03, измените Type на Circles и измените цвет на оранжевый. ![]() Эта операция выброса частиц немного будет отличаться от той, которую Вы использовали при создании следов дыма. И это отличие в том, что прежде всего эта операция уничтожит первоначальную ракетную частицу и создаст единственный взрыв из частиц. 2. Щелкните тест Spawn в событии Explode и включите Delete Parent. ![]() 3. Установите Offspring # к 50 с Variation % в 10. ![]() Это заставит частиц из 45 по 55 рождаться каждый раз, когда частица (ракета) передается в это событие. Дальше, Вы установите скорость, разнообразие и распространение. 4. В группе Speed, установите значение Inherited % к 20. 5. Установите Variation % к 30 и Divergence к 60 градусам. ![]() Это заставит скорость взрывающихся частиц держать прямую связь со скоростью поступающей частицы, которая вызывает рождение частиц. Угол Divergence используется для того, чтобы создать широко распространенную структуру взрыва, а не только потока частиц. Добавьте силы: Дальше, Вы добавите к взрыву силу натяжения. 1. Из набора операторов, перетяните оператор Force на низ события Explode. Выберите оператор Force, чтобы увидеть его свиток. 2. Щелкните кнопку By List, а затем выберите деформацию пространства Drag01, затем щелкните Select. Деформация Drag01 появится в этом списке. ![]() Добавьте оператор Delete: И наконец, Вы добавите оператор Delete с короткой продолжительностью жизни частиц. Это заставит частицы взрыва умереть примерно через две секунды, а не постоянно жить. 1. Добавьте оператор Delete на низ этого события, а затем выберите его, чтобы увидеть параметры этого оператора. 2. В группе Remove, выберите By Particle Age, установите Life Span к 48 и Variation к 8. ![]() 3. В группе Uniqueness, установите Seed к 31886. Подобно частицам Smoke Trail, эти частицы взрыва могут быть представлены геометрически, образовав формы. Чтобы достигнуть этого, Вы используете оператор Shape Facing. Добавьте оператор Shape Facing: 1. Добавьте новый оператор Shape Facing прямо под оператором Force. После создания этого оператора, выберите его, чтобы увидеть параметры. 2. В группе Look At Camera/Object, установите Camera01, в качестве выбранного объекта. 3. В группе Size/Width, оставьте без изменений выбор In World Space и установите значение Units к 300. ![]() 4. Установите Orientation к Align To Speed Follow. ![]() Это заставит фиксировать форму по направлению движения, это хорошо работает со взрывчатыми веществами и эффектами взрыва. Вы можете увидеть различие, если установите тип отображения (Display) в этом событии к Geometry. Формы все еще находятся перед камерой, но они ориентируются по направлению движения, а не по оси World Z. 5. В группе Uniqueness, установите Seed к 235. Свяжите этот взрыв с тестом Find Target: 1. В окне событий, найдите вывод Find Target в событии Launch Missiles. 2. Потяните вывод теста Find Target 01 к входу события Explode, чтобы связать их. ![]() Когда ракеты найдут свои цели (чайники), это вызовет взрыв. Как до этого и со следами дыма, Вы масштабируете эти частицы по их возрасту, чтобы они сразу не появлялись. Добавьте и анимируйте оператор Scale: 1. Добавьте оператор Scale к событию Explode, прямо под оператором Shape Facing. ![]() 2. Установите его Type к Relative First. Точно так же, как и со следами дыма, Вы собираетесь анимировать частицы столкновения. Однако, в этом случае, Вы хотите изменить масштаб от 10 до 100 процентов, поэтому установка этих ключей немного сложнее, чем Вы делали это прежде. 3. Так как частицы взрыва умирают примерно после 48 кадров, переместите ползунок времени к кадру 48. 4. ![]() 5. На свитку Scale 02, в группе Scale Factor, SHIFT+правый щелчок по стрелкам элемента счетчика для поля X %. ![]() Это автоматически установит ключ для всех трех каналов в кадре 0 и кадре 48. 6. Теперь, с активированной кнопкой Auto Key, перейдите к кадру 0 и измените значение к 10 процентам. ![]() Сейчас Вы имеете постоянное изменение масштаба в анимации из кадра 0 к кадру 48. 7. ![]() 8. Установите Scale Variation % к 10 и метод Sync By к Particle Age. ![]() 9. И последнее, как Вы делали это раньше, щелкните правой кнопкой поле X % Scale и выберите Show In Track View. 10. Щелкните ключ масштаба с левой стороны кривой. Станет видимым маркер с правой стороны от этого ключа. Переместите маркер таким образом, чтобы кривая напоминала эту иллюстрацию. ![]() 11. Повторите это действие для дорожек Y Scale Factor и X Scale Factor. 12. Закройте Track View. Осталось добавить еще один оператор Material и назначить материал на частицы. Добавьте оператор Material Dynamic: 1. В событии Explode, добавьте оператор Material Dynamic под оператором Scale. Выберите этот оператор, чтобы увидеть его параметры. В этой части урока, ваша схема частиц должна напоминать следующую иллюстрацию. ![]() 2. На свитке Material Dynamic, щелкните кнопку “None.” Появится Material/Map Browser. 3. В группе Browse From, если необходимо, выберите Mtl Editor. 4. Назначьте материал Flames и проверьте, чтобы опция Assign Material ID была включена. ![]() Материал Flames Этот материал похожий на материал smoke в том контексте, что он - материал поверхностной картографии, который использует градиент и непрозрачность, которые управляются возрастом частицы. Когда картографируются частицы с относительно коротким временем жизни, это создает эффект взрыва, похожий на огонь, который как и взрыв, быстро исчезает. 5. ![]() 6. В группе Uniqueness, установите Seed к 14505. Сохраните и выполните рендер: Сохраните ваш файл под названием myguided_missile_complete.max. Если хотите, можете загрузить готовый файл guided_missiles_render.max и сравнить. Теперь, Вы можете выполнить рендер вашего файла и увидеть результат. Выберите Rendering > Render. На свитке Common Parameters, выберите Active Time Segment, если эта опция не включена. Выполните рендер этой анимации в файл и формат, который Вы выберите. Когда рендеринг будет завершен, выберите File > View Image File, чтобы проиграть вашу анимацию. Или Вы можете загрузить файл guided_missile.mov, проиграть и сравнить. Обратите внимание: Ваши результаты могут отличаться от уже предоставленного файла: все будет зависеть от того, как Вы корректировали ключевые параметры интерполяции, размер и размещение эмиттера. Подводим итоги Единственная система частиц в Particle Flow может включать множество полностью несоизмеримых типов частиц, таких как ракеты, их следы дыма и взрывов, когда они поражают свои цели. И Вы можете назначать любые различные поведения частиц и обращаться к каждому элементу системы, которая управляет событиями. |
Часовой пояс GMT +3, время: 17:46. |
Powered by vBulletin
Copyright ©2000-2024, Jelsoft Enterprises Ltd.