Первые шаги в Maya. Урок 14. Программно-визуализируемые системы частиц (часть 1)

Светлана Шляхтина

Теоретические аспекты

Создание частиц

Воздействие на частицы физических сил

Примеры внедрения частиц в сцену

Движущийся косяк рыбы

Плывущее облако

Клубящийся дым

Горящий костер

 

Для придания реалистичности моделируемым сценам нередко прибегают к внедрению в них множества однотипных объектов очень малого размера, количество и вид которых изменяются с течением времени. Такие объекты принято называть системами частиц, и они незаменимы при моделировании струй дождя, брызг фонтана и хлопьев снега, искр огня, фейерверка и салюта, воздушных пузырьков и пыли, звездного неба и летящей стаи птиц и т.п. Об этом типе объектов и пойдет речь в данном уроке.

Теоретические аспекты

Системы частиц (Particle Systems) — это совокупность управляемых с помощью параметров малоразмерных объектов, количество и вид которых различны в каждом кадре анимации. В Maya имеется очень много видов систем частиц, при этом большинство из них визуализируется лишь аппаратно, и только некоторые — программно. Первые не появляются при обычной программной визуализации и требуют включения системы аппаратного рендеринга и применения программы для монтажа изображения (например, Composer), позволяющей настраивать внешний вид частиц независимо от остальных объектов сцены. Программно-визуализируемые системы частиц отображаются при обычном рендеринге — ими мы и ограничимся в данном уроке.

В Maya предусмотрены три вида программно-визуализируемых систем частиц (их можно идентифицировать по наличию обозначения s/w — рис. 1):

  • BlobbySurface (Слившиеся сферы) — представляют собой набор четко очерченных сферических частиц, которые при столкновении сливаются друг с другом и могут визуализироваться с различными типами материалов;
  • Cloud (Облака) — визуализируются в виде сфер, имеющих размытые и сглаженные границы, благодаря чему возникает впечатление единого облака; данным частицам, как правило, назначают объемный материал ParticleCloud (Облако частиц) — применение для них обычных материалов приводит к тому, что частицы не отображаются при визуализации;
  • Tube (Трубки) — представляют собой лишенные оснований цилиндры, данные частицы визуализируются только вместе с материалами объемного типа (чаще всего им назначается материал ParticleCloud).

 

Рис. 1. Программно-визуализируемые системы частиц

Рис. 1. Программно-визуализируемые системы частиц

 

За работу с системами частиц отвечает меню Particles (Частицы) — оно доступно лишь в режиме Dynamics (Динамика), активируемом при нажатии клавиши F4. В нем находятся команды как непосредственно для создания частиц, так и для выполнения с ними некоторых операций. Создавать частицы можно двумя способами. Можно внедрить их в сцену вручную, воспользовавшись инструментом ParticleTool (Создание частиц), — к этому способу прибегают лишь в тех случаях, когда требуется точно определить положение каждой частицы, например для имитации скоплений некоторых объектов (звезд, птиц, рыб и т.п.).

Однако гораздо чаще частицы не рисуются вручную, а автоматически генерируются эмиттером. Эмиттер создается командой CreateEmitter (Создать эмиттер), вызываемой из меню Particles (Частицы), и определяет площадь, на которой будут падать частицы, а также направление их перемещения. Эмиттер не визуализируется и в окнах проекций представлен либо в виде обычного круга с крестиком, либо в виде такого же круга, но заключенного в некую объемную форму (рис. 2). Частицы, в отличие от эмиттера, визуализируются даже при программном рендеринге (при условии, что они принадлежат к одному из программно-визуализируемых типов). В нулевом кадре их не видно, но они прекрасно отображаются в любом другом кадре.

 

Рис. 2. Частицы и генерирующий их эмиттер (частицы отображены розовым цветом, а эмиттер — голубым)

Рис. 2. Частицы и генерирующий их эмиттер (частицы отображены розовым цветом, а эмиттер — голубым)

 

Чаще всего эмиттер не только генерирует частицы, но и сам их испускает. Однако при необходимости источником частиц может стать любая поверхность, кривая или некоторый объем пространства, что зависит от типа эмиттера. В Maya могут быть задействованы следующие типы эмиттеров (рис. 3):

  • Directional (Направленный) — обеспечивает распространение частиц из одной точки в заданном направлении;
  • Omni (Всенаправленный) — формирует частицы, которые распространяются из одной точки во всех направлениях;
  • Surface (Поверхностный) — позволяет испускать частицы одной из поверхностей объекта сцены, который может представлять собой полигональный объект либо объект, созданный на базе NURBS-кривых;
  • Curve (Криволинейный) — обеспечивает распространение частиц NURBS-кривой;
  • Volume (Объемный) — формирует частицы, которые возникают в некоторой точке фиксированного объема (куба, сферы, цилиндра, конуса или тора) и распространяются во всех направлениях.

 

