Первые шаги в Maya
Создание и простейшее редактирование примитивов
Простые варианты выделения и редактирования примитивов
Изучение навигационных возможностей
Создание простых сцен на основе примитивов
Трехмерная графика и анимация, открывающие двери в захватывающий мир виртуальной реальности, занимают особое место среди компьютерных технологий, а пакет Maya справедливо считается одним из лучших (и, увы, одним из самых сложных в изучении) в области трехмерного моделирования, анимации и рендеринга. Он обладает всеми необходимыми средствами для создания игровых миров и анимационных роликов и потому используется рядом разработчиков компьютерных игр и незаменим в компьютерной мультипликации и художественной анимации. Более того, Maya позволяет внедрять фотореалистичные элементы в обычные фильмы, открывая дорогу применению разнообразных спецэффектов, которые невозможно, слишком дорого или чересчур опасно воспроизвести в действительности. Созданная в среде Maya трехмерная анимация часто используется при разработке демонстрируемых по телевидению рекламных роликов, телевизионных заставок и клипов. Дизайнерам данный пакет предоставляет средства фотореалистической визуализации для анализа разрабатываемого проекта, проведения презентаций и создания маркетинговых материалов. Maya также может использоваться в судебной медицине, когда возникает необходимость продемонстрировать воссозданную последовательность происходивших событий, что актуально, например, в отношении автомобильных аварий. Также Maya находит применение в архитектуре и промышленности для визуального представления самых разных моделей, начиная от обычных флаконов и заканчивая автомобилями и самолетами.
Пакет Maya достаточно сложен в освоении и имеет огромное число настроек, инструментов и меню их значительно больше, чем в любом из конкурирующих пакетов, например в 3D Studio MAX. Даже простое перечисление инструментария займет немало времени и вместе с тем не даст ни малейшего представления о нюансах работы. Поэтому знакомиться с возможностями пакета мы будем последовательно и на конкретных примерах, а на первом уроке просто попытаемся немного освоиться с интерфейсом программы, экспериментируя с простыми геометрическими объектами.
Теоретические аспекты работы
Для работы в программе предназначена стандартное для Windows-программ главное командное меню и целая серия панелей инструментов, которые располагаются со всех четырех сторон рабочего окна и занимающие большую часть рабочего пространства (рис. 1). С помощью панелей инструментов обеспечивается быстрый доступ к любому элементу интерфейса, к инструментам панелей, а также к любым командам главного меню.
Рис. 1. Фрагмент окна Maya при первом запуске
Командное меню расположено в верхней части окна программы и является динамическим, так как часть входящих в него команд изменяются при смене режима работы первые 6 пунктов меню: File (Файл), Edit (Редактирование), Modify (Изменение), Create (Создание), Display (Отображение) и Window (Окно) одинаковы для всех режимов. Всего предусмотрено 4 режима работы: Animation (Анимация), Modeling (Моделирование), Dynamics (Динамика) и Rendering (Рендеринг). Нужный режим выбирается из раскрывающегося списка, расположенного в левой верхней части окна программы (рис. 2) сегодня все эксперименты мы будем проводить в режиме Rendering. Переключать режимы можно и с помощью функциональных клавиш F2, F3, F4 и F5. При необходимости некоторые из пунктов меню могут быть превращены в плавающие панели, что позволяет иметь под рукой наиболее часто используемые наборы инструментов. Пункты меню, для которых данное преобразование возможно, отмечены в верхней части двойной линией для превращения пункта меню в панель достаточно щелкнуть на этой двойной линии (рис. 3).
Рис. 2. Установка режима работы
Рис. 3. Пример пункта меню, которое может быть превращено в плавающую панель (слева), и соответствующая ему панель (справа)
Наиболее часто используемые панели и палитры загружаются при начальном запуске программы они отмечены на рис. 4. Прямо под командным меню находится строка состояния (Status Line), в самом начале которой как раз и располагается выше рассмотренный список смены режима. В ней размещаются большинство переключателей и кнопок, необходимых для управления объектами и запуска часто применяемых функций. Ниже расположена панель Shelf (Полка) с самыми разнообразными вкладками на ней находятся инструменты для создания объектов и их деформации, команды управления анимацией и рендерингом и т.д. Слева расположена панель Tool Box, где преимущественно объединены команды для выполнения операций перемещения, вращения и масштабирования объектов, а также кнопки вариантов отображения окон проекций. В нижней части программного окна расположены палитры Time Slider и Range Slider, позволяющие управлять анимацией. А существенная по размерам область экрана в правой части окна содержит редактор атрибутов Attribute Editor, предназначенный для редактирования объектов. Любую из панелей можно скрыть, щелкнув на треугольнике в ее левом верхнем углу. За открытие/скрытие названных панелей (их называют универсальными) отвечает строка меню UI Elements (Универсальные элементы) из меню Display (Отображение рис. 5). Кроме того, в правом верхнем углу программного окна имеются кнопки для быстрого открытия/закрытия панелей Attribute Editor, Tool Settings и Channel Box/Layer Editor (рис. 6).
Рис. 4. Загружаемый по умолчанию набор панелей
Рис. 5. Открытие/скрытие универсальных панелей
Рис. 6. Кнопки быстрого открытия/закрытия панелей
Вызывать любые команды можно, не прибегая к командному меню, панели Shelf и пр., а через так называемое меню оперативного доступа, что зачастую оказывается быстрее. Вызов сокращенного варианта данного меню осуществляется при нажатии и удерживании в течение некоторого промежутка времени клавиши Пробел, а вызов полного варианта в результате последующего щелчка на кнопке Hotbox Controls (Элементы управления меню оперативного доступа) (рис. 7).
Рис. 7. Сокращенный вариант меню быстрого доступа
Все создаваемые в программе элементы называют объектами, и к объектам относятся не только любые геометрические тела, но и формы, камеры и источники света и др. Объектами можно управлять, модифицируя их произвольным образом, объединяя в группы, связывая друг с другом и пр., и добиваясь в конечном счете создания нужной сцены. Процесс создания объектов называется моделированием. Моделирование осуществляется в окнах просмотра проекций, которые и занимают основную часть экрана и позволяют рассмотреть объекты с разных позиций и в различных проекциях. По умолчанию на экране отображается одно прямоугольное окно, соответствующее проекции Perspective (Перспектива). Для одновременного появления четырех окон проекции Тор (Сверху), Side (Сбоку), Front (Спереди) и Perspective (Перспектива) можно нажать клавишу Пробел или щелкнуть на кнопке Four View палитры Tool Box. Повторное нажатие клавиши Пробел (при предварительной активизации нужного окна проекции) позволяет развернуть на весь экран любую другую проекцию. В Maya существует достаточно большее число вариантов компоновок проекций, для выбора которых предназначена команда Panels=>Layouts (Панели=>Компоновка) из меню окна проекций (рис. 8). По умолчанию при открытии программы устанавливается режим работы с одним окном проекции Perspective. При желании можно изменить режим загрузки режима по умолчанию, выбрав нужный вариант компоновки из списка команды Panels=>Saved Layouts (Панели=>Сохранение компоновки) рис. 9.
Рис. 8. Выбор варианта компоновки проекций
Рис. 9. Сохранение варианта компоновки проекций в качестве варианта, загружаемого по умолчанию
Любое окно проекции может быть сохранено, что в ряде случаев поможет сэкономить время например гораздо быстрее по окончании настройки положения объектов (но перед редактированием других характеристик, что может потребовать, в частности, изменения угла обзора) сохранить нужные проекции, чтобы затем иметь возможность их быстро восстановить. Для сохранения конкретной проекции активизируйте окно данной проекции и выберите из меню окна проекции команду View=>Bookmarks=>Edit Bookmarks (Вид=>Закладки=>Редактирование закладок рис. 10) и введите имя закладки. Объекты отображаются в окнах проекций либо в виде каркасов, либо с раскрашенной поверхностью (рис. 11) изменение режима отображения объектов осуществляется через меню Shading (Затенение) окна конкретной проекции. За установку режима каркасного отображения отвечает команда Wireframe (Каркас) ей соответствует горячая клавиша 4, а режима тонированной раскраски Smooth Shade All (Сглаживать все, горячая клавиша 5). Кроме того, предусмотрена возможность изменения размеров окон проекции, реализуемая обычным для окон образом.
Рис. 10. Сохранение проекции
Рис. 11. Отображение объекта в виде каркаса (слева) и с тонированной поверхностью (справа)
Все объекты делятся на категории, выбор которых осуществляется из панели Shelf (Полка) с помощью соответствующих кнопок или через командное меню Create (Создание рис. 12), в котором находится список всех базовых визуализируемых объектов. К числу таких объектов можно отнести сплайны, полигоны, источники света, камеры, кривые и пр. В каждой категории существует целый список разнообразных объектов, например в категории NURBS Primitives (NURBS-примитивы) и Polygon Primitives (Полигональные примитивы) входят Sphere (Сфера), Cube (Куб), Cylinder (Цилиндр), Cone (Конус), Plane (Плоскость) и Torus (Topус).
Рис. 12. Выбор объекта из группы через командное меню
Создание и простейшее редактирование примитивов
Простейший способ создать трехмерный объект воспользоваться подходящим примитивом, например из категории Polygon Primitives (Полигональные примитивы) или NURBS Primitives (NURBS-примитивы). Создавать и редактировать объекты можно в любой проекции, но некоторые возможности редактирования в разных проекциях отличаются друг от друга. Принцип создания любого примитива одинаков достаточно указать нужный примитив на панели Shelf или в меню Create, и он тут же появится. По умолчанию все объекты создаются в начале координат, после чего их можно переместить в любое место пространства.
Любой объект может состоять из большего или меньшего числа составных элементов, а значит, иметь разный уровень детализации, от чего зависит его внешний вид в окне проекций. В Maya предусмотрено три варианта детализации: низкая, средняя или высокая выбор нужного варианта осуществляется путем нажатия клавиш 1, 2 и 3 соответственно (рис. 13). Стоит отметить, что вид объектов, ребра которых не имеют кривизны (например, плоскость или куб), не зависит от режима детализации.
Рис. 13. Вид объектов при низком (слева) и высоком (справа) режимах детализации
Каждый созданный объект имеет имя и обладает некоторыми параметрами. Под параметрами объекта понимается набор свойств, описывающих объект в трехмерном пространстве, например его координаты, длина, ширина и высота. Параметры могут задаваться в процессе создания объекта в окне опций либо затем корректироваться в окне каналов (Channel Box) или в окне редактора атрибутов (Attribute Editor) в последнем предоставляется гораздо больше возможностей для редактирования. Чтобы определить нужные параметры объекта непосредственно в процессе его создания, следует щелкать не на соответствующей объекту строке меню Create, а на расположенном справа от названия типа объекта квадратике (рис. 14). В этом случае перед созданием объекта открывается диалоговое окно с параметрами выбранной команды, в котором можно отредактировать установленные по умолчанию параметры инструмента (рис. 15). Чтобы восстановить исходные параметры создания объектов, воспользуйтесь командой Edit=>Reset Settings (Правка=>Восстановить настройки) из командного меню окна параметров объекта (рис. 16). Следует отметить, что изменить любые параметры любого объекта можно в любой момент времени, так как в программе запоминаются все этапы их создания и редактирования.
Рис. 14. Вызов диалогового окна с параметрами объекта
Рис. 15. Корректировка параметров создаваемого объекта
Рис. 16. Восстановление параметров создания объектов
Создание примитивов
В качестве объекта для первого эксперимента выберем сферу из категории NURBS-примитивов. Для создания сферы откройте на панели Shelf вкладку Surfaces и щелкните на объекте NURBS Sphere в центре открытого по умолчанию окна проекции Perspective появится маленькая сфера (рис. 17). А теперь создайте полигональный торус, но с предварительным вводом его параметров для этого щелкните на квадратике в строке меню Create=>NURBS Primitives=>Torus (Создание=>NURBS примитивы=>Торус) и измените параметры торуса примерно как на рис. 18. Проведите рендеринг созданной сцены, щелкнув в строке состояния на кнопке Render the current frame (Рендеринг текущего кадра) рис. 19.
Рис. 17. Появление созданной сферы
Рис. 18. Настройка параметров торуса
Рис. 19. Вид сцены после рендеринга
Простые варианты выделения и редактирования примитивов
К сожалению, полученный при рендеринге вид сцены особого впечатления не производит, и, как минимум, стоит увеличить созданные объекты. Любая манипуляция с объектом предполагает выделение. Самым простым инструментом выделения является инструмент Select Tool из панели Tool Box (для быстрого выбора данного инструмента можно использовать клавишу Q), выделяющий объект при щелчке по нему в режиме каркасного отображения щелкать следует на одном из видимых ребер, а в режиме тонированного отображения в произвольном месте поверхности объекта. О том, что объект выделен, будет свидетельствовать изменение его цвета. С помощью Select Tool можно выделять объекты и по-другому щелкнув и перетащив по диагонали указатель мыши и заключив выделяемые объекты в своеобразный контейнер (выделяемый объект или объекты должны попасть внутрь очерченной области). После выделения с объектом можно производить самые разные манипуляции: перемещать и поворачивать, изменять параметры, удалять и т.п.
Для начала выделите шар, активируйте на панели Tool Box инструмент Move Tool (или нажмите клавишу W) и перетащите объект произвольным образом; аналогичную операцию произведите с торусом (рис. 20). Выделите шар, откройте панель Channel Box, щелкнув в строке состояния на кнопке Channel Box/Layer Editor. Увеличьте размер шара, изменив значения параметров Scale X, Scale Y и Scale Z (рис. 21). Аналогичным образом увеличьте размер торуса, а затем в том же окне каналов отрегулируйте координаты объектов так, чтобы положение их по осям X и Z совпадало, а по оси Y шар находился несколько выше торуса, например так, как показано на рис. 22. Данный способ непосредственного указания координат очень удобен, когда требуется максимально точно указать положение объекта.
Рис. 20. Результат перемещения объектов
Рис. 21. Корректировка размера шара в окне каналов
Рис. 22. Рендеринг сцены после настройки координат и размеров
Не снимая выделения с торуса, щелкните в окне каналов под заголовком INPUTS (Входные данные) на его имени откроется список дополнительных параметров, которые также можно редактировать (рис. 23). Попробуйте, например, установить для параметра Degree вариант Linear криволинейные фрагменты поверхности торуса станут линейными (рис. 24). Установите для параметров Sections и Spans большее значение вырастет общее число составляющих блоков торуса (рис. 25). Увеличьте значение параметра Start Sweep до 20 исчезнет самый первый фрагмент торуса (рис. 26).
Рис. 23. Панель Channel Box со списком INPUTS
Рис. 24. Результат изменения параметра Degree
Рис. 25. Результат изменения параметров Sections и Spans
Рис. 26. Результат изменения параметра Start Sweep
И напоследок сделаем объекты более эффектными, наложив материал. Учитывая, что это лишь первый урок, мы не будем вдаваться в подробности работы с материалами, а всего лишь воспользуемся одним из базовых материалов. Самое простое наложить Ocean material, щелкнув на соответствующей кнопке вкладки Fluids панели Shelf (рис. 27). Осуществите данную операцию последовательно для торуса и для шара (рис. 28). Чтобы сделать объекты более яркими, можно увеличить интенсивность свечения материалов для этого откройте окно редактора атрибутов (Attribute Editor), щелкнув на соответствующей кнопке строки состояния. Не снимая выделения с торуса, активизируйте вкладку Ocean Shader1 (если вы присваивали материал вначале шару, а не торусу, то вкладка будет иметь имя Ocean Shader2). В свитке Glow увеличьте значения параметра Glow Intensity (рис. 29). Аналогичную операцию проведите для шара. Возможный результат показан на рис. 30.
Рис. 27. Присваивание объекту материала Ocean material
Рис. 28. Рендеринг сцены после наложения материалов
Рис. 29. Настройка параметров свитка Glow вкладки Ocean Shader1
Рис. 30. Окончательный вид сцены
Вновь обратимся к панели Tool Box, на которой помимо кнопок выделения и перемещения имеются также специальные инструменты для масштабирования объектов Scale Tool (горячая клавиша R) и поворотов их в пространстве Rotate Tool (горячая клавиша E). Поэкспериментируйте с ними, чтобы, например, масштабировать оба объекта и повернуть торус произвольным образом (рис. 31).
Рис. 31. Вид cwtys после масштабирования и поворота объектов
Немного усложним ситуацию. Создайте новую сцену командой File=>New Scene (Файл=>Новая сцена), установите в окне проекции режим тонированной раскраски (команда Smooth Shade All из меню Shading окна проекции) и дополнительно включите флажок Wireframe on Shaded для того, чтобы каркас отображался даже для невыделенных объектов. Создайте три полигональных примитива: куб, плоскость и торус (рис. 32). Перейдите в режим отображения четырех проекций, так как в действительности настроить положение объектов, работая только в проекции Perspective, невозможно. Попеременно пользуясь инструментами Move Tool и Rotate Tool и при необходимости переходя с одной проекции на другую, разместите объекты показанным на рис. 33 образом. Примерный вариант окончательной настройки параметров объектов приведен на рис. 34.
Рис. 32. Исходные примитивы
Рис. 33. Окончательный вид сцены
Рис. 34. Настройка параметров куба (слева), плоскости (посередине) и торуса (справа)
Изучение навигационных возможностей
Навигацией называется перемещение по пространству сцены без изменения ее состояния при навигации изменяется только вид сцены, поскольку перемещается лишь точка обзора, из которой наблюдают сцену, но не ее объекты. В отличие от двумерных графических пакетов в трехмерной графике навигации уделяется гораздо большее внимание, так как размер окон проекций, предоставляемых программой для обзора сцены, ограничен. И даже при самых лучших параметрах оборудования он окажется недостаточным, и сцену в процессе создания не раз придется оценивать с разных точек ракурсов, в разном масштабе и в различных проекциях. Для решения этой задачи Maya предоставляет очень много возможностей.
Для быстрой смены угла обзора сцены предусмотрены операции облета, сопровождения и наезда камерой. Под облетом камерой понимается изменение ее положения в трехмерном пространстве относительно неподвижных объектов с сохранением фиксированного расстояния до них. Облет производится путем перемещения мыши в окне проекции при нажатых левой кнопке и клавише Alt (рис. 35) и возможен не во всех проекциях. Сопровождение камерой позволяет перемещать сцену внутри окна, что необходимо, если какие-либо фрагменты сцены оказались вне области просмотра. Осуществляется сопровождение при перемещении мыши в окне проекции при одновременно нажатых клавише Alt и средней кнопки мыши. Наезд используется для изменения масштаба изображения в окне конкретной проекции и производится путем перемещения мыши при нажатых клавише Alt и средней кнопки мыши. Для увеличения масштаба мышь при этом перемещают вверх, а для уменьшения вниз.
Рис. 35. Изменение вида сцены в процессе ее облета
Теперь перейдите к режиму работы в четырех проекциях, причем применив прием «сопровождения», переместите сцены в разных окнах проекций так, чтобы видны были не все объекты (рис. 36). Выделите в любом из окон проекций тот объект, у которого видна лишь какая-то часть, и нажмите клавишу F выделенный объект в данном окне проекций окажется виден полностью, будет располагаться в центре и станет занимать основную часть окна проекции (рис. 37). А при нажатии комбинации Shift +F данный объект окажется виден во всех окнах проекций. При выделении нескольких объектов подобное изменение сцены с масштабированием будет относиться ко всем выделенным объектам. Нажатие клавиши А при выделенном объекте изменяет масштаб таким образом, чтобы все объекты сцены уместились в границах активного окна проекции, а комбинации Shift + A осуществляет то же самое преобразование, но сразу в отношении всех окон проекций.
Рис. 36. Результат перемещения сцен во всех четырех проекциях
Рис. 37. Изменение сцены в проекции Perspective
Создание простых сцен на основе примитивов
Попытаемся создать несколько примитивов так, чтобы они представляли настоящую сцену это значит, что нужно будет тщательно разместить данные примитивы в пространстве, причем не просто так, а определенным образом, например так, чтобы все они находились на некой плоскости. Создайте новую сцену командой File=>New Scene (Файл=>Новая сцена), установите в окне проекции режим тонированной раскраски (команда Smooth Shade All из меню Shading окна проекции) и дополнительно включите флажок Wireframe on Shaded. Создайте NURBS-плоскость (Create=>Nurbs Primitives=>Plane), щелкните в окне каналов на имени плоскости под строкой INPUT и измените значение параметра Width (рис. 38). Перейдите в режим работы на четырех проекциях. Добавьте к плоскости NURBS-сферу (рис. 39), а затем точно таким же образом куб, конус и цилиндр все из категории NURBS-примитивов. При создании нового объекта сразу же корректируйте в окне каналов его размеры и перемещайте объект из центра начала координат на любое другое свободное пространство, не заботясь пока о правильности их положения и видимости (рис. 40).
Рис. 38. Плоскость
Рис. 39. Появление сферы
Рис. 40. Возможный вариант начального размещения объектов
Начните последовательно размещать объекты нужным образом, переключаясь между проекциями, и пользуясь инструментом Move Tool и при необходимости перемещая сцену тем или иным рассмотренным выше способом. Обратите внимание, что объекты окажутся расположенными на одной плоскости только в том случае, если в проекциях Side (Сбоку) и Front (Спереди) они будут находиться на одном уровне (рис. 41). По окончании для большей эффектности присвойте плоскости материал Ocean material, щелкнув на соответствующей кнопке вкладки Fluids панели Shelf. Затем увеличьте интенсивность свечения материала в окне редактора атрибутов (Attribute Editor), в свитке Glow на вкладке Ocean Shader1. Результат показан на рис. 42.
Рис. 41. Вид сцены после корректировки положения всех объектов
Рис. 42. Окончательный вид сцены
А теперь несколько усложним задачу создадим стол со столешницей сложной криволинейной формы и ножкой в виде усеченного конуса и положим на стол несколько примитивов. Работать будем во всех четырех проекциях и за основу столешницы и ножки стола возьмем полигональные цилиндры, настроенные в окне каналов примерно так, как показано на рис. 43 и 44. Вначале попробуем превратить второй цилиндр в усеченный конус. Щелкните правой кнопкой мыши на цилиндре и в появившемся меню выберите вариант Vertex (Вершины) это позволит редактировать объект на уровне вершин. Инструментом Scale Tool выделите нижние вершины цилиндра в проекции Front (рис. 45) и масштабируйте их так, чтобы объем нижнего сечения увеличился (рис. 46). Аналогичным образом выделите и масштабируйте вершины верхнего сечения, но только в сторону уменьшения. Нажмите комбинацию клавиш Shift+A, чтобы оба объекта оказались видны во всех четырех проекциях, и вернитесь в режим редактирования на уровне объекта, нажав на редактируемом цилиндре правую кнопку и установив вариант Object Mode. Совместите ножку со столешницей, при необходимости уменьшите или, наоборот, увеличьте ее размеры, чтобы отдельные элементы стола выглядели пропорциональными (рис. 47). Выделите столешницу, перейдите в режим редактирования вершин, установив в контекстном меню вариант Vertex. Выделите в проекции Perspective отмеченные на рис. 48 вершины и масштабируйте их в сторону уменьшения это позволит усложнить контур столешницы так, что один из ее концов окажется суженным (рис. 49).
Рис. 43. Цилиндр для столешницы
Рис. 44. Добавление цилиндра для ножки стола
Рис. 45. Выделение вершин второго цилиндра в проекции Front
Рис. 46. Результат масштабирования нижних вершин цилиндра
Рис. 47. Исходный вид стола
Рис. 48. Выделение вершин первого цилиндра в проекции Perspective
Рис. 49. Вид столешницы после масштабирования
Создайте еще несколько произвольных примитивов, например шаров, и разместите их на столе, отрегулировав их положение во всех четырех проекциях. Чтобы изменить цвет стола, выделите столешницу, откройте в окне Attribute Editor вкладку Lambert1 (это название материала, который присваивается любому объекту по умолчанию) и в свитке Common Material Attributes измените серый цвет в строке Color на любой другой (рис. 50). Аналогичные действия произведите в отношении других объектов сцены. Возможный результат представлен на рис. 51.
Рис. 50. Корректировка основного цвета для материала
Рис. 51. Стол с шарами