Извержение вулкана
Как создать кратер вулкана, выбрасывающий огонь в темную ночь?
Тема:
Динамика, Рендеринг.
Используемые техники и инструменты:
Particles (Частицы), Emit from Surface (Испускать с Поверхности), Turbulence (Турбулентность), Gravity (Гравитация), Fire (Огонь).
Взрывы, извержения и пламя - эти эффекты часто встречаются в кинофильмах. Они обычно отдельно создаются пиротехниками, а потом совмещаются с реальным местом действия. Мы можем моделировать многие из этих спецэффектов в MAYA - от фейерверков до ураганов, - используя частицы, которые подчиняются динамическим законам, и, для того чтобы выглядеть реалистично, от аниматора требуется большой опыт как для задания их физического поведения, так и для текстурирования.
В этом уроке мы затронем основы анимации частиц: создание источника, анимация интенсивности эмиссии, влияние на поведение частиц турбулентности и гравитации. Текстурирование частиц - это отдельное искусство, которое выходит далеко за рамки этого урока. Однако, применяя встроенный в MAYA эффект Fire (Огонь), мы можем получить отличные результаты.
Создайте конус вулкана, либо переместив вниз верхушку NURBS - конуса, либо применив команду Revolve (Вращать) к соответствующей профильной кривой (рис. 17.1).Рис. 17.1. Способ моделирования конуса вулкана командой Revolve (Вращать), примененной к профильной кривой
-
Наложите на вулкан ramp-текстуру, которая начинается с зеленого цвета (окружающий ландшафт), затем становится коричневой (внешняя часть вулкана), а затем и красной (кратер внутри вулкана), как показано на рис. 17.2.
Рис. 17.2. Ramp-текстура придает цвет вулкану
-
Нажмите F3, выберите Surfaces / Planar (Поверхности / Планарные) для построения планарной поверхности по одной из изопараметрических кривых внутри кратера.
Эта небольшая поверхность внутри кратера и будет источником частиц. Ее построение невозможно, если изопарма, по которой строится эта поверхность, сама не будет планарна. Благодаря истории построения, планарная поверхность перестроится, если вы измените форму вулкана. Вам не обязательно видеть построенную планарную поверхность), поэтому можете сделать ее невидимой (клавиши Ctrl+H).
Переключитесь в раздел динамики (клавиша F4). Выделив планарную поверхность, выберите Particles / Emit from Object (Частицы / Испускать с Поверхности Объекта) (см. рис. 17.3).Так поверхность превратится в источник частиц, в чем вы сможете убедиться, запустив симуляцию. Частицы выглядят серыми и испускаются источником во всех направлениях. Мы бы хотели, чтобы они вылетали только вверх.
Рис. 17.3. Планерная поверхность становится источником частиц
-
В окне Channel Box (Окно Каналов) найдите Emitter Type (Тип Источника) в секции emitterl (рис. 17.4). Поменяйте его значение с Omni (Равнонаправленный) на Surface (С поверхности).
Рис. 17.4. Частицы не должны покидать источник, разлетаясь во всех направлениях. Мы хотим чтобы они двигались вверх по нормали к поверхности
При воспроизведении анимации вы увидите, что частицы движутся вверх по нормали к поверхности. Если ваши частицы падают вниз, измените направление нормалей поверхности. Нажмите F3, выберите Edit NURBS / Reverse Surface Direction (Редактирование NURBS / Изменить Ориентацию Поверхности). Этот шаг необходим, если, к примеру, у вас есть большая сфера, которая должна испускать частицы внутрь. Нормали поверхности стандартной сферы направлены наружу.
Прямо сейчас равные области поверхности испускают примерно равное количество частиц.Чтобы перемешать их, необходимо подействовать на них каким-то полем, поэтому подвергнем их действию турбулентности.
Воспроизведите несколько кадров анимации до тех пор, пока не появятся частицы. Выделите их. Создайте для них турбулентное поле. Выберите Fields / Turbulence (Поля / Турбулентность). Поле все еще выделено. Переместите его центр вверх, над вершиной вулкана (рис. 17.5). Поток частиц должен ощутить турбулентность через несколько кадров после своего появления и развития.Рис. 17.5. Турбулентное поле начинает перемешивать частицы в момент их появления из кратера
-
В окне Channel Box (Окно Каналов) настройте силу
поля. Попробуйте значение параметра Magnitude (Величина) 1 или даже меньше.
Поле должно лишь слегка перемешивать частицы, не влияя на основное направление
их движения.
Теперь частицы движутся беспорядочно, однако они летят прямо вверх. Поэтому далее добавим им немного тяготения. С самого начала поле гравитации будет тянуть их вниз с такой силой, что у них не останется ни малейшего шанса двигаться вверх. Теперь у нас есть две противоборствующие силы, как и в ракетной пусковой установке: сила гравитации против скорости эмиссии.
Этот шаг также подчеркивает разницу между источником и собственно частицами: задача источника - выстрелить частицы с определенной скоростью, определенной плотностью и в определенном направлении. Ему все равно, что случится с частицами после этого. Источник беспокоится только о том, чтобы отправить частицы в путешествие по миру сил.
Выделите частицы и добавьте им гравитацию. Для этого выберите Fields / Gravity (Поля / Гравитация). Выделите источник (лучше это сделать в окне Outliner (Схема Сцены); его родительским объектом является планарная поверхность) и увеличьте значение для Emission Speed (Скорость Эмиссии). Создайте анимационный тест инструментом Playblast (Проигрыватель). Выберите Window / Playblast (Окно / Проигрыватель). Если у вас нет супермощного компьютера, вам придется воспользоваться инструментом Playblast, чтобы оценить качество симуляции в реальном времени. Уменьшайте силу поля гравитации и увеличивайте скорость эмиссии до тех пор, пока частицы не взлетят на приличную высоту над вулканом, перед тем как гравитация захватит их и потянет вниз. Попробуйте значения для Emission Speed (Скорость Эмиссии) - 20 (секция emitter 1-), а для Magnitude (Величина) - 5 (секция gravity 1-) (рис. 17.6).Рис. 17.6. Благодаря гравитации частицы не уносятся в бесконечность, а через некоторое время возвращаются на землю
Теперь перемешанный турбулентностью поток частиц вылетает вверх из вулкана и продолжает это движение, пока гравитация не потянет его прямо вниз. Было бы еще неплохо расширить поток частиц, чтобы они падали не прямо вниз, в жерло вулкана, но также и на землю, по обе его стороны, - как фонтан. Параметр, ответственный за такое падение, называется Tangent Speed (Скорость по Касательной), который является атрибутом источника, а не частиц.
-
Выделите источник. Измените Tangent Speed (Скорость по Касательной) с О на какое-нибудь небольшое значение, к примеру 0,1 (рис. 17.7).
Рис. 17.7. При немного увеличенной Tangent Speed (Скорость по Касательной) источник делает поток частиц шире
Когда ширина потока увеличена, огромное количество частиц падает на стороны вулкана и сквозь него. Если вы хотите, чтобы при столкновении с землей они исчезали, будто бы угасая, то вы должны связать их с поверхностью, используя команду меню Particles / Make Collide (Частицы / Задействовать Столкновение). Есть один изящный и естественный способ - не позволять слишком большому количеству частиц достигать поверхности и проваливаться сквозь нее. Сейчас наши частицы живут вечно. Но мы можем уменьшить время их жизни.
Откройте Attribute Editor (Редактор Атрибутов) для particle 1. В секции Lifespan Attributes (Атрибуты Периода Существования) измените режим Lifespan Mode (Режим Периода Существования) с Live Forever (Вечно) на Random Range (Случайный Диапазон). Это активизирует поле входных данных (см. рис. 17.8).Рис. 17.8. Частицы исчезнут через четыре секунды, плюс -минус полсекунды
-
Введите значение 4 для атрибута Lifespan и установите Lifespan Random (Границы случайного отклонения от среднего значения времени жизни) (стандартное отклонение от заданного значения Lifespan) на 0,5.
Теперь период существования каждой частицы перед исчезновением будет составлять случайно выбранное число от 3,5 до 4,5 с.
В природе извержения редко бывают равномерными. Они начинаются с нуля, когда ничего не происходит, затем в течение нескольких мгновений происходит высокий выброс большого количества частиц, а потом достигается равновесие потока на несколько меньшей высоте.
Ключевым параметром (и атрибутом источника) для достижения этого эффекта является Rate (Интенсивность) испускания.
Выделите источник. На временной шкале идите в кадр (не слишком близко к началу анимации), где извержение достигает равновесия. Щелкните правой кнопкой мыши на параметр Rate (Интенсивность) и установите здесь ключевой кадр. Для этого выполните команду Key Selected (Сделать ключевыми выделенные атрибуты). Вернитесь в тот момент, когда извержение только начинается. Увеличьте значение параметра Rate (Интенсивность) для источника вдвое и установите еще один ключевой кадр. Вернитесь на 10 кадров назад (треть секунды). Уменьшите значение Rate (Интенсивность) до 0 и установите третий ключ (см. рис. 17.9).Теперь вулкан ведет себя очень тихо, прежде чем начать внезапное извержение. Затем он немного замедляет извержение до уровня средней интенсивности. Используя Graph Editor (Редактор Анимационных Кривых), отрегулируйте этот процесс.
Рис. 17.9. Анимация интенсивности извержения вулкана. В Graph Editor (Редактор Анимационных Кривых) вы можете внести необходимые для отладки анимации изменения
Если хотите, можете добавить и другие силы, влияющие на движение частиц, например ветер (Air (Ветер), либо увеличить турбулентность, или Drag (Трение), которое замедлит движение частиц, независимо от направления их движения. Но даже без всего этого анимация частиц в целом удовлетворяет нашим требованиям, и мы можем начать работу над внешним видом частиц.
Визуализировав сцену обычным способом, вы вообще не увидите частиц. Их можно увидеть лишь в результате специальной процедуры рендеринга через Hardware Render Buffer (Буфер Аппаратного Рендеринга) (меню Window / Rendering Editors (Окно / Редакторы рендеринга). Скорее всего, это будут точки, штрихи или сферы. После такого рендеринга вы сможете вставить их в сцену с вулканом, только используя композиционную программу, типа MAYA Fusion, Edit или After Effects. Нам же нужно желто-красное пламя с небольшой прозрачностью, поэтому мы должны воспользоваться процессом обычного программного рендеринга.
Откройте Attribute Editor (Редактор Атрибутов) для частиц (см. рис. 17.10). В секции Render Attributes (Атрибуты Рендеринга) измените Particle Render Type (Тип Визуализации Частиц) на Cloud (s/w), где s/w обозначает программный рендеринг. Cloud придает нашим частицам размытый, полупрозрачный вид. В результате рендеринга вы получите голубые облака. Голубой цвет обусловлен установленным по умолчанию шейдером для частиц, который вы найдете в Hypershader. Он называется particleCloudl. Если вы измените цвет particleCloudl с голубого на красный, то вулкан будет извергаться полупрозрачными красными облаками (см. рис. 17.11).
Рис. 17.10. Лишь два нижних типа частиц в выпадающем меню Particle Render Type (Тип Визуализации Частиц) могут быть визуализированы обычным способом. Остальные требуют применения Hardware Render Buffer (Буфер Аппаратного Рендеринга). Тип Cloud (Облако) - это подходящий для вулкана тип визуализации частиц при рендеринге
Рис. 17.11. ParticleCloud определяет вид облака частиц. Средняя секция визуализированного изображения слева показывает измененную с голубого на красный текстуру particleCloud
Однако это очень отдаленно напоминает огонь. Если вы поиграете с цветом, например примените к частицам ramp-текстуру, то увидите, что,'несмотря на то что реалистичную анимацию частиц очень просто создать, весьма сложно придать ей красивый вид. Могут понадобиться часы работы над particleCloud 1 в Hypershade, чтобы добиться не только внешнего вида пламени, но и его реалистичного поведения при анимации. В этом уроке мы упростим себе задачу и используем встроенный в MAYA эффект Fire (Огонь). Сначала мы создадим огонь и назначим его вид частицам вулкана. Эта процедура не только сэкономит время, но и позволит вам изучить шейдер огня, так что в дальнейшем вы сможете модифицировать его исходя из собственных нужд.
Выделите пленарную поверхность, которая служит источником частиц. Зажгите ее. Нажмите F4, выберите Effects / Create Fire (Эффекты / Создать Огонь) (рис. 17.12).Рис. 17.12. Команда Create Fire (Создать Огонь) добавляет огненные частицы к уже имеющимся частицам вулкана
При воспроизведении анимации вы увидите маленький огонь внутри вулкана, прежде чем начнется запрограммированное вами извержение. В окне modeling view (окно Моделирования) он зеленого цвета, в окне рендеринга огонь принимает вид настоящего пламени (рис. 17.13). В Hypershader рядом с particleCloud 1 вы увидите шейдер для огня partideCloud 2.
Рис. 17.13. Перед извержением вулкана огонь уже горит в кратере. Слева - вид Perspecrive View (Вид Перспективы), справа - окно рендеринга
-
Выделите частицы вулкана.
Откройте Hypershader. Найдите particleCloud 2, шейдер огня. Щелкните правой кнопкой мыши и выберите команду Assign Material to Selection (Назначить Материал Выделенным Объектам) для применения его к частицам (рис. 17.14).
Рис. 17.14. Мы назначаем цвет пламени первоначальным частицам
В виде Modeling View (Окно Моделирования) частицы становятся зелеными, как и частицы огня, и повторяют вашу анимацию, а не исходные параметры анимации огня. Вы все еще можете видеть небольшой огонь в кратере. Оставьте его там либо удалите секцию particleCloud 2. Изящным штрихом может быть небольшой огонь в кратере после угасания мощного извержения. Кратер в этом случае будет продолжать тлеть до конца анимации.
В результате рендеринга вы получите слишком тоненькое пламя для мощного извержения. Это признак того, что плотность выбрасываемых частиц очень низкая. Чтобы это исправить в окне Channel Box (Окно Каналов) или в Graph Editor (Редактор Анимационных Кривых), увеличьте значение Emission Rate (Интенсивность эмиссии) для emitter 1. He бойтесь ввести большое значение, к примеру 1000!
В зависимости от размеров кратера, который вы создали, огонь может быть либо чересчур маленьким, либо слишком большим. Чтобы получить требуемый размер, выделите частицы и масштабируйте их на свой вкус.
Рис. 17.15. Четыре визуализированные фазы извержения
Если же вы работаете именно над видом огня, изучите его структуру в Hypershader. По умолчании огонь MAYA включает три рамп-текстуры, соответственно для цвета, прозрачности и свечения . Кроме того, 3D-Crater текстура служит в качестве Blob Map (Карта Капель). Наконец, есть несколько выражений для работы с некоторыми другими вещами, например определяющие параметры эффекта Glow (Свечение). Если вас заинтересовала динамика огня, добавьте дополнительные поля и поиграйте с ними, с атрибутами частиц и источника.
А теперь кое-что новенькое. Можете ли вы построить ухо по трем кривым?