Рис. 3. Типы эмиттеров

Рис. 3. Типы эмиттеров

 

Как правило, программно-визуализируемые системы частиц визуализируются в виде слившихся сфер (B lobbySurface), облаков (Cloud) или трубок (Tube). Однако они могут быть представлены и иным образом, например при рендеринге каждая частица может заменяться на образец-заместитель (Instancer) — рис. 4, представляющий собой некоторый объект сцены. Такие частицы называют созданными по геометрическому образцу (InstancedGeometry), и они незаменимы для имитации скоплений некоторых объектов (птиц, рыб и т.п.).

 

Рис. 4. Различные варианты отображения частиц: 1— Blobby Surface, 2 — Cloud, 3 —Tube, 4 — Instanced Geometry

Рис. 4. Различные варианты отображения частиц: 1— Blobby Surface, 2 — Cloud, 3 —Tube, 4 — Instanced Geometry

 

Параметры эмиттера и формируемой им системы частиц устанавливаются сразу при их создании (для этого следует щелкать на квадратике, расположенном справа от команды CreateEmitter), либо корректируются позднее в окне каналов (ChannelBox) или в окне редактора атрибутов (AttributeEditor). При этом в зависимости от того, какие параметры требуется изменить, следует выделять либо эмиттер, либо систему частиц (это обычно удобнее произвести в окне Outliner). Основные параметры эмиттера сконцентрированы в свитках BasicEmitterAttributes, Distance/DirectionAttributesи BasicEmissionSpeedAttributes (рис . 5):

  • Emitter Type — позволяет установить тип эмиттера;
  • Rate — определяет число частиц, испускаемых за одну секунду эмиттером;
  • MinDistance/MaxDistance (Минимальное расстояние/Максимальное расстояние) — указывает граничные расстояния от эмиттера, на котором могут создаваться частицы;
  • Speed — определяет скорость перемещения частиц;
  • SpeedRandom (Случайная скорость) — задает границы диапазона, в котором скорость частиц будет меняться.

 

Рис. 5. Базовые параметры настройки эмиттера

Рис. 5. Базовые параметры настройки эмиттера

 

Базовые параметры частиц расположены на вкладке particleShape, основными из них являются следующие (рис. 6):

  • LifespanMode — определяет продолжительность присутствия каждой частицы в сцене (то есть время жизни частиц);
  • Particle Render Type — устанавливает тип визуализации частиц.

 

Рис. 6. Базовые параметры настройки системы частиц

Рис. 6. Базовые параметры настройки системы частиц

 

При этом каждый из типов визуализации частиц регулируется через индивидуальный список параметров, вызываемый при нажатии на кнопку CurrentRenderType (Параметры к текущему типу визуализации) из свитка Render Attributes. Например, частицы типа Cloud (Облако) имеют атрибуты Radius (Радиус), SurfaceShading (Тонирование поверхности) и Threshold (Пороговое значение) — рис. 7.

 

Рис. 7. Индивидуальные параметры системы частиц Cloud

Рис. 7. Индивидуальные параметры системы частиц Cloud

 

Поведение частиц зависит не только от значений вышеназванных параметров, но и от иных воздействий. Во-первых,  на системы частиц могут воздействовать разнообразные физические силы — поля, в частности турбулентность и гравитация, под действием которых траектория частиц будет изменяться. Во-вторых, частицы могут сталкиваться с поверхностями объектов сцены, разбиваясь на дополнительные частицы, исчезать и вновь появляться на том же месте после столкновения. И наконец, частицы могут притягиваться целью (или мишенью), которая может быть как статичной, так и движущейся, что в итоге также приводит к изменению траектории движения частиц. С некоторыми особенностями воздействия на частицы полей мы ознакомимся в этом уроке, а вопросам столкновения частиц и притягивания их мишенью будет посвящен следующий урок.

В начало В начало

Создание частиц

Для примера создайте эмиттер, воспользовавшись командой Particles=>CreateEmitter (Частицы=>Создать эмиттер), — никаких частиц при этом видно не будет, но это лишь потому, что кадр нулевой. Нажмите на панели анимации кнопку Play, и частицы тут же появятся (рис. 8), причем их количество и положение в каждом кадре будут меняться.

 

Рис. 8. Вид проекции Persp с частицами и эмиттером в нулевом (слева) и в одном из промежуточных кадров

Рис. 8. Вид проекции Persp с частицами и эмиттером в нулевом (слева) и в одном из промежуточных кадров

 

При необходимости несложно отрегулировать положение частиц, их количество, особенности испускания их эмиттером и характер их движения через окно каналов или редактор атрибутов. Чтобы немного разобраться с особенностями настройки параметров, активируйте 1-й кадр, выделите эмиттер и измените его тип (параметр Emitter Type) с установленного по умолчанию Omni на Directional. Затем проиграйте анимацию — частицы станут испускаться эмиттером уже не во всех направлениях, а строго в одном (рис. 9). Установите при выделенном эмиттере в окне каналов значение параметра Rotate Z равным 90, и эмиттер изменит направление испускания частиц, которые будут вылетать из него уже не горизонтально, а вертикально (рис. 10). Можно заставить частицы разлетаться в разные стороны, увеличив значение параметра Spread (Разброс): выделите систему частиц и в редакторе атрибутов установите данный параметр равным, например, 0,2 — вид потока частиц сразу же изменится (рис. 11). Несложно добиться и того, чтобы частицы вылетали не из одной точки, а из некоторой области — для этого достаточно увеличить значение в поле MaxDistance (Максимальное расстояние), например, до 5. После этого частицы будут появляться не только из центра эмиттера, но и в любом месте отрезка, выходящего из центра эмиттера, направленного в направлении испускания частиц и имеющего длину, равную 5 (рис. 12).

 

Рис. 9. Смена типа эмиттера

Рис. 9. Смена типа эмиттера

 

Рис. 10. Результат изменения направления вектора эмиттера

Рис. 10. Результат изменения направления вектора эмиттера

 

Рис. 11. Увеличение разброса частиц

Рис. 11. Увеличение разброса частиц

 

Рис. 12. Расширение области испускания частиц

Рис. 12. Расширение области испускания частиц

 

Вернитесь к исходной системе частиц с эмиттером Omni, отменив несколько последних действий. Выделите систему частиц и в окне каналов (строка Particle Render Type) измените установленный по умолчанию тип визуализации частиц Points на BlobbySurface (рис. 13) — вид частиц в окне проекции тут же изменится (рис. 14). Выделите эмиттер и уменьшите количество испускаемых в секунду частиц (параметр Rate) со 100 до 10 — частиц в сцене станет гораздо меньше (рис. 15).

 

Рис. 13. Смена типа визуализации частиц

Рис. 13. Смена типа визуализации частиц

 

Рис. 14. Вид частиц типа BlobbySurface в окне Persp

Рис. 14. Вид частиц типа BlobbySurface в окне Persp

 

Рис. 15. Уменьшение количества генерируемых в секунду частиц

Рис. 15. Уменьшение количества генерируемых в секунду частиц

 

Выделите эмиттер, переключитесь на первый кадр анимации, выделите в окне каналов параметр Speed, отвечающий за скорость перемещения частиц, и установите для него анимационный ключ, выбрав из контекстного меню команду Key Selected (Ключи для выделенных параметров). Перетащите ползунок на последний кадр, увеличьте в окне каналов скорость движения частиц (Speed) до 10 и вновь создайте ключ анимации. Вернитесь в 1-й кадр, проиграйте анимацию в окне проекции Perspective, и вы увидите, что при увеличении номера кадра скорость движения частиц заметно возрастает. Можно даже установить скорости частиц случайными, что сделает процесс их движения более правдоподобным — для этого достаточно увеличить значение параметра SpeedRandom (Случайная скорость), определяющего границы диапазона, в котором скорость частиц будет меняться, например, до 5 (рис. 16).

 

Рис. 16. Настройка случайного изменения скорости частиц

Рис. 16. Настройка случайного изменения скорости частиц

 

А теперь попробуем сделать так, чтобы частицы испускались не из одной точки, а с некоторой поверхности. Создайте NURBS-куб и выделите его верхнюю грань (рис. 17), а затем воспользуйтесь командой Particles=>EmitfromObject (Частицы=>Испускать с поверхности объекта). В итоге поверхность превратится в источник частиц, в чем несложно убедиться, запустив проигрывание анимации (рис. 18). Обратите внимание, что назначение поверхности эмиттером привело к появлению нового эмиттера и новой системы частиц, при этом новый эмиттер представляет собой объект, дочерний к верхней поверхности куба (рис. 19). Изначально частицы с поверхности испускаются во всех направлениях. Попробуем сделать так, чтобы частицы вылетали строго в одном направлении от поверхности (точнее, строго вверх по нормали к ней), — для этого выделите эмиттер и в окне каналов измените его тип на Surface (параметр Emitter Type). Частицы станут вылетать так, как необходимо (рис. 20).

 

Рис. 17. Выделение верхней грани куба

Рис. 17. Выделение верхней грани куба

 

Рис. 18. Вид частиц в некоторых кадрах анимации при всенаправленном испускании

Рис. 18. Вид частиц в некоторых кадрах анимации при всенаправленном испускании

 

Рис. 19. Окно Outliner с новым эмиттером и новой системой частиц

Рис. 19. Окно Outliner с новым эмиттером и новой системой частиц

 

Рис. 20. Вид частиц в некоторых кадрах анимации при однонаправленном испускании

Рис. 20. Вид частиц в некоторых кадрах анимации при однонаправленном испускании

В начало В начало

КомпьютерПресс 9'2007

Наш канал на Youtube

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует