и написать Runtime Expression: targetPP=<<locator1 .tx,locator1 .ty,locator1 .tz>>; Затем надо указать в Rotation Options для частиц AimPosition=targetPP.

Это заставит все объекты смотреть не вдоль вектора, а на точку в пространстве, занимаемую локатором.

А кто же главнее - AimPosition или AimDirection, если задать оба варианта? Важнее AimDirection, так как он выше в списке. Над ним есть ещё вариант Rotation, позволяющий просто копировать три числа в атрибуты rotate объекта из указанного per-particle атрибута (это может быть полезно для задания случайных вращений).

Сохраните сцену (instancerFinal.ma).

Можете увеличить rate у источника частиц и провести над ними любые издевательства

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

Попробуйте анимировать исходный самолет. Например, попросите его помахать крыльями с помощью BlendShape или Bend Deformer. Вы увидите, что вся анимация полностью наследуется подставленными объектами.

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

Изготовьте такую эскадрилью прямо в предыдущем файле с дымком (instancerFinal.ma), размножив одинокий самолет в нужном количестве.

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

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

Ещё профессиональнее будет удалить все источники, кроме одного, а оставшиеся несколько объектов типа particle присоединить к одному источнику, чтобы он испускал сразу несколько видов частиц, подставленных разными объектами. (Надо только не забыть в этом случае у всех частиц выставить разные значения в разделе Emission Random Stream Seeds, чтобы они вылетали из одного источника по-разному.)

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

Если у вас в сцене остался объект instancerl, отвечающий за предыдущую подстановку, удалите его, это убьет все самолеты, летающие вместе с частицами.

Выберите все самолеты эскадрильи, а затем частицы. Выполните Particles=>lnstancer(Replacemen t).

Однако взлетать начнет только первый самолет.

Откройте Attribute Editor для частиц и в разделе Instancer (Geometry Replacement) установите AimDirection=worldVelocity, чтобы самолеты развернулись. Попутно отметьте, что немного выше есть загадочный параметр Objectlndex, установленный в None.

Этот параметр отвечает за номер самолета в списке объектов, подставленных в частицы. Посмотреть этот список можно, выбрав в Outliner объект instancerl и открыв Attribute Editor.


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