Выберите все построенные Fillet и Square и сгруппируйте их. Назовите группу Corners. После этого перетащите средней кнопкой группу Corners и бросьте ее на группу nurb-sCubel. Теперь группа nurbsCubel содержит в себе все поверхности и полностью управляет нашим кубом. Попробуйте масштабировать группу nurbsCubel. Засада! Все разъехалось.
Это, естественно, происки Construction History. Угловые поверхности получают двойное масштабирование - от плоскостей и от себя лично.
А жаль. Так хорошо было бы иметь одну группу для всей модели.
Ищем решение. Оно скрывается в Attribute Editor для группы Corners. Там надо выключить галку Inherit Transform (наследовать трансформации), чтобы группе Corners не передавались масштабирование и прочие трансформации от родительской группы nurbsCubel.
Теперь масштабирование группы nurbsCubel работает, как ожидалось.
Сохраните сцену (roundedCube3.ma) и подумайте о том, как мы будем ее дальше использовать. В дальнейшем мы будем импортировать этот файл в нужную сцену, Задавать положение и размеры куба, настраивать величину скругления и удалять Construction History, которая дальше не потребуется.
Сделаем себе еще один маленький подарок. Небольшое неудобство заключается в том, что для того, чтобы задавать размер, приходится выбирать группу nurbsCubel, а для настройки скруглений приходится разыскивать и выбирать шесть плоскостей. И так каждый раз. Попробуем «вытащить» размер плоскостей (то есть регулировку зазора) наверх, на группу nurbsCubel.
Выберите группу nurbsCubel и добавьте к ней новый атрибут gap со значением по умолчанию 0.9: Modify=>Add Attribite (Default=0.9).
Теперь откройте Windows=>General Editors=>Connection Editor и нажмите Reload Left, чтобы загрузить nurbsCubel в левую панель.
Выберите в Outliner все шесть граней куба и нажмите Reload Right. Для удобства обзора снимите в меню Left Display и Right Display галки Show Non-Keyable.
Выберите слева атрибут gap, а справа выбирайте у всех объектов атрибуты ScaleX, ScaleY,
ScaleZ.
Закройте Connection Editor.
Выберите nurbsCubel, и меняйте значение атрибута gap в диапазоне от нуля до единицы. Теперь нет необходимости в разыскивании, выборе и масштабировании граней куба. Все необходимые параметры куба управляются атрибутами группы nurbsCubel.
Сохраняем файл (roundedCube4.ma).
Чудо инженерной мысли готово, можно возвращаться к давно заброшенному построению паровоза. «Минуточку!» - воскликнут немногочисленные измученные кубиком пытливые умы. В самом деле, ведь когда мы сымпортируем наш куб в другую сцену, настроим его и удалим историю, передвигать его будет, потом уже, нельзя, так как подгруппа Corners не наследует трансформации и придется обязательно помнить об этом и вручную включать. Да это так. И хорошо бы помнить об этом всегда.
Однако MAYA потакает человеческим слабостям и людям с короткой памятью. Попробуйте временно удалить историю прямо для выбранной группы nurbsCubel (Edit=>Delete by Type=>History).
Вы увидите в Script Editor следующее сообщение:
Warning: Turning on inheritTransform for ‘Corners’.