Третья строка вычитает второй вектор из первого. Те кто успешно закончил начальную школу помнят, что результатом будет вектор, направленный из конца второго ($vloc) на конец первого ($vloc). То есть результирующий вектор направлен от частицы к локатору.

В четвертой строке ускорение направляется по результирующему вектору. Не забывайте, что частицы имеют начальную скорость, полученную при испускании. При добавлении ускорения, направленного на локатор, частицы пытаются «повернуть» в сторону локатора. Ускорение частиц можно рассматривать как силу, «разворачивающую» конец вектора скорости (или «тянущую» за конец вектора скорости). Чтобы немного притормозить частицы, задайте им conserve=0.999. Тогда скорость начнет потихоньку падать, а сила поля, задаваемого ускорением, останется прежней.

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

Почуствуйте разницу между скоростью и ускорением. Замените в последней, четвертой строке acceleration на velocity, чтобы направлять частицы прямо на локатор.

vector $vloc = <<loc.tx,loc.ty,loc.tz>>; vector $vpos = position; vector Svres = $vloc - Svpos; velocity = $vres; Обратите внимание, что результирующий вектор определяет не только направление, но и длину скорости, то есть её значение, влияющее на скорость полета частиц. Можете проанимировать перемещения локатора, чтобы убедиться, что частицы продолжают стремиться к нему в любом кадре.

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

vector $vloc = <<loc.tx,loc.ty,loc.tz>>; vector Svpos = position; vector $vres = $vloc - Svpos; acceleration = $vres+sphrand(1);

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

Goal, или воля к победе Создайте простой источник частиц и какую-нибудь поверхность, например, сплайновый конус (sections=20, spans=20).

Отодвиньте поверхность от источника.

Можете загрузить вместо конуса вашу любимую фотореалистичную голову.

Проиграйте анимацию немного.

Выберите частицы, а затем выберите поверхность.

Выполните операцию Particles=>Goal, попутно заметив, что в её Option Box был всего один числовой параметр Goal Weight, равный 0.5.

Теперь уже существующие частицы, как безумные, бросаются на поверхность, а вылетающие из источника стремятся к поверхности с некоторой закономерностью.

После выполненной операции поверхность стала « целью» для частиц (goal) и закономерность, по которой они покрывают поверхность, заключается в следующем:


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