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

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

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

Во-первых, молекулы должны отталкивать друг друга, чтобы капля не «схлопнулась» и не потеряла своего объема. Поэтому первой силой будет поле взаимного отталкивания.

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

Кандидатом на роль обеих сил будет поле типа Radial, позволяющее как притягивать, так и отталкивать объекты. Осталось только придумать, как его «засунуть» в сами частицы.

Создайте «кристаллическую решетку» из молекул жидкости.

Для этого откройте Option Box для Particles=>Particle Tool, включите галку Create Particle Grid, затем выберите опцию With Text Fields и введите для Minimum и Maximun Corner значения (-1,-1,-1) и (1,1,1), соответственно.

Ж Р«ЛсЬТоо1

Щелкните один раз мышкой прямо в окне перспективы и нажмите Enter.

В начале координат возникнет кристально чистый кубик из молекул. Чтобы они лучше смотрелись, сделайте их сферами с радиусом равным 0.1.

Сохраните файл (dropStart.ma).

Организуем поле взаимного отталкивания.

Выберите частицы и создайте радиальное поле: Fields=>Radial.

Займемся его атрибутами. Коль скоро молекулы должны отталкивать друг друга только при значительном сближении, это поле должно иметь маленький радиус действия и быстрое затухание.

Поэтому установите для него maxDistance=2 и attenuation=4.

Также следует предположить, что поле должно быть довольно сильным, и в связи с этим задайте magnitude=39 и переименуйте поле в pushField.

После этого решетку начнет раздувать изнутри.

Совершенно очевидно, что центр действия поля находится в начале координат и что ни о каком взаимном отталкивании речь пока не идет. Теперь осталось сделать так, чтобы частицы стали источником поля.

Выберите поле pushField, а затем частицы.

Выполните Fields=>Use Selected As Source of Field (то есть «Использовать выбранный объект как источник поля»).

Правда, после этой операции мало что изменится: поле по-прежнему находится в центре и оттуда, не торопясь, влияет на частицы. Дело в том, что по умолчанию поле просто вставляется в геометрический центр выбранного объекта и наследует его перемещения, оставаясь при этом одной точкой. Чтобы поле стало действовать из каждой компоненты объекта, являющегося его источником, надо в атрибутах самого поля включить параметр applyPerVertex.


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