Изменение весов контрольных точек должно вести к изменению степени притяжения кривой или поверхности к этим контрольным точкам.

«И как будем менять?», спросите вы.

Легально никак! MAYA работает с rational-геометрией в режиме Read Only. То есть, она понимает такие объекты и корректно отображает их. Если вы, например, сымпортируете в MAYA сцену в формате IGES, созданную за пределами MAYA и содержащую геометрию с дробными весами, то MAYA прекрасно ее скушает и даже позволит вам с нею работать. Но никаких стандартных инструментов для изменения значений весов в MAYA нет. И, похоже, не будет, так как MAYA позиционируется как пакет для анимации, а не для промышленного дизайна, и поэтому требования к точности построения сплайновых поверхностей не являются слишком строгими. Более того, MAYA имеет определенный набор инструментов, чтобы избавляться от rational-геометрии. В частности, в опциях операции Rebuild Surfaces есть метод Non-Rational, с помощью которого вычищаются все веса, отличные от единицы, и поверхность перестраивается в тип non-rational.

Однако, зная, как пользоваться языком MEL, и обладая известной сообразительностью, можно попробовать поиграть с весами точек. С помощью документации к ноде nurbsCurve=>curve Shape=>controlPoints выясняем, что представляет собой атрибут weights, который содержит веса точек.

Строим сплайновую окружность по умолчанию Create=>NURBS Primitives=>Circle.

В Script Editor выполняем команду

getAttr ,wt[0:7]

// Result: 11111111//

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

setAttr .wt[0:7] 5 15 15 15 1

Получаем «угловатую окружность», притянутую к своим четным контрольным точкам.

Продолжим издевательства. Выполните команду setAttr ,wt[0:7] 10 10 10 10 Получим квадрат.

Таким образом, чтобы изменить вес контрольной точки кривой, надо знать ее номер и синтаксис команды setAttr. Для поверхностей все немного сложнее, так как номер точки зависит от количества столбцов и строк контрольных точек, однако вычисляется это без труда. На сайте www.highend3d.com находится некоторое количество скриптов с адекватными интерфейсами для редактирования весов точек. Однако я бы не советовал увлекаться rational-геометрией, так как многие операции работы с поверхностями не будут корректно работать с такими объектами. В частности, операция Align не обеспечит гладкую стыковку, а конвертирование таких поверхностей в сабдивы просто игнорирует rational-геометрию.

Для любителей Безье Для неутомимых любителей кривых и патчей Безье могу предложить один инструмент, который, возможно, немного скрасит их ностальгию по «усикам» и «гантелькам». Но немного и ненадолго. Для кривых такой инструмент называется Edit Curves=>Curve Editing Tool. При помощи него можно выбрать любое место на кривой и отредактировать кривую в этом месте. В отличие от кривых Безье, этот инструмент позволяет редактировать кривую в любом месте, а не только на границах сегментов.

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


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