Серия учебников «Завтра на работу» Станислав Куракин Autodesk Maya - это просто Под редакцией Надежды Куракиной 2014 год Часть 1. Полигональное моделирование в Autodesk Maya с нуля Для начала работы загрузи версию программы Autodesk Maya, которая наилучшим образом подойдёт для твоей операционной системы и железа. Системные требования читай на официальном сайте разработчика: http://knowledge.autodesk.com/support/maya/troubleshooting/caas/sfdcarticles/sfdcarticles/System-requirements-forAutodesk-Maya.html. Данное руководство написано с использованием 11 версии. Теперь давай изучать операции, которые использует полигональный модельер в своей работе. 1. Проверь, чтобы на твоём мониторе всё было именно так как на рисунке, приведенном ниже. А. Выбран режим полигонального моделирования – Polygons Б. Выбрана закладка – Polygons 1 2 В. Стрелка мышки наведена на кубик 3 2. После этого щёлкни на кубике левой клавишей мышки и перенеси мышку на рабочую поверхность. 3. Ещё раз нажими левую кнопку мышки и проведи ей, удерживая при этом клавишу Shift. В итоге получится такой красивый кубик: 4. После этого вызови Редактор Атрибутов как это показано на рисунке: Его окно появляется справа и выглядит вот-так: 5. Выбираем вкладку pCube1 6. Раскрываем список Атрибутов Трансформации (Transform Attributes) и устанавливаем атрибут Перемещения (Translate) в ноль для всех значений осей X, Y и Z. Если непонятно, смотри сюда: Более профессионально и правильно будет вписать скрипт вызвав Редактор сценариев (Script Editor), через меню Window > General Editors > Script Editor (Окно > Редакторы общего назначения > Редактор сценариев) Приведенный ниже скрипт скопируй в окно вкладки MEL string $listObj[] = `ls -sl`; for ($obj in $listObj){ xform -centerPivots $obj; makeIdentity -apply true -t 1 -r 0 -s 0 -n 0 $obj; float $pivPos[] = `xform -q -ws -piv $obj`; move -ws ($pivPos[0]*-1) ($pivPos[1]*-1) ($pivPos[2]*-1) $obj; } Выглядеть он будет вот так: Обрати внимание, что для выполнения команды кубик должен быть выделен. Делается это с помощью инструмента Select Tool. Сначала выбираем этот инструмент, а далее обводим наш кубик удерживая левую клавишу мышки: Когда кубик выбран его грани окрасятся в зелёный цвет. Если хочешь, переключи его отображение вот в такое: Делается это с помощью кнопок на экране: или на на клавиатуре компьютера (цифры 5 и 4, соответственно). Поэкспериментируй с режимами просмотра, обрати внимание что кубик выделен (грани окрашены в зелёный) и далее нажми кнопку Выполнить Execute в окне Редактора сценариев (Script Editor). Наш кубик переместиться в начало координат. Теперь окно Script Editor можно закрыть. Ну, что? Немного освоился в Maya. Пора немного отдохнуть. Переменка А любознательным предлагаю покрутить наш кубик, обратившись к процедурной анимации. Расположи курсор мышки в ячейке оси Х атрибута Вращение (Rotate) и нажав правую кнопку мышки выбери пункт выпадающего меню Create New Expression. Появится окно процедурной анимации: В нём нужно задать имя процедуры 1, вписать формулу 2 и нажать кнопку Create 3 Формула: pCube1.rotateX = time * 50 показывает зависимость угла вращения по оси X от времени (поскольку изменяющимся параметром у нас будет время или параметр time. Для плавности анимации, увеличим количество кадров до 1000 Далее запускаем кнопку воспроизведения Так, мимоходом мы познакомились с процедурной анимацией. Можно аналогично оси X задать Expression для Y и Z. Обратите внимание, что ячейка атрибута с Expression окрашивается в жёлтый цвет. Продолжаем заниматься нашим полигональным моделированием. Для удобства моделирования настроим выделение полигонов «по центру». Window > Settings Preferences > Preferences > Selection > Select Faces with=Center И удалим Expression с атрибута RotateX (анимация отвлекает:) Приблизим наш кубик, ввыделив его и нажав клавишу F на клавиатуре (обращай внимание на раскладку клавиатуры, должна быть EN). Наш экран будет выглядеть следующим образом: Нажимаем клавишу 5 на клавиатуре и далее переходим в компонентный режим просмотра, нажав его кнопку как показано на рисунке: В этом режиме выбираем полигоны Итак, всё подготовлено переходим к нашему следующему шагу обучения. 7. Выбираем одну из граней кубика, щёлкая левой кнопкой мышки в её центре 8. Выполняем команду Выдавливания Extrude (обращаем внимание на режим работы, должен быть Polygons :) Поскольку мы немного занимались анимацией, наше меню могло переключиться. Переходим в режим фронтальной проекции… выбираем инструмент Перемещение (Move Tool)… и тянем за один из манипуляторов, предварительно увеличив его клавишей «+» на клавиатуре компьютера Ну что-же. Твоя первая экструзия удалась успешно! Поскольку эту утомительную операцию тебе на работе прийдётся выполнять очень часто, назначим на неё горячую клавишу. Идём: Window > Settings/Preferences > Hotkey Editor В появившемся окне выбираем Edit Mesh 1, PolyExtrude 2, ставим горячую клавишу (например Е), отметив одновременно галку Ctrl 3 и далее нажимаем кнопку Assign 4. Теперь в меню появилось сочетание клавиш на которое Maya будет быстро реагировать, выполняя Выдавливание (Extrude). Кстати, от себя программа добавила ещё и клавишу Shift. Теперь можно попрактиковаться в действии, которое будет одним из основных в твоей будующей работе. Кстати, после выполнения команды в стандартных настройках программы предусмотрено переключение на универсальный манипулятор, работу с которым тебе неплохо освоить. Попробуй сделать какую либо простую полигональную конструкцию с помощью этого манипулятора. Стрелки обозначают манипуляторы перемещения, квадратики возле них работают на маштабирование, а при нажатии на окружность включаются манипуляторы вращения. Кстати, для отмены операции служит клавиатурная клавиша «z». Далее продолжим полигональное моделирование и сделаем вот такую модель арки: 1. Для начала откроем новую сцену сочетанием клавиш Ctrl+N и изменим отображение проекций на ортогональное (вид сверху) 2. Создадим арку с помощью инструмента Three Point Circular Arc из меню Сreate > Arc Tools Вид курсора измениться. Для привязки к сетке нужно удерживать клавишу “x”. Отступаем по шесть клеточек от точки пересечения координат и ставим три точки по часовой стрелке. 3. Выбираем инструмент Create Polygon Tool из меню Mesh Отступаем 9 клеточек вверх от горизонтальной оси координат и ставим две точки слева и справа также с отступом на 9 клеточек от вертикальной оси координат, не забываем удерживать клавишу привязки к сетке «х». Отступаем 12 клеточек вниз от горизонтальной оси координат и делаем прямоугольник, не забывая о привязке к сетке. Получим вот такой рисунок: 4. Выбираем последний использованный инструмент в панели инструментов, расположенной слева. В нашем случае это будет Create Polygon Tool. Начинаем рисовать арку, используя созданные заготовки. Первой точкой у нас будет верхний правый угол прямоугольника. Не забываем о привязке к сетке. Когда дойдём до левой точки арки сделаем приближение. Для этого нужно удерживая клавиши Ctrl и Alt обвести приближаемую область с помощью левой кнопки мышки. Курсор поменяет вид на стрелку со знаком “+” (ведём из верхнего левого угла области увеличения в её нижний правый угол). Если сделать наоборот, курсор будет иметь вид стрелки со знаком “-”, что означает отдаление объекта. Если нажать клавишу “5” на клавиатуре мы увидим такое отображение: Увеличив область возле дуги, ставим точки на её пересечении с координатной сеткой. Для привязки теперь нажимаем клавишу «С» на клавиатуре. Используя приближение и отдаление областей, проставляя точки в нужных местах, в итоге получим такой рисунок: 5. Теперь удалим наши заготовки и очистим историю. Нажимаем кнопку выбора объектов: С помощью левой кнопки мышки и клавиши Shift выделяем дугу и прямоугольник и удаляем их: После удаляем историю Edit > Delete by Type > History Теперь перейдём в окно перспективной камеры и выполним нашу любимую экструзию или выдавливание. Предварительно не забыв выбрать компонентный режим 1 и нажав кнопку выбора граней 2 Теперь остаётся выбрать грань и нажать комбинацию быстрых клавиш для операции Выдавливания, которую мы уже делали с нашим кубиком. Потянув за синюю стрелку получим арку в объёмном виде: Значение параметра экструзии нужно поставить равным 0.6. Делается это в Редакторе Атрибутов (Atribute Editor), закладка Poly Extrude Fase History, атрибут Local Translate для оси Z: После опять удаляем историю Edit > Delete by Type > History 6. Далее в компонентном режиме нажмём кнопку выбора рёбер и отметим нижнее переднее ребро арки После этого выполним команду меню Select > Select Contiguous Edges, которая выделит весь ряд рёбер. и далее опять наше любимое Выдавливание (Extrude) после изменим окно проекции на ТОР и перейдём к инструменту Маштабирование (Scale Tool), нажав клавишу “R” на клавиатуре или кнопку Scale Tool в панели инструментов После этого, потянем красный кубик масштабирования по оси Х, переместив новую грань на одну клетку Теперь нажав клавишу Ctrl на клавиатуре, убираем выделение с нижних рёбер и тянем синий кубик масштабирования по оси Z вниз, поднимая новую грань на одну клетку 7. Переходим в режим выбора граней удерживая клавишу Shift, выбираем грани нового элемента арки и снова операция Выдавливания В итоге получаем вот такую арку. Сохрани её, поскольку она пригодится нам дальше. Чтобы её поднять в вертикальное положение, выбираем инструмент Перемещение (Move Tool) Нажимаем клавишу Insert и переносим Центр вращения (Pivot) в нижнюю точку, задав её координаты в Редакторе Атрибутов X(0), Y(0), Z(12) Теперь выбираем инструмент вращение 1 и поднимаем арку. Более быстрым, точным и правильным будет поставить атрибут RotateX в значение 90° 2 8. Для дублирования арки, смещаем Pivot в нижний правый угол, задав для его положения, значения в Редакторе Атрибутов X(9), Y(0), Z(12) далее нажимаем сочетание клавиш Ctrl+D это команда Дублирования (Duplicate) и ставим значения атрибута Rotate X(90), Y(90), Z(0) Теперь остаётся развернуть исходную арку на 180°, предварительно сместив её Pivot в центр основания. Rotate X(90), Y(-180), Z(0) Pivot X(0), Y(0), Z(12) Полигональная модель арки готова. Создать ещё два элемента и крышу, попробуй самостоятельно. 9. Теперь сделаем ворота, которые будут сами открываться, для этого открой сохранённый файл с аркой и перейди в ортогональную проекцию 10. Для начала, нарисуй створку ворот, используя полученные знания 11. После немного уменьши размер створки относительно арки с помощью маштабирования (режим объекта) Далее в компонентном режиме, нажми кнопку выбора рёбер… и немного опусти нижнее ребро створки ворот Далее наша любимая операция Выдавливание (компонентный режим граней) Теперь остаётся создать вторую створку… и отрегулировать зазор между створками с помощью выбора рёбер в компонентном режиме используя инструмент перемещение Что-бы скрыть вторую створку, выбери её и установи атрибут Visibility в 0 убрав с него галку (смотри рисунке). При этом обрати внимание где он находится 2 1 на Чтобы вернуть вторую створку на место, нужно сделать обратную операцию (поставить галку на место). Для этого вызови Outliner … и в нём выбери объект, относящийся ко второй створке 1. Далее поставь галку как была 2 13. Теперь сделай петли, используя полигональный примитив и полученные знания для пропорционального маштабирования, используй центральный кубик инструмента… для установки петель на место, работай в ортогональных проекциях… для выбора лучше использовать Outliner 1, а как правильно создавать копии, ты уже знаешь 2 Теперь нам нужно перенести Центр вращения (Pivot) створок ворот в центр верхних петель, нажав клавишу Insert и работая в ортогональных проекциях Теперь нужно сгруппировать наш объект Ctrl+G … и Pivot группы 1 сместить в нижнюю часть 2, задав для его положения следующие значения 3 Далее разворачиваем нашу группу… и отодвигаем её Ворота готовы. Можно теперь открыть створки Возвращаем их на место, удаляем историю и сохраняем файл Переменка: интересно знать На переменке заглянем в комнату для любознательных. Как ты смог заметить, оси X, Y и Z в программе Maya окрашены в различные цвета – красный, зелёный и синий. Это связанно с очерёдностью цветов в цветовой гамме RGB, запомнив которую ты легко будешь ориентироваться в осях при любой проекции. Центральная часть, расположенная на пересечении всех осей, отвечает за перемещение в пространстве 1 и пропорциональное масштабирование 2. При вращении внешняя окружность (жёлтого цвета) будет вращать объект параллально выбранной проекции. Подсказку по цветам осей, также можно посмотреть в нижнем левом углу экрана проекции. Увеличивать и уменьшать манипуляторы можно с помощью клавиш “+” и “-”, об этом ты уже знаешь. Продолжаем занятие и сейчас мы сделаем новый атрибут, который будет отвечать за открытие ворот. Для начала, выбери нашу группу 1 и с помощью команды Freeze Transformations 2 обнули все значения атрибутов трансформации 3, задав исходное положение объёкту как первичное. 14. Открой створки ворот, задав значения вращения для оси Y 15. При выбранном объекте, выполни команду меню Modify > Add Attribute дальше задай имя новому атрибуту 1 и обозначь минимальное, максимальное и начальное значения 2 В Редакторе Атрибутов появиться новый динамический атрибут Теперь установи связь между ним и Вращением створки ворот по оси Y с помощью команды выпадающего меню Set Driven Key В появившемся окне с помощью кнопки Load Driver 1 выбираем управляющий атрибут LeftSashGate 2 и далее выставляем управляемый атрибут rotateY 3 и нажимаем кнопку Key. Так мы установили значение для закрытых ворот LeftSashGate = 0, rotateY = 0 Далее устанавливаем значение LeftSashGate = 1, переведя ползунок вправо 1, а rotateY = -180 градусов 2 и снова нажимаем кнопку Key 3 Двигаем ползунок атрибута и наша створка открывается LeftSashGate = 1 или закрывается LeftSashGate = 0, выполняя движение при промежуточных значениях Далее создаём динимический атрибут RightSashGate для правой створки, после удаляем историю и сохраняем файл 16. Следующим шагом свяжем между собой атрибуты LeftSashGate и RightSashGate для этого открой Windows > General Editors > Connection Editor Выбери левую створку 1 и нажми кнопку Reload Left 2 После выбери правую створку 1 и нажми кнопку Reload Right 2 далее убери галки в меню Left Display > Show Non-Keyable и Right Display > Show Non-Keyable и выбери атрибуты LeftSashGate и RightSashGate ячейка значений атрибута RightSashGate окрасилась в жёлтый цвет, это значит, что он зависит от LeftSashGate теперь ползунок атрибута LeftSashGate открывает две створки ворот 17. Теперь приступаем к созданию мостика перед нашей аркой, который будет появляться при открытии ворот С помощью уже знакомого тебе инструмента Create Polygon Tool из меню Mesh нарисуй в ортогональной проекции прямоугольник 1 на 2 клетки, не забывая использовать привязку к сетке (клавиша «х») Примени к прямоугольнику операцию Выдавливания по оси Z Установи Pivot в центре прямоугольника, работая в режиме выбора объектов при включённом инструменте перемещения и выбрав команду меню Modify > Center Pivot Далее с помощью команды меню Edit > Duplicate Special, нажав на прямоугольный бочёнок вызови окно специального копирования Duplicate Special и установи здесь смещение по оси Y равное 3, а количество копий 10 после выбери, созданные объекты через один и смести их в левую сторону по оси Х, задав значение -9 для остальных объектов задай значение Х=9, сместив их вправо После сгруппируй отдельно левую и правую части мостика… и задай имя всем группам плюс объектам групп 18. Для мостика создай дополнительные динимические атрибуты как и для створок ворот, только они будут связаны не с вращением, а с масштабированием. Перед этим, смести Pivot левой и правой частей мостика… значение ScaleX для левой и правой частей установи равным 10… установи мостик на место, сместив его по оси Y на одну клетку вниз и выполни традиционные: Freeze Transformations, Delete by Type > History, Ctrl+S После задания ключей динамических атрибутов, создай управление обеими частями моста с помощью ползунка Brige Left S, аналогично, как мы это делали со створками ворот 19. На следующей ступеньке мы научим наш мостик и ворота встречать весёлого колобка Создайте полигональную сферу 2 на 2 клетки, используя инструменты привязки – это и будет прототип нашего героя Увеличь его масштаб и приподними на высоту мостика Установи зависимость угла вращения от перемещения колобка создав Expression kolobok.rotateX = 360 * kolobok.translateZ / (3.14 * kolobok.scaleZ) Теперь при перемещении по оси Z наш объект – колобок будет вращаться вокруг оси X Далее создай Expression для моста, установив его на атрибуте BridgeLeftS if (kolobok.translateZ < 70) BridgeLeft.BridgeLeftS = 1.8 - (kolobok.translateZ - Ark.translateZ) * 0.025; else BridgeLeft.BridgeLeftS = 0; и для ворот, атрибут Left Sash Gate if(kolobok.translateZ < 70) LeftSashGate.LeftSashGate = 1.8 - (kolobok.translateZ - Ark.translateZ) * 0.025; else LeftSashGate.LeftSashGate = 0; Теперь всё готово к приёму сказочного гостя