Иногда вместо анимации объектов по методу ключевых кадров, описанной в главе 10, можно позволить программе создать анимацию под вашим непосредственным руководством. Работа с так называемыми системами частиц особенно полезна в случаях, когда необходимо анимировать десятки, сотни, а то и тысячи одинаковых объектов, имеющих похожую геометрию. Также можно использовать модуль динамики для имитации реального поведения объектов, к примеру, для моделирования процесса столкновения шара для боулинга с кеглями. Этот режим позволяет также воссоздать поведение упругого тела, например деформации каучука или желатина. В этой главе вам предстоит познакомиться со следующими темами:
Ключевые термины
Активное тело (Active body). Объект, реагирующий на столкновения с другими объектами.
Пассивное тело (Passive body). Объект, на который не влияют ни поля, ни столкновения, хотя он и может принимать участие в последних.
Поля (Fields). Силы, используемые для анимации движения твердых и упругих тел, а также частиц. Примером такой силы является сила тяжести.
Ограничители (Constraints). Используются для уменьшения числа степеней свободы движения объектов при имитации динамики. Например, шарнир оставляет только возможность вращения объекта вокруг единственной оси.
Источник частиц (Emitter). Элемент, отвечающий за скорость и направление движения частиц. Его можно представить в виде пожарного шланга, в то время как частицы будут потоком воды.
Упругое тело (Soft body). Объект, который может быть деформирован в процессе имитации динамики.
Мишень (Goal). В качестве мишени, притягивающей к себе частицы, идеально подходят любые объекты, полученные на основе полигональных сеток или NURBS-кривых. В первом случае частицы притягиваются к вершинам объекта, во втором — к управляющим точкам.
В этой главе вы найдете обзор инструментов, которые автоматически создают анимацию на основе определенного набора параметров. Чтобы получить к ним доступ, необходимо переключиться в режим Dynamics (Динамика). Это можно сделать, нажав клавишу F4.
С помощью этих функций можно создать анимацию, которую невозможно получить методом ключевых кадров. Основная идея имитации динамики твердого тела состоит в моделировании столкновений и появляющегося в результате изменения направления движения объектов. При имитации динамики упругого тела учитывается также изменение формы объектов в результате столкновений. Системы частиц позволяют легко контролировать анимацию большого числа объектов. Во всех перечисленных случаях можно ввести в сцену силы, например, силу тяжести или ветер, которые будут влиять на движение объектов.
Имитация динамики твердого тела используется в Maya для моделирования различных физических процессов. Элементы сцены имеют некую массу, а в некоторых случаях и начальную скорость перемещения и вращения. Затем к этим элементам применяются поля, оказывающие влияние на их движение. При столкновениях друг с другом объекты меняют направление движения в зависимости от их массы и указанной вами силы трения. Модуль динамики твердых тел производит все необходимые вычисления и моделирует движение тела.Имитация динамики в Maya осуществляется не только для твердых, но и для упругих тел. Во втором случае требуются более сложные расчеты. Но пока мы рассмотрим объекты, не деформирующиеся при столкновениях. Для имитации динамики можно использовать как объекты, полученные на основе NURBS-кривых, так и объекты, построенные на основе сетки полигонов, но в обоих случаях необходимо учитывать направление их поверхностей. Столкновения осуществляются только сторонами, нормали которых направлены наружу. Если нужно смоделировать столкновения одного объекта с внутренними стенками другого, например перемещение шарика внутри полого куба, необходимо изменить направление нормалей. Для этого используются команды Edit NURBS > Reverse Surface Direction (Правка NURBS > Изменить направление поверхности) и Edit Polygons > Normals > Reverse (Правка полигонов > Нормали > Изменить направление).
Активные и пассивные тела
Взаимодействующие объекты могут быть активными и пассивными. Хотя последние и могут быть анимированы по методу ключевых кадров, они остаются статичными. Они могут участвовать в столкновениях, например, располагаясь на пути движения активного тела, но не реагируют на них. Существует возможность преобразовать пассивное тело в активное, и наоборот. В окне каналов находится параметр Active (Активный), который может иметь значение on или off.
Существует также возможность комбинировать обычную анимацию по методу ключевых кадров с имитацией динамики. Переход осуществляется с помощью команд Set Active Key (Создать активный ключ) и Set Passive Key (Создать пассивный ключ) меню Soft/Rigid Bodies (Упругие/Твердые тела). Таким способом можно получить, к примеру, обычную анимацию для отскоков мяча от поверхности с имитацией динамики его одновременного движения вниз по ступенькам лестницы.
Для активных объектов в окне каналов можно указать значение параметров Initial Velocity (Начальная скорость) и Initial Spin (Начальная угловая скорость), как показано на рис. 13.1.
Для активных и пассивных объектов изначально задаются значения параметров Impulse (Импульс) и Impulse Spin (Вращательный импульс) в произвольной начальной точке. Тем самым задается сила мгновенного воздействия на объект. Например, можно указать параметр Impulse Position (Точка приложения импульса) для края бильярдного шара, смоделировав удар кием.
Перечислим остальные параметры активных объектов:
Рис. 13.1. Настройка параметров активного твердого тела
СОВЕТ
При работе со сложными объектами, форму которых невозможно предста-вить в виде куба или сферы, также существует возможность ускорить вычисления. В этом случае создаются невизуализируемые аппроксимирующие объекты упрощенной формы. Затем исходный объект необходимо сделать родительским по отношению к аппроксимирующему, чтобы их перемещения происходили согласованно.
При имитации динамики прежде всего необходимо разделить объекты сцены на активные и пассивные. Это делается с помощью команд Create Active Rigid Body (Создать активное твердое тело) и Create Passive Rigid Body (Создать пассивное твердое тело) в меню Soft/Rigid Bodies (Упругие/Твердые тела). После этого можно задать параметры тела в окне каналов. Затем необходимо определить поля (fields), под действием которых находится объект, и указать, ограничивает ли что-нибудь его движение.
Полями называются локализованные или глобальные силы, действующие на объекты. В главе 4 для моделирования движения воды вам уже приходилось применять поле Turbulence (Турбулентность). Поля снабжены своим собственным значком, что облегчает процесс их выделения в ситуациях, когда необходимо анимиро-вать поле или изменить его параметры. Например, можно сделать так, чтобы гравитационное поле меняло свое направление в процессе анимации, или присоединить поле Air (Атмосфера) к шлюпке, чтобы создать брызги, как при перемещении через поле частиц. Позднее с помощью окна диалога Relationship Editor (Редактор связей) можно отредактировать количество объектов, находящихся под действием поля. В Maya существуют следующие поля:
Одновременно с полями, определяющими движение объектов, можно создать ограничители, которые препятствуют этому движению. Но в отличие от полей, действие которых распространяется на любое количество объектов, ограничители могут воздействовать максимум на два объекта. Кроме того, они не имеют значков. В Maya существуют ограничители следующих типов:
Обычной процедурой при имитации динамики твердых тел является размещение объектов в надлежащих местах, а затем определение их как активных или пассивных. Затем, не снимая выделения с активных тел, принято назначить им поле Gravity (Сила тяжести). После чего можно вводить в сцену другие поля, а также ограничители движения объектов. Редактирование параметров объектов можно осуществлять прямо в процессе воспроизведения анимации. Но имейте в виду, что при создании имитации динамики ползунок таймера анимации должен находиться на отметке нулевого кадра, так как параметры объектов зависят от их собственных значений в предыдущем кадре. После того как вы смоделировали взаимодействия нужным вам образом, можно преобразовать имитацию динамики в набор ключевых кадров. После этого можно будет совершить стандартный набор действий, доступный для обычной анимации.
Упражнение. Имитация динамики твердого тела
Теперь пришло время познакомиться с практической стороной дела. Исследование этих эффектов является весьма интересным занятием, так как программа практически сразу показывает результат редактирования.
СОВЕТ
Не стоит пренебрегать выполнением команды Reset Settings (Сбросить настройки) меню Edit (Правка) окон диалога с параметрами инструментов и функций. Это особенно важно при имитации динамики, так как в этих случаях регулярно приходится вносить изменения в эти параметры.
ПРИМЕЧАНИЕ
В процессе воспроизведения имитации динамики значения параметров объектов в каждом кадре зависят от их значений в предыдущем кадре. Поэтому необходимо настроить анимацию таким образом, чтобы воспроизводился каждый кадр. Нажмите кнопку Animation Preferences (Параметры анимации), расположенную справа от ползунка диапазона, и в раскрывающемся списке Playback Speed (Скорость воспроизведения) выберите вариант Play Every Frame (Воспроизводить каждый кадр), как показано на рис. 13.2.
Рис. 13.2. Выбор правильной скорости воспроизведения анимации гарантирует корректную работу модуля динамики
Рис. 13.3. Выбор подходящего ограничителя в окне диалога Constraint Options
Рис. 13.4. Изменение массы одной из сфер
ПРИМЕЧАНИЕ
Если теперь попытаться отредактировать какой-нибудь из параметров объекта, принимающего участие во взаимодействии, то обнаружится, что это не оказывает никакого эффекта на вид анимации. Для возвращения к редактированию необходимо очистить кэш. Это можно сделать с помощью команды Solvers > Memory Cache > Delete (Модули просчета > Кэширование памяти > Удалить). Или же можно открыть окно диалога Attribute Editor (Редактор атрибутов), выбрав в главном меню команду Solvers V Rigid Body Solver (Модули просчета > Модуль просчета для твердого тела) и нажав кнопку Delete (Удалить) в разделе Rigid Solver State (Состояние решения).
Системы частиц в Maya позволяют создавать сложные наборы объектов однотипного вида и сходного поведения. С их помощью можно легко смоделировать такие сложные эффекты, как струя аэрозоля, взрыв, рой пчел или галактика со звездами. Вряд ли кто-то возьмется поочередно моделировать и анимировать каждый из объектов, входящих в перечисленные множества. Кроме того, частицы могут принимать участие в столкновениях с объектами и находиться под влиянием различных полей.
Создание частиц
Частицы можно включить в сцену двумя способами. Во-первых, с помощью инструмента Particle Tool (Создание частиц), во-вторых, поместив в сцену их генератор. Первый способ обычно используется, если требуется изначально распределить частицы заданным образом и сохранить их на протяжении всей анимации. Это бывает нужно, например, при создании галактик. Выбор команды Particle Tool (Создание частиц) в меню Particles (Частицы) включает режим рисования области распространения частиц. В окне диалога Tool Settings (Параметры инструмента) для данного инструмента можно установить флажок Create Particle Grid (Создать сетку частиц), что приведет к появлению прямоугольной области, заполненной частицами. Это может быть полезно для более наглядного представления эффекта действия полей в процессе их создания.
Более традиционным способом создания системы частиц является использование их генератора. Со временем такие частицы исчезают. В Maya возможны генераторы следующих типов:
Типы частиц
Частицы в Maya делятся на визуализируемые аппаратно и программно. Большинство частиц относится к первому типу. Они не появляются при обычной программной визуализации и требуют включения системы аппаратной визуализации, которая осуществляется выбором команды Window > Rendering Editors t Hardware Rendering Buffer (Окно > Редакторы визуализации > Буфер аппаратной визуализации). При этом понадобится программа для монтажа изображения, такая как, к примеру, Composer, которая позволит вам настраивать внешний вид частиц независимо от остальных объектов сцены. Кроме того, часто изображения, полученные путем аппаратной визуализации, имеют зубчатые края. Но эту проблему можно решить с помощью редактора атрибутов, вызываемого командой Attributes (Атрибуты) меню Render (Визуализация) окна Hadware Rendering Buffer (Буфер аппаратной визуализации.
В итоге все, что вам нужно сделать, это скомбинировать визуализированную аппаратно последовательность кадров с частицами и полученную программной визуализацией последовательность кадров с остальными объектами сцены. Если анимация занимает длительное время, значит, сцена содержит слишком много частиц или же анимация слишком сложна. Ведь монтаж двух видов изображения происходит за считанные минуты.
Аппаратно визуализируемые частицы
Перечислим типы частиц, визуализируемых аппаратно. Имейте в виду, что они не могут формировать теней и принимать участие в эффектах отражения и преломления.
Программно визуализируемые частицы
Перечисленные ниже типы частиц визуализируются обычным образом, как часть основной сцены. Поэтому они могут отбрасывать тени, а также принимать участие в эффектах отражения и преломления. Их параметры можно редактировать в окне диалога Attribute Editor (Редактор атрибутов).
Материалы и возраст частиц
Материалы для систем частиц можно создать на основе текстуры Gradient Ramp (Линейный градиент). Каждая частица имеет свой возраст, на основе которого программа вычисляет, какую часть текстуры необходимо использовать в данный момент. Это позволяет смоделировать изменение цвета частиц со временем. Данный эффект используется, например, при создании летящих искр. Сначала они имеют белый цвет, потом меняют его на желтый, оранжевый, красный и, наконец, на черный.
Воздействие на частицы
Существует несколько способов взаимодействия частиц с элементами сцены. Например, можно назначить поле, которое будет определять способ их движения. Также можно смоделировать в сцене поверхности, принимающие участие в столкновениях с частицами. Кроме того, существует возможность создания мишени, к которой будут лететь частицы.
Поля
Информация о полях дана в разделе, посвященном описанию динамики твердого тела. Существуют типы полей, ориентированные на работу с системами частиц. Не стоит забывать о том, что практически все поля могут быть настроенытаким образом, чтобы появляться только в ограниченном объеме или затухать с расстоянием, что позволяет локализовать эффект их действия.
Столкновения
Частицы любого типа могут принимать участие в столкновениях с любыми поверхностями объектов сцены, но каждое столкновение необходимо настраивать отдельно. Для этого нужно выделить систему частиц, а затем при нажатой клавише Shift выделить объект и выбрать в меню Particles (Частицы) команду Make Collide (Заставить сталкиваться). Этот прием работает вне зависимости от того, движутся ли система частиц и опорная плоскость. Например, можно смоделировать въезд какого-нибудь объекта в неподвижное облако частиц. Кроме того, можно сделать частицы исчезающими через определенный промежуток времени, делящимися на дополнительные частицы, или исчезающими и вновь появляющимися на том же месте после столкновения. Эти эффекты обычно используются для моделирования эффектов брызг или крушения. В последнем случае частицы распадаются на более мелкие куски при столкновении с объектом.
Мишени
Можно создать для частиц мишень, которая будет представлять собой определенную конфигурацию, форму или место, притягивающее поток частиц. Можно сделать так, чтобы частицы догоняли движущуюся мишень, оставаясь в определенном положении относительно других частиц, а также создать эффекты развевающегося на ветру знамени или водорослей в потоке воды. В этих случаях системы частиц используются до контроля геометрической формы. Об этом мы более подробно поговорим при исследовании динамики упругих тел. Если объект назначен в качестве цели некоторой системе частиц, то частицы притягиваются к вершинам (для полигональных объектов) или к управляющим точкам (для NURBS-объектов).
Теперь, когда вы получили информацию о возможных способах использования частиц, пришло время применить эти знания на практике. Загрузите сцену с домом, к которой в прошлой главе вы добавляли эффекты рисования. Это может быть ваш собственный файл или файл chl3tut02start.mb. Смоделируем дым, идущий из трубы дома, и назначим ему подходящий материал.
Рис. 13.5. Настройка параметров для генератора дыма
Рис. 13.6. Начальный вид испускаемых частиц
Рис. 13.7. Результат редактирования параметров потока частиц
Рис. 13.8. Результат редактирования параметров частиц
Рис. 13.9. Результат назначения материала системе частиц и освещения ее точечным
источником света
Рис. 13.10. Окончательный вид дыма после редактирования параметров материала
Рис. 13.11. Настройка параметров текстуры Ramp, благодаря которой прозрачность частиц будет увеличиваться со временем
Рис. 13.12. Вид сцены после добавления дыма, идущего из трубы
Теперь вы можете сравнить свои результаты с тем, что получилось у нас, загрузив файл ch13tut02end.mb. Если вам понравилось, как выглядит статичный кадр, визуализируйте полный фильм. Эффект дыма не вызывает сильного увеличения времени визуализации.
Имитация динамики упругого тела в Maya осуществляется за счет создания вокруг объекта системы частиц. Когда эти частицы попадают в зону действия поля или сталкиваются с другими объектами, они перемещают связанную с ними поверхность. Это идеально подходит для моделирования гибких материалов органического происхождения. Имитация динамики упругого тела также применяется для создания таких объектов, как желатин или резина.
По умолчанию упругие тела бесконечно растягиваются или сжимаются практически от любого воздействия. Для получения более реалистичного поведения необходимо создать мишени или пружины. Мишени (goals) предоставляют гибкому объекту форму, которую он стремится принять, примерно как резиновая игрушка, которая после сжатия возвращается в исходное состояние. В отличие от мишеней пружины (springs) позволяют движению одной частицы оказывать влияние на движение других. В этой главе мы познакомим вас со вторым подходом.
Создание упругого тела
Любой объект, созданный на основе NURBS-кривых или сетки полигонов, может быть преобразован в упругое тело. Это осуществляется путем размещения частиц в местах расположения управляющих точек (для NURBS-объектов) или вершин (для полигональных объектов) и управления их положением в соответствии с движением частиц. В окне диалога Soft Options (Параметры упругости), вызываемом щелчком на квадратике, расположенном справа от команды Create Soft Body (Создать упругое тело) меню Soft/Rigid Bodies (Упругие/Твердые тела), указывается, хотите ли вы просто превратить объект в упругое тело или предпочитаете, чтобы оригинал объекта остался в сцене в качестве мишени. Обычно используется второй метод. В результате упругое тело пытается принять форму исходного объекта.
Так как упругие тела основаны на системах частиц, для имитации динамики необходимо настроить столкновения этих частиц с определенным объектом сцены. Для каждого объекта, который должен принимать участие в столкновениях, необходимо проделать следующую операцию: выделить одновременно этот объект и систему частиц и выбрать в меню Particles (Частицы) команду Make Collide (Заставить сталкиваться).
Добавление пружин
Когда нужно создать более упругий объект, чем развевающееся на ветру знамя, к нему можно добавить параметр Springs (Пружины), обеспечив своего рода поддерживающую структуру. В результате между всеми частицами появятся виртуальные пружинки. В зависимости от требуемой степени упругости объекта можно увеличить значение параметра Wire Walk Length (Глубина связи). Если этот параметр равен единице, для каждой частицы связь устанавливается с ближайшими соседями со всех сторон, если двум — связь распространяется на две частицы. Также можно увеличить значение параметра Stiffness (Жесткость), чтобы заставить пружины быстрее возвращаться в исходное состояние. Параметр Damping (Торможение) определяет скорость, с которой они приходят в состояние покоя.
Упражнение. Резиновые гантели
Создадим упругое тело из гантелей, заставив их отскакивать от предметов окружающей обстановки. Загрузите файл ch13tut03start.mb.
Рис. 13.13. Окно диалога Dynamic Relationships
ВНИМАНИЕ
Убедитесь, что в данный момент для параметра Playback Speed (Скорость воспроизведения) выбран вариант Play every frame (Воспроизводить каждый кадр). В противном случае может создаться впечатление, что в процессе своего движения объект внезапно взрывается. Помните, что в процессе имитации динамики должен быть выбран именно этот вариант. И не забывайте устанавливать ползунок таймера анимации на отметку нулевого кадра после каждого воспроизведения.
Самостоятельно исследуйте, какое влияние на динамику движения тел оказывают такие параметры, как масса, начальный импульс, момент инерции объекта и трение соприкасающихся поверхностей. Попытайтесь создать анимацию, имитирующую игру в пинбол, в которой на пути катящихся но наклонной плоскости шариков возникают различные препятствия. Исследуйте приемы работы с системами частиц, которые используются для имитации таких эффектов, как фейерверк или стекающая жидкость. Изменяйте все возможные параметры частиц и наблюдайте за производимым эффектом, чтобы понять, как они работают. Создайте NURBS-плоскость и с помощью имитации динамики упругого тела заставьте ее полоскаться, как знамя на ветру.
Рис. 13.14. Скрытые пружины можно выделить в окне диалога Outliner и затем настроить их параметры таким образом, чтобы движение гантели стало более приближенным к реальности
Благодаря системам частиц и модулю динамики появилась возможность создавать сложные и реалистичные анимации. В этой главе мы продемонстрировали только небольшую часть этих возможностей. Вы получили информацию по следующим темам: