Сетки полигонов лучше всего подходят для моделей, имеющих прямоугольные формы, механических объектов и т. п. Впрочем, при наличии навыков работы с инструментами для редактирования полигонов существует возможность моделировать в этом формате даже персонажей. Обычно работа над моделью начинается с появления в сцене объекта-примитива и выдавливания его граней, в то время как для получения NURBS-объектов в большинстве случаев сначала требуется создать кривую.
Впрочем, существует возможность создать полигональную поверхность на основе таких же кривых. Третьим методом является применение инструмента Create Polygon Tool (Создание полигонов), позволяющего непосредственно формировать полигональные грани.
Команда Create > Polygon Primitives (Создать » Полигональные примитивы) открывает меню с перечнем доступных полигональных примитивов. Щелчок на квадратике, расположенном справа от названий этих примитивов, дает доступ к редактированию их параметров. Для примера щелкните на квадратике, расположенном справа от команды Sphere (Сфера).
Наиболее заметным различием полигональных и NURBS-примитивов является способ задания детализации поверхности. В то время как детализация NURBS-поверхности задается изопараметрическими кривыми, у полигональных сеток рассматривается число разбиений (subdivisions) на грани. Чем выше число разбиений, тем более гладкой будет поверхность.
Убедитесь в том, что кнопка Construction History (История конструирования) в строке состояния нажата, и щелкните на кнопке Create (Создать) в окне диалога Polygon Sphere Options (Параметры полигональной сферы), а затем нажмите комбинацию клавиш Ctr+a, чтобы открыть для вновь созданной сферы окно диалога Attribute Editor (Редактор атрибутов). На вкладке polySpherel вы найдете ползунки параметров Subdivisions Axis (Разбиений вдоль оси) и Subdivisions Height (Разбиений по высоте), предназначенные для изменения уровня детализации поверхности.
Инструмент Create Polygon Tool (Создание полигонов) формирует полигональную грань произвольной формы указанием расположения ее вершин. Это один из простейших способов создания полигональной формы. Достаточно щелчками обозначить, где находятся вершины. На рис. 5.1 показаны примеры граней, которые можно получить с помощью этого инструмента.
Обозначив щелчками положение всех вершин, нажмите клавишу Enter, чтобы завершить создание грани. Таким способом можно получить довольно сложную форму, пригодную для дальнейшего редактирования.
Показанный на рисунке полигон был создан с помощью инструмента Create Polygon Tool (Создание полигонов). Он состоит всего из одной грани, соответственно, его невозможно подвергнуть редактированию или деформации.
Рис. 5.1. Полигональные грани, созданные с помощью инструмента Create Polygon Tool
Создайте подобный полигон самостоятельно и, убедившись в том, что его поверхность выделена, выберите в меню Polygons (Полигоны) команду Triangulate (Разбить на треугольники). В результате поверхность будет разбита на набор граней, вполне доступный для редактирования.
Полигональные сетки можно создавать и с помощью методов, с которыми вы познакомились в предыдущей главе. При этом используются те же самые инструменты.
Для получения полигональной поверхности нужно сделать соответствующие настройки в окне диалога с параметрами инструмента. Например, создайте две кривые, выделите их и щелкните на квадратике, расположенном справа от команды Loft (Лофтинг) в меню Surface (Поверхность). В появившемся окне диалога установите переключатель Output Geometry (Выходная геометрия) в положение Polygons (Полигоны). Это даст вам доступ к параметрам будущей полигональной поверхности.
Включенная история конструирования, как и в случае создания NURBS-объек-тов, дает возможность редактировать форму итоговой поверхности путем редактирования лежащих в ее основе кривых. Если вы собираетесь вносить изменения таким способом, позаботьтесь о том, чтобы разбиение поверхности было достаточно сильным. Это один из наиболее предпочтительных методов создания полигональных сеток.
Рассмотрим процесс получения полигональной поверхности методом лофтинга. Нарисуйте две кривые с одинаковым числом управляющих точек. Выделите их и откройте окно диалога Loft Options (Параметры лофтинга). Установите переключатель Output Geometry (Выходная геометрия) в положение Polygons (Полигоны). Появившиеся снизу параметры влияют на разбиение итоговой поверхности, то есть они задают уровень детализации и число граней. Короче говоря, чем больше количество граней, тем выше уровень детализации. Впрочем, детализированные поверхности также могут быть весьма эффективными, например, за счет разбиений только тех областей, где это действительно необходимо.
По умолчанию переключатель Tessellation Method (Метод разбиения) стоит в положении Standard Fit (Стандартная подгонка). В результате для построения поверхности используется минимальное количество граней, при котором она сохраняет свою целостность. Расположенные ниже ползунки позволяют отрегулировать итоговое количество граней, чтобы результат лучше соответствовал кривизне исходных кривых.
Чем ниже значение параметра Fractional Tolerance (Частичная устойчивость), тем больше будет число граней и тем более гладкой получится поверхность. Параметр Chord Height Ratio (Отношение хорды к высоте) определяет кривизну в определенной области и количество граней, которое требуется для ее адекватного представления. Этот параметр лучше всего использовать при создании поверхности с многочисленными изгибами или с очень сильной кривизной.
В процессе подбора подходящего разбиения не имеет смысла создавать поверхность, отменять полученный результат, менять параметры и создавать ее заново. Поэтому пользуйтесь кнопкой Apply (Применить), а не кнопкой Loft (Лофтинг), чтобы окно диалога Loft Options (Параметры лофтинга) оставалось открытым.
Разбиение
При визуализации все трехмерные объекты разбиваются на треугольные грани, вне зависимости от того, к какому формату принадлежит их поверхность. Компьютер вычисляет положение каждой значимой точки поверхности и соединяет их друг с другом, формируя оболочку, имеющую вид визуализируемого объекта.
Установка переключателя Tessellation Method (Метод разбиения) в положение General (Общий) приводит к появлению заданного пользователем числа линий, равномерно делящих поверхность по горизонтали и вертикали. Если же поставить его в положение Control Points (По управляющим точкам), поверхность будет разбита в соответствии с числом управляющих точек на исходных кривых. Чем больше количество управляющих вершин и интервалов, тем выше окажется разбиение поверхности. При установке этого переключателя в положение Count (По количеству граней) разбиение происходит на указанное пользователем число граней. Поэкспериментируйте с различными вариантами разбиения, обращая особое внимание на структуру получаемых поверхностей.
Некоторые пользователи предпочитают моделировать объекты исключительно на основе неоднородных рациональных полигональных сплайнов, а затем при необходимости преобразовывать их в сетки полигонов. В конце концов вы найдете наиболее предпочтительный для себя метод моделирования, но сначала имеет смысл подробно познакомиться с каждым из них.
Попробуем преобразовать NURBS-модель алебарды в сетку полигонов. Подобная операция полезна, например, если вы решите использовать этот объект в компьютерной игре. Загрузите файл axe_model_v3.mb из папки ChapterFiles\Axe_Model\ scenes прилагаемого к книге компакт-диска. Сложнее всего в данном случае сохранить точность формы, поэтому преобразовывать объект мы будем по частям:
1. Выделите рукоятку алебарды, выберите в меню Modify (Изменить) команду Convert (Преобразовать) и щелкните на квадратике, расположенном справа от команды NURBS to Polygons (NURBS в полигоны). Выберите в меню Edit (Правка) появившегося окна диалога команду Reset Settings (Сбросить настройки) и щелкните на кнопке Apply (Применить). Поверх NURBS-версии рукоятки появится сетка полигонов. Сместите ее на восемь единиц вправо.
2. Щелкните на обухе и нажмите клавишу Т, чтобы выделить все составные части группы Back_Axe. Если в своей версии файла вы не группировали отдельные элементы, выделите обух рамкой. В данном случае преобразование с заданными по умолчанию параметрами снова даст вполне корректный результат. Поэтому щелкните на кнопке Apply (Применить) в окне диалога Convert NURBS to Polygons Options (Параметры преобразования NURBS в полигоны) и сдвиньте полученный объект на восемь единиц вправо.
3. Лопасть топора составлена из большого числа изогнутых линий, поэтому увеличим разбиение будущей полигональной поверхности. Введите в поле Fractional Tolerance (Частичная устойчивость) значение 0,0005. Это приведет к увеличению количества граней (рис. 5.2). Щелкните на кнопке Tessetlate (Разбить) и переместите новый объект на восемь единиц вправо.
Рис. 5.2. NURBS-алебарда (слева) и результат ее преобразования в сетку полигонов (справа)
Если бы преобразование осуществлялось для последующей вставки объекта в игру, количество граней новой модели было бы ограниченным и пришлось бы выбирать другой дизайн алебарды.
Дадим краткое описание инструментов, которыми придется пользоваться в процессе редактирования полигональных сеток. Проверьте действие каждого из них на полигональной сфере. Затем вы примените полученные навыки для создания двух объектов различной сложности. Моделирование будет осуществлено путем редактирования объектов-примитивов.
Превратите в плавающее окно меню Edit Polygons (Правка полигонов). Именно здесь содержатся инструменты, о которых пойдет речь в дальнейшем.
Чаще всего при редактировании полигональных сеток применяется операция выдавливания граней или ребер, приводящая к появлению дополнительных граней. Рассмотрим ее на примере:
i. Создайте полигональную сферу, нажмите клавишу F8 и убедитесь в том, что в строке состояния нажата кнопка Select by Component Type: Faces (Выделение подобъектов типа: Грани). Выделите любую грань или даже несколько граней и выберите в меню Edit Polygons (Правка полигонов) команду Extrude Face (Выдавить грань). Появится специальный манипулятор. Его вид показан на рисунке слева.
2. Щелкните на синей стрелке (она ограничивает преобразования осью Z) и перетащите указатель мыши из центра сферы, как показано на центральном изображении.
При этом выделенная вами грань или грани выступят над поверхностью сферы, а по бокам от них появятся дополнительные грани. Это исключительно мощный инструмент, позволяющий легко создать детали, выступающие в произвольном направлении. Он особенно полезен для моделирования различных персонажей. Позднее в этой главе вы воспользуетесь им для создания стилизованной человеческой руки.
3. Манипулятор преобразования Scale (Масштабирование) позволяет менять размер выдавленных граней, а манипулятор преобразования Rotate (Поворот) — вращать их, как показано на изображении справа.
4. Вторичный выбор команды Extrude Face (Выдавить грань) позволяет продолжить операцию выдавливания, сформировав новые грани поверх уже выдавленных.
5. Выделение ребер полигональной формы и выбор в меню Edit Polygons (Правка полигонов) команды Extrude Edge (Выдавить ребро) приводит к появлению плоской поверхности, сформированной на основе указанных ребер. Возникающий при этом манипулятор работает так же, как и в предыдущем случае.
Выдавливать грани можно и вдоль некой кривой. Для этого нужно выделить кривую и нужные грани, щелкнуть на квадратике, расположенном справа от команды Extrude Face (Выдавить грань), и в появившемся окне диалога установить флажок Use Selected Curve for Extrusion (Выдавить вдоль выделенной кривой). Параметр Taper (Заострение) уменьшает или увеличивает размер выделенных граней в процессе выдавливания. Параметр Twist (Скрутка) задает степень их скручивания, а параметр Divisions (Разбиений) определяет гладкость получаемой в результате формы. Если окажется, что выделенные грани не в состоянии следовать за всеми изгибами указанной вами кривой, увеличьте значение параметра Divisions (Разбиений).
Действие команды Wedge Faces (Выдавить грани по дуге) в соответствии с ее названием сводится к выдавливанию граней по дуге, в отличие от команды Extrude Face (Выдавить грань), которая приводит к выдавливанию граней вдоль отрезка прямой. В данном случае требуется не только выделить грань, но и указать ребро, вокруг которого будет происходить поворот.
Выделите грань, щелкните на объекте правой кнопкой мыши и выберите в появившемся меню команду Edge (Ребро). Затем при нажатой клавише Shift щелчком выделите одно из ребер этой грани и щелкните на квадратике, расположенном справа от команды Wedge Faces (Выдавить грани по дуге) в меню Edit Polygons (Правка полигонов).
По умолчанию параметр Wedge Angle (Угол выдавливания), задающий угол поворота граней, равен 90, а число создаваемых при этом граней, определяемое параметром Wedge Divisions (Разбиений при выдавливании по дуге), равно 10.
Инструмент Wedge Faces (Выдавить грани по дуге) используется при моделировании таких элементов персонажа, как локтевые и коленные сгибы, а также при построении арок и тоннелей.
Детализацию грани легко повысить с помощью инструмента Poke Faces (Разбиение с выдавливанием). Достаточно выделить нужную грань и выбрать одноименную команду в меню Edit Polygons (Правка полигонов). В центре грани появятся новая вершина и манипулятор преобразования Move (Перемещение), позволяющий переместить ее в нужном вам направлении. Это позволяет формировать на поверхности выпуклости и впадины. Создавая дополнительные детали только в тех областях, где это действительно нужно, вы сохраняете число граней модели минимальным и увеличиваете эффективность своей работы.
Инструмент Bevel (Скос) работает на полигональных сетках таким же способом, как и на NURBS-поверхностях. Впрочем, в этом случае он используется в основном для скругления острых углов. Из выделенного ребра или ребер создаются новые грани. В Maya 6 этот инструмент приобрел ряд новых параметров. Выделите ребро или набор ребер и щелкните на квадратике, расположенном справа от команды Bevel (Скос) в меню Edit Polygons (Правка полигонов). Ползунок Offset Distance (Величина смещения) задает расстояние от выделенного ребра до центра новой грани. По существу, он определяет размер скошенного угла. Параметр Segments (Сегментов) указывает количество сегментов, формирующих скос. Чем выше его значение, тем более гладким получится скругление. Оставив этому параметру заданное по умолчанию значение 1, вы получите всего одну дополнительную грань.
Параметр Roundness (Скругление) определяет, насколько круглым будет угол. Присвоение ему слишком больших значений приведет к «вспучиванию» поверхности (рис. 5.3), хотя в некоторых случаях именно такой результат и требуется.
Рис. 5.3. Результат задания слишком большого значения параметра Roundness
Вы можете положиться на выбор программы, позволив ей задать значение параметра Roundness (Скругление) в соответствии с размером геометрии, на которой формируется скос. Для этого достаточно установить флажок Auto Fit (Автоматический подбор).
Инструмент Bevel (Скос) используется для скругления ребер, а в некоторых случаях и для создания дополнительных деталей.
Рассмотрим процесс формирования кисти руки из простого полигонального куба.
Создайте новый проект с названием Poly_Hand или скопируйте его на жесткий диск своего компьютера из папки ChapterFiles\Poly_Hand прилагаемого к книге компакт-диска.
1. Создайте полигональный куб и откройте для него окно диалога Attribute Editor (Редактор атрибутов). На вкладке Polycubel введите в поля Subdivisions Width (Разбиений по ширине) и Subdivisions Depth (Разбиений по глубине) значения 4 и 3 соответственно. Если вы не видите этой вкладки в окне диалога Attribute Editor (Редактор атрибутов), выделите куб и нажмите клавишу Delete. Затем нажмите кнопку Construction History (История конструирования) в строке состояния и создайте куб заново.
2. Перейдите на вкладку pCubel и введите в поле Scale (Масштабирование) для координат У и Z значения 0,25 и 1,3 соответственно. Результат этого преобразования показан на рис. 5.4.
Рис. 5.4. Подготовка полигонального куба к процессу формирования кисти руки
3. Нажмите клавишу F8 для перехода в режим редактирования подобъектов и нажмите кнопку Select by Component Type: Faces (Выделение подобъектов типа: Грани) в строке состояния. Можно также щелкнуть на кубе правой кнопкой мыши и выбрать в появившемся меню команду Face (Грань). Впрочем, на первых порах лучше пользоваться кнопками в строке состояния, чтобы привыкнуть к интерфейсу.
4. Выделите переднюю грань ближайшего к вам угла, щелкнув на голубом маркере, находящемся в ее центре. Пальцы будут формироваться выдавливанием. Но перед этим слегка поверните грань вокруг оси Y, чтобы расположить указательный палец под небольшим углом к ладони.
5. Выберите в меню Edit Polygons (Правка полигонов) команду Extrude Face (Выдавить грань) и введите в поле Local Translate I (Локальное смещение по оси Т) окна диалога Channel Box (Окно каналов) значение 0,4. Это будет первый сегмент указательного пальца. Таким же способом получите второй сегмент. При третьем выдавливании введите в поле Local Translate I (Локальное смещение по оси Т) значение 0,3. Результат этой операции показан на рис. 5.5.
Сохраните сцену. Сравнить полученный результат с нашей версией можно, загрузив файл poly_hand_vl.mb из папки ChapterFHes\Poly_Hand\scenes прилагаемого к книге компакт-диска.
6. Повторите шаги 4 и 5 для формирования еще трех пальцев. Благодаря предварительному повороту грани между пальцами появятся небольшие зазоры (рис. 5.6). Если же этого не сделать, пальцы будут плотно сжаты, как будто находятся в рукавице. Параметры выдавливания для каждого из них приведены в табл. 5.1.
Рис. 5.5. Указательный палец
Рис. 5.6. Рука после создания четырех пальцев
Палец |
Первое выдавливание |
Второе выдавливание |
Третье выдавливание |
Средний |
0,45 |
0,45 |
0,3 |
Безымянный |
0,45 |
0,4 |
0,3 |
Мизинец |
0,35 |
0,3 |
0,3 |
Модель руки с четырьмя пальцами содержится в файле poly_hand_v2.mb.
7. Осталось сформировать большой палец. Для этого сначала потребуется сдвинуть пару ребер, оставив свободное место. Выделите три ребра со стороны указательного пальца и слегка переместите их в положительном направлении оси Z (рис. 5.7). В результате появится вытянутая грань для большого пальца.
Рис. 5.7. Создание продолговатой грани для большого пальца
8. Выделите продолговатую грань сбоку, затем щелкните на объекте правой кнопкой мыши и выберите в появившемся меню команду Edge (Ребро). При нажатой клавише Shft выделите ребро на правой стороне этой грани (рис5 8)
Рис. 5.8. Подготовка к применению инструмента Wedge Faces
9. Щелкните на квадратике, расположенном справа от команды Wedge Faces (Вывдавит грань по дуге) в меню Edit Poligons (Правка полигонов). Введите в поле Wedqe Angle (Угол выдавливания) значение 65, а в поле Wedge Divisions (Разбиений при выдавливании подуге) - значение 5 и щелкните на кнопке Wedge Face (Выдавить по дуге). Убедитесь в том, что выдавленная грань по-прежнему выделена, и уменьшите ее масштаб по оси Х примерно в двое. Затем слегка поверните еепо направлению к руке, как показано на изображении слева.
10. Дважды воспользуйтесь функцией Extrude Face (Выдавить грань), в первый раз введя в поле Local Translate Z (Локальное смещение по оси Z) значение 0,5 , а во второй раз - 0,4. Пока рука выглядит несколько неуклюже, особенно в области большого пальца (на рисунке справа).
11. Выделите грани в нижней части большого пальца и с помощью преобразований Move (Переместить)и Rotate (Повернуть) сделайте эту область более круглой. Затем по очереди выделяйте кончики пальцев и слегка уменьшайте их масштаб, чтобы придать им более естественную, заостренную форму.
12. Выделите ребра мизинца и немного уменьшите их масштаб. Ведь этот палец обычно тоньше остальных.
13. По очереди выделяйте ребра в области центрального сустава каждого из пальцев и слегка увеличьте их масштаб по оси X, так как пальцы человека в этом месте немного расширяются. Полученный результат показан на рис. 5.9.
Рис. 5.9. Рука с более пропорциональными пальцами и суставами
14. Теперь увеличим детализацию руки, сделав суставы слегка выступающими. Для этого потребуются дополнительные вершины. Их можно получить с помощью инструмента Split Polygon Tool (Инструмент разбиения полигонов). Вернитесь в режим выделения объектов и выделите руку. Выберите в меню Edit Polygons (Правка полигонов) команду Split Polygon Tool (Инструмент разбиения полигонов). Указатель мыши изменит свою форму. Щелкните на ребре в нижней части указательного пальца, а затем — на противоположном ребре, как показано на левом изображении.
15. Если теперь нажать клавишу Enter, линия превратится в новое ребро. Но пока вы находитесь в режиме работы с инструментом Split Polygon Tool (Инструмент разбиения полигонов), поэтому создайте еще три точки, расположенные вдоль тыльной стороны ладони, как показано на правом изображении.
16. Нажмите клавишу Enter, и на тыльной стороне ладони появятся четыре новых ребра и, следовательно, четыре новые грани. По очереди выделяйте каждую из них и выбирайте в меню Edit Polygons (Правка полигонов) команду Poke Faces (Разбиение с выдавливанием). После каждого выполнения этой команды соответствующая грань будет разбита на четыре части, с вершиной посередине. Появится также специальный манипулятор, который требуется слегка переместить вверх по оси Z. Полученный результат показан на рис. 5.10.
17. Теперь желательно сделать руку более гладкой. Выделите ее и щелкните на квадратике, расположенном справа от команды Smooth (Сгладить) в меню Polygons (Полигоны). Введите в поле Subdivision Levels (Уровни разбиения) значение 2, остальные параметры оставьте без изменений.
Рис. 5.10. Результат формирования суставов с помощью инструмента Poke Faces
18. Щелкните на кнопке Smooth (Сгладить), и рука приобретет более естественный вид. Обратите внимание на число узлов в области INPUTS (Входные данные) окна диалога Channel Box (Окно каналов) (рис. 5.11). Их появление связано с фиксацией истории конструирования в процессе выполнения всех перечисленных
5.11. Сглаженная рука с историей ее создания
в упражнении действий. В любой момент можно выделить какой-нибудь узел и отредактировать соответствующий элемент в окне диалога Attribute Editor (Редактор атрибутов). Если же вы считаете, что модель полностью готова, выберите в меню Edit (Правка) команду Delete by Type > History (Удалить объекты типа > История).
Сохраните сцену. Чтобы проверить корректность полученной модели, загрузите файл poly_hand_v3.mb с прилагаемого к книге компакт-диска.
Увеличение детализации областей полигональной сеткиКак вы убедились в процессе моделирования руки, увеличение детализации поверхности обязательно сопровождается созданием новых граней. При этом благодаря появлению дополнительных деталей объект приобретает более естественную форму. Рука, показанная на рисунке, тоже создана описанным способом, но она намного более детализирована с помощью инструментов, о которых мы поговорим в этом разделе. Кроме того, у нее были созданы ногти. Наиболее сложные объекты начинаются с самых простых моделей. Требуются только время и усилия пользователя. В Maya существуют несколько способов увеличения детализации полигональной поверхности. |
Инструмент Subdivide (Разбиение) позволяет увеличить детализацию поверхности за счет равномерного деления всех или только выделенных граней. Выделите грань или грани полигональной поверхности и выберите в меню Edit Polygons (Правка полигонов) команду Subdivide (Разбиение). Щелчок на квадратике, расположенном справа от этой команды, открывает окно диалога с ее параметрами, в котором можно с помощью ползунка Subdivision Levels (Уровни разбиения) указать уровень разбиения поверхности. Раскрывающийся список Mode (Режим) позволяет выбрать между четырехугольными (изображение слева) и треугольными (изображение справа) гранями.
С помощью этого инструмента вы можете подвергнуть разбиению даже ребра. При этом грани разбиению подвергаться не будут. Эта операция предназначена, скорее, для изменения формы граней путем перемещения вновь созданных ребер.
Инструмент Subdivide (Разбиение) позволяет увеличивать детализацию в нужных вам областях поверхности. Он находит более широкое применение, чем инструмент Poke Faces (Разбиение с выдавливанием), создающий детали в крайне ограниченной области.
Для увеличения детализации поверхности применяется также инструмент Split Polygon Tool (Инструмент разбиения полигонов), действие которого вполне описывается его названием. После выбора одноименной команды в меню Edit Polygons (Правка полигонов) указатель мыши приобретает форму треугольной стрелки. Останется выделить две точки на разных ребрах одной грани, и появится новое ребро, делящее грань на две половины.
Нажмите клавишу Enter, чтобы завершить создание ребра, или продолжите выделение новых точек. В Maya 6 появился альтернативный способ завершения работы с этим инструментом. Вместо нажатия клавиши Enter можно щелкнуть правой кнопкой мыши. Это ускоряет процесс создания новых ребер.
Таким образом, инструмент Split Polygon Tool (Инструмент разбиения полигонов) представляет собой быстрый и точный способ увеличения детализации поверхности.
Инструмент Cut Faces Tool (Инструмент разрезания граней) разрезает полигональную поверхность путем создания на ней набора ребер. Затем происходит разделение по линии разреза, причем одна из частей может быть удалена (рис. 5.12).
Рис. 5.12. С помощью инструмента Cut Faces Tool можно разделить объект на части или просто
отрезать одну из частей
Для применения этого инструмента достаточно выбрать в меню Edit Polygons (Правка полигонов) команду Cut Faces Tool (Инструмент разрезания граней). Установка флажка Delete the Cut Faces (Удалить отрезаемые грани) в окне диалога Polygon Cut Face Tool Options (Параметры инструмента разрезания полигонов) приведет к тому, что отрезанная часть просто исчезнет.
Инструмент Cut Faces Tool (Инструмент разрезания граней) позволяет создать прямую границу поверхности путем обрезки лишних фрагментов.
Чтобы скопировать одну или несколько граней, выделите их и выберите в меню Edit Polygons (Правка полигонов) команду Duplicate Face (Продублировать грань). Появившийся в результате манипулятор можно использовать для перемещения, масштабирования или поворота скопированных граней.
Инструмент Extract (Извлечь) отличается от инструмента Extrude (Выдавить) тем, что не создает дополнительных граней. Выделив грань или грани и выбрав в меню Edit Polygons (Правка полигонов) команду Extract (Извлечь), вы обособите их ребра и вершины от соседних граней. Если установить флажок Separate Extracted Faces (Отделить извлеченные грани) в окне диалога Extract Options (Параметры извлечения), извлеченные грани станут отдельным полигональным объектом. В противном случае они останутся частью исходной модели.
Инструмент Extract (Извлечь) применяется для формирования в объекте отверстий с сохранением исходных граней. В комбинации с инструментом Split Polygon Tool (Инструмент разбиения полигонов) он позволяет создать очертания произвольной формы.
Инструмент Smooth (Сгладить), вызываемый одноименной командой меню Edit Polygons (Правка полигонов), равномерно разбивает полигональную поверхность целиком (или только выделенные грани) с целью сглаживания формы объекта.
Инструменты модуля Artisan (Кисти) можно использовать и для придания формы полигональным поверхностям. В данном случае применяется уже знакомый вам по предыдущей главе метод. Нужно выделить полигональный объект и щелкнуть на квадратике, расположенном справа от команды Sculpt Polygon Tool (Создание рельефа на полигональной поверхности). Вы увидите уже знакомые вам параметры и форму указателя мыши. Основным отличием работы с полигональными сетками является поведение поверхности. Если деформации NURBS-сферы были довольно гладкими, то полигональная сфера станет ступенчатой (рис. 5.13). Для получения сглаженной поверхности требуется увеличить число ее разбиений.
Рис. 5.13. Деформация поверхности с помощью инструмента Sculpt Polygon Tool
В этом разделе вам предстоит применить на практике следующие техники:
выдавливание; дублирование объектов; перемещение опорной точки; получение поверхностей методом вращения; формирование сложной иерархии объектов.
Мы создадим довольно сложную на вид модель, не применяя ничего, кроме полигонов. В качестве опорных изображений будут использованы карандашные наброски. При моделировании такого комплексного объекта, как катапульта, без подробного плана не обойтись. Планирование включает исследование предмета, поиск информации по теме в Интернете, сбор фотографий объекта или ваши собственные зарисовки.
Начните с создания нового проекта с именем Catapult или скопируйте уже существующий проект из папки ChapterFiles\Catapult прилагаемого к книге компакт-диска. Если вы решите воспользоваться вторым методом, выберите в меню File > Project (Файл > Проект) команду Set (Задать) и выделите в появившемся окне диалога папку Catapult. Если этого не сделать, визуализированные изображения и файлы со сценами будут сохранены в папку предыдущего проекта Poly_Hand. Когда вы создаете новый проект, Maya автоматически делает его текущим. Не забывайте также о возможности сохранения файлов с инкрементными именами.
В данном случае все наброски уже сделаны, вам остается только внимательно их изучить.
В главе 8 модель катапульты будет анимирована. О возможности анимации нужно помнить в процессе создания любого объекта, особенно если его элементы группируются. Корректное выстраивание иерархии крайне важно для правильной анимации. В этом упражнении вы будете систематизировать компоненты катапульты с помощью окна диалога Outliner (Структура).
Рис. 5.14. Набросок катапульты
Рис. 5.15. Схематичное изображение катапульты
Сложные объекты принято моделировать по частям. Разделим катапульту на пять основных элементов, каждый из которых, в свою очередь, состоит из подобъек-тов:
основание; колеса; опора рычага; лебедка; рычаг катапульты.
Смоделируйте каждый из этих элементов, взяв за основу набросок, показанный на рис. 5.14, и схему с рис. 5.15.
Основание катапульты состоит из соединенных друг с другом полигональных кубов, изображающих деревянные балки.
1. Выберите в меню Create (Создать) команду Polygon Primitives > Cube (Полигональный примитив > Куб). Этот куб послужит основой для двух длинных широких брусков, лежащих параллельно друг другу.
2. Введите в поля Scale X (Масштабирование по оси X), Scale Y (Масштабирование по оси Y) и Scale Z (Масштабирование по оси Z) окна диалога Channel Box (Окно каналов) значения 2, 0,8 и 19,5 соответственно. Сместите полученный объект на две единицы вправо.
3. Одна сторона основания готова. Выделите ее и выберите в меню Edit (Правка) команду Duplicate (Дублировать). Копия по умолчанию располагается поверх оригинала. В данный момент она выделена. Переместите ее на четыре единицы влево.
4. Осталось сделать перемычки. Создайте полигональный куб и введите в поля Scale X (Масштабирование по оси X), Scale Y (Масштабирование по оси Y) и Scale Z (Масштабирование по оси Z) окна диалога Channel Box (Окно каналов) значения 7,25,0,6 и 3,25, соответственно. Поместите новый объект поверх платформы, передвинув его в положительном направлении оси Z практически в конец основания катапульты.
5. Создайте еще один куб и введите в поля Scale X (Масштабирование по оси X), Scale Y (Масштабирование по оси Y) и Scale Z (Масштабирование по оси Г) значения 6,5, 0,6 и 1,2 соответственно. Поместите его поверх опор в другом конце основания. Продублируйте этот куб и переместите копию в положительном направлении оси Z примерно на треть свободного расстояния.
Теперь нужно добавить такую деталь, как болты, удерживающие составные части основания вместе. Вы познакомитесь с двумя способами создания подобных объектов, увидев на примере, что даже простые задачи имеют несколько вариантов решения. Болты представляют собой верхние части сфер, помещенные в месте пересечения элементов основания (рис. 5.16).
Рис. 5.16. Основание катапульты с болтами
Сохраните файл. Готовая версия основания катапульты находится в файле catapult_vl.mb на прилагаемом к книге компакт-диске. А вот как может выглядеть процесс создания болтов:
Создайте полигональную сферу. В окне проекции Front (Вид спереди) в режиме редактирования граней выделите нижние две трети сферы и удалите их. Продублируйте полученный объект нужное число раз и поместите на пересечении элементов основания. Обрезать нижнюю часть полигональной сферы можно и с помощью инструмента Cut Faces Tool (Инструмент разрезания граней). Выделите сферу и щелкните на квадратике, расположенном справа от одноименной команды в меню Edit Polygons (Правка полигонов). Установите флажок Delete the Cut Faces (Удалить отрезаемые грани) в появившемся окне диалога.
6. Сгруппируйте элементы основания катапульты и болты в логическом порядке (см. рис. 5.16).
ВНИМАНИЕ
Время, потраченное на систематизацию объектов сцены, окупиться позднее, при их анимации.
Основание лебедки
Смоделируем блок, предназначенный для закрепления лебедки:
1. Создайте два длинных узких полигональных куба и поместите их поперек перекладин основания.
2. Для удерживающих лебедку кронштейнов создайте небольшой полигональный куб. Введите в поля Scale X (Масштабирование по оси X),
Scale Y (Масштабирование по оси Y) и Scale Z (Масштабирование по оси Z) значения 0,5, 0,32 и 0,44 соответственно. Выделите боковую грань и выберите в меню Edit Polygons (Правка полигонов) команду Extrude Face (Выдавить грань). Введите в поле Local Translate Z (Локальное смещение по оси Z) окна диалога Channel Box (Окно каналов) значение 0,75.
3. Выделите верхнюю грань и выдавите ее. На этот раз в поле Local Translate Z (Локальное смещение по оси Z) нужно ввести значение 1,54. В результате объект примет L-образную форму. Выделите две внутренние вершины наверху формы и перемещайте их вверх, пока не получите угол 45°.
4. Выделите угловую грань и откройте окно диалога Extrude Face Options (Параметры выдавливания грани). Введите в поле Translate (Переместить) в разделе Global Values (Глобальные значения) значение -1,55 для Z-координаты. В результате выделенная грань будет выдавлена вбок, в то время как с помощью манипулятора вы бы выдавили ее вверх. Затем воспользуйтесь преобразованием Rotate (Повернуть), чтобы повернуть эту грань вниз.
5. Убедитесь в том, что направленная вниз скошенная грань по-прежнему выделена, и снова откройте окно диалога Extrude Face Options (Параметры выдавливания грани). Введите в поле Translate (Переместить) в разделе Global Values (Глобальные значения) значение -1,54 для Y-координаты, а значение для Z-координаты сделайте равным 0. В результате грань будет выдавлена строго вниз. Чтобы убрать скос, выделите две внешние вершины и переместите их вниз. В данном случае преобразование Rotate (Повернуть) приведет к появлению раструба, поэтому лучше переместить вершины.
6. Выделите конечную грань и снова откройте окно диалога Extrude Face Options (Параметры выдавливания грани). Выберите в меню Edit (Правка) этого окна команду Reset Settings (Сбросить настройки), чтобы вернуть заданные по умолчанию значения данного инструмента. Щелкните на кнопке Extrude Face (Выдавить грань) и с помощью манипулятора опускайте грань, пока не выровняете ее с нижней частью уже существующего основания. Проверьте в окне диалога Channel Box (Окно каналов) значение параметра Local Translate Z (Локальное смещение по оси Z). Оно должно составлять примерно 0,315.
7. Выделите внешнюю грань только что полученного фрагмента и выдавите ее вбок, присвоив параметру Local Translate Z (Локальное смещение по оси Z) значение 0,75, чтобы сформировать второй фланец и завершить построение одного из удерживающих лебедку кронштейнов. Поместите готовый кронштейн на один из брусков основания, а поверх фланцев расположите дубликаты удерживающих болтов. Продублируйте кронштейн и болты и поместите копии на второй брусок основания (рис. 5.17).
Рис. 5.17. Готовое основание с кронштейнами для лебедки
8. Выделите все элементы одного из кронштейнов и выберите в меню Edit (Правка) команду Group (Группировать). Присвойте полученной группе имя Bracket. Повторите процедуру для второго кронштейна. Затем выделите верхний узел кронштейна и его основание и создайте новую группу с именем Winch_baseboard. Повторите процесс для второго кронштейна и его основания.
Опорные клинья
Осталось смоделировать опорные противооткатные клинья, расположенные в основании катапульты. Они втыкаются в землю, удерживая катапульту на месте при выстреле.
1. Скопируйте группу Bracket и удалите копию из текущей иерархии, перетащив ее средней кнопкой мыши в окне диалога Outliner (Структура) на другое место (рис. 5.18).
2. Уменьшите размер кронштейна, а затем переместите и поверните его таким образом, чтобы он оказался на боковой стороне катапульты. Создайте полигональный куб и поменяйте его масштаб таким образом, чтобы он уместился внутри кронштейна. Вытяните его вдоль оси F, введя в поле Scale Y (Масштабирова-
ние по оси Y) значение 3,75, и «заострите» клин, выдавив нижнюю грань и уменьшив ее размер. Масштабирование без предварительного выдавливания приведет к формированию пирамиды, а не заостренного кола. Продублируйте группу, поверните ее на 180° и переместите на другую сторону катапульты. Сохраните сцену. Полученный объект показан на рис. 5.19. Для сравнения вы можете загрузить файл catapult_v2.mb с прилагаемого к книге компакт-диска.
Рис. 5.18. Для удаления узла
из группы достаточно
перетащить его средней
кнопкой мыши за ее
пределы
Приступим к созданию колес:
1. Первым элементом, который требуется смоделировать, является ось. Выберите в меню Create (Создать) команду Polygon Primitives > Cylinder (Полигональные примитивы > Цилиндр). Дважды продублируйте кронштейн и поместите копии под основанием, как показано на рисунке. Не забудьте убрать их из исходной иерархической цепочки. Уменьшите размер цилиндра таким образом, чтобы он поместился внутри кронштейнов, и передвиньте его вниз.
Рис. 5.19. Готовое основание катапульты
2. Моделирование колеса начнем с создания NURBS-кривой, которая послужит профилем вращения. Щелкните на квадратике, расположенном справа от команды CV Curve Tool (Построение CV-кривой) в меню Create (Создать), и установите переключатель Curve Degree (Порядок кривой) в положение 1 Linear (Линейная).
Это связано с тем, что кривая-профиль для колеса (рис. 5.20) не содержит криволинейных фрагментов. Крайне важно, чтобы верхняя часть кривой содержала именно три интервала. Опорную точку поместите на расстоянии примерно три четверти квадратика координатной сетки под кривой.
Рис. 5.20. Кривая-профиль для колеса
3. Выделите кривую и щелкните на квадратике, расположенном справа от команды Revolve (Вращение) в меню Surfaces (Поверхности). Установите переключатель Axis Preset (Предустановленная ось) в положение X и введите в поле Segments (Сегментов) значение 20. Это увеличит степень сглаживания модели. Переключатель Output Geometry (Выходная геометрия) установите в положение Polygons (Полигоны), а появившийся после этого переключатель Tessellation Method (Метод разбиения) — в положение Control Points (По управляющим точкам). В результате ребра будут созданы вдоль управляющих точек кривой. Щелкните на кнопке Revolve (Повернуть), и колесо готово. Удалите историю конструирования и исходную NURBS-кривую, так как эти элементы вам уже не пригодятся. Выберите в меню Modify (Изменить) команду Center Pivot (Центрировать опорную точку), чтобы поместить опорную точку в центр нового объекта.
4. Итак, объект готов. Создадим для него дополнительные детали. Продублируйте один из болтов и удалите копию из группы, к которой она принадлежит. Создайте еще несколько копий и распределите их по переднему ободу колеса.
5. Добавьте пару скоб, расположив их под и над осью. Скобами послужат два тонких, вытянутых полигональных куба.
Выделите все объекты и нажмите комбинацию клавиш Ctrl+g. Она соответствует команде Group (Сгруппировать) из меню Edit (Правка). Присвойте новой группе имя Wheel. Насадите колесо на ось.
6. Наличие на ободе зубцов сделает колесо более реалистичным. Ведь катапульту на таких колесах намного проще катить по грязи. Благодаря наличию разбиений вдоль обода построение зубцов не составит труда. При нажатой клавише Shift выделите каждую вторую грань в центре обода и выдавите их на четверть их длины. Затем с помощью преобразования Scale (Масштабирование) уменьшите их размер одновременно по осям X и Z.
7. Скопируйте узел Wheel, поверните его на 180° относительно оси Ун поместите с другой стороны от основания. Сгруппируйте два колеса и ось и присвойте новой группе имя Rear_Wheel. Позднее вы анимируете этот узел и заставите колеса вращаться.
8. Выделите узел Rear_Wheel и два поддерживающих колесную ось кронштейна (узел Axle_Brackets) и нажмите комбинацию клавиш Ctrl+d. Переместите копии в переднюю часть катапульты.
9. Добавьте новые узлы кронштейнов и колеса в группу узла Catapult. Для этого достаточно перетащить их средней кнопкой мыши в окне диалога Outliner (Структура) на упомянутый узел. Сохраните сцену.
Готовое основание с колесами вы найдете в файле catapult_v3.mb на прилагаемом к книге компакт-диске.
Чтобы оттянуть назад рычаг катапульты и привести его в боевую позицию, потребуется лебедка, которая будет наматывать канат. Но так как анимация каната является довольно нестандартным заданием, с которым вряд ли справятся новички, мы обойдемся без этого элемента.
1. Построение лебедки мы начнем со шкива, вокруг которого наматывается канат. Создайте кривую-профиль, как вы это уже делали при моделировании колеса. Опорную точку кривой поместите на первую управляющую вершину. Щелкните на квадратике, расположенном справа от команды Revolve (Вращение) в меню Surfaces (Поверхности), и введите в поле Segments (Сегментов) значение 12. Щелкните на кнопке Revolve (Повернуть). Центрируйте опорную точку полученного объекта.
2. Поместите шкив в заднюю часть катапульты. Находящиеся там кронштейны должны располагаться в углублениях шкива.
3. Теперь нам потребуется колесо с ручкой, которое будет приводить катапульту в боевое положение:
Создайте полигональный цилиндр и поверните его на бок. Введите в поля Scale X (Масштабирование по оси X), Scale Y (Масштабирование по оси Y) и Scale Z (Масштабирование по оси Z) окна диалога Channel Box (Окно каналов) значения 1,4, 0,4 и 1,4 соответственно. Создайте еще один полигональный цилиндр и тоже поверните его на бок. Измените его масштаб таким образом, чтобы получилась длинная тонкая палка. Это первый из восьми зубцов будущей шестерни. Поместите его в верхней части колеса, а его опорную точку переместите в центр колеса. Последнюю операцию лучше выполнять в режиме привязки к точке. Вместо того чтобы дублировать зубцы и распределять их по колесу вручную, воспользуемся возможностью создания массива. Выделите зубец и щелкните на квадратике, расположенном справа от команды Duplicate (Дублировать) в меню Edit (Правка). Введите в поле Rotate (Повернуть) значение 45 для Х-координаты, а в поле Number of Copies (Число копий) —значение 7. Так как опорная точка зубца располагается в центре колеса, как только вы щелкнете на кнопке Duplicate (Дублировать), на окружности появятся семь копий зубца с интервалом 45°. Создание рукоятки начните с полигонального куба с разбиением, достаточным для создания показанного на рисунке объекта путем перемещения вершин. Создайте также два цилиндра и поместите их на указанное место. Сгруппируйте все созданные объекты и присвойте новой группе имя Turn_ Wheel. Центрируйте ее опорную точку. Поместите группу на конце ворота. С другой стороны поместите ее копию, повернутую на 180°.
ПРИМЕЧАНИЕ
Перед каждым использованием команды Duplicate (Дублировать) желательно возвращать ее параметры к заданным по умолчанию значениям. Ведь Maya сохраняет указываемые пользователем параметры. Поэтому, например, при следующем вызове этой команды по умолчанию будет создан круг из восьми объектов, расположенных под углом 45° друг к другу.
4. Теперь нужно оснастить ворот зубчатой передачей. Создайте полигональный цилиндр и поместите его на конце ворота, между двумя зубцами вращающегося колеса. В режиме привязки передвиньте опорную точку в центр ворота. Для последней операции может потребоваться на время убрать вращающееся колесо в сторону.
5. Продублируйте новый зубец семь раз и расположите копии по окружности ворота с интервалами 45°. Выделите все зубцы, создайте их дубликаты и переместите набор полученных копий на другую сторону ворота. Не забывайте о необходимости возвращать параметры инструмента Duplicate (Дублировать) к заданным по умолчанию значениям. Объедините ворот и вращающиеся колеса в группу и присвойте ей имя Winch. Центрируйте опорную точку этой группы. 6. Создайте пару полигональных кубов и сделайте на их основе опору лебедки, расположив верхнюю часть между заводной рукояткой и колесом, а нижнюю соединив с основанием (рис. 5.21). Продублируйте опору и поместите ее с другой стороны. Сохраните сцену.
Рис. 5.21. Готовый поворотный механизм
Авторская версия сцены находится в файле catapult_v4.mb на прилагаемом к книге компакт-диске.
Теперь попытайтесь самостоятельно создать рычаг катапульты, показанный на рис. 5.22. Используйте уже знакомые вам техники.
1. Рычаг на первый взгляд имеет замысловатую форму, но ее довольно просто воспроизвести выдавливанием граней. Используйте в качестве наглядного пособия рис. 5.23. Он позволит вам определить количество разбиений при каждой операции выдавливания.
2. Продублируйте нужное количество раз головки болтов и разместите их по периметру корзины для снаряда.
3. Смоделируйте перемычки для корзины. Это намного проще чем кажется HI первый взгляд. Нужно лишь создать кубы и произвести операцию выдавливания с нужным количеством разбиений, чтобы появилась возможность согнуть их и переплести друг с другом (рис. 5.24.). Загнуть концы перемычек можно с помощью операций обычного выдавливания и выдавливания по дуге.
Рис. 5.22. Рычаг катапульты
Рис. 5.23. Схема разбиений модели
Рис. 5.24. Перемычки корзины
4. Из пары продублированных кронштейнов и цилиндра создайте опору для рычага.
5. Подпорку смоделируйте последовательным выдавливанием граней куба. В качестве наглядного пособия используйте рис. 5.25.
Рис. 5.25. Схема разбиений опоры для рычага
6. Сгруппируйте все созданные объекты и сделайте новую группу дочерней по отношению к узлу Catapult.
Сохраните сцену и сравните полученный результат с объектом из файла catapult_ vS.mb. Готовая модель катапульты показана на рис. 5.26.
На основе полигональных сеток можно создать самые разные объекты. Чтобы закрепить полученные знания и приобрести дополнительный опыт по использованию соответствующего инструментария, попытайтесь самостоятельно смоделировать следующие предметы:
Обеденный стол и стулья. Начните с этой, тривиальной модели. Свобода выбора дизайна позволяет выбрать доступный уровень сложности. Монитор. Наличие углов и других деталей поверхности дает возможность применить операцию выдавливания и попрактиковаться в последующей обработке граней. Настольная лампа или торшер. Сам по себе этот объект моделируется крайне просто, поэтому постарайтесь сделать его как можно более детализированным.
Рис. 5.26. Готовая катапульта
Автомобиль. Это упражнение — настоящий вызов вашим способностям. Начните с максимально простой модели и постепенно увеличивайте количество деталей. На первых порах достаточно придать объекту очертания автомобиля, не заботясь об открывающихся дверях и окнах. Различные части автомобиля имеют разные грани, поэтому данное упражнение является замечательной возможностью попрактиковаться в редактировании этих подобъектов. Полигональные куски, формирующие кузов автомобиля, имеет смысл создать с помощью инструментов для работы с NURBS-поверхностями.
Создание сложных моделей значительно упрощается после разбиения их на базовые элементы. Впрочем, даже простые объекты допустимо разбить на отдельные сегменты, из которых потом будет составлена модель.
Искусству моделирования на основе сеток полигонов в Maya нет аналогов. Его техника и последовательность действий совершенствуются со временем. И важно не столько знание всех хитростей производства, сколько понимание подхода к моделированию и умение превратить модель в сетку полигонов.