Однако остались ещё кое-какие тонкости: например, после двухсотого кадра некоторые частицы резко отскакивают от поверхности и как-то резко вылетают из источника. Это наводит на мысль, что локальное время есть не только у частиц, но и у остальных динамических объектов, принимающих участие в расчете движения частиц (в отличие от твердых тел, где все заботы по расчетам на себя берет один объект - Rigid Body Solver).

Так и есть: исследования в Hypergraph обнаруживают наличие атрибута currentTime у объекта emitterl и ноды geoConnectorl.

Теперь выберите частицы, откройте Hypergraph и выполните Graph=>lnput And Output Connections.

Чтобы не повторять процедуру постановки ключей и сделать решение более универсальным, нужно просто подсоединить уже созданную анимационную кривую к атрибуту currentTime у двух вышеперечисленных объектов.

Нажмите shift, перетащите и бросьте в Hypergraph средней кнопкой мыши анимационную кривую на geoConnectorl. В появившемся Connection Editor присоедините атрибут output к атрибуту currentTime.

Проделайте то же самое с анимационной кривой и источником emitterl.

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

Выберите в Outliner ноду timel, включив там отображение всех объектов в сцены. Загрузите timel в левую часть Connection Editor, а в правую часть загрузите анимационную кривую particle-Shape1_currentTime, которую можно выбрать в Hypergraph.

Присоедините timel .outTime к particleShape1_currentTime.input.

После такой магии частицы должны вести себя как положено.

Взаимодействия между частицами Как я уже упоминал выше, частицы - с точки зрения динамики и расчета их траекторий -являются бесконечно малыми точками и поэтому не могут сталкиваться друг с другом. По умолчанию соседние частицы ничего друг про друга не знают и знать не хотят. Существует несколько способов, однако, заставить частицы взаимодействовать друг с другом. Следует помнить при этом, что сама дискретная модель, используемая в майской динамике частиц, не очень хорошо подходит для точного описания движения жидкостей и других сплошных сред, требующих расчета не только скоростей, но и плотностей, давления, перемешивания и т.д. Для таких расчетов больше подходит модуль MAYA Fluids или более специализированные отдельные программы.

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

Первый способ организовать взаимодействие частиц состоит в том, чтобы зайти на сайт www.highend3d.com и в разделе MAYA выкачать несколько плагинов, вычисляющих поле взаимного влияния частиц друг на друга. Все они делают примерно одно и тоже, а различаются лишь производительностью.


⇐ вернуться назад | | далее ⇒