Создадим струйку пара, вырывающуюся из носика созданного в главе 6 чайника.
В упражнении этого раздела вам предстоит создать бильярдный стол и анимиро-вать движение шаров при столкновении друг с другом.
При желании вы можете включить аппаратный показ текстур в активном окне проекции. Для этого достаточно нажать клавишу 6. Теперь нужно привести в движение белый шар, заставив его удариться о шар с желтой полоской. Последний, в свою очередь, должен столкнуться с черным шаром и вызвать его движение по направлению к лузе. Проще всего это сделать, создав ключи анимации для белого шара. Но так как возможность создавать ключи анимации для активных тел в Maya отсутствует, нужно превратить этот шар в пассивное тело:
1. Выделите белый шар. Обратите внимание на то, что атрибут Active (Активное) в окне диалога Channel Box (Окно каналов) имеет значение On (Вкл).
2. Убедитесь в том, что ползунок таймера анимации стоит на отметке первого кадра, и выберите в меню Soft/Rigid Bodies (Мягкие/Твердые тела) команду Set Passive Key (Создать пассивный ключ). Обратите внимание на то, что атрибут Active (Активное) в окне диалога Channel Box (Окно каналов) теперь выделен оранжевым цветом и имеет значение Off (Выкл). То есть вы создали ключ анимации для активного состояния белого шара и перевели его в пассивное состояние. Таким образом, вы имеете возможность переводить тела из активного состояния в пассивное и обратно.
3. Установите ползунок таймера анимации на отметку кадра № 10 и переместите белый шар по направлению к шару с желтой полоской. При этом поверхности шаров должны немного проникнуть друг в друга. Снова выберите в меню Soft/Rigid Bodies (МягкиеДвердые тела) команду Set Passive Key (Создать пассивный ключ).
4. Установите ползунок таймера анимации на отметку кадра № 11 и выберите в меню Soft/Rigid Bodies (Мягкие/Твердые тела) команду Set Active Key (Создать активный ключ). В результате после столкновения с полосатым шаром белый шар опять станет активным телом.
Анимировав шар как пассивное тело созданием ключей анимации для двух различных его положений, а затем вернув его в активное состояние, вы получили динамическую имитацию движения. В момент столкновения белого шара с полосатым Maya начинает вычислять перемещение последнего. А так как в кадре № 11 белый шар опять перешел в активное состояние, модуль имитации динамики рассчитает и его движение после столкновения. Это избавит вас от необходимости дальнейшей анимации белого шара.
Верните ползунок таймера анимации в начало диапазона и запустите воспроизведение. Первым начнет двигаться белый шар. После удара о шар с желтой полоской он срикошетирует в сторону. При этом шар с желтой полоской должен удариться о черный шар и заставить последний упасть в лузу. Если этого не происходит, вернитесь к редактированию ключей анимации белого шара и подберите для него правильную траекторию движения.
Впрочем, при текущих настройках падение в лузу невозможно. Вам нужно определить упругость столкновений:
1. Верните ползунок таймера анимации на отметку первого кадра. Выделите все шары и введите в поле Bounciness (Упругость) окна диалога Channel Box (Окно каналов) значение 0,2.
ПРИМЕЧАНИЕ
Одновременно поменять значение атрибута набора выделенных объектов можно только в окне диалога Channel Box (Окно каналов). Если вы решите воспользоваться окном диалога Attribute Editor (Редактор атрибутов), потребуется по очереди выделять сферы и вводить значение 0,2 в поле Bounciness (Упругость).
2. Запустите воспроизведение анимации и обратите внимание на то, что теперь шары отскакивают друг от друга и от бортов гораздо медленнее. Чтобы увидеть, как черный шар проваливается в лузу, увеличьте диапазон анимации до 200 кадров.
Вы можете загрузить уже готовый файл Table_v2.mb с прилагаемого к книге компакт-диска.
Созданные частицы оснащены набором атрибутов, находятся под действием существующих в сцене полей и принимают участие в столкновениях. В этом они полностью аналогичны твердым телам.
На рис. 12.11 показано окно диалога Attribute Editor (Редактор атрибутов) для выделенной системы частиц. Вкладка partidel, как и вкладка любого узла объекта, содержит уже знакомые вам атрибуты преобразований перемещения, поворота и масштабирования. Параметры узла формы находятся на вкладке particleShapel. Третья вкладка, emiterl, содержит параметры генератора частиц.
Рис. 12.11. Окно диалога Attribute Editor для системы частиц
Время жизни частиц
Время жизни определяет продолжительность присутствия частицы в сцене. Ограничивать время жизни частиц обычно имеет смысл по ряду причин. Как вы убедитесь при моделировании струи пара из носика чайника, частицы с определенным временем жизни могут в течение этого времени менять свои свойства. Например, частица в момент создания может иметь белый цвет и постепенно становиться прозрачной. Ограничение времени жизни позволяет также сохранять минимальным общее количество частиц в сцене, увеличивая тем самым эффективность работы.
Существует несколько режимов времени жизни. Их выбор осуществляется в раскрывающемся списке Lifespan Mode (Режим времени жизни). Выбранный по умолчанию вариант Live Forever (Бесконечное время жизни) означает, что появляющиеся в сцене частицы остаются там навсегда. Режим Constant (Постоянное время жизни) приводит к исчезновению частиц через промежуток времени, указанный в поле Lifespan (Время жизни). По умолчанию параметр Lifespan (Время жизни) равен одной секунде, то есть при частоте 30 кадров в секунду каждая частица будет существовать в сцене на протяжении 30 кадров.
Режим Random Range (Случайный диапазон) позволяет разнообразить время жизни частиц, заданное параметром Lifespan (Время жизни). Расположенный ниже атрибут Life-span Random (Случайное время жизни) указывает, в каком диапазоне может меняться время жизни частиц. Режим lifespanPP only (Время жизни одной частицы) позволяет контролировать время жизни отдельных частиц, которое задается выражениями на языке MEL. Впрочем, рассмотрение выражений выходит за рамки данной книги.
Атрибуты визуализации
Параметры раздела Render Attributes (Атрибуты визуализации) определяют вид частиц и способ их визуализации. В Maya существует два способа визуализации частиц — программный и аппаратный. Аппаратно визуализируемые частицы обычно визуализируются отдельно от основной сцены, соединяясь с ней уже на стадии монтажа. Это довольно сложная техника, поэтому мы не будем рассматривать ее на страницах данной книги, ограничившись рассказом о программно визуализируемых частицах типа Cloud (Облако).
Итак, откройте окно диалога Outliner (Структура), выделите строчку partidel и откройте для частиц окно диалога Attribute Editor (Редактор атрибутов). Обратите внимание на раскрывающийся список Particle Render Type (Тип визуализации частиц) в разделе Render Attributes (Атрибуты визуализации). Три варианта в этом списке даны с суффиксом «s/w», что указывает на программную визуализацию частиц. Частицы остальных типов визуализируются исключительно аппаратно.
Выберите в раскрывающемся списке Particle Render Type (Тип визуализации частиц) вариант Cloud (Облако) и щелкните на кнопке Add Attributes For Current Render Type (Добавить атрибуты визуализации частиц данного типа). В результате снизу появится набор новых атрибутов, а частицы в окне проекции превратятся из точек в большие окружности.
Частицы типа Cloud (Облако) имеют атрибуты Radius (Радиус), Surface Shading (Тонирование поверхности) и Threshold (Пороговое значение).
В разделе Per Particle (Array) Attributes (Атрибуты одной частицы (массива)) содержатся атрибуты, имеющие отношение к индивидуальным частицам.
Например, атрибут Radius (Радиус) частиц типа Cloud (Облако) задает радиус каждой частицы в наборе. Присвоив этому параметру значение 1,5, вы получите набор частиц радиусом 1,5 каждая.
Контроль состояния индивидуальных частиц дает возможность получать интересные эффекты. Например, для частиц типа Cloud (Облако) можно создать атрибут radiusPP (Радиус одной частицы), позволяющий присвоить каждой из частиц свой радиус. При этом вам не придется вводить радиус каждой частицы вручную, так как программа обрабатывает эти данные как массив. Обратите внимание на наличие атрибута life-spanPP (Время жизни одной частицы), позволяющего контролировать время жизни каждой частицы индивидуально.
Отредактировать поведение частиц можно, поменяв тип генератора и значения его атрибутов.
Генератор типа Omni (Всенаправленный) испускает частицы во всех направлениях, в то время как генератор типа Directional (Направленный) испускает частицы в направлении, указанном пользователем. Пример работы такого генератора показан на рис. 12.8.
Рис. 12.8. Частицы, испускаемые в определенном направлении
Существует также генератор типа Volume (Объемный), в процессе работы которого частицы возникают в некоторой точке фиксированного объема (рис. 12.9). Этот объем может иметь форму куба, сферы, цилиндра, конуса или тора. По умолчанию частицы могут покидать границы этого объема.
Рис. 12.9. Результат работы генератора типа Volume
Вот основные атрибуты частиц, влияющие на их поведение в сцене.
Атрибут Rate (Частота) определяет число частиц, испускаемых генератором за одну секунду. Скорость этих частиц задается атрибутом Speed (Скорость). При этом существует возможность сделать скорости частиц случайными, из-за чего процесс их генерации станет более натуральным. Достаточно воспользоваться параметром Speed Random (Случайная скорость), определяющим границы диапазона, в котором скорость частиц будет меняться.
Параметры Min Distance (Минимальное расстояние) и Max Distance (Максимальное расстояние) позволяют начать создание частиц на заданном расстоянии от генератора. На рис. 12.10 показано облако частиц, полученное после присвоения этим параметрам значения 3.
Рис. 12.10. После присвоения параметрам Min Distance и Max Distance значения 3 частицы появляются на расстоянии 3 единиц от генератора
Начать знакомство с атрибутами эффектов рисования лучше всего с создания одного мазка в пустом окне проекции и последующего редактирования его параметров. Выделите мазок и откройте окно диалога Attribute Editor (Редактор атрибутов). Атрибуты мазка находятся на вкладке с его названием. Например, для мазка, созданного с помощью кисти africanLily.mel, это будет вкладка africanLilyl.
Визуализация мазков в виде трехмерных объектов осуществляется благодаря функции, называемой трубкой (tube). В процессе роста трубок могут образовываться ветви, листья, цветы и бутоны. Каждый отдел трубки имеет собственные элементы управления. Это позволяет вам моделировать самые разные эффекты. По мере накопления опыта работы с модулем Paint Effects (Эффекты рисования) вы начнете понимать, как изменение того или иного параметра влияет на вид получаемого эффекта.
Вот перечень наиболее важных атрибутов:
Атрибуты раздела Brush Profile (Контуры кисти) управляют ростом трубок в процессе нанесения мазков. Наиболее важным тут является атрибут Brush Width (Ширина кисти), управляющий шириной мазка. Чем больше его значение, тем более обширное пространство сцены будет занято выбранным эффектом.
Параметры разделов Shading (Затенение) и Tube Shading (Затенение трубок) предназначены для изменения цвета трубок. Атрибуты Colorl (Цвет № 1) и Color2 (Цвет № 2) управляют цветовым переходом вдоль стебля. Первый атрибут задает цвет нижней части, а второй — цвет верхней. Листья и ветки имеют свои собственные цветовые атрибуты, расположенные в разделе Growth (Рост), вложенном в раздел Creation (Создание), который, в свою очередь, вложен в раздел Tubes (Трубки).
Параметры Incandescence! (Свечение № 1) и Incandescence2 (Свечение № 2) добавляют трубкам градиентное свечение. Соответственно, параметры Transpa-rencyl (Прозрачность № 1) и Transparency2 (Прозрачность № 2) задают градиентную прозрачность трубки. Параметры Hue Rand (Случайный цветовой тон), Sat Rand (Случайная насыщенность) и Val Rand (Случайная интенсивность) делают цвет трубок менее однородным.
В разделе Tubes (Трубки) вы найдете атрибуты, управляющие ростом трубок. Например, раздел Creation (Создание) предоставляет доступ к следующим параметрам:
Атрибут Tubes per Step (Трубок на один шаг) управляет числом трубок в мазке. Именно с его помощью можно увеличить или уменьшить число цветов, «вырастающих» при одном движении указателя мыши.
Атрибуты Length Min (Минимальная длина) и Length Max (Максимальная длина) контролируют высоту трубок.
Атрибуты Tube Widthl (Ширина трубки № 1) и Tube Width2 (Ширина трубки №2) контролируют ширину трубок, то есть в рассматриваемом случае — стеблей цветов.
В разделе Growth (Рост) находятся флажки, отвечающие за появление веток, листьев, цветов и почек. Ниже располагаются соответствующие разделы с атрибутами, контролирующими число, размер и форму указанных элементов. Например, не все мазки приводят к появлению цветов, но тем не менее любой мазок будет иметь подобную верхушку. Другое дело, что она может быть неактивной. Каждый мазок имеет свои собственные настройки.
Атрибуты раздела Behavior (Поведение) управляют поведением мазков под действием динамических сил. Именно здесь можно заставить цветы, например, качаться под порывами ветра.
Эффекты рисования визуализируются при последующей обработке кадра. Это означает, что таким способом невозможно создать эффекты отражения или преломления. Зато вы можете просматривать результат изменения динамических параметров эффектов рисования прямо в окнах проекции.
Кроме того, существует возможность преобразовывать эффекты рисования в полигональные поверхности, которые будут визуализироваться уже вместе с остальными элементами сцены. В этом случае вы сможете добавить к ним эффекты отражения и преломления. Для преобразования нужно выделить мазок и выбрать в меню Modify (Изменить) команду Convert > Paint Effects to Polygons (Преобразовать > Эффекты рисования в полигоны). При этом редактировать преобразованные трубки можно с помощью большинства упомянутых ранее параметров. Впрочем, информация, например, о цвете трубок больше не будет влиять на их вид в окне проекции, потому что в процессе превращения эффектов рисования в полигоны цветовая информация преобразуется в назначенный этим полигонам материал.
Поэтому лучше всего сначала завершить работу с рассматриваемым эффектом, а потом уже преобразовывать его в сетку полигонов.
Модуль Paint Effects (Эффекты рисования) позволяет легко создавать такие сложные эффекты, как, например, поле колышущихся цветов. Эта сложность порождает большое число элементов управления. К счастью для начинающих пользователей, в Maya существует набор уже готовых кистей. Самостоятельно поэкспериментируйте с ними, меняя различные атрибуты, чтобы узнать, какие эффекты вы можете создать.
Объект превращается в твердое тело в результате добавления ему набора атрибутов, отвечающих за его поведение в процессе имитации динамики. В этом разделе мы перечислим наиболее важные параметры как активных, так и пассивных тел, участвующих в столкновениях.
Атрибут Mass (Масса) задает относительную массу твердого тела. Масса является фактором, определяющим, какое количество энергии будет передано при столкновении от одного объекта другому. Чем больше масса объекта, тем меньшее усилие ему потребуется, чтобы при столкновении сдвинуть другой объект, сохранив при этом часть собственной энергии для дальнейшего движения. Масса является относительной величиной, то есть если все взаимодействующие объекты имеют одинаковое соотношение масс, имитация динамики будет выглядеть одинаково вне зависимости от абсолютной массы.
Атрибуты Static Friction (Трение покоя) и Dynamic Friction (Динамическое трение) определяют коэффициент трения твердого тела в состоянии покоя и в движении. Этот коэффициент задает силу, с которой тело сопротивляется движению или попыткам вывести его из состояния покоя. При равном нулю коэффициенте трения тело будете перемещаться свободно, как на льду.
Параметр Soundness (Упругость) определяет количество энергии, остающееся у тела после столкновения. Чем больше его значение, тем быстрее будет двигаться рикошетировавшее после столкновения тело.
Параметр Damping (Торможение) отвечает за уменьшение кинетической энергии в процессе движения тела. Чем больше значение этого параметра, тем быстрее будет уменьшаться скорость объекта.
Динамикой называется имитация движения на основе действующих законов физики. Вместо создания ключей анимации вы присваиваете объектам физические характеристики, которые определяют их поведение. Для этого обычные объекты Maya преобразовываются в динамические тела, что приводит к появлению у них набора динамических атрибутов, влияющих на поведение тела при взаимодействии с другими объектами сцены.
Динамические тела приводятся в движение действием внешних сил, называемых полями (fields). В Maya существует целый набор полей, имитирующих самые разные силы — от силы ветра до силы тяжести. Подробную информацию о них вы получите чуть позже.
Динамические объекты в Maya делятся на следующие категории: тела, частицы, волосы и жидкости. Тела (bodies) создаются из геометрических поверхностей и используются в основном при моделировании столкновений. Частицы (particles) представляют собой визуализируемые точки пространства, обладающие динамическими свойствами. Они применяются для создания таких эффектов, как огонь или дым. Появившиеся в текущей версии Maya волосы (hair) представляют собой кривые, обладающие динамическими свойствами. Своим поведением они напоминают веревки. Модуль для работы с жидкостями (fluids) присутствует только в версии Maya Unlimited. Для имитации свойств жидкостей применяются объемные частицы, которые могут проявлять свойства поверхностей. Они позволяют моделировать такие природные явления, как волнистые облака или струйки дыма. Впрочем, рассмотрение динамики мягких тел, волос и жидкостей выходит за рамки данной книги.
Подобно твердым телам, частицы движутся под действием полей, сталкиваясь друг с другом. Короче говоря, частица (particle) представляет собой допускающую визуализацию точку в пространстве. Большие скопления частиц позволяют создавать такие эффекты, как дым, рой насекомых, фейерверк и т. п. Хотя работа с частицами относится к продвинутому уровню использования Maya, новичкам полезно получить представление о данной теме.
Большинство сведений, которые вы получили при изучении динамики твердых тел, применимы и в данном случае. Только работать придется с большим набором объектов, а не с отдельными частицами. Управление движением частиц осуществляется с помощью полей, а также изменением их атрибутов.
Например, в упражнении с бильярдным столом вы вручную запрограммировали движение белого шара, позволив программе в дальнейшем автоматически рассчитать перемещения всех взаимодействующих объектов. Каждый шар представлял собой отдельный объект сцены и визуализировался как отдельный элемент кадра. Частицы же обычно используются в виде больших скоплений, потому что только так можно получить нужный эффект при визуализации. Управление системами частиц осуществляется созданием генератора и нужных полей, а также выбором корректных атрибутов.
В Maya существует два типа динамических тел — твердые и мягкие. Твердые тела представляют собой монолитные объекты, которые двигаются и вращаются в соответствии с назначенной им движущей силой. Примером твердого тела могут послужить игральные кости или бейсбольный мяч. К мягким же телам относятся деформируемые поверхности, например занавеска, колышущаяся под действием силы ветра, или прыгающий резиновый мячик. Подобный эффект достигается превращением в динамическое тело не всего объекта, а только его управляющих точек (если оно построено на основе NURBS-поверхности) или вершин (если использовалась полигональная сетка). При столкновениях или под действием полей эти точки смещаются, вызывая деформацию поверхности.
В этой книге будет рассматриваться динамика только твердых тел.
На примере анимированных бильярдных шаров исследуйте действие различных атрибутов твердого тела. Внимательно понаблюдайте за тем, как изменение значений этих атрибутов влияет на поведение тела. Особое внимание обратите на следующие атрибуты:
Параметр Initial Velocity (Начальная скорость) задает скорость перемещения тела в первый момент анимации. Этот параметр имеет три поля, в каждом из которых указывается скорость движения относительно соответствующей координатной оси.
Параметр Initial Spin (Начальная угловая скорость) также имеет три поля, каждое из которых задает скорость вращения тела относительно соответствующей оси в первый момент анимации.
Атрибут Impulse Position (Точка приложения импульса) определяет силу мгновенного импульса вдоль соответствующей оси. Эффект от его действия постепенно накапливается, то есть под действием импульса объект будет двигаться с ускорением.
Параметр Spin Impulse (Вращательный им пульс) отвечает за мгновенный импульс, вызывающий вращение объекта вокруг соответствующей оси. Его действие также накопительно.
Параметр Center of Mass (Центр масс) отвечает за смещение центра масс, который располагается в его опорной точке объекта, вдоль соответствующей оси.
Хотя создание анимации путем имитации динамических взаимодействий твердых тел на первый взгляд представляет собой довольно простой и очевидный процесс, получить с его помощью реалистичное движение можно только при наличии определенного опыта. Кроме того, сложности возникают на стадии интеграции полученной таким способом анимации в готовый проект. Большинство профессионалов использует модуль имитации динамики в качестве отправной точки. Впоследствии полученная с его помощью анимация преобразуется в стандартный набор ключевых кадров, который редактируется вручную с учетом особенностей конкретной сцены.
Вот примеры сцен, которые вы можете смоделировать с помощью модуля имитации динамических взаимодействий:
Игра в боулинг. Шар для боулинга изначально является пассивным объектом с вручную созданными ключами анимации. Но в момент столкновения с кеглями он превращается в активный объект, и дальше движение шара и кеглей рассчитывается автоматически. Это довольно простая для создания и редактирования сцена.
Игра в кости. Кости являются активными телами, которым в момент падения предстоит столкнуться с поверхностью пассивного тела — столика. Выполнение этого упражнения потребует от вас определенных навыков как в работе с модулем имитации динамики, так и в моделировании столика для игры в кости.
Игра в шарики. Создание такой сцены потребует от вас не только опыта в обращении с модулем имитации динамики, но и способностей к созданию и назначению материалов и корректному выбору параметров визуализации.
Динамические взаимодействия
Динамика твердых и мягких тел
Создание активных и пассивных тел
Перемещение твердых тел
Атрибуты твердого тела
Анимация с помощью модуля дина
Создание бильярдного стола и шаров
Создание твердых тел
Анимация твердых тел
Дополнительные атрибуты твердых тел
Динамика частиц
Испускание частиц
Атрибуты генератора
Атрибуты частиц
Запись сцены
Создание кэш-файла для сцены с частицами
Анимация частиц
Испускание частиц
Настройка атрибутов частиц
Настройка атрибутов визуализации
Эффекты рисования
Атрибуты эффектов рисования
Подведем итоги
Типичный процесс создания различных эффектов на основе частиц состоит из двух частей — программирования движения частиц и их визуализации. Традиционно частицы вводятся в сцену с помощью их генератора (emitter), то есть объекта, испускающего частицы. После создания полей и редактирования поведения частиц приходит время настройки параметров их визуализации.
Рассмотрим процесс создания системы частиц на практике:
1. Убедитесь в том, что в раскрывающемся списке, находящемся в левой части строки состояния, выбран вариант Dynamics (Динамика), и щелкните на квадратике, расположенном справа от команды Create Emitter (Создать генератор) в меню Particles (Частицы). Это приведет к появлению показанного на рис. 12.6 окна диалога с различными параметрами генератора.
Рис. 12.6. Окно диалога с параметрами генератора частиц
По умолчанию эта команда вызывает появление в сцене генератора типа Omni (Всенаправленный), испускающего 100 частиц в секунду. Скорость частиц составляет 1,0. Щелкните на кнопке Create (Создать), и в начале координат появится небольшой круглый объект. Это и есть генератор.
2. Запустите воспроизведение анимации. Как и в случае имитации динамических взаимодействий твердых тел, в раскрывающемся списке Playback Animation (Скорость воспроизведения) должен быть выбран вариант Play Every Frame (Воспроизводить каждый кадр). При этом вы не можете, например, запустить воспроизведение анимации в обратном направлении, пока сцена не будет записана в память. О том, как это сделать, вы узнаете чуть позже.
Испускаемые частицы выглядят как малиновые точки, летящие во всех направлениях. Вид сцены с работающим генератором частиц показан на рис. 12.7.
Рис. 12.7. Генератор частиц типа Omni испускает частицы во всех направлениях сразу
Начнем с создания генератора частиц и настройки их свойств. Загрузите файл Kettle_Model_v02.ma из папки ChapterFiles\Tea_Kettle\scenes прилагаемого к книге компакт-диска.
1. Создайте генератор типа Directional (Направленный) и поместите его в верхнюю часть носика чайника.
2. Теперь нужно задать потоку частиц определенное направление. В разделе Distance/Direction Attributes (Атрибуты расстояния/направления) введите в поле Direction Y (Направление вдоль оси Y) значение 1,5. В результате частицы начнут вылетать под углом примерно 70°.
ПРИМЕЧАНИЕ
Угол вылета частиц зависит от соотношения между значениями параметров Direction X/Y/Z (Направление вдоль оси X/Y/Z). Например, если в поле Direction X (Направление вдоль оси X) ввести значение 1, а в поле Direction Y (Направление вдоль оси Y) —значение 2, за одно и то же время частица пролетит по вертикали в два раза большее расстояние, чем по горизонтали.
3. Запустите воспроизведение сцены. Вылетающие из носика частицы образуют прямую линию (рис. 12.12).
Рис. 12.12. Частицы вылетают из носика чайника по прямой
На этом этапе вы можете загрузить файл Kettle_Steam_vl.ma из папки Chapter-FHes\Tea_Kettle\scenes прилагаемого к книге компакт-диска и сравнить свой результат с нашим.
4. Чтобы заставить частицы разлетаться в разные стороны, отредактируйте значение атрибута Spread (Разброс). Выделите генератор частиц, откройте для него окно диалога Attribute Editor (Редактор атрибутов), перейдите на вкладку emitterl и введите в поле Spread (Разброс) значение 0,25. Вид потока частиц после этой операции показан на рис. 12.13.
Рис. 12.13. Вид потока частиц после увеличения значения параметра Spread
ПРИМЕЧАНИЕ
Атрибут Spread (Разброс) задает угол конуса, в пределах которого происходит испускание частиц. Если этот параметр имеет значение 0, частицы вылетают по прямой. При значении 1 частицы распространяются в пределах 180°.
5. Пока что частицы движутся слишком медленно для струи пара, поэтому введите в поле Speed (Скорость) значение 2, а в поле Speed Random (Случайная скорость) — значение 1. В итоге частицы будут иметь скорости в диапазоне от 1 до 3.
6. Чтобы частицы не вылетали из одной точки, введите в поле Min Distance (Минимальное расстояние) значение 0,5, а в поле Max Distance (Максимальное расстояние) — значение 1. В результате частицы будут вылетать на расстоянии от 0,5 до 1 единицы от носика чайника.
В арсенал инструментов Maya входит модуль Paint Effects (Эффекты рисования). С его помощью вы можете создать поле колышущейся под порывами ветра травы, волосы или перья птицы и даже северное сияние. Меню с набором соответствующих команд появляется при переходе в режим Rendering (Визуализация). Динамические свойства эффектов рисования поистине поразительны. Вы можете моделировать как трепещущие на ветру листья, так и гнущиеся под порывами урагана деревья. Впрочем, динамические вычисления в данном случае производятся средствами самого модуля, то есть действует отличный от уже знакомого вам по упражнениям, посвященным имитации динамических взаимодействий и движению частиц, механизм. Модуль Paint Effects (Эффекты рисования) можно считать одним из самых мощных инструментов Maya. Изучение всех его функций выходит за рамки книги для начинающих. Поэтому здесь мы рассмотрим только способы доступа к существующим кистям и создания с их помощью различных эффектов.
Как легко догадаться по названию модуля, эффекты просто рисуются в сцене с помощью набора кистей. Кисти создают мазки на предназначенной для этого поверхности или просто в окне проекции, что приводит к появлению визуализируемых трубок. Трубки обладают набором динамических свойств, то есть способностью двигаться под действием различных сил. Именно благодаря этому вы можете легко смоделировать поле качающихся травинок.
Посмотрим, как это выглядит на практике:
1. Создайте новую сцену. Разверните окно проекции Perspective (Перспектива) на весь экран.
Рис. 12.19. Набор кистей с изображением травы в окне диалога Visor
2. Убедитесь в том, что вы находитесь в режиме Rendering (Визуализация). Если это не так, нажмите клавишу F5. Выберите в меню Paint Effects (Эффекты рисования) команду Get Brush (Выбрать кисть), чтобы открыть окно диалога Visor (Просмотр образцов). Это окно позволяет выбирать кисти из заранее созданного набора. Выделите слева папку grasses, чтобы получить доступ к кистям с изображением травы (рис. 12.19). Управление окном диалога Visor (Просмотр образцов), как и любым другим окном диалога в Maya, осуществляется с помощью комбинаций клавиши Alt и различных кнопок мыши.
3. Выделите образец grassWindWide.mel, чтобы активизировать соответствующий инструмент. В результате указатель мыши приобретет вид карандаша.
4. В окне проекции Perspective (Перспектива) нарисуйте две горизонтальные линии. Если вы не увидите при этом ни одной травинки, откройте окно диалога Paint Effect Brush Settings (Настройки кистей для эффектов рисования), выберите в меню Paint Effects (Эффекты рисования) команду Template Brush Settings (Параметры текущей кисти) и измените значение параметра Global Scale (Общий масштаб).
5. Поменяем кисть, чтобы добавить в сцену цветы. Снова откройте окно диалога Visor (Просмотр образцов) и выделите папку flowers. Выделите кисть dandelion_ Yellow.mel. Теперь перемещение указателя мыши будет приводить к появлению одуванчиков.
6. Новый мазок поместите между двумя уже существующими мазками.
7. Создайте в сцене несколько осветителей и визуализируйте кадр. Выберите достаточно большое разрешение, например 640 х 480, чтобы рассмотреть все детали. Затем визуализируйте несколько кадров в виде анимационной последовательности, чтобы посмотреть, как трава колеблется под действием ветра. На рис. 12.20 показан пример сцены с травой и различными цветами.
Рис. 12.20. С помощью модуля Paint Effects вы можете добавить траву и цветы в любую сцену
Вид и движение мазков, созданных с помощью модуля Paint Effects (Эффекты рисования), можно отредактировать в окне диалога Attribute Editor (Редактор атрибутов). Однако количество атрибутов в данном случае слишком велико. В следующем разделе мы расскажем о наиболее часто используемых.
Теперь, когда частицы вылетают из носика в нужном направлении и с нужной скоростью, отредактируем их атрибуты. Начнем с указания времени жизни:
1. В окне диалога Outliner (Структура) выделите строчку partidel и откройте окно диалога Attribute Editor (Редактор атрибутов). Выберите в раскрывающемся списке Lifespan Mode (Режим времени жизни) вариант Random Range (Случайный диапазон). Параметру Lifespan (Время жизни) присвойте значение 3, а параметру Lifespan Random (Случайное время жизни) —значение 1. В результате жизнь каждой частицы будет продолжаться от 2 до 4 секунд.
2. Выберите в раскрывающемся списке Particle Render Type (Тип визуализации частиц), расположенном в разделе Render Attributes (Атрибуты визуализации), вариант Cloud (Облако). В результате частицы превратятся в набор огромных перекрывающих друг друга кругов. Они слишком велики для данного случая, однако иногда им требуется придать именно такой вид.
3. Радиус для каждой частицы будет выбираться индивидуально. В разделе Add Dynamic Attributes (Добавление динамических атрибутов) окна диалога Attribute Editor (Редактор атрибутов) щелкните на кнопке General (Общие), чтобы открыть окно Add Attribute (Добавить атрибут). Перейдите на вкладку Particle (Частицы) и выделите строчку radiusPP (рис. 12.14). Щелкните на кнопке ОК, и в разделе Per Particle (Array) Attributes (Атрибуты одной частицы (массива)) появится атрибут radiusPP (Радиус одной частицы).
Рис. 12.14. Окно диалога Add Attribute
Управление размером частиц будет осуществляться назначением текстуры атрибуту radiusPP (Радиус одной частицы). В Maya текстуры можно использовать для управления такими свойствами частиц, как, например, радиус или размер.
В данном случае вам потребуется градиентная текстура. Выбор одноцветной текстуры приведет к тому, что радиус частиц останется неизменным. Например, если текстура имеет белый цвет, радиус всех частиц будет равен 1. В данном случае белый соответствует значению 1, а черный — значению 0.
Таким образом, применение градиентной текстуры с цветовым переходом от черного к белому задаст постепенное увеличение радиуса частиц. Вот как происходит назначение текстуры атрибуту radiusPP (Радиус одной частицы):
1. Щелкните правой кнопкой мыши на текстовом поле radiusPP (Радиус одной частицы) и выберите в появившемся меню команду Create Ramp (Создать градиент). В текстовом поле появится строчка arrayMapperl.outValuePP. Этим вы только что назначили атрибуту градиентную текстуру, которая будет определять радиус частиц по мере их старения.
2. Чтобы получить доступ к редактированию этого градиента, щелкните на текстовом поле radiusPP (Радиус одной частицы) правой кнопкой мыши и выберите в появившемся меню команду arrayMapperl.outValuePP t Edit Ramp (arrayMapperl.outValuePP > Правка градиента). В окне диалога Attribute Editor (Редактор атрибутов) появятся параметры градиента. Присвойте ему имя radiusPP_ramp. Кроме того, редактировать градиент можно в окнах диалога Hypershade (Редактор узлов) и MultHister (Список узлов).
3. Для нижней части градиента выберите темно-серый цвет (значения HSV — О, О и 0,15 соответственно), а для верхней части — светло-серый (значения HSV — О, О и 0,5 соответственно). В результате в момент образования частиц их радиус будет равен 0,15.
Благодаря градиенту за время жизни частиц их радиус увеличится от 0,15 до 0,5. В момент образования радиус частицы определяется нижней частью градиента, в момент «смерти» — верхней. Убедитесь в том, что ползунок таймера анимации установлен на отметку первого кадра, и запустите воспроизведение. Вы должны получить результат, показанный на рис. 12.15.
Рис. 12.15. Увеличение частиц по мере удаления их от носика чайника
Сравните полученный результат с файлом Kettte_Steam_v2.ma с прилагаемого к книге компакт-диска.
Теперь, когда частицы двигаются нужным вам образом, осталось придать им корректный вид. Этот процесс называется настройкой атрибутов визуализации. Для разных типов частиц он проходит по-разному, соответственно, описанная в данном разделе последовательность действий применима только к частицам типа Cloud (Облако).
Для корректной визуализации таких частиц им нужно назначать материал Particle Cloud (Облако частиц). Во многом он подобен материалам, с которыми вам уже приходилось сталкиваться при выполнении упражнений.
1. Откройте окно диалога Hypershade (Редактор узлов) и выберите в меню Create (Создать) этого окна команду Volumetric Materials > Particle Cloud (Объемные материалы > Облако частиц). Созданный по умолчанию материал particleCloudl присутствует в каждой сцене, но мы создадим новый образец.
2. Дважды щелкните на образце материала particleCloud2, чтобы открыть для него окно диалога Attribute Editor (Редактор атрибутов) (рис. 12.16), и присвойте новому материалу имя steam.
Рис. 12.16. Окно диалога Attribute Editor для материала steam
3. Измените цвет материала с голубого на белый. Выделите в окне диалога Outliner (Структура) строчку particlel, в окне диалога Hypershade (Редактор узлов) щелкните правой кнопкой мыши на образце материала steam и выберите в появившемся меню команду Assign Material to Selection (Назначить материал выделенному объекту).
4. Откройте окно диалога Render Global Settings (Общие параметры визуализации) и выберите в раскрывающемся списке Presets (Предустановленные значения) раздела Resolution (Разрешение) вариант 640 х 480. Перейдите на вкладку Maya Software (Программный визуализатор) и выберите в раскрывающемся списке Quality (Качество) раздела Anti-aliasing Quality (Качество сглаживания) вариант Intermediate Quality (Промежуточное качество). Запустите воспроизведение анимации и остановите его примерно посередине диапазона. Визуализируйте окно проекции Perspective (Перспектива). Вы должны получить примерно такой же результат, как на рис. 12.17.
Визуализируйте всю сцену при минимальном разрешении 320 х 240, чтобы оценить полученный эффект. Просмотреть результаты визуализации лучше всего с помощью служебной программы FCheck, с которой вы познакомились в предыдущей главе. Сразу бросаются в глаза слишком большая плотность пара и отсутствие прозрачности. Кроме того, по истечении времени жизни частицы просто исчезают. В реальности же пар рассеивается. То есть нужно сделать так, чтобы по мере роста частицы постепенно сливались с окружающей средой. Их прозрачность должна возрастать, достигая максимума к концу времени жизни. Вот как это можно сделать:
Рис. 12.17. Результат визуализации сцены с чайником, из носика которого вырывается пар
1. Выделите материал steam в окне диалога Hypershade (Редактор узлов) и откройте для него окно диалога Attribute Editor (Редактор атрибутов). В данном случае не имеет смысла присваивать атрибуту Transparency (Прозрачность) какое-то определенное значение. Вам потребуется еще один градиент. Точно так же, как и назначенная атрибуту radiusPP (Радиус одной частицы) градиентная текстура, новый градиент заставит частицы блекнуть по мере старения. А к моменту окончания времени жизни они станут совершенно прозрачными. Щелкните на кнопке с рисунком шахматной доски, расположенной справа от поля Life Transparency (Изменение прозрачности со временем), чтобы открыть окно диалога Create Render Node (Создать узел визуализации).
2. Щелкните на кнопке Ramp (Линейный градиент), и окно диалога Attribute Editor (Редактор атрибутов) откроется на новой вкладке partideSamplerlnfol. Но вам не требуется редактировать этот узел, поэтому просто выделите узел rampZ в окне диалога Hypershade (Редактор узлов), чтобы сделать видимыми его атрибуты.
3. Присвойте новому градиенту имя steam_transparency. Так как считывание информации происходит снизу вверх, нижнюю часть градиента сделайте белой.
Цвет в центре сделайте светло-серым, а вверху — опять белым. В результате к концу жизни частицы станут полностью прозрачными.
4. Визуализируйте кадр, чтобы оценить полученный результат. Теперь частицы выглядят более достоверно. Сравните изображение, показанное на рис. 12.18, с результатом предыдущей визуализации.
Рис. 12.18. Более реалистичный пар из носика
5. Для устранения зазора между струей пара и носиком можно переместить генератор частиц внутрь носика.
Чтобы сравнить результат своей работы с образцом, загрузите файл Kettle_Steam_ vS.ma с прилагаемого к книге компакт-диска.
Поэкспериментируйте со значением параметра Rate (Частота), стараясь получить наиболее достоверный результат. Кроме того, попытайтесь анимировать атрибут Speed (Скорость) и посмотрите, как будет выглядеть анимация при различных значениях параметра radiusPP (Радиус одной частицы). Имитация, полученная в данном упражнении, довольно корректна, но нельзя сказать, чтобы она воспроизводила реальный пар. По мере дальнейшего знакомства с Maya вы откроете для себя другие техники создания подобных эффектов, но их рассмотрение выходит за рамки данной книги.
Воспользуйтесь частицами типа Cloud (Облако) для имитации, например, пара от чашки с кофе. Этот пар двигается намного медленней и имеет меньшую плотность. Также попытайтесь самостоятельно воссоздать след от самолета и сигаретный дым.
Частицы типа Cloud (Облако) превосходно подходят для получения начальных навыков работы с данным типом объектов. Постепенно можно переходить к исследованию частиц других типов. Чем больше вы экспериментируете, тем проще вам будет в дальнейшем. Вы быстро обнаружите, что частицы позволяют реалистично сымитировать множество эффектов для анимации.
Так как движение любых активных твердых тел в Maya контролирует модуль имитации динамики, вы лишены возможности создавать ключи анимации для атрибутов, определяющих положение и ориентацию объекта. У пассивного объекта это ограничение отсутствует. Пассивные тела не контролируются модулем имитации динамики, поэтому вы можете поступать с ними, как с любыми другими объектами Maya.
Любое движение пассивных тел, созданное с помощью ключей анимации, преобразуется в импульс, который при столкновении с активным телом может передаваться последнему. Представьте себе удар бейсбольной биты по мячу. Бита является пассивным телом, перемещения которого запрограммировали созданием ключей анимации, в то время как мяч относится к активным телам. В момент удара кинетическая энергия биты передается мячу, и он летит вперед.
Практический пример такого поведения мы рассмотрим в следующем разделе.
В твердое тело можно преобразовать любой геометрический объект. После преобразования его поверхность начнет испытывать действие полей и сможет принимать участие в столкновениях. При этом поведение объектов в процессе столкновения вычисляется программой исходя из их массы, скорости и других свойств.
Существует два типа твердых тел — активные и пассивные. Активные тела реагируют на столкновения с другими объектами и действие полей. В отличие от них, пассивные тела никак не реагируют на воздействие полей или удары о них других, тел, хотя могут участвовать в столкновениях. Обычно в роли пассивного тела выступает поверхность, с которой сталкиваются активные тела.
Познакомимся на практике со свойствами этих элементов на примере прыгающего мячика:
1. Создайте полигональную плоскость и увеличьте ее размер. Она послужит опорной поверхностью.
2. Создайте полигональную сферу и поднимите ее над поверхностью (рис. 12.1).
Рис. 12.1. Поместите полигональную сферу над опорной плоскостью
3. Нажмите клавишу F4 для перехода в режим Dynamics (Динамика). Выделите сферу и выберите в меню Soft/Rigid Bodies (Мягкие/Твердые тела) команду Create Active Rigid Body (Создать активное твердое тело). Обратите внимание на то, что атрибуты преобразований перемещения и поворота в окне диалога Channel Box (Окно каналов) теперь выделены желтым цветом. Это означает, что с этого момента значения данных параметров будет устанавливать модуль имитации динамики, и поэтому вы не сможете создавать для них ключи анимации.
4. Выделите опорную поверхность и выберите в меню Soft/Rigid Bodies (Мягкие/Твердые тела) команду Create Passive Rigid Body (Создать пассивное твердое тело). В результате плоскость превратится в пассивное тело, с которым будет сталкиваться наш мячик. Разумеется, активные и пассивные тела имеют различные атрибуты, но пока мы не будем обращать на них внимания и оставим им заданные по умолчанию значения.
5. Выделите мяч. Чтобы привести его в движение, вам потребуется поле. В реальном мире тела падают вниз под действием силы тяжести, поэтому в меню Fields (Поля) выберите команду Gravity (Сила тяжести). Выделенная в момент создания поля сфера автоматически подпадает под его действие. Впрочем, установить связь между полем и объектом можно в любой момент. Для этого применяется инструмент Dynamic Relationship (Динамические связи), о котором мы поговорим чуть позже.
ВНИМАНИЕ
Если сейчас запустить воспроизведение анимации, движение мячика будет замедленным. Это связано с тем, что модуль динамики рассчитывает его положения в каждый момент времени. Такое поведение будет продолжаться до записи имитации динамики в память. Для корректных расчетов нужно, чтобы воспроизводился каждый кадр. Поэтому откройте окно диалога Preferences (Параметры), выбрав в меню Window (Окно) команду Settings/Preferences > Preferences (Настройки/Параметры > Параметры), выделите в списке Categories (Категории) строчку Timeline (Временная шкала) и в раскрывающемся списке Playback Animation (Скорость воспроизведения) выберите вариант Play Every Frame (Воспроизводить каждый кадр).
Перед воспроизведением анимации введите в поле Playback End Time (Время окончания воспроизведения анимации), расположенное справа от ползунка шкалы диапазонов, значение 500. Установите ползунок таймера анимации на отметку кадра № 1 и щелкните на кнопке Play Forward (Воспроизведение вперед).
В результате сфера начнет падать вниз, а при столкновении с плоскостью отскочит вверх. Посмотрим, как изменится движение объектов, если превратить плоскость из пассивного тела в активное.
6. Выделите плоскость и откройте для нее окно диалога Attribute Editor (Редактор атрибутов).
7. Перейдите на вкладку rigidBody2 и установите флажок Active (Активное).
8. Теперь при запуске анимации вы обнаружите, что после столкновения мяча с опорной поверхностью последняя начинает падать вниз вместе с мячом. Но так как на нее не распространяется влияние поля Gravity (Сила тяжести), в начальный момент она неподвижна.
Чтобы заставить поле Gravity (Сила тяжести) влиять на плоскость, откройте окно диалога Dynamic Relationship (Динамические связи) (рис. 12.2). Это можно сделать с помощью команды Relationship Editors > Dynamic Relationship (Редакторы связей > Динамические связи) из меню Window (Окно).
Рис. 12.2. Окно диалога Dynamic Relationship
Слева располагается окно, содержащее список объектов сцены. Справа по умолчанию перечислены все созданные в сцене поля, но с помощью находящегося сверху переключателя вы можете открыть также список столкновений, список генераторов или же список всех упомянутых элементов. Для создания связи достаточно выделить строчку с именем плоскости (pPlanel) в окне слева, а затем — строчку с именем поля (gravityFieldl) в окне справа.
Теперь при воспроизведении анимации вы увидите, что плоскость тоже начинает падать вниз с первого же кадра. И так как два объекта перемещаются в одном направлении под действием одного и того же поля, столкновения между ними не произойдет. Для прекращения воздействия поля на плоскость достаточно снять выделение со строчки gravityFieldl в правой части окна диалога Dynamic Relationship (Динамические связи).
Окно диалога Dynamic Relationship
Редакторы связей, к которым относится и окно диалога Dynamic Relationship (Динамические связи), предназначены для соединения друг с другом различных узлов. Рассматриваемое здесь окно диалога используется для соединения динамических атрибутов, благодаря чему в процессе имитации динамики поля, частицы и твердые тела начинают взаимодействовать друг с другом. Другим примером редактора связей может послужить окно диалога Light Linking (Связывание источников света), позволяющее в явном виде указать, какие объекты сцены должен освещать тот или иной источник света. Впрочем, работа с этими редакторами относится к продвинутому уровню владения Maya, поэтому мы не будем заострять на них внимание.
Для преобразования активного тела в пассивное нужно вернуть ползунок таймера анимации на отметку первого кадра, а затем снять флажок Active (Активное) в окне диалога Attribute Editor (Редактор атрибутов). После этого плоскость снова превратится в неподвижный пол, от которого при ударе будет отскакивать мяч.
Начнем с создания бильярдного стола. Выполните следующие действия:
1. Создайте полигональную плоскость и увеличьте ее масштаб по ширине и длине в 10 раз.
2. Лузами нам послужат два прямоугольных отверстия, расположенные в диаметрально противоположных углах стола. Проще всего продублировать плоскость и слегка сместить оригинал и копию друг относительно друга. В результате появятся два квадратных отверстия, в которые может провалиться шар. Для данного упражнения этого вполне достаточно.
3. Создайте полигональный куб и измените его масштаб таким образом, чтобы получился борт стола. Продублируйте куб три раза, а затем воспользуйтесь преобразованиями перемещения и поворота, чтобы расположить копии по остальным сторонам стола (рис. 12.3).
Рис. 12.3. Простая модель бильярдного стола
Рис. 12.4. Бильярдный стол с шарами
4. Создайте три полигональные сферы, уменьшите их масштаб и поместите на стол, как показано на рис. 12.4. Желательно воспроизвести именно такое положение шаров друг относительно друга.
5. Создайте для каждого шара материал своего цвета, чтобы они отличались друг от друга. Например, один шар сделайте белым, второй — белым с желтой полосой, а третий — черным (рис. 12.5).
Рис. 12.5. Вид шаров после назначения им материалов
Сферы немного приподняты над поверхностью стола, так как требуется избежать взаимного проникновения плоскостей объектов друг в друга. Только в этом случае можно гарантировать корректный результат имитации динамики.
Для сравнения вы можете загрузить файл Table_vl.mb, расположенный в папке ChapterFHes\Pool_Table\scenes прилагаемого к книге компакт-диска.
Для создания дискового кэш-файла выберите в меню Solvers (Модули просчета) команду Create Particle Disk Cache (Создать дисковый кэш-файл для частиц). Это автоматически запустит воспроизведение анимации, после чего сцена будет записана в файл, сохраненный в папке particle текущего проекта. Положение всех частиц фиксируется. В результате вы получаете возможность воспроизводить анимацию с любого места и в любом направлении.
Если впоследствии возникает необходимость изменить, например, частоту испускания частиц или их скорость, потребуется сначала удалить кэш-файл. Для этого выберите в меню Solvers (Модули просчета) команду Edit Oversampling and Cache Settings (Изменить точность просчета) и снимите флажок Use Particle Disk Cache (Использовать дисковый кэш-файл для частиц) в окне диалога Attribute Editor (Редактор атрибутов).
Теперь, когда вы получили информацию о базовых принципах динамики, пришло время рассмотреть их практическое применение.
Теперь нужно определить бильярдный стол как пассивное тело. Шары, соответственно, должны стать активными телами.
1. Выделите плоскости, образующие поверхность стола, и кубы, играющие роль бортов, и выберите в меню Soft/Rigid Bodies (МягкиеДвердые тела) команду Create Passive Rigid Body (Создать пассивное твердое тело).
2. Выделите все сферы и выберите в меню Soft/Rigid Bodies (Мягкие/Твердые тела) команду Create Active Rigid Body (Создать активное твердое тело).
3. Не снимая выделения со сфер, выберите в меню Fields (Поля) команду Gravity (Сила тяжести). Теперь на шары будет действовать сила тяжести.
4. Запустите воспроизведение анимации. Вы увидите, что шары опустились на поверхность стола. При этом взаимопроникновения геометрии не происходит. Если же взаимопроникновение есть, Maya выделяет соответствующие объекты и выводит сообщение об ошибке в командной строке.
Запись движения частиц в память или на диск облегчает редактирование анимации. Для этого достаточно выделить частицы и выбрать в меню Solvers (Модули просчета) команду Memory Caching > Enable (Кэширование памяти > Включить). Запустите воспроизведение анимации, и сцена будет записана в память. После этого вы получите возможность, например, наблюдать анимацию при перемещении ползунка в обратном направлении. Однако любые попытки редактирования сцены ни к чему не приведут, пока вы не удалите зафиксированную информацию из памяти. Эта операция выбирается в меню Solvers (Модули просчета) команды Memory Caching > Delete (Кэширование памяти > Удалить). Количество информации, которую вы можете зафиксировать таким способом, зависит от количества оперативной памяти. Кэширование в память работает намного быстрее кэширования на диск, но в последнем случае вы можете записать положения всех частиц в течение всего времени их жизни. Это гарантирует корректную визуализацию сцены. Поэтому перед визуализацией сцены с частицами нужно создать кэш-файл.