После того как в предыдущей главе мы бросили беглый взгляд на процесс создания анимации в Maya, пришло время детально разобрать все стадии этого процесса: моделирование объектов, назначение материалов, освещение сцены, анимацию и визуализацию. В этой главе мы поговорим о первой стадии, то есть о моделировании. Оно является основой создания сцен в Maya. Какой бы проект вы ни создавали, первым шагом будет лепка в виртуальном пространстве каждого из объектов, фигурирующих в этом проекте. Моделированием в компьютерной графике называется процесс создания поверхностей объектов.
Также в этой главе пойдет речь о более профессиональном подходе к использованию меню оперативного доступа, клавиатурных комбинаций и настраиваемых контекстных меню объектов. В отличие от программ трехмерного моделирования, ориентированных на любителей, Maya имеет не полностью заданную конфигурацию. Профессионалы обычно пользуются меню оперативного доступа и предпочитают создавать новые клавиатурные комбинации в дополнение к уже существующим. Контекстные меню объектов относятся к нововведениям, существенно ускоряющим работу над сценой. В главе 14 мы покажем, как создать собственные контекстные меню.
А теперь перечислим методики и понятия, информацию о которых вы получите в этой главе.
В этой главе вы получите начальные сведения о моделировании на основе NURBS-кривых в Maya и узнаете о методах работы с различными типами объектов. Понимание принципов моделирования облегчает процесс создания объектов и делает его более эффективным. Maya предлагает такое множество разнообразных функций и инструментов для работы в этой области, что вам не придется скучать!
Ключевые термины
Узел (Node). Базовый элемент сцены, хранящий информацию об атрибутах объекта, то есть о наборе переменных, определяющих его свойства. Атрибуты узла могут быть связаны с другими узлами, образуя целую сеть. При работе в Maya вам постоянно придется создавать новые узлы, связывать их друг с другом, оценивать и удалять ненужные. Неоднородный рациональный В-сплайн (NURBS). Тип сплайна, имеющего управляющие точки, расположенные на кривой сплайна или за ее пределами. Кривые сплайнов данного типа могут применяться для формирования поверхностей, также определяемых управляющими точками.
Сплайн (Spline). Линия, кривизна которой определяется управляющими точками.
Направление поверхности (Surface direction). NURBS-поверхность всегда имеет наружную и внутреннюю стороны, что дает возможность говорить о направлении поверхности, определяемом координатами U и V. Кривые также имеют направление. Ошибка в его выборе может стать причиной проблем.
Нормаль (Normal). Вектор, направленный перпендикулярно поверхности. Объекты создаются на основе поверхностей, которые представляют собой бесконечно тонкие листы, одна сторона которых определена как наружная, а другая — как внутренняя. Наружной считается сторона, из которой исходит вектор нормали.
В компьютерной графике существует два подхода к моделированию объектов: на основе полигональных сеток и на основе NURBS-кривых. Большинство программ для создания трехмерной анимации работает только с полигонами. В Maya кроме этого используется более сложная и мощная система моделирования, которая основана на неоднородных рациональных сплайнах Безье (NURBS, Non-Uniform Rational Bezier Splines). Созданная таким способом поверхность похожа на трехмерный искривленный лист в пространстве. Существуют ограничения на их построение, соединение друг с другом и деление на части, но в принципе это очень гибкие объекты. Основное их преимущество состоит в том, что в Maya они остаются чистыми кривыми, то есть математическими конструкциями. Уровень детализации получаемых на их основе поверхностей можно указывать как в окне проекции, так и при визуализации. Грубую огранку объектов, возникающую при попытке создать искривленную поверхность из полигональной сетки, легко можно убрать при работе с NURBS-поверхностями. Достаточно увеличить уровень детализации.
Моделирование на основе NURBS-кривых не сводится к соединению друг с другом отдельных фрагментов. В отличие от полигонов, имеющих фиксированную форму, в NURBS-моделировании трехмерные объекты создаются из кривых и поверхностей, что предоставляет неограниченные возможности их использования. Если вам нравится проектирование архитектуры и решение различных задач, то вы определенно почувствуете вкус к NURBS-моделированию.
Попробуем дать вам представление о природе неоднородных рациональных В-сплайнов. Их можно рассматривать как разновидность сплайна, используемого для определения кривых, которые лежат в основе математической структуры, задающей вид NURBS-поверхности. В этой главе мы покажем вам основные приемы работы с объектами данного типа, не пускаясь в глубокие теоретические изыскания. Обучаться компьютерному моделированию лучше всего методом проб и ошибок, поэтому в данной главе вы получите возможность на практике исследовать природу изучаемого объекта. Чтобы облегчить вам запоминание большого количества деталей, мы будем по ходу дела упоминать все команды, клавиатурные комбинации, поля, значения и прочие необходимые подробности. По мере чтения книги такие подсказки будут требоваться вам все реже и реже, но на начальном этапе вряд ли возможно без этого обойтись.
Преимущества моделирования на основе NURBS-кривых
Каждая из методик моделирования имеет свои сильные и слабые стороны, и выбор методики, наилучшим образом соответствующей конкретной задаче, требует немалого опыта в данной области. При выборе метода создания конкретного объекта нужно учитывать несколько факторов. NURBS-кривые хорошо подходят для моделирования объектов органического происхождения, например Животных, растений, фруктов, которые можно строить путем стыковки друг с другом гладких фрагментов поверхности. Также очень удобно использовать NURBS-кривые для построения серийно выпускаемых промышленных изделий, которые одновременно характеризуются точностью исполнения и обтекаемыми формами. К ним относятся транспортные средства, прессованные детали, различные приборы и прочие объекты с искривленными поверхностями, созданные руками человека.
Если вы сомневаетесь в правильности выбора способа моделирования, имейте в виду, что можно начать построение объекта с NURBS-кривых, а затем преобразовать его в сетку полигонов. Эта возможность является одним из основных преимуществ моделирования на основе NURBS-кривых. Например, чтобы освободиться от швов в местах сочленений отдельных частей при создании человеческой фигуры, ее достаточно преобразовать в сетку полигонов и затем связать отдельные фрагменты в единый объект. Благодаря наличию истории создания объекта при редактировании лежащих в основе фигуры NURBS-кривых ее вид будет автоматически изменяться даже после вышеописанного преобразования. Впрочем, моделирование на основе NURBS-кривых имеет и отрицательные стороны. При создании объектов, которые впоследствии должны быть анимированы, можно заметить наличие швов и даже зазоров между отдельными фрагментами NURBS-поверхностей. В результате этой особенности конструирования практически никогда не удается получить монолитный объект. Чтобы избежать упомянутой выше проблемы, приходится очень тщательно сшивать отдельные фрагменты между собой.
Использование NURBS-кривых также приводит к усложнению модели. Наличие большого числа кривых, определяющих поверхность, может заметно усложнить ее редактирование. Кроме того, иногда такие модели оказываются настолько массивными, что с ними невозможно работать в интерактивном режиме. Конечно, в данном случае все зависит от мощности SD-ускорителя компьютера! Другим недостатком использования NURBS-кривых является увеличение времени визуализации. Идеальная математическая кривая, определяющая форму поверхности, должна быть конкретизирована с помощью полигонов, наличие большого количества которых замедляет визуализацию.
В этой главе будет рассмотрен процесс моделирования домика на основе NURBS-кривых. Дом является первым объектом сцены, которую вам предстоит создать в процессе работы над упражнениями нашей книги.
Работу с Maya можно сделать быстрой и эффективной. Наблюдение за работой опытных пользователей создает впечатление магического действа, потому что сцена, словно по волшебству, возникает из ничего при минимальном количестве нажатий клавиш и использовании мыши. Секрет такой быстрой работы состоит в создании контекстных меню, которые помогают увеличить продуктивность и скорость различных действий. Если нажать и удерживать определенные клавиши, нажимая при этом левую кнопку мыши, то появится меню, похожее на компас. Перетаскивание указателя мыши на любую из его команд приводит к ее выполнению. В случае быстрого выполнения описанных действий вы успеете заметить только линию на экране и быстро промелькнувшее имя выполняемой команды.
После нескольких недель работы вы изучите контекстные меню и сможете мгновенно создавать и редактировать объекты. Так как процесс их использования является двухступенчатым (сначала нужно нажать клавиши, а потом сделать вы-эор при помощи указателя мыши), имеет смысл сгруппировать связанные друг с цругом команды таким образом, чтобы их перечень вызывался нажатием одной и гой же комбинации. Например, можно сделать так, чтобы комбинация клавиш Alt+c приводила к переходу в режим редактирования кривых. При этом две наиболее часто используемые в этом режиме команды можно расположить слева и права. В результате нажатия комбинации клавиш Alt+c, сопровождаемого нажатием левой кнопки мыши и перемещением указателя влево, как показано на рис. 5.1, будет быстро включен требуемый режим редактирования. Со временем подобные действия можно научиться выполнять настолько быстро, что со стороны будет невозможно проследить за ними.
Рис. 5.1. Пример пользовательского контекстного меню
При выполнении как упражнений этой главы, так и остальных упражнений, имеющихся в данной книге, можно воспользоваться набором контекстных меню, адаптированных под стоящие перед вам задачи. Кроме того, такие меню можно использовать в качестве отправной точки для создания своих собственных наборов команд. Также увеличить эффективность работы с Maya можно путем изучения имеющихся клавиатурных комбинаций и создания своих собственных. Мы познакомим вас с рядом клавиатурных комбинаций, используемых в дополнение к тем, которые вы применяете при работе с контекстными меню. Посмотрим на процесс их загрузки.
Настройка интерфейса и загрузка контекстных меню
Итак, прежде всего необходимо импортировать контекстные меню и клавиатурные комбинации, полезные для выполнения упражнений этой главы. В главе 14 рассказывается о способах создания пользовательских контекстных меню и связывания их с определенными клавиатурными комбинациями, но в данном случае для экономии времени мы предлагаем вам воспользоваться имеющимися на компакт-диске заготовками.
Обратите внимание, что наши рекомендации рассчитаны на пользователей, работающих с операционными системами семейства Windows. Если вы используете Linux, Mac OS X или IRIX, вы найдете аналогичные папки и файлы на жестком диске вашего компьютера. В случае возникновения вопросов, обратитесь к руководству пользователя.
ПРИМЕЧАНИЕ
Альтернативным способом изменения видимости строк меню является окно диалога Preferences (Параметры), для вызова которого используется команда Window > Setting/Preferences > Preferences (Окно > Настройки/Параметры > Параметры). В списке Categories (Категории) выберите вариант Interface (Интерфейс) и снимите или установите флажки Main Window (В главном окне) и In Panels (В окнах проекции) в разделе Show Menubar (Показывать строку меню). Можно пойти дальше и скрыть даже строку заголовка, но имейте в виду, что это осложнит работу с несколькими приложениями одновременно.
7. Выберите в меню оперативного доступа команду File > Save Preferences (Файл > Сохранить настройки). Упрощенный интерфейс, оптимизированный для выполнения упражнений этой главы, готов к использованию.
Настройка меню оперативного доступа
Первый взгляд на новый вид окна программы Maya может привести в недоумение, потому что теперь, когда почти все элементы интерфейса скрыты, возникает ощущение отсутствия контроля над происходящим. Но на самом деле любой командой по-прежнему можно воспользоваться с помощью меню оперативного доступа. Рассмотрим процесс настройки этого меню.
1. Чтобы убедиться, что вы имеете доступ ко всем меню, нажмите и удерживайте клавишу Пробел, щелкните на команде Hotbox Controls (Элементы управления меню оперативного доступа) и затем выберите вариант Show All (Показать все). Для получения доступа к функции, для которой не задана клавиатурная комбинация или контекстное меню, используйте меню оперативного доступа. Если окажется, что вы раз за разом выбираете в этом меню один и тот же набор команд, имеет смысл назначить им клавиатурные комбинации или собрать их в контекстное меню.
ПРИМЕЧАНИЕ
Если вы работаете с пакетом Maya Unlimited, следует скрыть ряд пунктов меню оперативного доступа, оставив только функции, которые вам предстоит использовать. Выберите в меню оперативного доступа команду Hotbox Controls (Элементы управления меню оперативного доступа) и снимите флажки Show Cloth Menus (Показать меню для работы с тканями) и Show Live Menus (Показать меню «живой камеры»).
2. Выберите в меню оперативного доступа команду File > Save Preferences (Файл > Сохранить настройки).
ВНИМАНИЕ
Если хотя бы одно из окон проекции не является активным, нажатие и удер-жание клавиши Пробел не приведет к появлению меню оперативного доступа. Если поверх окон проекции открыто какое-либо окно диалога, нужно щелкнуть на нужном окне проекции правой кнопкой мыши, чтобы перевести его в активное состояние, не снимая при этом выделение с объектов. Обратите внимание, что в результате вокруг окна появляется синяя рамка.
Перечислим клавиатурные комбинации, использование которых в сочетании с нажатием левой кнопки мыши приводит к появлению загруженных вами контекстных меню.
Контекстное меню | Клавиатурная комбинация |
mfNURBSPrimitives_Press | Ctrl+z |
mfNURBSediting_Press | Alt+z |
mfNURBSsurface_Press | Ctrl+Alt+z |
mfPolygonPrimitives_Press | Ctrl+x |
mfPolygonEditing_Press | Alt+x |
mfCurvesCreation_Press | Ctrl+c |
mfCurvesEditing_Press | Alt+c |
Попробуйте самостоятельно вызвать каждое из них.
А вот перечень клавиатурных комбинаций, которые были добавлены или переназначены.
Функция | Клавиатурная комбинация |
Script Editor (Редактор сценариев) | Shift+S |
Hypergraph (Просмотр структуры) | Shift+H |
Attribute Editor (Редактор атрибутов) | Ctrl+a |
Show/Hide Channel Box (Показать/Скрыть окно каналов) |
Shift+С |
Hypershade (Редактор узлов) | Shift+T |
Outliner (Структура) | Shift+0 |
Toggle the Time Slider on/off (Показать/Скрыть ползунок таймера анимации) |
Alt+t |
Undo (Отменить) | Z |
Visor (Просмотр образцов) | Shift+V |
Клавиатурные комбинации расположены таким образом, чтобы их было удобно нажимать левой рукой. При желании их всегда можно переназначить. Если вы левша, то вам, скорее всего, захочется переназначить также клавиши, управляющие преобразованиями (q, w, e, r). Скорость работы увеличивается, если не приходится постоянно перемещать руку из левой части клавиатуры в правую. В данном случае Требуется научиться нажимать вышеупомянутые клавиатурные комбинации вслепую. По мере изучения материала книги вы будете знакомиться со все новыми и новыми комбинациями.
Первые комбинации клавиш, которые вам предстоит запомнить в этой главе:
Итак, все готово для начала работы над созданием «Мира монстров». Прежде всего вам предстоит на основе простых NURBS-объектов смоделировать дом, в котором будет жить монстр. По мере добавления все новых и новых деталей дом будет становиться все сложнее. Мы не собираемся приводить исчерпывающий список всех инструментов Maya с объяснением возможных вариантов их использования. Для этого существует руководство пользователя. Но назначение основных инструментов станет понятным в процессе обучения работе с программой.
ВНИМАНИЕ
Случайное нажатие комбинации клавиш Alt+v спровоцирует воспроизведение анимации, что может стать источником проблем. Так как ползунок таймера анимации в данном упражнении скрыт, а ключи анимации для какого-либо объекта пока не созданы, вы даже не заметите, что перешли в режим воспроизведения анимации, в котором невозможно создание и редактирование большинства объектов. Сделать видимым ползунок таймера анимации можно, выбрав в меню оперативного доступа команду Display > UI Elevemts > Time Slider (Отображение > Элементы интерфейса > Ползунок таймера анимации) или нажав комбинацию клавиш Alt+t. Чтобы остановить воспроизведение анимации, если оно все же началось, повторно нажмите Alt+v или воспользуйтесь клавишей Esc. Перепрограммировать заданную по умолчанию комбинацию клавиш можно в окне диалога Hotkey Editor (Редактор клавиатурных комбинаций), которое вызывается командой Windows > Settings/Preferences > Hotkeys (Окно > Настройки/Параметры > Клавиатурные комбинации). В разделе Assign New Hotkey (Назначить новую клавиатурную комбинацию) введите v в поле Key (Клавиша), установите переключатель Modifier (Модификатор) в положение Alt и нажмите кнопку Find (Найти). Теперь можно легко назначить найденной команде новую клавиатурную комбинацию. Впрочем, подобными вещами лучше не увлекаться, потому что если впоследствии вам придется, например, переустановить программу, все значения клавиатурных комбинаций вернутся к заданным по умолчанию, и вы просто не сможете сними работать, потому что привыкли к своим собственным!
Свое знакомство с NURBS-объектами вы начнете с построения дома, в процессе которого будут использоваться меню оперативного доступа, клавиатурные комбинации и контекстные меню. Работа над сценой продолжится в следующих главах, и к концу книги вы получите детально разработанную сцену, визуализация которой приведет к появлению впечатляющей анимации.
Начало нового проекта
В отличие от других приложений Windows, Maya всегда по умолчанию сохраняет документы в папках, предназначенных для проекта. Почему в папках, а не в одной папке? Maya создает набор вложенных папок, чтобы управлять всеми созданными файлами в процессе формирования сложной анимации. Файлы сцены, текстуры, результаты визуализации и т. п. хранятся в отдельных папках. Обычно, начиная новый проект, пользователи создают для него специальную папку, а затем программа автоматически создает все нужные вложенные папки.
ВНИМАНИЕ
Избегайте использования символа пробела в именах папок и файлов, заменяя его знаком подчеркивания. Если маршрут доступа к файлам включает пробелы, Maya может работать некорректно.
СОВЕТ
После изменения единиц измерения у вас могут возникнуть проблемы с изменением масштаба. Например, вдруг может оказаться, что половина окна проекции просто отрезана. Причиной этого является слишком малое значение параметра Far Clip Plane (Дальняя плоскость отсечки). Убедитесь, что у вас активно окно проекции Perspective (Перспектива) и выберите в меню оперативного доступа команду View > Camera Attribute Editor (Вид > Редактор атрибутов для камеры). В поле Far Clip Plane (Дальняя плоскость отсечки) раздела Camera Attributes (Параметры камеры) введите значение 10 000. Если же объект исчезает при попытке разглядеть его поближе, измените значение параметра Near Clip Plane (Ближняя плоскость отсечки).
Для создания крыши будут использованы два>ШКВ5-примитива — Cube (Куб) и Plane (Плоскость). Как вы, вероятно, помните, куб состоит из шести плоскостей, соединенных в одну группу. В результате щелчок на нем приводит к выделению только одной его грани, а не всего объекта. Чтобы выделить объект целиком, нажмите клавишу ↑.
Упражнение. Создание кровельного материала
Рис. 5.2. Результат дублирования преобразованного куба
Упражнение. Завершение работы над крышей
Рис. 5.3. Результат масштабирования и перемещения объекта RoofSlab
ПРИМЕЧАНИЕ
Контекстные меню преобразований полезны в случаях, когда нужно ограничить преобразование одной из осей. Нажмите и удерживайте клавишу, активизирующую инструмент нужного преобразования, и левую кнопку мыши. В результате появится одно из меню, выбрав в котором подходящий вариант вы ограничите преобразование одной осью или плоскостью. Затем, используя среднюю кнопку мыши, можно осуществить преобразование.
ПРИМЕЧАНИЕ
Выбирать команду Reset Settings (Сбросить настройки) в меню Edit (Правка) окна диалога с параметрами команды или инструмента рекомендуется каждый раз перед вводом новых параметров.
Рис. 5.4. Временное включение режима привязки помогает поместить центр группы Roof точно в начало координат
Рис. 5.5. Результат увеличения масштаба области схождения скатов крыши
ВНИМАНИЕ
Если камера, через окно которой осуществляется показ текущей проекции, имеет слишком маленькое значение параметра Far Clip Plane (Дальняя плоскость отсечки), это приводит не только к проблемам просмотра объектов, но и к ограничениям на выделение объектов. Например, при выделении ската крыши в окне проекции Side (Вид сбоку) вполне может оказаться, что объекты, расположенные на заднем плане, невозможно выделить, потому что они находятся за границей плоскости отсечки.
Поэтому желательно смотреть на вид выделенных элементов во всех окнах проекции. Изменить значение параметра Far Clip Plane (Дальняя плоскость отсечки) для камеры, демонстрирующей какую-либо из проекций сцены, можно в окне диалога Camera Attribute Editor (Редактор атрибутов для камеры). Для его вызова перейдите в нужное окно проекции и выберите в меню оперативного доступа команду View » Camera Attribute Editor (Вид > Редактор атрибутов для камеры).
Рис. 5.6. Временное включение режима привязки к сетке помогает переместить верхнее ребро левой части объекта RoofTHes на центральную линию
Рис. 5.7. Привязка нижних ребер объекта RoofTiles
Рис. 5.8. Теперь все управляющие точки выровнены по вертикали
Упражнение. Создание стен и фундамента
Начнем с создания стен дома.
ПРИМЕЧАНИЕ
Если при каркасном отображении NURBS-объектов включен режим минимальной детализации, рассмотреть выделенный объект иногда бывает не так-то легко. Помните, что вы всегда можете изменить уровень детализации, нажимая клавиши 1, 2 и 3.
Рис. 5.9. Четырехкратным дублированием лежащего в основании прямоугольника был сформирован контур стен
СОВЕТ
Помните, что клавиша g служит для повторного выполнения последней использовавшейся команды. Кроме того, выбрав в меню оперативного доступа команду Recent Commands (Последние команды), вы получите список из нескольких последних команд.
Рис. 5.10. Первая стена будущего дома, созданная методом лофтинга
Рис. 5.11. Стены и фундамент на данный момент установлены должным образом, но остались треугольные просветы между стенами и крышей
ПРИМЕЧАНИЕ
Благодаря наличию истории построения объекта можно изменить форму поверхности, отредактировав лежащие в основе этой поверхности кривые. Ведь они до сих пор присутствуют в сцене и связаны с поверхностью. Попробуйте проделать вышеуказанную операцию с различными объектами. Потом их можно легко вернуть в исходное состояние нажатием клавиши r. Можно получить весьма впечатляющие результаты и открыть для себя многообразие приемов моделирования и анимации на основе NURBS-кривых.
Упражнение. Заполнение просветов и создание внутренней стены
Рис. 5.12. В результате перемещения одной из кривых передняя стена прорезала крышу
Рис. 5.13. Процесс добавления объекта в слой после его выделения в окне диалога Outliner
Упражнение. Создание крыльца
Займемся созданием крыльца в передней части дома.
Рис. 5.14. Боковой профиль 14 досок, каждая из которых имеет ширину четыре дюйма. Зазор между досками имеет ширину один дюйм
СОВЕТ
Если вы ошиблись при размещении точки, воспользуйтесь клавишей Backspace для ее удаления. Также можно нажать клавишу Insert и переместить точку в нужное место, не покидая режима создания кривой. По окончании перемещения достаточно снова нажать клавишу Insert, а потом нажать и удерживать клавишу х, чтобы снова получить возможность создания узловых точек кривой.
СОВЕТ
Если в процессе создания кривой вы подошли к краю экрана, одновременно нажмите клавишу Alt и среднюю кнопку мыший перетащите указатель влево, перемещая видимую область экрана.
Рис. 5.15. Результат перемещения профиля крыльца на нужное место
Сделайте видимыми все слои, чтобы посмотреть на полученную конструкцию. Для проверки геометрии объекта можно провести несколько тестовых визуализаций.
ПРИМЕЧАНИЕ
Попробуйте самостоятельно создать сцену с нуля, используя для моделирования объектов методы Loft (Лофтинг) и Extrude (Выдавливание). В упражнениях этой главы переключатели, отвечающие за кривизну, устанавливались в положение Linear (Линейный), тем самым провоцируя создание плоских поверхностей. Посмотрите, как отражается на состоянии поверхностей установка этого переключателя в положение Cubic (Третьей степени).
В этой главе на примере были продемонстрированы стандартные подходы к моделированию на основе NURBS-кривых. Вы получили возможность на практике познакомиться со следующими приемами:
Теперь, после создания основных плоских объектов, пришла пора познакомиться с более сложными методами и поработать с искривленными поверхностями. Именно этому посвящена следующая глава «Дополнительные приемы работы с NURBS-объектами». Кроме того, вам предстоит познакомиться с методикой создания различных отверстий, ведь модель дома пока что не имеет ни окон, ни дверей. Также вы закончите моделирование крыльца, добавив к нему ограждение.