Это связано с тем, что opacityPP - одно число, a scale - сразу три значения.

Чтобы MAYA автоматически пересчитывала одно значение в три одинаковых атрибута, включите галку Allow All Data Types и в списке Scale появятся все индивидуальные атрибуты частицы, а не только состоящие из трех значений.

Выберите opacityPP в качестве атрибута, управляющего размером (Scale) объекта, и вы увидите, как самолеты благополучно уменьшаются, перед тем, как исчезнуть.

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

Но проблема состоит в том, что у частиц нет поверхности и, следовательно, нет атрибута rotate, который можно было бы использовать для поворота подставляемых объектов. Поэтому, в отличие от scale, используется не прямое копирование атрибутов частицы в атрибуты объекта, а вычисление поворотов на основе правил, аналогичных случаю движения по пути. Поэтому для задания вращений в Attribute Editor есть целый подраздел.

Установите Aim Direction=worldVelocity. Это будет равносильно указанию: «повернуться так, чтобы смотреть носом вдоль направления скорости».

Самолеты резко встанут на крыло и начнут летать левым бортом вперед. Проблема аналогична случаю движению вдоль пути. Мы не определили, где у самолетов «нос», и они летят, поворачиваясь вперед своей локальной осью X.

К сожалению, чтобы переопределить «носовую» ось, как в случае с motionPath, придется завести новый атрибут (типа aimPP) и написать крошечный, но expression (типа aimPP=<<0,0,1>> ), чтобы потом задать этот атрибут на вход параметру AimAxis.

Мы, однако, поступим проще.

Выберите оригинальный самолет и поверните его вокруг оси Y, так чтобы его нос смотрел вдоль мировой оси X (rotateY=90).

Теперь сделайте Modify=>Freeze Transformation, но только для атрибутов rotate.

Это развернет локальные оси объекта вдоль мировых осей, и самолеты полетят носом вперед.

Примечание. Если сделать Freeze Transformation для всех атрибутов, а не только для rotate, это обнулит также атрибуты translate, и получится так, что стоящий в стороне самолет в этом положении имеет свое «начальное положение». Поэтому при подстановке такие объекты будут иметь сдвиг от центра частицы, равный смещению от начала координат.

Примечание. Помните о том, что, как и при движении вдоль пути, важна не только ориентация «носа» объекта, но и направление, куда смотрит «макушка». По умолчанию «макушка» - это локальная ось Y o6beKma(AimUpAxis), а направление «вверх» задается вариантом AimWorldUp и, по умолчанию, является направлением вдоль мировой оси Y (0,1,0).

Для взрослых. Поворачивать объект можно не только вдоль направления какого-нибудь вектора, но и задавая точку (то есть три числа), на которую должен смотреть подставляемый объект. Для этого в Rotation Options используется вариант Aim Position, для которого надо указать атрибут частицы, содержащий координаты этой точки. Если, к примеру, все самолеты должны смотреть на локатор, к частицам надо добавить per-particle атрибут типа вектор (например, targetPP)


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