Дополнительные техники анимации
Анимация по методу прямой кинематики осуществляется непосредственным поворотом суставов
Рисунок 9.2. Анимация по методу прямой кинематики осуществляется непосредственным поворотом суставов
Поворот сустава влияет на положение всех дочерних по отношению к нему членов иерархической цепочки. Поворот бедренного сустава вверх заставит колено и голеностопный сустав совершить такое движение, как будто нога бьет по мячу. Поворот коленного сустава вниз заставит лодыжку повернуться так, как будто человек садится. Такая форма реакции на преобразования свойственна обычной иерархической цепочке. Именно поэтому данный метод называется методом прямой кинематики (forward kinematics).
В методе обратной кинематики (inverse kinematics (IK)) движением управляет сложная система присоединенных к конечным суставам цепочек IK-манипуляторов (IK-handles). Основа IK-системы присоединяется к суставу, который выбран корневым для данного IK-сегмента. Это может быть произвольный сустав иерархической цепочки.
Кости и суставы в методе обратной кинематики двигаются только под действием IK-манипуляторов. При этом IK-решатель определяет, как повернуть суставы цепочки, чтобы они соответствовали изменившемуся положению манипулятора. Поворот суставов, в свою очередь, приводит к изменению положения костей.
Представьте, что кто-то взял кисть вашей руки и перемещает ее. Этот кто-то, держащий вас за руку, является аналогом IK-манипулятора. Перемещение кисти заставляет остальные кости руки поворачиваться в плечевом и локтевом суставах, а также в области запястья. Анимация начинается с самого младшего члена иерархии (Рисунок 9.3). Именно поэтому данный метод называется методом обратной кинематики.
Благодаря совместному действию
Рисунок 9.36. Благодаря совместному действию ограничений Geometry и Normal движение конуса повторяет все изгибы NURBS-поверхности
Четвертая поза персонажа (кадр № 15)
Рисунок 9.12. Четвертая поза персонажа (кадр № 15)
Цилиндр меньшего размера демонстрирует
Рисунок 9.22. Цилиндр меньшего размера демонстрирует результат изгиба при жестком связывании, а цилиндр большего — результат изгиба при мягком связывании
Дальнейшее использование IK-цепочек
Дальнейшее использование IK-цепочекМногие аниматоры применяют IK-цепочки не столько для анимации персонажей, сколько для получения определенных эффектов. Эти цепочки позволяют убедительно сымитировать движения кнута и веревки, трепещущий на ветру флаг, подпрыгивающий хвост пони и поршень насоса. Например, воспользовавшись другим решением метода обратной кинематики (оно называется Spline [Сплайн]), вы получите возможность контролировать форму скелета с помощью NURBS-сплайна. Это требуется, например, при моделировании змей или других длинных деформируемых объектов.
Для создания манипулятора IK-сплайна выберите в меню Skeleton (Скелет) команду IK Spline Handle Tool (Манипулятор IK-сплайна) и дважды щелкните на суетавах скелета, указывая положение верхнего сустава и концевого эффектора. Это приведет к появлению сплайна по всей длине цепочки суставов. Редактирование кривизны сплайна заставляет двигаться кости, которые, в свою очередь, заставляют двигаться связанную с ними геометрию. Пример манипулятора IK-сплайна показан на Рисунок 9.30.
Другая проекция руки с системой костей
Рисунок 9.19. Другая проекция руки с системой костей
По своей сути техника связывания довольно проста. Однако она дает почти полный контроль над деформацией геометрии.
Фигурка человека, созданная из блоков
Рисунок 9.4. Фигурка человека, созданная из блоков
Кисти рук сгруппированы с предплечьем и далее с плечом, иерархия восходит к позвоночнику и завершается тазовой областью. Голова является дочерним объектом по отношению к шее. Этот участок также входит в состав иерархической цепочки позвоночника. Центром тела, а следовательно корневым суставом, является тазовая область.
Иерархическая цепочка костей, формирующих ногу
Рисунок 9.1. Иерархическая цепочка костей, формирующих ногу
Скелет позволяет немедленно получить пригодную для анимации иерархическую цепочку, которая повторяет форму геометрической оболочки. Соответственно, в процессе соединения скелета с оболочкой деформировать последнюю не требуется. Оболочка становится дочерним объектом по отношению к системе костей, то есть ее преобразования повторяют преобразования элементов скелета. Скелет представляет собой всего лишь набор сгруппированных и корректно размещенных опорных точек, называемых суставами (joints). Именно с их помощью осуществляется перемещение, а в некоторых случаях и деформация геометрической оболочки. Кости (bones) всего лишь задают расстояние между двумя суставами. Кроме того, они делают систему более наглядной.
Для анимации системы костей используются методы прямой и обратной кинематики. В первом случае нужная поза придается поворотом самого старшего в иерархической цепочке сустава. Этот метод применялся при создании покадровой анимации, в которой положение кукол менялось и фиксировалось в каждом кадре. Изменение положения куклы достигалось непосредственным поворотом суставов (Рисунок 9.2).
IK-манипуляторы ног, корневые суставы которых располагаются в области бедер
Рисунок 9.29. IK-манипуляторы ног, корневые суставы которых располагаются в области бедер
Если по какой-то причине вы не в состоянии выделить сустав для 1К-цепочки, убедитесь в том, что в меню Show (Показать) окна проекции рядом с командой Pivots (Опорные точки) стоит галочка. Кроме того, если вам сложно рассмотреть манипуляторы, вы можете увеличить их размер, выбрав в меню Display (Отображение) команду IK Handle Size (Размер 1К-манипулятора).
4. Подвигайте IK-манипуляторы, чтобы увидеть реакцию ног. Затем верните ноги в исходное положение.
5. Выделите корневой сустав скелета и переместите его. Это вызовет перемещение всей системы. Выделите оба IK-манипулятора и нажмите комбинацию клавиш Shift+w, чтобы создать ключи анимации для атрибутов преобразования перемещения. В результате ступни будут жестко закреплены на опорной плоскости. Попытка опустить вниз тазовый сустав приведет к сгибу коленей. При этом ступни погрузятся в опорную плоскость.
6. Верните тазовый сустав в исходное положение. Теперь нужно создать ПС-манипуляторы для ступней, закрепив их тем самым на опорной плоскости. Активизируйте инструмент IK Handle Tool (IK-манипулятор). Первый щелчок сделайте в районе пятки, а второй — на кончиках пальцев. Повторите операцию для второй ноги.
СОВЕТ
Для повторной активизации только что использовавшегося инструмента достаточно нажать клавишу y.
7. Создайте ключи анимации для атрибутов преобразования перемещения новых IK-манипуляторов. Теперь перемещение вниз тазового сустава будет приводить к сгибу ног не только в коленях, но и в области лодыжки.

Установите ползунок таймера анимации на
Кадр № 10На Рисунок 9.11 показана поза модели в кадре № 10. Это, фактически, центральная стадия шага.
1. Установите ползунок таймера анимации на отметку кадра № 10. Еще немного поверните "заднюю" ногу и выровняйте ступню с поверхностью. Переместите персонаж в отрицательном направлении оси У, чтобы опустить его обратно на поверхность.
2. Поверните "переднюю" ногу вперед и выпрямите колено. Поверните ступню так, чтобы она снова оказалась на поверхности. Слегка поверните руки вперед и немного согните корпус. Создайте ключи анимации для всех суставов.
В этот момент он начинает
Кадр № 15На рис 9.12 показано положение персонажа в кадре № 15. В этот момент он начинает переносить вес тела на "переднюю" ногу. При этом "задняя" нога отрывается от опоры.
вес тела целиком переносится
Кадр № 20В кадре № 20 вес тела целиком переносится на "переднюю" ногу, а тело перемещается вверх (Рисунок 9.13).
1. Поверните "переднюю" ногу таким образом, чтобы она оказалась практически перпендикулярна опорной поверхности, и поднимите тело вверх. Поверните "заднюю" ногу вперед и согните ее в колене.
2. Выпрямите корпус и приведите руки в почти вертикальное положение. Создайте ключи анимации для всех суставов.
Теперь пришло время перенести тело
Кадр № 25Теперь пришло время перенести тело вперед, сместив центр тяжести для следующего шага. Поза, которую персонаж должен принять в кадре № 25, показана на Рисунок 9.14.
1. Установите ползунок таймера анимации на отметку кадра № 25.
2. Поверните левую ногу назад, а правую вынесите вперед для следующего шага. Опустите тело персонажа вниз, чтобы опорная (левая) нога оказалась на плоскости. Создайте ключи анимации для всех суставов.
В качестве опорного изображения для
Кадр № 30В качестве опорного изображения для создания следующей позы используйте Рисунок 9.15. Обратите внимание на то, что, по сути, это поза, которую персонаж принимал в кадре № 10, только на этот раз вперед вынесены другая нога и другая рука. Чтобы сделать анимацию более интересной, можно слегка поменять позу персонажа.
Конус, нацеленный на сферу
Рисунок 9.34. Конус, нацеленный на сферу
Параметр Offset (Смещение) задает атрибут преобразования поворота ограничиваемого объекта, заставляя этот объект наклоняться в ту или другую сторону. Параметр Up Vector (Вектор вертикали) определяет, в какую сторону будет обращена указывающая на сферу вершина конуса.
Ограничение Aim (Цель) замечательно подходит для анимации нацеленной на определенный объект камеры.
Корректное размещение системы костей руки
Рисунок 9.18. Корректное размещение системы костей руки
Масштаб конуса определяется масштабом сферы
Рисунок 9.33. Масштаб конуса определяется масштабом сферы
Ограничение Scale (Масштабирование) обычно применяется для того, чтобы добиться совпадения размеров объектов. Например, если пневматический шланг надувает одновременно несколько аэростатов, имеет смысл "привязать" размер всех шаров к размеру одной и той же мишени. Это избавит вас от необходимости анимировать атрибуты преобразования масштабирования всех шаров. Или, скажем, если персонаж мультфильма смотрит на что-то выпученными глазами, достаточно ограничить размер одного глаза по размеру другого, и глаза будут вылезать из орбит одновременно.
Метод обратной кинематики
Метод обратной кинематикиМетод обратной кинематики позволяет размещать конечности персонажа в строго определенных местах, то есть избавляет от необходимости перемещать скелет или модель, чтобы сохранить соприкосновение с опорой.
Для анимации ног используется исключительно метод обратной кинематики. В то же самое время для анимации рук не существует однозначно предпочтительной последовательности действий. Многие применяют и в этом случае метод обратной кинематики, но обычно имеет смысл использовать его только для задания движений ног, а остальные части тела анимировать по методу прямой кинематики. Это связано с необходимостью привязать ноги к опорной поверхности. В то же время руки во время цикла ходьбы двигаются свободно, а создание для них IK-манипуляторов увеличивает рабочую нагрузку на стадии анимации.
Метод прямой кинематики
Метод прямой кинематикиРассмотрим систему костей на примере скелета простого двуногого персонажа, созданного из примитивных блоков (Рисунок 9.4). Каждый блок соответствует определенной части тела, а зазоры между ними соответствуют местам сгибов.
Опорная точка каждого из блоков помещена в том месте, где у обычного скелета располагался бы сустав. Например, опорная точка голени находится в области колена. Блоки сгруппированы таким образом, что ступня движется вместе с голенью, которая, в свою очередь, приводит в движение бедро и тазовую область.
Мягкое связывание руки
Мягкое связывание рукиТеперь попробуем связать оболочку с системой костей другим способом.
Продолжим работу с файлом poly_hand_skeleton_v02.ma с прилагаемого к книге компакт-диска. Выполните следующие действия:
Мягкое связывание
Мягкое связываниеПри мягком связывании один сустав может влиять на несколько точек оболочки модели. Это позволяет при повороте суставов сгибать довольно далеко расположенные от них области. Суставы влияют на точки поверхности в различной степени, убывающей по мере удаления от сустава и выражаемой числом от 0 до 1. Величина суммарных воздействий всех суставов не может превышать 1. Maya автоматически вычисляет величины воздействий при связывании, хотя пользователь позднее может изменить их.
Выделите вторую цепочку костей и второй цилиндр, выберите в меню Skin (Оболочка) команду Bind Skin (Связать с оболочкой) и щелкните на квадратике, расположенном справа от команды Smooth Bind (Мягкое связывание). В появившемся окне диалога вы увидите уже знакомый раскрывающийся список Bind To (Связать с). В расположенном ниже раскрывающемся списке Bind Method (Способ связывания) по умолчанию выбран вариант Closest Joint (С ближайшим суставом). Это означает, что точки оболочки связываются с ближайшим к ним суставом цепочки костей. Такой вариант чаще всего используется в работе с персонажами, так как в этом случае уделяется внимание компоновке скелета.
Скажем, бедренный сустав левой ноги не будет влиять на поверхность правой ноги, несмотря на то что он расположен на небольшом расстоянии от этой поверхности. Если же вы выберете в раскрывающемся списке Bind Method (Способ связывания) вариант Closest Distance (По ближайшему расстоянию), суставы будут воздействовать на ближайшие точки поверхности без учета своего положения в иерархии.
Параметр Max Influence (Максимальное влияние) определяет количество суставов, которые могут воздействовать на одну точку поверхности. Атрибут Dropoff Rate (Уровень спада) задает уменьшение влияния сустава с увеличением расстояния. Скажем, плечевой сустав может в различной степени влиять на натяжение мышц руки, грудной клетки и живота. Ограничивая значения указанных параметров, вы можете управлять воздействием на модель отдельных суставов. В данном случае также лучше оставить заданные по умолчанию значения параметров, поэтому просто щелкните на кнопке Bind Skin (Связать оболочку) в окне диалога Smooth Bind Skin Options (Параметры мягкого связывания). Теперь согните оба цилиндра и внимательно рассмотрите, чем именно они различаются. Разница между сгибами цилиндров проиллюстрирована на Рисунок 9.22.
Моделирование ходьбы
Моделирование ходьбыЦиклом ходьбы называется анимация нескольких шагов персонажа. Повторяя ее раз за разом, можно заставить персонаж пройти сколь угодно длинный путь. При создании цикла важно, чтобы положение объекта в первом и последнем кадрах полностью совпадало. В противном случае при переходе от одного цикла к другому персонаж будет скачкообразно менять позу.
Попытаемся смоделировать цикл ходьбы методом прямой кинематики. Последовательность действий в данном случае очевидна и напоминает управление конечностями куклы.
Загрузите файл block_man_skeleton_v02.mb с прилагаемого к книге компакт-диска. Он содержит полностью подготовленную к анимации модель. Все ключевые позы вы сможете увидеть на рисунках в соответствующих разделах. Основная анимация разбита на интервалы по пять кадров. Помните о возможности редактирования временных интервалов и углов поворота суставов в окне диалога Graph Editor (Редактор анимационных кривых). Окрашенные в белый цвет конечности показывают удаленную от камеры сторону персонажа.
Моделирование ног по методу обратной кинематики
Моделирование ног по методу обратной кинематикиВернемся к составленной из блоков фигуре человека. Загрузите файл block_man_ skeleton_v02.mb из папки ChapterFiles\Block_Man\scenes прилагаемого к книге компакт-диска. Вам предстоит создать IK-цепочку от бедра до лодыжки. В данном случае IK-цепочка от бедра до пальцев ноги будет работать некорректно.
Так как при анимации по методу обратной кинематики цепочка суставов будет автоматически изгибаться в соответствии с расположением концевого эффектора (он же называется IK-манипулятором), вам нужно указать направление сгиба конкретных суставов. Для этого потребуется слегка согнуть колени персонажа.
1. Выделите коленные суставы и нажмите клавишу Insert для перехода в режим редактирования опорной точки. Слегка переместите эти суставы вперед, чтобы сформировать сгиб в колене.
2. Выберите в меню Skeleton (Скелет) команду IK Handle Tool (IK-манипулятор). В результате указатель мыши примет форму креста.
3. Щелкните на бедренном суставе левой ноги (это будет корневой сустав IK-цепочки), а затем — на суставе в области пятки. Повторите этот процесс для второй ноги. Полученный результат показан на Рисунок 9.29.
Моделирование руки
Моделирование рукиИзучение принципов работы с системами костей мы продолжим на примере рисования руки. Скелет будет использован для деформации геометрии и моделирования обычных движений руки.
Загрузите файл poly_hand_sketeton_v01.ma из папки ChapterFiles\Poly_Hand_ Anim\scenes прилагаемого к книге компакт-диска. Сцена содержит полигональную модель руки.

Вам предстоит создать систему костей для этой руки и соединить ее с рукой. Этот процесс называется сборкой персонажа (rigging).
Начало ходьбы: кадры с первого по пятый
Начало ходьбы: кадры с первого по пятыйИсходное положение персонажа показано на Рисунок 9.9. Именно для этой позы будут созданы первые ключи анимации, и именно с нее вы начнете работу над циклом ходьбы.
1. Убедитесь в том, что ползунок таймера анимации установлен на отметку кадра № 1, и создайте ключи анимации для преобразования Rotate (Поворот) всех суставов одновременно. Для выделения суставов используйте окно диалога Outtiner (Структура) или Hypergraph (Просмотр структуры). При анимации персонажа этим способом нужно проверять наличие всех нужных ключей в каждом из ключевых кадров, даже если вы работаете в режиме Auto keyframe (Автоматическая установка ключевых кадров). Затем выделите корневой сустав и создайте ключ анимации для преобразования Translate (Переместить).
СОВЕТ
Для удобства выделения суставов имеет смысл в окне диалога Outliner (Структура) скрыть имена объектов остальных типов. Для этого достаточно выбрать в меню Show (Показать) этого окна команду Objects > Joints (Объекты > Суставы). Вернуться к полному списку объектов можно с помощью команды Show All (Показывать все) из меню Show (Показать).
2. Установите ползунок таймера анимации на отметку кадра № 5. С помощью преобразования Rotate (Повернуть) отведите правую ногу (она окрашена в белый цвет) назад, а затем поверните ступню в обратном направлении, чтобы она опять оказалась параллельна поверхности. Выделите корневой сустав и опустите тело немного вниз, чтобы пятка "задней" ноги касалась поверхности.
3. С помощью преобразования Rotate (Повернуть) переместите левую ногу вперед, согните ее в колене и слегка поверните ступню вверх.
4. С помощью преобразования Rotate (Повернуть) отведите назад правую руку, а левую выдвиньте немного вперед. В данном случае руки должны располагаться в противофазе с ногами. Слегка согните руки в локтях.
5. Слегка согните фигуру в области талии, немного наклоните шею и голову. Полученная таким способом поза показана на Рисунок 9.10.
Назначение управляющего ключа
Назначение управляющего ключаПрименим метод управляющего ключа:
1. Не снимая выделения с узла polySurface2, откройте окно диалога Set Driven Key (Создать управляемый ключ), щелкнув на квадратике, расположенном справа от команды Set (Создать) в меню Animate > Set Driven Key (Анимация > Создать управляемый ключ). Щелкните на кнопке Load Driver (Загрузить управляющий объект).
2. Так как анимация заключается в сгибании указательного пальца, управляемым объектом должны стать верхние три сустава. Выделите их при нажатой клавише Shift и щелкните на кнопке Load Driven (Загрузить управляемый объект).
3. Выделите в верхнем правом окне атрибут index_pull, а в нижнем левом — атрибут rotateY (Рисунок 9.39).
Несмотря на резкую складку в области сгиба пальца, самопересечений геометрии не возникает
Рисунок 9.25. Несмотря на резкую складку в области сгиба пальца, самопересечений геометрии не возникает
6. Создайте флексоры для остальных пальцев, разместив их в местах сгибов. Отмасштабируйте решетки флексоров в соответствии с размерами суставов. Результат сгиба пальца под действием флексоров показан на Рисунок 9.26.
Модель руки с созданными для указательного пальца флексорами находится в файле poly_hand_skeleton_v03.ma. Создайте флексоры для остальных пальцев и анимируйте руку, заставив пальцы взять карандаш или нажать кнопку.
Ограничение Aim
Ограничение AimОграничение Aim (Цель) регулирует ориентацию ограничиваемого объекта таким образом, что он всегда оказывается нацеленным на мишень. В данном случае для создания ограничения сначала выделите мишень или мишени и только в конце — ограничиваемый объект. Затем остается щелкнуть на квадратике, расположенном справа от команды Aim (Цель) в меню Constrain (Ограничить).
Это ограничение имеет дополнительные параметры, так как вам требуется указать, например, какая из осей ограничиваемого объекта будет нацелена на мишень. Для этого применяются атрибуты Aim Vector (Вектор цели) и Up Vector (Вектор вертикали).
В примере с конусом и сферой (Рисунок 9.34) атрибут Aim Vector (Вектор цели) имеет значение (О, 1, 0). Соответственно, на опорную точку сферы нацелена ось У, то есть вершина конуса. Если же присвоить параметру Aim Vector (Вектор цели) значение (1,0, 0), на опорную точку сферы будет нацелена боковая часть конуса.
Ограничение Orient
Ограничение OrientОграничение Orient (Ориентация) соединяет атрибуты преобразования поворота мишени и ограничиваемого объекта. Для его создания сначала выделите мишень или мишени, а затем — ограничиваемый объект и щелкните на квадратике, расположенном справа от команды Orient (Ориентация) в меню Constrain (Ограничить).
Параметр Offset (Смещение), как и в предыдущем случае, позволяет задать смещение объектов относительно друг друга по любой оси. Если оставить ему заданные по умолчанию нулевые значения, положения мишени и ограничиваемого объекта совпадут. При наличии нескольких мишеней ориентация ограничиваемого объекта определяется как среднее арифметическое их ориентации. На Рисунок 9.32 показан пример ограничения типа Orient (Ориентация). Ориентацией конуса управляет ориентация удлиненной сферы.
Ограничение Point
Ограничение PointЧтобы заставить один объект изменять свое положение вслед за изменением положения другого (мишени), применяется ограничение Point (Точка). При этом соединяются только атрибуты, отвечающие за преобразование перемещения. Выделите мишень, а затем — при нажатой клавише Shift — ограничиваемый (соединяемый с ней) объект и щелкните на квадратике, расположенном справа от команды Point (Точка) в меню Constrain (Ограничить).
В окне диалога с параметрами создаваемого ограничения можно вручную указать, например, расстояние между ограничиваемым и ограничивающим объектом. Действие ограничений привязано к положению опорных точек участвующих во взаимодействии объектов. Ограничение Point (Точка) связывает опорную точку ограничиваемого объекта с опорной точкой мишени. Следовательно, атрибут Offset (Смещение) указывает расстояние между этими опорными точками относительно соответствующих осей.
Для ограничения одного объекта можно использовать несколько мишеней. В результате положение ограничиваемого объекта будет вычислено как среднее арифметическое воздействия всех мишеней. Силу воздействия каждой из них задает параметр Weight (Вес).
На Рисунок 9.31 показан результат ограничения конуса с помощью сферы по типу Point (Точка). Теперь перемещение сферы будет вызывать аналогичное перемещение конуса. Основное отличие подобной системы от обычной иерархической цепочки заключается в том, что влияние сферы распространяется только на преобразование перемещения. Поворот или масштабирование сферы не вызовет аналогичного поворота или масштабирования конуса.
Ограничение Scale
Ограничение ScaleОграничение Scale (Масштабирование) соединяет атрибуты преобразования масштабирования ограничиваемого объекта и мишени или мишеней. Для создания этого ограничения, как и в предыдущих случаях, сначала требуется выделить мишень или их набор, а потом — ограничиваемый объект. Затем остается щелкнуть на квадратике, расположенном справа от команды Scale (Масштабирование) в меню Constrain (Ограничить).
Параметр Offset (Смещение) в данном случае определяет разницу масштабов ограничиваемого объекта и мишени относительно каждой из координатных осей. При заданных по умолчанию единичных значениях размер ограничиваемого объекта полностью совпадет с размером мишени. При наличии нескольких мишеней размер объекта определяется как среднее арифметическое их вкладов. Пример ограничения типа Scale (Масштабирование) показан на Рисунок 9.33. Размер конуса по каждой из координатных осей определяется размером сферы.
Ограничения Geometry и Normal
Ограничения Geometry и NormalОграничения Geometry (Геометрия) и Normal (Нормаль) связывают указанный пользователем объект с поверхностью мишени.
В результате применения ограничения Geometry (Геометрия) на поверхности объекта-мишени оказывается опорная точка ограничиваемого объекта. При этом его атрибуты не блокируются, что позволяет этому объекту скользить вдоль поверхности мишени. Процесс создания данного ограничения все так же включает в себя выделение мишени, ограничиваемого объекта и выбор в меню Constrain (Ограничить) команды Geometry (Геометрия).
Это ограничение крайне полезно, если требуется "привязать" объект к деформируемой поверхности. В качестве примера в данном случае можно привести лодку, скользящую по волнам. На Рисунок 9.35 показан результат создания ограничения Geometry (Геометрия) для конуса, расположенного на NURBS-поверхности, на которую действует деформатор Wa ve ( Вол на). Для вызова этого деформатора используйте одноименную команду меню Deform > Create Nonlinear (Деформация > Создать нелинейную деформацию). Вне зависимости от прохождения ряби конус останется на поверхности, сохраняя первоначальную ориентацию.
Ограничения Parent, Tangent и Pole Vector
Ограничения Parent, Tangent и Pole VectorВ Maya существуют еще три вида ограничений: Parent (Иерархическая связь), Tangent (Касательная) и Pole Vector (Вектор полюса). Ограничение Parent (Иерархическая связь) связывает атрибуты преобразований перемещения и поворота двух объектов, имитируя формирование иерархической цепочки. Это позволяет избежать создания групп вручную. Ограничение Tangent (Касательная) применяется только в случаях, когда в качестве объекта-мишени используется NURBS-кривая. Оно позволяет направить вектор ограничиваемого объекта вдоль касательной кривой-мишени и применяется в случаях, когда требуется ограничить ориентацию объекта NURBS-кривой. Ограничение Pole Vector (Вектор полюса) предназначено для случаев, когда в качестве ограничиваемого объекта фигурирует плоскость вращения IK-манипулятора. Благодаря этому вектор полюса манипулятора всегда нацелен в направлении объекта-мишени. В результате вектор полюса будет контролировать направление центрального сочленения в цепочке, например направление локтя при сгибе руки.
Ограничения
ОграниченияКак вы уже знаете, работа в Maya связана с созданием связей между узлами различных объектов. Это позволяет вам получить анимацию одного объекта на основе анимации другого. Подобную задачу можно решить не только формированием уже знакомых вам иерархических цепочек, но и с помощью ограничений (constraints).
Ограничения создают прямую связь между различными атрибутами объекта-источника и объекта-мишени. В этом разделе мы поговорим о шести различных ограничениях: Point (Точка), Orient (Ориентация), Scale (Масштабирование), Aim (Цель) Geometry (Геометрия) и Normal (Нормаль).
Окно диалога Add Atribute
Рисунок 9.38. Окно диалога Add Atribute
Остается щелкнуть на кнопке ОК, и в разделе Extra Attributes (Дополнительные атрибуты) появится новый атрибут. Он предназначен для управления положением указательного пальца. Альтернативным способом доступа к нему является окно диалога Channel Box (Окно каналов).
Окно диалога Set Driven Key для руки
Рисунок 9.39. Окно диалога Set Driven Key для руки
4. В данный момент угол поворота суставов, как и значение атрибута index_pull, равен 0. Щелкните на кнопке Key (Ключи), чтобы создать первое соотношение.
5. Выделите узел polySurfaceZ и присвойте атрибуту index_pull значение 5.
6. Выделите ближайший к кончику пальца сустав (если вы используете файл с компакт-диска, он называется jointll) и поверните его на 20° вокруг оси Y. Выделите следующий сустав (jointlO) и поверните его на 35° вокруг оси Y. Выделите ближайший к ладони сустав (joint9) и поверните его вокруг оси Уна 5°. Щелкните на кнопке Key (Ключи). В результате присвоения атрибуту index_ pull значения 5 палец будет сгибаться.
7. Выделите узел polySurface2 и присвойте атрибуту index_pull значение 10.
8. По очереди выделяйте три сустава указательного пальца и присваивайте атрибуту Rotate Y (Поворот относительно оси Y) значения 65, 60 и 50 соответственно. Щелкните на кнопке Key (Ключи). В итоге присвоения атрибуту index_pull значения 10 палец придет в положение, показанное на Рисунок 9.40.
Теперь для анимации положения указательного пальца не потребуется вручную поворачивать суставы. Достаточно анимировать атрибут index_pull. При этом вы можете создать управляющие ключи как для всех пальцев вместе, так и для каждого пальца по отдельности.
Окно диалога Set Driven Key
Рисунок 9.37. Окно диалога Set Driven Key
В итоге сфера в данный момент находится на опорной плоскости (ее F-координата равна нулю), и положение конуса относительно оси X также определяется нулевой координатой. Атрибут rotateX конуса в окне диалога Channel Box (Окно каналов) будет выделен оранжевым цветом, что указывает на создание управляющего ключа.
5. Выделите сферу и поднимите ее вверх, введя в поле Translate Y (Смещение по оси Y) значение 5. Выделите конус и введите в поле RotateX (Поворот относительно оси X) значение 180°. Щелкните на кнопке Key (Ключи), фиксируя, что при поднятии сферы на высоту 5 единиц конус должен повернуться на 180°.
Опорная точка скелета
Опорная точка скелетаТрадиционно корневым суставом в скелетах двуногих персонажей является тазовая область. Именно тут располагается опорная точка фигуры персонажа и его центр тяжести, что обусловлено физическим строением человеческого тела. В компьютерной графике тазовая область становится родительским узлом по отношению ко всей системе костей, и именно она определяет положение персонажа в пространстве и его ориентацию.
Выделить определенную часть персонажа проще всего в окнах диалога Outliner (Структура) и Hypergraph (Просмотр структуры). Здесь особенно ярко проявляется важность присвоения элементам объекта значимых имен.
Вид иерархической цепочки блочной фигуры показан на Рисунок 9.5. Легко заметить, что все части тела соединены друг с другом связью вида "предок — потомок".
Чтобы лучше рассмотреть структуру этого объекта, загрузите файл block_man_ vOZ.mb, расположенный в папке ChapterFiles\Block_Man\scenes прилагаемого к книге компакт-диска.
Откройте окно диалога Hypergraph (Просмотр структуры) и выберите в меню Options (Параметры) команду Layout > Freeform Layout (Конфигурация > Свободная конфигурация), чтобы получить возможность перемещать узлы удобным для вас способом. Например, можно расположить их в соответствии с формой тела (Рисунок 9.6). Если при этом перейти в автоматический режим компоновки, выбрав в меню Options (Параметры) команду Layout > Automatic Layout (Конфигурация > Автоматическая конфигурация), заданная вами конфигурация узлов сохранится.
Ориентация конуса всегда будет совпадать с ориентацией сферы
Рисунок 9.32. Ориентация конуса всегда будет совпадать с ориентацией сферы
Ограничение Orient (Ориентация) позволяет сэкономить силы и время в случаях, когда требуется заставить два объекта поворачиваться в одном направлении. Например, если два быстроходных катера несутся по реке нос к носу, поворот одного должен сопровождаться поворотом другого, чтобы сохранить общий курс. В данном случае можно задать небольшое смещение между катерами и смоделировать сцену так, чтобы второй катер как бы реагировал на действия первого. В этом случае анимация будет более убедительной.
Подведем итоги
Подведем итоги
Основной целью упражнения по созданию цикла ходьбы было получение практических навыков работы с системой костей и ключами анимации. Это превосходный способ отточить свои способности аниматора. Подробное описание техник анимации персонажей выходит за рамки данной книги. Вы можете найти сведения о них в специальной литературе.
Подведем итоги
Работа по анимации начинается с постановки задачи и поиска путей ее решения. В Maya для этой цели имеется обширный инструментарий, и чем лучше вы с ним знакомы, тем проще будет выбрать наиболее подходящий для конкретного случая инструмент. Не ограничивайтесь этой информацией, данной в этой главе. Самостоятельно исследуйте не упомянутые здесь функции и смотрите, что происходит.
Анимация связана с умением наблюдать и интерпретировать свои наблюдения. Аниматор должен понимать, как и почему двигаются объекты, и как можно достоверней воспроизводить это движение на экране компьютера.
При анимации системы костей по
Рисунок 9.3. При анимации системы костей по методу обратной кинематики суставы вращаются в ответ на перемещение ИК-манипулятора
Присвоение суставам значимых имен упрощает работу с системой костей
Рисунок 9.7. Присвоение суставам значимых имен упрощает работу с системой костей
Раскраска весов позволяет избежать ненужных деформаций при сгибе суставов
Рисунок 9.28. Раскраска весов позволяет избежать ненужных деформаций при сгибе суставов
ПРИМЕЧАНИЕ
При мягком связывании веса" оболочки должны быть нормализованы. Это означает, что сумма всех весов не может превышать 1. Соответственно, понижение веса одного из суставов автоматически увеличивает влияние остальных суставов иерархической цепочки, относящейся к рассматриваемой области оболочки.
4. Сгладьте область перехода от белого к черному. Для этого в окне диалога Tool Settings (Параметры инструмента) установите переключатель Paint Operation (Операция) в положение Smooth (Сгладить). Для сглаживания области вокруг сустава используйте правую кнопку мыши. После этого указательный палец будет сгибаться совершенно корректно.
Для завершения работы с инструментом Paint Skin Weight Tool (Инструмент раскраски весов оболочки) достаточно активизировать любой другой инструмент, например, нажав клавишу w. Это вернет вас в обычный режим показа тонированных оболочек объектов.
Определите таким же способом силу воздействия остальных суставов, а затем анимируйте руку методом прямой кинематики, заставив ее сделать какой-либо жест или, например, взять карандаш.
ВНИМАНИЕ
При раскраске весов полигональной оболочки нужно помнить о том, что этот процесс задействует проекционные координаты. Поэтому в некоторых случаях вам не обойтись без создания новых проекционных координат. Особенно важно это при импорте и экспорте карт весов. Впрочем, с последней процедурой вам вряд ли предстоит столкнуться на начальном этапе изучения Maya.
Модель руки с раскрашенными весами указательного пальца находится в файле poly_hand_skeleton_v04.ma. По аналогии раскрасьте веса остальных суставов.
ПРИМЕЧАНИЕ
Для получения хорошей анимации крайне важно правильно произвести оснастку персонажа. В профессиональных студиях эта задача входит в обязанности технического директора. Потраченное на оснастку время окупается, когда наступает момент анимации.
Размещение опорных точек и иерархическая цепочка состоящей из блоков фигуры
Рисунок 9.5. Размещение опорных точек и иерархическая цепочка состоящей из блоков фигуры
Разрыв связи со скелетом
Разрыв связи со скелетомЧтобы разрушить связь между системой костей и геометрической оболочкой объекта, достаточно выделить скелет и оболочку и выбрать в меню Skin (Оболочка) команду Detach Skin (Отсоединить оболочку). Модель вернется к исходной форме. Иногда в процессе поиска оптимальной конфигурации операции связывания и разрыва связи приходится повторять несколько раз.
Впрочем, существует возможность вернуть объект в исходное состояние и без разрыва связи между скелетом и оболочкой. Достаточно выделить скелет и выбрать в меню Skin (Оболочка) команду Go to Bind Pose (Перейти к позе привязки). Скелет и оболочка вернутся в положение, которое они имели до связывания. К этой операции имеет смысл прибегать, например, при редактировании весов влияния суставов на вид оболочки.
Редактирование результатов мягкого связывания
Редактирование результатов мягкого связыванияРезультаты мягкого связывания обычно редактируются путем раскраски весов оболочки. Как вы помните, каждая точка оболочки испытывает на себе воздействие нескольких суставов, поэтому крайне важно правильно указать влияние каждого из этих воздействий, по-другому, его вес.
1. Нажмите клавишу 5 для перехода в режим показа тонированных оболочек объектов. Выделите руку, выберите в меню Skin (Оболочка) команду Edit Smooth Skin (Правка гладкой оболочки) и щелкните на квадратике, расположенном справа от команды Paint Skin Weight Tool (Инструмент раскраски весов оболочки).
ПРИМЕЧАНИЕ
Инструмент Paint Skin Weight Tool (Инструмент раскраски весов оболочки) влияет только на состояние геометрической оболочки, не затрагивая самих суставов. Поэтому перед применением этого инструмента выделить нужно весь объект, а не только систему костей.
Рука окрасится в черный цвет, переходящий в серый в области запястья. Кроме того, появится окно диалога с параметрами выбранного инструмента и списком всех суставов, соединенных с рукой.
Редактирование результатов жесткого связывания
Редактирование результатов жесткого связывания
Жесткое связывание оболочки с системой костей вовсе не обязано сопровождаться появлением резких складок. Специальные инструменты, называемые флексорами (flexors), позволяют сглаживать нужные вам области, добиваясь более приемлемого вида. Наиболее часто они применяются в области плечевых или бедренных суставов, в которых, в отличие от локтевого сгиба, появление складок нежелательно. Флексоры также позволяют избежать самопересечений геометрии:
1. Выберите в меню Skin (Оболочка) команду Go to Bind Pose (Перейти к позе привязки), чтобы вернуть руку в исходное положение.
2. Выделите центральный сустав указательного пальца и выберите в меню Skin (Оболочка) команду Edit Rigid Skin > Create Flexor (Правка жесткой оболочки > Создать флексор). Появится окно диалога с параметрами флексора.
Результат изменения размера флексора в соответствии с размерами пальца
Рисунок 9.24. Результат изменения размера флексора в соответствии с размерами пальца
5. Правильно размещенный флексор сглаживает результат деформации объекта. Слегка растянув флексор по длине пальца, вы избежите самопересечений геометрии при сгибе. При этом складка в районе сгиба будет довольно ярко выражена (Рисунок 9.25).
Результат мягкого связывания цилиндра В данном случае мы имеем более гладкую складку
Рисунок 9.21. Результат мягкого связывания цилиндра. В данном случае мы имеем более гладкую складку
Результат ограничения типа Point
Рисунок 9.31. Результат ограничения типа Point, при котором в роли ограничиваемого объекта выступает конус, а в роли мишени — сфера
Разумеется, объекты, находящиеся под действием ограничений, могут быть ани-мированы по методу ключевых кадров. Нужно помнить только о том, что после создания ограничения вы уже не сможете управлять атрибутами преобразования перемещения ограниченного объекта, так как ими будет управлять мишень.
Ограничения типа Point (Точка) замечательно подходят для моделирования, например, персонажа, несущего трость или меч. Вы сохраните возможность запрограммировать вращение меча, но вместе с тем он будет совершать те же перемещения, что и держащая его рука.
Результат размещения суставов во всех окнах проекции
Рисунок 9.17. Результат размещения суставов во всех окнах проекции
4. При нажатой клавише Shift щелкните в нижней части ладони.
5. Создайте ответвление иерархической цепочки для большого пальца (Рисунок 9.16).
6. Чтобы продолжить создание суставов ладони, вернитесь ко второму от начала суставу, несколько раз нажав клавишу ^.
7. Следующий сустав нужно создать в центре ладони. Чуть ниже должен оказаться следующий сустав, от которого начнут ответвляться иерархические цепочки остальных пальцев. Результат этих действий показан на Рисунок 9.16. С помощью созданной системы костей вы и анимируете пальцы.
Вернитесь к стандартному четырехоконному представлению и посмотрите, как выглядит созданная система в остальных окнах проекции. Положение отдельных участков цепочки нужно отредактировать, поместив их внутрь оболочки (Рисунок 9.17).
Для перемещения суставов в Maya используется как обычный режим преобразования Move (Переместить), так и режим перемещения опорной точки. Сначала активизируйте инструмент Move (Переместить) и выделите сустав, расположенный на кончике мизинца. Переместите его вниз таким образом, чтобы он оказался внутри оболочки. Затем переместите верхний сустав мизинца. Обратите внимание на то, что это действие сопровождается перемещением остальной части цепочки.
Если же вам требуется изменить положение сустава, не затрагивая всю цепочку, воспользуйтесь режимом перемещения опорной точки, для активизации которого достаточно нажать клавишу Insert. Перемещайте суставы цепочки, пока не получите систему, показанную на Рисунок 9.18 и 9.19.
Результат сгиба указательного пальца под действием трех флексоров
Рисунок 9.26. Результат сгиба указательного пальца под действием трех флексоров
1. Выделите корневой сустав, расположенный в области запястья, и верхний узел полигональной оболочки. Выберите в меню Skin (Оболочка) команду Bind Skin > Smooth Bind (Связать с оболочкой > Мягкое связывание).
2. Поверните пальцы в области суставов и посмотрите, как на это преобразование реагирует оболочка. Затем верните в позу привязки.
3. Выделите центральный сустав указательного пальца и поверните его вниз. Обратите внимание на то, как утончается оболочка в месте сгиба. Выделите верхний сустав указательного пальца и поверните его. Форма ладони при этом изменится. Эта преувеличенная деформация связана с тем, что рука была создана на основе сетки полигонов. Реакция на аналогичное воздействие NURBS-руки была бы менее выраженной. Результат сгиба указательного пальца показан на Рисунок 9.27.
Результат создания флексора для центрального сустава указательного пальца
Рисунок 9.23. Результат создания флексора для центрального сустава указательного пальца
4. В окне диалога Outliner (Структура) выделите строчку jointFfdlLatticeGroup. Для поиска этого узла вам потребуется раскрыть дерево иерархии объекта jointl. Измените размер флексора таким образом, чтобы он совпал с суставом пальца (Рисунок 9.24).
Результат жесткого связывания цилиндра Складка четко выражена
Рисунок 9.20. Результат жесткого связывания цилиндра. Складка четко выражена
Сборка руки
Сборка рукиВот как выглядит процесс создания системы костей для руки:
1. Разверните на весь экран окно проекции Тор (Вид сверху) и нажмите клавишу F2 для перехода в режим Animation (Анимация).
2. Выберите в меню Skeleton (Скелет) команду Joint Tool (Сустав) и обратите внимание на то, как при этом изменится форма указателя мыши.
3. Первый сустав поместите в основании запястья. Это будет корневой сустав иерархической цепочки.
Сгиб указательного пальца приводит к появлению лишних деформаций
Рисунок 9.27. Сгиб указательного пальца приводит к появлению лишних деформаций
Сгибание указательного пальца
Рисунок 9.40. Сгибание указательного пальца
Чтобы посмотреть на готовый вариант анимации указательного пальца, загрузите файл poly_hand_skeleton_v06.ma с прилагаемого к книге компакт-диска.
Шестая поза персонажа (кадр № 25)
Рисунок 9.14. Шестая поза персонажа (кадр № 25)
1. Установите ползунок таймера анимации на отметку кадра № 15. Поверните "переднюю" ногу в направлении тела и переместите тело вверх, чтобы вернуть персонаж на опорную поверхность. Колено "задней" ноги поверните вверх, чтобы нога слегка приподнялась, а ступню поверните вниз. Она должна касаться опоры только кончиками пальцев.
2. Начните движение рук в обратном направлении. Корпус практически выпрямите, но пока оставьте наклон головы. Создайте ключи анимации для всех суставов.
Скелеты и иерархия
Скелеты и иерархияСкелет представляет собой иерархическую цепочку. Создаваемые кости сразу связываются друг с другом соотношением "предок — потомок", при этом наверху оказывается корневой сустав (root joint), который становится предком для всех ниже расположенных костей. В качестве примера рассмотрим ногу (Рисунок 9.1). Корневым является бедренный сустав. Коленный сустав является по отношению к нему потомком, в свою очередь являясь предком расположенного ниже голеностопного сустава. В самом низу иерархической цепочки находятся пять суставов, управляющих сгибанием пальцев ноги.
Скелеты и кинематика
Скелеты и кинематикаМускулы вашего тела прикреплены к костям, то есть скелет, грубо говоря, представляет собой внутренний каркас, на который "налеплено" все остальное.
По этому же принципу стоятся модели персонажей в компьютерной графике, только здесь скелет является еще и движущей частью модели. Оболочка персонажа соединяется с системой костей и повторяет все ее движения. Использование системы костей позволяет деформировать и сгибать оболочку в местах расположения суставов. Система костей используется не только при моделировании персонажей. С ее помощью можно создать, например, клонящееся под порывами ветра дерево или кнут.
Соединение скелета с оболочкой
Соединение скелета с оболочкойИтак, скелет для персонажа готов. Его соединение с оболочкой представляет собой создание иерархической связи между частями тела и соответствующими суставами. Но перед тем как заниматься этим, откройте окно диалога Outliner (Структура) и присвойте всем суставам значимые имена (Рисунок 9.7). Впрочем, вы можете просто загрузить файл block_ man_skeleton_v01.mb с прилагаемого к книге компакт-диска. Вот как выглядит процесс соединения системы костей с оболочкой:
1. Начните с правой ступни. Сделайте объект r_foot дочерним по отношению к суставу rt_ ankle. Для этого в окне диалога Outliner (Структура) выделите объект r_foot, затем раскройте дерево иерархии объекта Pelvisl и при нажатой клавише Ctrl выделите сустав rt_ankle. Выберите в меню Edit (Правка) команду Parent (Сделать родителем). В данном случае предком становится голеностопный сустав rt_ankle, а не расположенный ниже сустав rt_foot, так как требуется, чтобы ступня наследовала преобразования голени. Проделайте аналогичную операцию для левой ступни.
Состояние сплайновой IK-цепочки
Рисунок 9.30. Состояние сплайновой IK-цепочки определяется кривизной лежащего в ее основе NURBS-сплайна. Редактирование положения управляющих точек этого сплайна вызывает перемещение суставов
Создание цикла ходьбы по методу обратной кинематики
Создание цикла ходьбы по методу обратной кинематикиТак как теперь ноги принудительно сохраняют контакт с опорной поверхностью, создание цикла ходьбы будет более простой задачей, чем при анимации методом прямой кинематики. Впрочем, для создания достоверного и красивого движения методом обратной кинематики все равно требуется довольно большой опыт.
Загрузите файл block_man_IK_v01.mb из папки ChapterFHes\Block_Man\scenes прилагаемого к книге компакт-диска или продолжите выполнение предыдущего упражнения. Как и раньше, выделенные белым рука и нога располагаются дальше от камеры. Программирование основных движений персонажа снова будет заключаться в создании ключей анимации, разделенных промежутками по пять кадров. Чтобы сократить упражнение, мы ограничимся заданием положений ноги. Анимировать руки при желании вы можете самостоятельно, воспользовавшись инструкцией из упражнения, посвященного моделированию цикла ходьбы методом прямой кинематики.
1. Установите ползунок таймера анимации на отметку кадра № 1 и создайте ключи для преобразования Translate (Переместить) корневого сустава и всех 1К-ма-нипуляторов.
2. Установите ползунок таймера анимации на отметку кадра № 5 и переместите корневой сустав на одну клеточку вперед. Ноги и ступни слегка приподнимутся и растянутся, чтобы сохранить связь с опорной поверхностью. Слегка опустите корневой сустав, чтобы убрать это натяжение. Создайте ключ анимации для тазового сустава. У вас должна быть включена функция Auto keyframe (Автоматическая установка ключевых кадров), поэтому ключи для остальных частей тела персонажа будут созданы автоматически.
3. Выделите IK-манипулятор, расположенный в области левой пятки, и переместите его вперед и вверх. Персонаж должен принять позу, показанную на крайнем левом рисунке.
4. Установите ползунок таймера анимации на отметку кадра № 10. Поставьте переднюю ногу на опорную поверхность, а затем переместите тазовый сустав на три четверти клеточки вперед. Создайте ключи анимации для атрибутов преобразования перемещения IK-манипулятора ступни "задней" ноги, фиксируя ее положение. При этом тазовый сустав должен находиться на такой высоте, чтобы "задняя" нога практически стояла на опорной поверхности, как показано на центральном изображении.
5. Установите ползунок таймера анимации на отметку кадра № 15. Переместите тазовый сустав почти на две клетки вперед. Нужно, чтобы центр тяжести оказался над опорной ногой. Поднимите "заднюю" ногу, согнув ее в колене, как показано на изображении справа.

6. Установите ползунок таймера анимации на отметку кадра № 20. Переместите тазовый сустав на одну клетку вперед и вынесите вперед выделенную белым ногу, как показано на изображении слева.
7. Переместите тазовый сустав на три четверти клетки вперед и поставьте "переднюю" ногу на опорную плоскость, как показано на изображении справа. Создайте ключи анимации для ступни "задней" ноги, фиксируя ее положение.

Следующая поза должна совпасть с позой из кадра № 10, только на этот раз вперед будет вынесена другая нога. Продолжите создание цикла ходьбы самостоятельно. При этом каждая следующая поза должна быть симметрична положению тела, установленному 15 кадрами ранее. Методом прямой кинематики анимируйте руки, чтобы придать движениям персонажа большую достоверность.
Создание изгибов и складок
Создание изгибов и складокСуществует простой способ создания изгибов и складок на поверхности модели. Достаточно связать модель с системой костей и деформировать ее нужным образом. Затем можно разорвать связь между скелетом и оболочкой, зафиксировав результат деформации. Для этого достаточно установить флажок Bake History (Завершение работы с историей конструирования) в окне диалога Detach Skin Options (Параметры разрыва связи с оболочкой), которое вызывается щелчком на квадратике, расположенном справа от команды Detach Skin (Отсоединить оболочку) в меню Skin (Оболочка). Затем остается щелкнуть на кнопке Detach (Отсоединить), и модель потеряет связь с системой костей, сохранив тем не менее форму.
Аналогичный способ применялся при удалении деформаторов. Впрочем, при разрыве связи с оболочкой история конструирования, не касающаяся операции связывания, сохраняется. При необходимости ее можно удалить отдельно с помощью команды меню Edit (Правка).
Создание скелета
Создание скелетаСтроение фигуры человека, состоящей из блоков, аналогично структуре скелета. Поэтому мы используем его в качестве отправной точки для создания системы костей. Загрузите файл block_man_v01.mb с прилагаемого к книге компакт-диска. Эта сцена также содержит состоящую из блоков фигуру, но, в отличие от предыдущего случая, ее части пока независимы друг от друга.
1. Разверните окно проекции Front (Вид спереди) на весь экран и нажмите клавишу F2 для перехода в режим Animation (Анимация).
2. Выберите в меню Skeleton (Скелет) команду Joint Tool (Сустав) и обратите внимание на то, как при этом изменится форма указателя мыши.
3. Щелкните в центре тазовой области. Здесь будет располагаться первый сустав скелета.
4. При нажатой клавише Shift щелкните в пространстве между тазом и талией.
Нажатие клавиши Shift одновременно со щелчком гарантирует, что сустав будет расположен на соединяющей таз и талию прямой линии. Соединяющие суставы кости являются визуальными направляющими скелета. При этом расположение суставов в пространстве зависит от того, в каком окне проекции оно выполняется.
5. Создайте дополнительные суставы между блоками, составляющими туловище.
6. Перейдем к созданию остальных ветвей иерархической цепочки. Три раза нажмите клавишу Т, чтобы выделить кости вплоть до сустава, расположенного между шеей и грудью.
ПРИМЕЧАНИЕ
Клавиша ^ позволяет вам подниматься вверх по иерархической цепочке, клавиша v управляет движением вниз.

7. Щелкните в верхней части правого бицепса, чтобы создать там новый сустав. Затем щелчками создайте суставы в областях локтя, запястья и на кончиках пальцев.
8. Нажимайте клавишу Т до тех пор, пока снова не подниметесь до сустава, расположенного между шеей и грудью. Затем повторите шаг 7, чтобы создать вторую руку.
9. Для создания ног вам потребуется опуститься в область таза, то есть выделить корневой сустав.
10. Щелкните в верхней части бедра, а затем в областях колена и лодыжки. Голеностопный сустав должен располагаться посередине между голенью и ступней. Нажмите клавишу Пробел для возвращения к четырехоконной конфигурации, а затем разверните на весь экран окно проекции Side (Вид сбоку). Щелчком создайте суставы на кончиках пальцев.
11. Активизируйте окно проекции Front (Вид спереди) и с помощью клавиши Т вернитесь к корневому суставу. Повторите шаг 10 для создания второй ноги. Закончив формирование цепочки, нажмите клавишу Enter.
Создание управляемого ключа
Создание управляемого ключаЧтобы создать простую анимацию методом управляемого ключа, выполните следующие действия:
1. Откройте новую сцену и создайте два NURBS-примитива — сферу и конус. Поместите конус сбоку от сферы и положите его на бок.
Создание управляемых ключей
Создание управляемых ключейОдной из самых любимых функций у аниматоров, занимающихся оснасткой персонажей, является создание управляемых ключей. Эта функция предназначена для установки между объектами сцены связей, позволяющих создать элементы управления различными частями персонажа.
Работа по настройке управляемых ключей начинается с создания дополнительных атрибутов, которые присоединяются к верхнему узлу персонажа. Именно эти атрибуты отвечают за анимацию его отдельных частей. В данном случае термин "персонаж" употребляется в широком смысле. Так можно назвать, например, автомобиль, вращение колес которого создано методом управляемых ключей.
Начнем с установки простого соотношения между двумя объектами. Вам предстоит связать между собой шар и конус. При перемещении шара в положительном направлении оси Y конус должен двигаться по кругу относительно оси X. Затем изученная техника будет использована для анимации руки.
Связывание: общие сведения
Связывание: общие сведенияВ теории связывание идентично деформатору Lattice (Решетка), знакомому вам по главе 6. Как вы помните, присоединенная к объекту решетка может влиять на различные части модели. Каждый ее участок воздействует на определенные управляющие точки NURBS-поверхности или вершины полигональной сетки и в процессе перемещения изменяет вид объекта.
Связывание оболочки со скелетом приводит к аналогичному результату. Точки модели соединяются с костями, в результате чего перемещения костей вызывают преобразования оболочки.
Соединив вершины или управляющие точки модели со скелетом, вы получаете возможность деформировать оболочку. При перемещении кости или при ее повороте в суставе оболочка следует за скелетом, принимая новые очертания.
Непосредственно связать геометрию с оболочкой можно двумя способами — жестким и мягким. При этом у вас остается возможность влиять на вид геометрии с помощью присоединенных к скелету деформаторов и решеток, но в данном случае мы используем прямые методы. На Рисунок 9.20 показан результат действия команды Rigid Bind (Жесткое связывание), а на Рисунок 9.21 — результат действия команды Smooth Bind (Мягкое связывание).
Создайте NURBS-цилиндр, разбитый по высоте на 16 или даже более интервалов. В данном случае чем выше степень разбиения, тем лучше будет гнуться модель. Продублируйте цилиндр и сдвиньте копию в сторону. Затем в окне проекции Front (Вид спереди) создайте простой скелет, состоящий из пяти суставов, начинающийся в нижней части цилиндра и заканчивающийся у верхнего основания. Продублируйте цепочку костей и поместите ее в центр второго цилиндра.
Связывание с оболочкой
Связывание с оболочкойНеотъемлемой частью сборки персонажей является процесс связывания системы костей с геометрической оболочкой (skinning) — особый способ соединения скелета и геометрии. Если в предыдущем случае вы непосредственно присоединяли части объекта к участкам иерархической цепочки за счет формирования связей вида "предок — потомок", то теперь вам предстоит иметь дело с кластерами (clusters), то есть группами вершин или управляющих точек, отвечающих за деформацию модели. Именно так скелеты используются для анимации персонажей.
Третья поза персонажа (кадр № 10)
Рисунок 9.11. Третья поза персонажа (кадр № 10)
6. Выделите все суставы персонажа в окне диалога Outliner (Структура) и создайте ключ анимации для преобразования Rotate (Повернуть). Создание ключей анимации для всех суставов одновременно гарантирует синхронность движения всех частей тела.
ВНИМАНИЕ
Если сейчас пренебречь созданием ключей анимации для всех суставов, в дальнейшем создание ключей анимации с помощью функции Auto keyframe (Автоматическая установка ключевых кадров) для отдельных частей модели может выполняться некорректно.
Усовершенствованные методы работы с управляющими ключами
Усовершенствованные методы работы с управляющими ключамиЛюбому аниматору рано или поздно приходится сталкиваться с анимацией персонажей. Одним из наиболее предпочтительных методов анимации руки является создание управляемого ключа. К этому этапу переходят после оснастки модели.
Загрузите файл poly_hand_skeleton_v05.ma из папки ChapterFHes\Poly_Hand_ Anim\scenes прилагаемого к книге компакт-диска или воспользуйтесь собственной версией руки, связанной со скелетом. При этом рука не должна быть аними-рована. Перед началом работы верните ее в позу привязки.
Создание нового атрибута
Начнем с создания нового атрибута index_pull, который будет отвечать за сгибание пальца.
1. Выделите руку. Проще всего сделать это в окне диалога Outliner (Структура), выделив строчку polySurface2. Обратите внимание на раздел Extra Attributes (Дополнительные атрибуты) на вкладке polySurface2 окна диалога Attribute Editor (Редактор атрибутов). В данный момент он пуст.
2. Выберите в меню Attributes (Атрибуты) окна диалога Attribute Editor (Редактор атрибутов) команду Add Attribute (Добавить атрибут), чтобы открыть показанное на Рисунок 9.38 окно диалога. Введите в поле Attribute Name (Имя атрибута) имя index_pull. Убедитесь в наличии флажка Make Attribute Keyable (Допустить назначение ключа анимации), а также в том, что переключатель Data Type (Тип данных) стоит в положении Float (С плавающей точкой). В разделе Numeric Attribute Properties (Численные свойства атрибута) введите в поле Minimum (Минимальное значение) значение 0, а в поле Maximum (Максимальное значение) — значение 10. В поле Default (Значение по умолчанию) введите значение 0.
В результате действия ограничения
Рисунок 9.35. В результате действия ограничения Geometry конус остается на NURBS-поверхности даже при ее деформации
Если же требуется, чтобы ориентация конуса повторяла все изгибы поверхности, используйте ограничение Normal (Нормаль). В этом случае ориентация конуса повторяет ориентацию нормалей, соответственно, конус все время будет оставаться перпендикулярным поверхности.
ПРИМЕЧАНИЕ
Нормалью называется воображаемый отрезок, исходящий из центра грани перпендикулярно ее поверхности и указывающий, под каким углом грань располагается в пространстве.
Параметры ограничений Aim (Цель) и Normal (Нормаль) во многом похожи друг на друга. Атрибут Aim Vector (Вектор цели) позволяет указать ориентацию объекта, но не ограничивает положения объекта по отношению к мишени. Соответственно, если вам требуется, чтобы ориентация объекта повторяла изгибы поверхности, например, как показано на Рисунок 9.36, используйте ограничение Normal (Нормаль).
Вариант свободной компоновки узлов в окне диалога Hypergraph
Рисунок 9.6. Вариант свободной компоновки узлов в окне диалога Hypergraph
Вид иерархии системы костей и геометрической оболочки объекта в окнах диалога Hypergraph и Outliner
Рисунок 9.8. Вид иерархии системы костей и геометрической оболочки объекта в окнах диалога Hypergraph и Outliner
Завершение работы над циклом ходьбы
Завершение работы над циклом ходьбыИтак, основной набор поз для цикла ходьбы уже создан, осталось создать позы для шага другой ногой. Однако рассмотрим нашу анимацию более внимательно. Например, вы заставили персонаж сделать левой ногой шаг вперед. Теперь нужно, чтобы он сделал шаг правой. Поза в кадре № 35 соответствует позе в кадре № 15, а поза в кадре № 40 — позе в кадре № 20. С этого вы можете начать серию поз для левой ноги.
После завершения работы над 30-кадровым отрывком приходит время инструмента Graph Editor (Редактор анимационных кривых). Меняя положение ключей анимации, можно сделать движение персонажа более естественным. Пока что у нас есть только ключевые позы персонажа, разделенные одинаковыми 5-кадровыми интервалами.
Но ведь для перехода в некоторые позы требуется намного меньше заданных пяти кадров. Например, перейти из исходного положения в первую позу можно всего за четыре кадра. Следующая поза тоже может быть получена за четыре кадра, в то время как для перехода в следующую позу достаточно трех кадров. Вот как выглядит редактирование временных интервалов:
1. Выделите узел pelvis и откройте окно диалога Graph Editor (Редактор анимационных кривых). Раскройте дерево иерархии узла pelvisl на панели Outliner (Структура), щелкнув на квадратике со знаком "плюс", расположенном справа от названия узла. Справа появятся анимационные кривые всех суставов.
Жесткое связывание руки
Жесткое связывание рукиТак как складки в местах сгиба пальцев выражены достаточно четко, для начала мы используем жесткое связывание.
Загрузите файл poly_hand_skeleton_v02.ma с прилагаемого к книге компакт-диска и выполните следующие действия:
1. Выделите корневой сустав системы костей (он располагается в области запястья), а затем при нажатой клавише Shift выделите объект polySurface2.
Жесткое связывание
Жесткое связываниеЖесткое связывание является более простым, так как в этом случае каждый сустав в единицу времени воздействует только на одну точку поверхности. Команда Rigid Bind (Жесткое связывание) группирует управляющие вершины NURBS-no-верхности или вершины полигональной сетки в кластеры, которые, в свою очередь, присоединяются к костям. Совместное воздействие нескольких суставов на управляющие вершины невозможно. Именно поэтому модель будет иметь более выраженную складку, чем при мягком связывании.
Для выполнения жесткого связывания выделите первую систему костей, а затем при нажатой клавише Shift выделите цилиндр. Выберите в меню Skin (Оболочка) команду Bind Skin (Связать с оболочкой) и щелкните на квадратике, расположенном справа от команды Rigid Bind (Жесткое связывание).
Появится окно диалога с параметрами жесткого связывания. Сейчас нас вполне устроят значения, заданные по умолчанию. Раскрывающийся список Bind To (Связать с) определяет, будет ли с геометрией связан весь скелет или же только указанные вами суставы. Выбрав вариант Selected Joints (Выделенные суставы), вы сможете задать степень влияния системы костей на модель. Впрочем, в данном случае мы оставим заданный по умолчанию вариант Complete Skeleton (Co всем скелетом).
Установите флажок Color Joints (Окрашивание суставов), чтобы каждый связанный сустав был окрашен в свой цвет. В некоторых случаях это облегчает рабочий процесс. Переключатель Bind Method (Способ связывания) определяет способ соединения с оболочкой модели. Например, когда он установлен в положение Closest Point (К ближайшей точке), объединение точек поверхности в кластеры происходит в зависимости от ближе всего расположенного сустава. Если же установить его в положение Partition Set (Распределенный набор), вы сможете самостоятельно выбирать точки поверхности, которые будут связаны с тем или иным суставом.
Если пользователь определяет наборы точек поверхности для каждого имеющегося сустава, программа в итоге назначает каждый из наборов ближайшему суставу. Например, можно указать, что точки в верхней части поверхности входят в набор, которым управляет сустав, расположенный снизу.
В данном случае мы оставляем для всех параметров заданные по умолчанию значения, поэтому просто щелкните на кнопке Bind Skin (Связать оболочку) в окне диалога Rigid Bind Skin Options (Параметры жесткого связывания). В итоге выделенным окажется корневой сустав связанной с первым цилиндром системы костей, а цилиндр приобретет пурпурный цвет, что показывает наличие входных связей.
Дополнительные техники анимации
Анимация источника света
Анимация источника светаЛюбые атрибуты источника света, как и атрибуты любого объекта сцены, могут быть анимированы. Анимации нельзя подвергнуть только тип осветителя. То есть вы не можете сделать так, чтобы с течением времени прямоугольный источник света вдруг превращался в прожектор. Для редактирования анимации осветителя нужно выделить его в окне проекции и открыть окно диалога Graph Editor (Редактор анимационных кривых). Сама же анимация осуществляется в окне диалога Channel Box (Окно каналов) или Attribute Editor (Редактор атрибутов) — достаточно выделить имя нужного атрибута, щелкнуть на нем правой кнопкой мыши и выбрать в появившемся меню команду Key Selected (Создать ключи анимации для выделенных параметров).
СОВЕТ
Анимация параметра Intensity (Интенсивность) позволяет сымитировать включение или выключение осветителя. Например, для имитации включения источника света используется возрастающая кривая, согласно которой яркость свечения источника сначала медленно увеличивается, постепенно по дуге достигая максимума предполагающейся интенсивности. Используйте этот прием вместо простого включения или выключения источников света в сцене. Он увеличит достоверность вашей анимации.
Анимация цвета источника света, как, впрочем, и анимация цвета материала, заключается в создании ключевых кадров для каждого из значений RGB. При этом в окне диалога Graph Editor (Редактор анимационных кривых) появятся три анимационных кривых. Для создания трех ключей нужно щелкнуть на имени атрибута Color (Цвет) в окне диалога Attribute Editor (Редактор атрибутов) и выбрать в появившемся меню команду Set Key (Создать ключ).

Кроме того, вы можете заставить источники света перемещаться, поворачиваться и менять свой размер с течением времени, то есть анимировать стандартные преобразования.
Базовые концепции освещения
Базовые концепции освещенияНе является тайной тот факт, что освещение сцен в Maya напоминает техники освещения, используемые в традиционной фотографии и при киносъемке. Источники света различных типов распределяются по сцене, как при освещении статичной сцены или портретной съемке. Выбор источников света до некоторой степени определяется содержанием сцены, так как он зависит от того, какого эффекта вы хотите добиться.
На базовом уровне вам требуется получить в сцене набор источников света, потому что в противном случае вы просто не сможете рассмотреть результат визуализации. Камера зафиксирует лишь темноту. На первый взгляд кажется, что достаточно создать набор осветителей и включить их — и можно приступать к визуализации, но, к сожалению, все далеко не так просто.
Освещение является основой компьютерной графики. Технически создать источники света и распределить их в пространстве совсем не сложно, но полученный при этом эффект может разрушить все впечатление от сцены. Умение подчеркнуть при этом достоинства сцены и создать нужное настроение приходит только с опытом.
В этой главе мы поговорим об основных техниках освещения в Maya. Это даст вам базовый материал для самостоятельного изучения этого сложного искусства.
Что нужно создать в сцене?
Что нужно создать в сцене?В идеале в сцене желательно создать области бликов и теней. Чрезмерное освещение приводит к появлению плоского изображения и недостаточной детализации. Именно такую ошибку чаще всего допускают начинающие. Результат размещения в сцене слишком большого количества осветителей высокой интенсивности показан на Рисунок 10.1. Подобный подход приводит к исчезновению цветовой информации и глубины сцены.
Дополнительные упражнения
Дополнительные упражненияПрактика является наиболее предпочтительным способом знакомства с особенностями источников света и освещения сцен.
Файл still_life_v01.mb, расположенный в папке ChapterFiles\Lighting\scenes прилагаемого к книге компакт-диска, содержит сцену с натюрмортом, в которой нет ни одного источника света. Попробуйте различные варианты освещения и различные типы теней. Та же самая сцена, но уже с готовым освещением с трех точек, содержится в файле still_life_v02.mb. Обратите внимание на то, что ключевой источник света состоит из двух осветителей (spotLightl и spotLight2). В качестве заполняющего источника света фигурирует осветитель directionalLightl, а в формировании контрового света принимают участие еще два прожектора (spotlights и spotLight4).
Имитация лампочки, подвешенной для освещения натюрморта, была получена с помощью свечения материала
Рисунок 10.30. Имитация лампочки, подвешенной для освещения натюрморта, была получена с помощью свечения материала
Имитация света, падающего из приоткрытой двери, с помощью источника света типа Area
Рисунок 10.18. Имитация света, падающего из приоткрытой двери, с помощью источника света типа Area
Использование инструмента Show Manipulator Tool
Использование инструмента Show Manipulator ToolДля управления источниками света удобнее всего использовать специальный манипулятор, вызываемый нажатием клавиши t Например, выделите имеющийся в сцене прожектор и нажмите клавишу t или щелкните на кнопке Show Manipulator (Показать манипулятор), расположенной на пристыкованной к левой стороне экрана панели инструментов. В окнах проекции появятся два манипулятора перемещения.
Эти манипуляторы позволят менять положение как самого источника света, так и объекта, на который свет падает. Последовательные щелчки на голубом кружке, расположенном под манипулятором перемещения источника света, позволяют перейти к другим манипуляторам. Например, для прожектора это будет манипулятор управления световым конусом (именно он показан на рисунке) и манипулятор управления областью полутени.

Манипулятор преобразования перемещения источника света и освещенного объекта доступен для источников света всех типов посредством инструмента Show Manipulator (Показать манипулятор).

Использование освещения с трех точек
Использование освещения с трех точекСистема освещения с трех точек используется для основных объектов сцены. Так как производимый эффект зависит от положения камеры и ее ориентации по отношению к объекту съемки, перемещение камеры требует изменения настроек освещения. Таким образом, расположение источников света при освещении с трех точек зависит не от содержания сцены, а от положения камеры.
При этом не стоит забывать об освещении заднего плана. Для основного освещения сцены используйте направленный ключевой источник света. Чтобы осветить остальную часть сцены и смягчить тени от объектов, применяется не имеющий определенного направления заполняющий источник света.
Источник света типа Ambient
Источник света типа AmbientИсточник света типа Ambient (Рассеянный) распространяет лучи во всех направлениях, равномерно освещая сцену. Он замечательно подходит для создания равномерного освещения, однако при этом велик риск получения откровенно плоской сцены (Рисунок 10.10). Источники света данного типа лучше всего использовать в качестве заполняющих осветителей или осветителей фона.
Источник света типа Area и способ его размещения
Рисунок 10.17. Источник света типа Area и способ его размещения
Так как размер испускающей свет области прямоугольных источников света можно контролировать, они замечательно подходят, например, для имитации узкой полоски света, падающей из приоткрытой двери (Рисунок 10.18), или для воспроизведения рассеянного света ртутных ламп. Используйте источники света типа Area (Прямоугольный), когда вам нужно осветить определенный участок сцены.
Источник света типа Area
Источник света типа AreaИсточник света типа Area (Прямоугольный) испускает лучи не из одной бесконечно малой точки в пространстве, а из ограниченной прямоугольником области, размеры которой пользователь может менять по собственному желанию. Пример освещенной с его помощью сцены показан на Рисунок 10.17. В остальном он аналогичен осветителю типа Point (Точечный). У него также существует параметр Decay Rate (Скорость спада). При этом для увеличения интенсивности источника света типа Area (Прямоугольный) достаточно увеличить масштаб его значка.
Источник света типа Directional
Источник света типа DirectionalИсточник света типа Directional (Направленный) испускает лучи в определенном направлении, равномерно освещая сцену (Рисунок 10.12).
Источник света типа Point
Источник света типа PointИсточник света типа Point (Точечный) распространяет лучи из определенной точки пространства. Его аналогом в реальном мире является обычная электрическая лампочка. Свет распространяется равномерно во всех направлениях. В результате сцена приобретает вид, показанный на Рисунок 10.13.
Источник света типа Spot
Источник света типа SpotИсточник света типа Spot (Прожектор) можно считать одним из самых широко используемых в Maya, так как он применяется в качестве ключевых и заполняющих осветителей для создания ореола вокруг объекта, для получения световых пятен в определенных областях — словом, действует, как настоящий прожектор.
Как и источник света типа Directional (Направленный), прожектор распространяет лучи в определенном направлении. Но эти лучи исходят из определенной точки, расходясь конусообразно. Источник света типа Spot (Прожектор) дает возможность получить световое пятно на поверхности объектов, в то время как лучи осветителя Directional (Направленный) распространяются равномерно. Пример сцены, освещенной прожектором, показан на Рисунок 10.15.
Источник света типа Volume
Источник света типа VolumeИсточник света типа Volume (Объемный) имеет видимую область распространения, что позволяет точно увидеть границу между светом и тенью (Рисунок 10.19). Если в случае прямоугольного источника света лучи исходили из ограниченной прямоугольником области, то объемный осветитель испускает лучи из некой области пространства.
Источники света в Maya
Источники света в MayaВ Maya существует шесть типов осветителей: Directional (Направленный), Ambient (Рассеянный), Point (Точечный), Volume (Объемный), Spot (Прожектор) и Area (Прямоугольный). Использование каждого из них зависит от роли, которую источник света будет играть в сцене. Каждый из них может выступать как ключевой, заполняющий или даже контровой осветитель. Впрочем, существуют источники света, подходящие для определенной роли больше других. Чаще всего в сценах фигурируют осветители типа Directional (Направленный), Ambient (Рассеянный) и Spot (Прожектор).
Для создания источника света нужно выбрать в меню Create (Создать) команду Lights (Источники света) и указать тип осветителя.
Источники света в сцене и их анимация
Источники света в сцене и их анимацияВ процессе освещения сцены включение всех источников света в окне проекции Perspective (Перспектива) или Camera (Камера) дает возможность получить представление об яркости освещения сцены и направлении распространения световых лучей. Большинство видеокарт позволяют работать в таком режиме максимум с восемью источниками света.
Для включения всех источников света достаточно нажать клавишу 7. При этом вы должны находиться в режиме показа тонированных оболочек объектов (включается нажатием клавиши 5) или в режиме аппаратного показа текстур (включается нажатием клавиши 6).
В процессе освещения сцены не стоит забывать и о таком инструменте, как интерактивная фотореалистичная визуализация. Он позволяет отслеживать результаты редактирования освещенности в реальном времени. Более подробно с его свойствами вы познакомитесь в следующей главе.
Эффект сияния, включенный для контрового источника света
Рисунок 10.29. Эффект сияния, включенный для контрового источника света

Если нужно, чтобы сияние сопровождалось бликами, установите флажок Lens Flare (Блики линз) в разделе Optical FX Attributes (Атрибуты оптических эффектов) окна диалога Attribute Editor (Редактор атрибутов). Вид блика определяется атрибутами из раздела Lens Flare (Блики линз).
Линзовые эффекты при аккуратном применении позволяют увеличить достоверность освещения сцены, но пользователи часто забывают про них или, наоборот, используют слишком интенсивно, в то время как умеренно и к месту примененные эффекты могут сделать вашу сцену совершенно неотразимой.
Ключевой свет
Ключевой светКлючевой источник света (key light) — это основной осветитель сцены. Обычно он располагается на некотором расстоянии справа или слева от камеры, что дает более яркое освещение с одной из сторон и увеличивает глубину кадра. Кроме того, именно этот источник света образует тени от объектов, что позволяет определить, с какой стороны освещена сцена.
Несмотря на то, что в качестве ключевых источников света вы можете использовать несколько осветителей — скажем, на потолке могут располагаться три люстры, один из них непременно должен доминировать, указывая преобладающее направление распространения лучей. На Рисунок 10.5 показана сцена, освещенная только ключевым источником света, состоящим из двух осветителей.
Контровой свет позволяет выделить объекты на фоне декораций
Рисунок 10.7. Контровой свет позволяет выделить объекты на фоне декораций
Контровой свет приводит к появлению бликов на кромках объектов, подчеркивая их форму и привлекая к ним дополнительное внимание.
Не путайте контровой свет с осветителями фона (background light), которые предназначены для освещения обстановки за основными объектами сцены.
Контровой свет
Контровой светКонтровой свет (back light) располагается позади объектов и формирует небольшой ореол, позволяющий выделить объекты на фоне декораций. Пример сцены со всеми тремя источниками света показан на Рисунок 10.7.
Линзовые эффекты
Линзовые эффектыБлики (Рисунок 10.29) возникают в случаях, когда луч света попадает прямо в объектив фотоаппарата или же в кадре присутствует источник света. Чтобы возникли блики, световой луч должен упасть на линзу объектива под определенным углом. Его отражение от линзы и вызывает появление бликов.
Для получения данного эффекта нужно щелкнуть на кнопке с рисунком шахматной доски, расположенной справа от поля Light Glow (Свечение) в разделе Light Effects (Световые эффекты) окна диалога Attribute Editor (Редактор атрибутов) выделенного источника света. Это приведет к появлению узла OpticalFXl. Соответственно, окно диалога Attribute Editor (Редактор атрибутов) откроется на новой вкладке. Этот узел имеет следующие атрибуты:
Недостаточно освещенная сцена
Рисунок 10.2. Недостаточно освещенная сцена
Вам нужно найти золотую середину. Нужно получить переход от максимально белого цвета к максимально черному, только в этом случае сцена будет детализирована как следует. Пример хорошо освещенной сцены показан на Рисунок 10.3. Свет и тень дополняют друг друга, подчеркивая форму объектов.
Низкие значения параметра Ambient Shade делают изображение плоским
Рисунок 10.11. Низкие значения параметра Ambient Shade делают изображение плоским
Объемное освещение
Объемное освещениеКак воссоздать свет от фонарика в туманную погоду? Для его воспроизведения в Maya используется так называемое объемное освещение. Этот эффект позволяет получить весьма впечатляющие результаты, визуализация которых, впрочем, иногда занимает значительное время.
Объемное освещение невозможно получить с помощью источников света типа Directional (Направленный) или Ambient (Рассеянный). В остальных случаях нужно выделить источник света и открыть для него окно диалога Attribute Editor (Редактор атрибутов). В разделе Light Effects (Световые эффекты) нужно щелкнуть на кнопке с рисунком шахматной доски, расположенной справа от поля Light Fog (Светящийся туман). Это приведет к появлению нового узла визуализации. Соответственно, окно диалога Attribute Editor (Редактор атрибутов) откроется на вкладке Light Fog.
Maya создает объемный туман присоединением к источнику света узла lightFog. Атрибуты Color (Цвет) и Density (Плотность) этого узла управляют яркостью, толщиной и цветом тумана. Вернувшись к редактированию узла материала, вы обнаружите атрибуты Fog Intensity (Интенсивность тумана) и Fog Spread (Распространение тумана). Первый отвечает за яркость тумана, а второй определяет вид тумана в заданных границах. Например, при создании этого эффекта с помощью источника света типа Spot (Прожектор) луч будет иметь форму конуса. На Рисунок 10.28 показано, как значение параметра Fog Spread (Распространение тумана) влияет на вид эффекта.
Общие атрибуты источников света
Общие атрибуты источников светаРабота с источниками света в Maya ничем не отличается от работы с остальными узлами объектов. Они подвергаются преобразованиям перемещения, поворота и масштабирования, удаляются, дублируются и т. п. Их узлы можно увидеть наравне с узлами прочих элементов сцены в окнах диалога Hypergraph (Просмотр структуры) и Outliner (Структура). И наравне с остальными узлами источники света имеют набор атрибутов, определяющих, как именно они функционируют. На Рисунок 10.8
Окно диалога Attribute Editor
Рисунок 10.8. Окно диалога Attribute Editor для стандартного источника света показано окно диалога Attribute Editor (Редактор атрибутов) для стандартного источника света.
Выделив источник света и открыв для него окно диалога Attribute Editor (Редактор атрибутов), вы увидите следующий параметры:
к появлению на визуализированном изображении исключительно зеркальных бликов. Полученное таким способом изображение потом может быть отредактировано и смонтировано с остальной сценой. Более подробную информацию об этом вы найдете немного позднее. Результат визуализации различных компонентов изображения показан на Рисунок 10.9.
Освещение источником света типа Spot
Рисунок 10.15. Освещение источником света типа Spot
Раскрывающийся список Decay Rate (Скорость спада) используется для выбора различных вариантов уменьшения интенсивности света с увеличением расстояния. При этом для компенсации затухания желательно увеличить значение параметра Intensity (Интенсивность).
Параметр Cone Angle (Световой конус) задает ширину формируемого прожектором конуса света. Чем шире конус, тем больше будет объем вычислений при обсчете сцены.
Параметр Penumbra Angle (Область полутени) определяет размер области затухания света, начиная с границы светового конуса. Освещение сцены при различных значениях данного параметра продемонстрировано на Рисунок 10.16. Отрицательное значение смягчает границу конуса изнутри, уменьшая размер светового пятна, в то время как положительное значение приводит к размыванию границы снаружи.
Атрибут Dropoff (Затухание) аналогичен атрибуту Penumbra Angle (Область полутени), но действует, начиная с центра светового конуса. Интенсивность света, максимальная в центре, линейно уменьшается по мере приближения к границе конуса. Атрибут Dropoff (Затухание) может принимать значения от нуля до бесконечности и используется для размывания слишком однородной границы освещенной области, приводящей к появлению ненужной контрастности.
Освещение с трех точек
Освещение с трех точекОбсчет освещенных поверхностей и теней при визуализации сцены иногда требует значительных ресурсов, поэтому в процессе работы над освещением нельзя забывать о таком аспекте, как эффективность. Это означает, что не имеет смысла использовать дюжину источников света для каждой части сцены.
Традиционный подход к этой проблеме, использующийся в фотографии и кино, называется освещением с трех точек. В этом случае источники света в кадре играют три различные роли. Для каждой из ролей может быть создано несколько осветителей, но общий эффект должен быть таким, как будто в сцене существуют основной, или ключевой, источник света, более мягкий заполняющий осветитель и источник контрового света, отделяющего объекты от фона.
Освещение сцены
Освещение сценыНачать освещение сцены лучше всего с создания пары источников света, например направленного осветителя и прожектора. И только после этого имеет смысл прибегать к более сложным вариантам, например источникам света типа Area (Прямоугольный) или Volume (Объемный).
Понимать сущность процесса освещения намного важнее, чем знать все нюансы атрибутов источников света. Начинающим пользователям лучше всего ограничиться работой с осветителями типа Spot (Прожектор), Directional (Направленный) и, в некоторых случаях, Ambient (Рассеянный).
Параметр Dmap Resolution определяет качество теней
Рисунок 10.24. Параметр Dmap Resolution определяет качество теней
Источник света типа Directional (Направленный) не подходит для формирования теней на основе карты глубины, так как качественные тени получаются только при довольно высоком разрешении. Впрочем, если требуется четко передать очертания объектов, используйте трассированные тени (см. Рисунок 10.22).
Осветитель типа Spot (Прожектор) позволяет получить более четкие тени при меньших значениях параметра Dmap Resolution (Разрешение карты глубины), что позволяет сократить время визуализации. На Рисунок 10.25 показан пример теней на основе карты глубины, полученных от прожектора при значении параметра Dmap Resolution (Разрешение карты глубины), равном 1024. Обратите внимание на то, как увеличение разрешения карты глубины всего на одну четверть повлияло на вид теней.
Параметр Fog Spread влияет на распределение тумана в границах светового конуса
Рисунок 10.28. Параметр Fog Spread влияет на распределение тумана в границах светового конуса
СОВЕТ
Для удаления эффекта объемного света достаточно щелкнуть на имени параметра Light Fog (Светящийся туман) в окне диалога Attribute Editor (Редактор атрибутов) правой кнопкой мыши и выбрать в появившемся меню команду Break Connection (Разорвать связь).
Если нужно сделать так, чтобы светящийся туман приводил к формированию теней, достаточно установить флажок Use Depth Map Shadows (Использование карты глубины) в разделе Depth Map Shadow Attributes (Параметры карты глубины) окна диалога Attribute Editor (Редактор атрибутов) для источника света. Чтобы улучшить качество теней, используйте параметр Dmap Resolution (Разрешение карты глубины).
Параметр Penumbra Angle отвечает за мягкость границы светового конуса
Рисунок 10.16. Параметр Penumbra Angle отвечает за мягкость границы светового конуса
Источник света типа Spot (Прожектор) чаще других применяется для имитации реальных осветителей. Кроме того, именно такие источники чаще всего формируют тени. Впрочем, об этом мы поговорим немного позже.
Подведем итоги
Подведем итогиОсвещение является основой компьютерной графики. Именно оно формирует общее впечатление от сцены. Освещение идет рука об руку с назначением материалов и визуализацией сцены. Соответственно, чем лучше вы понимаете процесс работы на каждом из этих этапов, тем лучше будет выглядеть создаваемая вами сцена.
Как уже говорилось, нужно понимать принцип работы реального источника света и знать способ воспроизводства такого же освещения в Maya. Приобрести такое умение можно только опытным путем, поэтому не бойтесь экспериментировать с различными вариантами освещения и создания теней.
Прожектор создает более четкие
Рисунок 10.25. Прожектор создает более четкие тени на основе карты глубины при относительно малых значениях параметра Dmap Resolution
Попытки получить четкие тени, слишком сильно увеличивая параметр Dmap Resolution (Разрешение карты глубины), могут привести к остановке работы приложения и зависанию компьютера. Для увеличения четкости теней имеет смысл заменить источник света типа Directional (Направленный) прожектором. Если это невозможно, используйте трассированные тени.
Реальное освещение
Реальное освещениеРеальное освещение (practical lighting) — это театральный термин, описывающий все световые лучи, испускаемые присутствующими в сцене источниками света. Например, к реальному освещению относится включенная настольная лампа, расположенная на заднем плане. Обычно реальное освещение не должно взаимодействовать с основным освещением сцены. Исключением являются случаи, когда подобный источник света является основным.
В Maya вовсе не обязательно создавать источники света во всех местах расположения испускающих свет объектов. Имитацию освещения можно создать, например, с помощью эффекта Glow (Свечение). Но, разумеется, для изменения общей освещенности сцены вам потребуется создать источники света.
Результат освещения сцены источником света типа Ambient
Рисунок 10.10. Результат освещения сцены источником света типа Ambient
Параметр Ambient Shade (Уменьшение рассеивания) определяет, насколько плоским будет изображение в результате освещения источником света типа Ambient (Рассеянный). Чем меньше его значение, тем более плоской станет картинка. Равенство этого параметра единице превращает рассеянный источник света в точечный. Вид сцены, освещаемой источником света типа Ambient (Рассеянный), при различных значениях параметра Ambient Shade (Уменьшение рассеивания) показан на Рисунок 10.11.
Рисунок 10.12. Результат освещения сцены источником света типа Directional

По частоте использования направленный источник света уступает только прожектору. Он великолепно подходит для имитации солнечного света, для общего освещения сцен в интерьере, в качестве ключевого, заполняющего и контрового осветителей. С его помощью вы можете легко создать направленный световой поток, не имеющий видимого источника.
Рисунок 10.19. Результат освещения сцены источником света типа Volume

Вот его атрибуты:
Используйте источники света типа Volume (Объемный) в случаях, когда вам требуется контролировать освещенную область или когда объект должен "войти" в освещенное пространство. Они замечательно подходят также для создания различных объемных эффектов, например тумана.
Рисунок 10.14. Результат освещения сцены источником света типа Point с включенным затуханием

Точечные источники света замечательно подходят для имитации света свечи, а также для создания определенного настроения сцены.
Рисунок 10.13. Результат освещения сцены источником света типа Point, помещенным перед объектами

Раскрывающийся список Decay Rate (Скорость спада) определяет закон изменения интенсивности света по мере увеличения расстояния до источника. По умолчанию выбран вариант No Decay (Отсутствует), в этом случае интенсивность света не зависит от расстояния и все объекты сцены освещаются одинаково. Выбор в раскрывающемся списке Decay Rate (Скорость спада) варианта Linear (Линейная), Quadratic (Квадратичная) или Cubic (Кубическая) потребует экспоненциального увеличения интенсивности света для компенсации затухания. Подобные настройки можно использовать, например, для того, чтобы осветить только объекты, расположенные рядом с источником, а остальную часть сцены оставить в тени. В реальном мире свет всегда затухает с увеличением расстояния, но в компьютерной графике вы можете использовать затухание только в случаях, когда это необходимо. Разумный подход к освещению позволит избежать громоздких компьютерных вычислений. Пример сцены, освещенной источником света типа Point (Точечный) с включенным затуханием, показан на Рисунок 10.14.
Сбалансированное освещение делает картину более интересной
Рисунок 10.3. Сбалансированное освещение делает картину более интересной
Сцена, освещенная только ключевым источником света
Рисунок 10.5. Сцена, освещенная только ключевым источником света
Направление распространения лучей двух источников света остается одинаковым, но один из них имеет намного большую интенсивность, и именно он участвует в формировании теней. Так возникает эффект одного ключевого источника света, который и определяет настроение сцены.
Сцена с Рисунок 105 после появления в ней заполняющего источника света
Рисунок 10.6. Сцена с Рисунок 10.5 после появления в ней заполняющего источника света
Обычно заполняющий источник света располагается диаметрально противоположно ключевому осветителю и имеет меньшую интенсивность. Хотя сцена на Рисунок 10.6 все еще имеет доволыго мрачный вид, объекты видны намного лучше, чем при наличии только ключевого источника света.
Схема освещения с трех точек
Рисунок 10.4. Схема освещения с трех точек
Такой подход к освещению гарантирует не только освещение объектов сцены, но и появление на их поверхностях зеркальных бликов и теней. Освещение с трех различных точек позволяет добиться максимальной глубины сцены. Схема расположения источников света в трех точках показана на Рисунок 10.4.
Слишком сильно освещенная сцена
Рисунок 10.1. Слишком сильно освещенная сцена
Недостаток освещения, в свою очередь, делает сцену серой и безжизненной, скрывая в темноте детали и также делая кадр плоским. Пример такого освещения показан на Рисунок 10.2. Заметить выпуклости и изгибы объектов довольно сложно.
Создание теней
Создание тенейПо умолчанию источники света в Maya не создают теней. Эта функция включается вручную в окне диалога Attribute Editor (Редактор атрибутов). При этом существуют два метода формирования теней, зависящих от способа визуализации сцены.
Чаще всего тени формируются на основе карты глубины. Для этого достаточно установить флажок Use Depth Map Shadows (Использование карты глубины) в разделе Depth Map Shadow Attributes (Параметры карты глубины) окна диалога Attribute Editor (Редактор атрибутов). При этом Maya создает карту глубины, располагая ее в месте расположения тени. По сути, это проекция объектов на затеняемые поверхности сцены. Данный метод позволяет получить довольно аккуратные тени без увеличения времени визуализации сцены. Более подробно мы поговорим о них чуть позже.
Способность объектов отбрасывать тень
Способность объектов отбрасывать теньВ Maya вы можете явно указывать, может ли объект отбрасывать тень или формировать на своей поверхности тени от других объектов. Например, если перед формирующим тени источником света находится объект, тень от которого вам не нужна, достаточно просто отключить функцию формирования теней этим объектом.
Свечение материала
Свечение материалаВ некоторых случаях создавать эффекты сияния лучше на основе назначенного объекту материала, а не присутствующего в сцене источника света. Этот способ позволяет избежать ситуации, когда лучи света направлены прямо в камеру. Процесс имитации объемного источника света состоит в назначении объекту светящегося материала. Побочным результатом в данном случае является уменьшение времени визуализации сцены.
Рассмотрим пример создания светящегося материала:
1. Загрузите файл still_life_v03.mb из папки ChapterFiles\Lighting\scenes прилагаемого к книге компакт-диска. Создайте источник света типа Spot (Прожектор), поместите его над натюрмортом, нацелив строго вниз. Откройте окно диалога Attribute Editor (Редактор атрибутов) и в разделе Depth Map Shadow Attributes (Параметры карты глубины) установите флажок Use Depth Map Shadows (Использование карты глубины). В поле параметра Dmap Resolution (Разрешение карты глубины) введите значение 1024. Параметрам Penumbra Angle (Область полутени) и Intensity (Интенсивность) присвойте значения 10 и 1,5 соответственно. Нажмите клавишу 7, чтобы включить все имеющиеся в сцене источники света.

2. Появившийся в сцене прожектор относится к реальному освещению сцены. Создадим лампочку накаливания, подвесив ее над столом с натюрмортом. Создайте NURBS-сферу и поместите ее точно над столом. Откройте для нее окно диалога Attribute Editor (Редактор атрибутов) и в разделе Render Stats (Условия визуализации) снимите флажок Cast Shadows (Отбрасывать тень).
3. Создайте тонкий длинный цилиндр и поместите его над сферой. Он будет изображать провод, на котором висит лампочка. Для него также снимите флажок Cast Shadows (Отбрасывать тень).
4. Создайте материал черного цвета на основе раскраски Phong E (Расширенная по Фонгу) и назначьте его цилиндру.
5. Создайте материал на основе раскраски Phong (По Фонгу) и назначьте его сфере. Присвойте атрибуту Color (Цвет) этого материала бледно-желтый цвет, а ползунок параметра Transparency (Прозрачность) сдвиньте до половины вправо.

6. Выделите прожектор и присвойте его атрибуту Color (Цвет) тот же самый бледно-желтый цвет. Подобную операцию легко проделать с помощью окна диалога Color Chooser (Выбор цвета). Для его вызова выделите материал, назначенный сфере, и щелкните на поле образца цвета Color (Цвет). Щелкните на расположенной в верхней части окна диалога Color Chooser (Выбор цвета) кнопке с изображением стрелки, чтобы поместить созданный цвет на одно из находящихся справа от кнопки цветовых полей. Альтернативным методом сохранения выбранного цвета является щелчок на любом из этих полей правой кнопкой мыши.
7. Выделите прожектор и в окне диалога Attribute Editor (Редактор атрибутов) щелкните на поле образца цвета Color (Цвет). В появившемся окне диалога Color Chooser (Выбор цвета) щелкните на созданном шагом выше цветовом поле, чтобы выделить нужный цвет. Уменьшите насыщенность цвета, чтобы сделать вид сцены более достоверным. Щелкните на кнопке Accept (Принять), чтобы закрыть окно диалога Color Chooser (Выбор цвета).
8. Теперь нужно сымитировать свет, исходящий от лампочки. Для этого выделите назначенный сфере материал и в разделе Special Effects (Эффекты) окна диалога Attribute Editor (Редактор атрибутов) перетащите ползунок Glow Intensity (Интенсивность свечения) до отказа вправо. Но при визуализации сцены вы заметите, что сияние пока не настолько сильно, чтобы создать убедительную имитацию лампочки. В окне диалога Hypershade (Редактор узлов) выделите узел shaderGlowl, управляющий видом сияния.
9. В поле Quality (Качество) введите значение 0,1. Затем раскройте раздел Glow Attributes (Атрибуты свечения) и введите в поле Glow Intensity (Интенсивность сияния) значение 6, в поле Glow Spread (Распределение сияния) — значение 0,5, а в поле Glow Radial Noise (Радиальное зашумление сияния) — значение 0,2.
Готовая сцена содержится в файле still_life_v04.mb прилагаемого к книге компакт-диска. Результат ее визуализации показан на Рисунок 10.30.
Световые эффекты
Световые эффектыИногда в компьютерную графику приходится переносить особенности реальных осветителей. Специальные методы позволяют создать такие эффекты, как лучи, распространяющиеся в тумане, сияние или блики на линзах. Хотя некоторые из этих эффектов лучше добавлять при последующей обработке изображения, для начала мы разберемся, как их можно получить с помощью источников света.
Тени на основе карты глубины
Тени на основе карты глубиныФормирование теней на основе карты глубины включается для всех источников света, кроме принадлежащих к типу Ambient (Рассеянный). Для этого достаточно установить флажок Use Depth Map Shadows (Использование карты глубины) в окне диалога Attribute Editor (Редактор атрибутов) (Рисунок 10.23).
Тени от направленного источника света, полученные на основе карты глубины
Рисунок 10.21. Тени от направленного источника света, полученные на основе карты глубины
Тени от полупрозрачных объектов обязательно должны быть трассированными
Рисунок 10.27. Тени от полупрозрачных объектов обязательно должны быть трассированными
Для этого нужно выделить объект и открыть для него окно диалога Attribute Editor (Редактор атрибутов). В разделе Render Stats (Условия визуализации) находится набор флажков, управляющих свойствами, проявляющимися при визуализации объекта. Чтобы объект не отбрасывал тени, нужно снять флажок Cast Shadows (Отбрасывать тень). Если же нужно сделать так, чтобы другие элементы сцены не могли бросить тень на выделенный объект, снимите флажок Receive Shadows (Формировать тени на поверхности).
Тени
ТениИногда, чтобы лучше показать особенности моделей и текстур, начинающие пользователи создают слишком много источников света. Но не стоит забывать о том, что тени важны не меньше, чем свет. Иногда имеет смысл скрыть часть целого, оставив зрителю возможность самостоятельно интерпретировать сцену.
Для композиции крайне важен точный баланс света и тени. На Рисунок 10.20 показано, как правильно размещенные тени увеличивают визуальную привлекательность сцены.
Типы источников света
Типы источников светаКаждый источник света, кроме общих для всех атрибутов, имеет еще и специфические, только ему присущие параметры.
Трассированные тени от источника света типа Spot
Рисунок 10.26. Трассированные тени от источника света типа Spot
Трассирование является единственным способом получить тень от объектов, материалу которых была назначена карта прозрачности. На Рисунок 10.27 показан эффект от световых лучей, проходящих через плоскость с полупрозрачным рисунком шахматной доски: слева — тени, полученные методом трассирования, справа — тени, полученные на основе карты глубины.
Трассированные тени от направленного источника света имеют более четкие края
Рисунок 10.22. Трассированные тени от направленного источника света имеют более четкие края
Второй метод получения теней связан с процессом трассирования, то есть отслеживания путей прохождения отдельных световых лучей от источника света до объектива камеры с учетом их отражения от объектов сцены и преломления в прозрачных средах. Для создания трассированных теней сначала требуется включить процесс трассирования в окне диалога Render Global Settings (Общие параметры визуализации). Дополнительные сведения по этому поводу вы получите в главе 11.
Этот способ позволяет получить более аккуратные тени, однако при этом время визуализации сцены значительно увеличивается. Процесс создания трассированных теней будет подробно рассмотрен чуть позже.
Примеры теней, полученных на основе карты глубины и трассированных теней, показаны на Рисунок 10.21 и 10.22.
Трассированные тени
Трассированные тениДля включения трассированных теней нужно установить флажок Use Raytrace Shadows (Использовать трассированные тени) в разделе Shadows (Тени) окна диалога Attribute Editor (Редактор атрибутов). Кроме того, нужно включить функцию трассирования в окне диалога Bender Global Settings (Общие параметры визуализации), вызываемом командой Rendering Editors > Render Globals (Редакторы визуализации > Общие параметры визуализации) из меню Window (Окно).
На Рисунок 10.26 показаны трассируемые тени от прожектора. Обратите внимание на то, что они не сильно отличаются от теней, полученных на основе карты глубины (см. Рисунок 10.25). Этот пример наглядно показывает, насколько детализированными получаются тени от прожектора. Кроме того, сцена с тенями, полученными на основе карты глубины, визуализируется быстрее.
Учимся видеть
Учимся видетьОсвещение в реальном мире имеет многочисленные нюансы, которые мы считаем естественными. Мы интуитивно понимаем, что мы видим и как это освещено, и принимаем огромное количество визуальной информации без дополнительного анализа. Но в компьютерной графике вам требуется воссоздать все эти нюансы. Именно в этом заключается работа по освещению сцены.
Чтобы развить свои способности в данной области, нужно изменить свой взгляд на окружающий мир. Откажитесь принимать как должное все, что вы видите вокруг. Спрашивайте себя: почему предметы выглядят так, а не иначе? Практически всегда ответ будет связан с освещением.
Попытайтесь заметить разницу между светом и тенью в комнате, в которой вы сейчас находитесь. Обратите внимание на яркость зеркальных бликов и на то, как они переходят сначала в рассеянный свет, а потом и в тень.
Понимание того, как же свет действует на окружающие объекты, является ключом к успешному созданию источников света на экране вашего компьютера. Кроме того, важно и ваше желание создать впечатляющую сцену.
Включение режима формирования теней на основе карты глубины в окне диалога Attribute Editor
Рисунок 10.23. Включение режима формирования теней на основе карты глубины в окне диалога Attribute Editor
Параметр Dmap Resolution (Разрешение карты глубины) по умолчанию имеет значение 512. А чем оно больше, тем четче выглядит тень. Изображение на Рисунок 10.21
было получено при значении данного параметра, равном 4096. Та же самая сцена при значении параметра Dmap Resolution (Разрешение карты глубины), равном 768, показана на Рисунок 10.24. Большинство теней имеет достаточную детализацию при разрешении карты глубины, равном 1024.
Вы можете отдельно визуализировать различные компоненты освещения
Рисунок 10.9. Вы можете отдельно визуализировать различные компоненты освещения
Заполняющий свет
Заполняющий светЗаполняющий источник света (fill light) не имеет ярко выраженного направления распространения лучей, они равномерно распределяются по затемненным областям сцены. Он осветляет тени, создаваемые ключевым источником света.
При этом заполняющий источник света не принимает участия в формировании теней. Пример сцены, в которой, кроме ключевого, находится заполняющий источник света, показан на Рисунок 10.6. Обратите внимание на то, как изменился вид теней.
Затемнение и тени придают сцене реалистичность и глубину, одновременно создавая особое настроение
Рисунок 10.20. Затемнение и тени придают сцене реалистичность и глубину, одновременно создавая особое настроение
Дополнительные техники анимации
Атрибуты камеры
Атрибуты камерыВ качестве примера загрузите файл stiu_Jife_render_v02.mb из папки ChapterFi-les\Lighting\scenes прилагаемого к книге компакт-диска. В окне проекции Perspective (Перспектива) вы увидите зеленую рамку, разрешение изображения, равное 640 х 480, и имя активной камеры — Camera1 (Камера1).
Функции узлов камеры контролируют специальные атрибуты. Для получения доступа к ним выполните следующие действия:
1. Выделите объект camera1 и нажмите комбинацию клавиш Ctrl+a, чтобы открыть для камеры окно диалога Attribute Editor (Редактор атрибутов). Альтернативным способом доступа к данным параметрам является выбор в меню View (Вид) окна проекции команды Camera Attribute Editor (Редактор атрибутов камеры).
2. Раскрывающийся список Controls (Тип камеры) в разделе Camera Attributes (Атрибуты камеры) появившегося окна диалога используется для выбора типа камеры. Окно диалога Attribute Editor (Редактор атрибутов) для камеры показано на Рисунок 11.14.
Диапазон кадров
Диапазон кадровПравильно указав диапазон кадров, вы гарантируете визуализацию всей анимации. По умолчанию в Maya задан диапазон кадров от № 1 до № 10. Для получения доступа к изменению этого диапазона нужно выбрать в раскрывающемся списке Frame/Animation Ext (Расширение имени файла/Нумерация кадров анимации) вариант, отличный от заданного по умолчанию значения name.ext (Имя.Расширение).
После выбора подходящего значения вы получаете доступ к полям Start Frame (Начальный кадр), End Frame (Конечный кадр), где можете указать номера начального и конечного кадров рассматриваемого диапазона анимации. Эти атрибуты позволяют визуализировать любую часть анимационной последовательности. Можно, например, визуализировать анимацию в виде набора отдельных фильмов.
Атрибут By Frame (Приращение кадров) определяет интервал между кадрами визуализируемой последовательности. Например, если вам требуется визуализировать только кадры с нечетными номерами, присвойте атрибуту Start Frame (Начальный кадр) значение 1, а атрибуту By Frame (Приращение кадров) — значение 2.
Если же нужно визуализировать только кадры с четными номерами, атрибуту Start Frame (Начальный кадр) нужно присвоить значение 2. Впрочем, обычно атрибут By Frame (Приращение кадров) имеет заданное по умолчанию значение 1, то есть визуализируется каждый кадр анимационной последовательности. Но в определенных случаях, например при предварительном просмотре сцены, можно ограничиться визуализацией только каждого второго или третьего кадра.
Атрибут Frame Padding (Количество цифр в номере кадра) отвечает за порядок сортировки файлов в операционной системе. Он приводит к появлению в номере кадра дополнительных нулей. Если параметр Frame Padding (Количество цифр в номере кадра) имеет значение 2, перед номерами кадров, состоящими из одной цифры, будет вставляться ноль. Например, имя файла с восьмым кадром будет выглядеть так: Имя.08.tif. Если же присвоить атрибуту Frame Padding (Количество цифр в номере кадра) значение 4, имя файла изменится следующим образом: Имя.0008.tif.
При систематизации больших файловых последовательностей имеет смысл присваивать атрибуту Frame Padding (Количество цифр в номере кадра) значение, равное, как минимум, 3. На Рисунок 11.2 показан вид последовательности изображений при заданном по умолчанию и увеличенном значении параметра Frame Padding (Количество цифр в номере кадра). Как легко заметить, в первом случае порядок нумерации файлов не сохраняется, что снижает эффективность работы с ними.
Фокусное расстояние
Фокусное расстояниеАтрибут Focal Length (Фокусное расстояние) задает расстояние от линзы объектива до плоскости пленки. Чем оно меньше, тем шире будет угол зрения. Впрочем, слишком малые значения данного параметра вызывают появление искажений (Рисунок 11.15). Чем больше значение атрибута Focal Length (Фокусное расстояние), тем ближе расположенным к смотрящему будет казаться объект на снимке.
Формат изображения
Формат изображенияДля выбора типа визуализируемого файла используется раскрывающийся список Image Format (Формат изображения). Сохраняемые файлы получают расширение в соответствии с указанным вами вариантом.
Существует множество форматов сохранения изображения. Выбор в данном случае зависит как от ваших предпочтений, так и от конкретных нужд. Например, файлы в формате JPEG благодаря своему небольшому размеру замечательно подходят для размещения в Интернете, но из-за слишком сильного сжатия с потерями и отсутствия альфа-канала их вряд ли имеет смысл использовать при создании эффектов для профессионального кино или телевидения.
Анимацию лучше визуализировать в виде набора статичных изображений, а не в виде фильма. Во-первых, таким способом вы сможете добиться лучшего качества изображения. Во-вторых, если что-нибудь произойдет во время визуализации, например зависнет компьютер, вам не придется повторно визуализировать всю последовательность кадров. Визуализацию можно начать с прерванного места. Лучше всего сохранять визуализированные файлы в формате TIFF, который понимают большинство приложений для работы с графикой. Изображение сохраняется с небольшим сжатием или вообще без него и, кроме того, снабжено альфа-каналом. Не стоит забывать и о таких форматах, как SGI и Maya IFF, хотя для работы с ними в некоторых графических редакторах могут потребоваться специальные подключаемые модули. Дополнительную информацию о форматах файлов вы найдете в главе 1.
Хранение изображения/удаление из буфера
Хранение изображения/удаление из буфераОкно диалога Render View (Визуализатор) можно считать основным инструментом для просмотра результатов редактирования сцены. Вы можете сохранить полученное изображение в буфер, щелкнув на кнопке Keep Image (Поместить изображение в буфер). После этого в нижней части окна диалога Render View (Визуализатор) появится полоса прокрутки, с помощью которой вы сможете перемещаться от одного помещенного в буфер изображения к другому. Это позволяет сравнить результаты визуализации различных версий сцены. В буфер можно сохранять несколько изображений. Для ускорения процесса предварительного просмотра используйте интерактивную фотореалистичную визуализацию.
Интерактивная фотореалистичная визуализация
Интерактивная фотореалистичная визуализацияКак вы узнали в главе 7, самым быстрым способом просмотра результатов редактирования сцены является интерактивная фотореалистичная визуализация. После визуализации активного окна проекции пользователю нужно рамкой выделить область, которая будет обновляться при внесении изменений в освещение сцены или в вид материалов. На Рисунок 11.11 показан процесс интерактивной фотореалистичной визуализации сцены с натюрмортом. Редактируются в данном случае цвет материала и зеркальные блики.
Интерактивная фотореалистичная
Рисунок 11.11. Интерактивная фотореалистичная визуализация позволяет мгновенно отследить результат редактирования текстур и освещенности
Интерактивная фотореалистичная визуализация замечательно подходит для поиска корректного освещения и зеркальных бликов. Однако таким способом невозможно отследить вид эффектов, получаемых трассированием, например отражения и преломления. Несмотря на это, получаемые при интерактивной фотореалистичной визуализации изображения близки по качеству к результатам обычной программной визуализации. К сожалению, этот метод не позволяет отследить процесс редактирования анимации или формы объектов.
Источники света, формирующие тени от объектов, выделены белым
Рисунок 11.17. Источники света, формирующие тени от объектов, выделены белым
ВНИМАНИЕ
Вы не можете выделить все три источника света одновременно и установить для них флажок Use Ray Trace Shadows (Использовать трассированные тени). Любые операции в окне диалога Attribute Editor (Редактор атрибутов) выполняются только для одного объекта.
3. Откройте окно диалога Render Global Settings (Общие параметры визуализации) и в разделе Raytracing Quality (Качество трассирования) установите флажок Ray-tracing (Трассировка лучей). Введите в поле Reflections (Отражения) значение 2.
Изображение слева получено при
Рисунок 11.12. Изображение слева получено при значении параметра Reflection, равном 1. Для изображения, показанного справа, этот параметр был увеличен до 2
В окне диалога Render Global Settings (Общие параметры визуализации) задается качество эффектов отражения и преломления во всей сцене, в то время как существует возможность управлять этими эффектами на базе отдельных объектов.
Чтобы получить доступ к редактированию предельной отражательной способности, выделите назначенный объекту материал в окне диалога Hypershade (Редактор материалов) и откройте для него окно диалога Attribute Editor (Редактор атрибутов). Перетащите ползунок Reflection Limit (Предел отражений) в разделе Raytrace Options (Параметры трассирования) вправо или влево. По умолчанию параметр Reflection Limit (Предел отражений) имеет значение 1. Положение этого ползунка определяет число отражений в поверхности всех объектов, которым назначен данный материал.
Можно сделать так, чтобы определенные объекты не появлялись в отражающих поверхностях. Для этого достаточно выделить объект, открыть окно диалога Attribute Editor (Редактор атрибутов) и в разделе RenderStats (Условия визуализации) снять флажок Visible in Reflections (Видимый при отражениях).
Изображения, получаемые при различных значениях параметра Focal Length
Рисунок 11.15. Изображения, получаемые при различных значениях параметра Focal Length
Несмотря на то, что редактирование параметра Focal Length (Фокусное расстояние) меняет масштаб изображения, эта операция отличается от процедуры изменения расстояния до объекта с помощью клавиши Alt и правой кнопки мыши. Дело в том, что изменение фокусного расстояния может привести к появлению искажений, таких, как при использовании объектива "рыбий глаз".
Поэтому, если вы хотите сделать так, чтобы камера приблизилась к объекту съемки, лучше анимировать ее положение в пространстве, а не изменять атрибут Focal Length (Фокусное расстояние). Но для совмещения элемента компьютерной графики с импортированной в сцену фотографией или видеофрагментом нужно выбрать такое же фокусное расстояние, как и у камеры, которой производилась съемка.
Качество изображения
Качество изображенияКачество визуализации стандартным программным визуализатором в наибольшей степени зависит от настроек сглаживания. Сглаживанием называется "сма.-зывание" соседних пикселов, позволяющее избежать ступенчатого эффекта на диагональных линиях. Увеличение этого параметра делает линии изображения более плавными. В окне диалога Render Global Settings (Общие параметры визуализации) вы можете выбирать из набора предустановленных параметров, отвечающих за качество итогового изображения:
1. Убедитесь в том, что в раскрывающемся списке Render Using (Визуализировать с помощью) в верхней части окна диалога Render Global Settings (Общие параметры визуализации) выбран вариант Maya Software (Программный визуализатор), и перейдите на вкладку Maya Software (Программный визуализатор).
2. В раскрывающемся списке Quality (Качество) раздела Anti-aliasing Quality (Качество сглаживания) выберите вариант Production Quality (Качество фильма) или Preview Quality (Эскизное качество).
На Рисунок 11.4 показано изображение, визуализированное сначала с эскизным качеством, а потом с качеством фильма.
Каналы изображения
Каналы изображенияФайлы изображения составлены из каналов красного, зеленого и синего цвета. Каждый канал определяет вклад соответствующего цвета в изображение. Кроме того, некоторые форматы файлов снабжены еще одним каналом, который содержит информацию о прозрачности. Это так называемый альфа-канал. Если канал красного цвета определяет количество этого цвета в определенной области изображения, то альфа-канал определяет прозрачность изображения при монтаже или работе со слоями. Если альфа-канал имеет белый цвет, изображение прозрачно. Альфа-канал прозрачного объекта после визуализации будет иметь серый цвет (Рисунок 11.3).
Maya Hardware
Maya HardwareПри аппаратной визуализации используются вычислительные мощности видеокарты, а также программные средства Maya и драйверы. Этот процесс похож на то, что вы видите на экране при запуске компьютерной игры. Данные, выводимые игрой, обрабатываются процессором видеокарты в реальном времени. Аппаратная визуализация происходит быстрее программной, однако она лишена части присущих последней функций и не позволяет получить изображение такого же высокого качества. Сравнить результат визуализации, получаемый с помощью аппаратного и программного методов, можно на Рисунок 11.5. Вы можете лично убедиться, что выигрыш во времени визуализации сопровождается потерей качества.
Maya Software
Maya SoftwareПо умолчанию визуализация происходит с помощью алгоритма Maya Software (Программный визуализатор), который позволяет зафиксировать все особенности сцены, от отражений до размывания в движении и прозрачности объектов. Именно он применялся для визуализации практически всех проектов из данной книги. Существуют различные методы работы с ним.
Maya Vector
Maya VectorНедавно появившийся в Maya визуализатор Maya Vector (Векторный визуализатор) позволяет получать аналоги иллюстраций и изображения, напоминающие мультфильм. Можно визуализировать, например, только контуры объектов, равномерно залив их выбранным цветом. Вид сцены с фруктами после такой обработки показан на Рисунок 11.8.
Векторный визуализатор позволяет сохранять полученные результаты в виде файлов Macromedia Flash, пригодных для размещения в Интернете, в виде файлов Adobe Illustrator, а также в обычных форматах. Выбор параметров данного визуализатора происходит на вкладке Maya Vector (Векторный визуализатор) окна диалога Render Global Settings (Общие параметры визуализации) (Рисунок 11.9).
Mental Ray
Mental RayМодуль Mental Ray лучше всего справляется с имитацией реальных свойств световых лучей. Принцип его действия основан на процессе трассирования, но создатели данного модуля пошли дальше и добавили к световым лучам карты фотонов. То есть визуализатор Mental Ray отслеживает путь фотонов, испускаемых источником света, и записывает информацию об их поведении. Это позволяет воспроизводить каустические эффекты (caustics) и перепое излучения (radiosity), известный также как глобальная освещенность (global illumination).
Каустические эффекты представляют собой рассеяние отраженных лучей света, в том числе и через полупрозрачные объекты. Примером каустического эффекта могут служить блики солнечного света на дне находящегося на открытом воздухе бассейна или блики отраженных от водной поверхности солнечных лучей на потолке помещения, в котором находится бассейн. Глобальной освещенностью называется эффект отражения света поверхностями объектов. Скажем, если поместить окрашенные в красный цвет сферы внутрь серого куба и осветить этот куб сверху, боковые и нижняя поверхности куба должны приобрести красноватый оттенок. Световые лучи, отражаясь от поверхности сфер, переносят их цвет на окружающие объекты. При этом свет, отраженный от дна куба, увеличивает освещенность нижней части сфер.
Рассмотрим Рисунок 11.6 и 11.7, на которых изображен результат визуализации сцены, содержащей примерно дюжину помещенных внутрь закрытого ящика стеклянных сфер. В "потолке" этого ящика находятся четыре отверстия, через которые его внутреннее пространство освещается двумя расположенными снаружи источниками света типа Spot (Прожектор) с включенным режимом формирования теней. На Рисунок 11.6 показан результат визуализации этой сцены с помощью алгоритма Maya Software (Программный визуализатор). Видимы в основном сферы, находящиеся непосредственно под отверстиями.
Mental Ray
А теперь посмотрим на результат визуализации с помощью модуля Mental Ray (см. Рисунок 11.7). Свет, приникающий внутрь ящика через отверстия, отражаясь от его стенок, освещает внутреннее пространство и расположенные там объекты. Цвет сфер, как и цвет их ближайшего окружения, определяется переносом излучения. Кроме того, свет, проходя через прозрачные сферы, создает блики на дне ящика. Это явление относится к каустическим эффектам. Цветная версия Рисунок 11.7 находится на вкладке.
Впрочем, работа с модулем Mental Ray относится к продвинутым техникам и выходит за рамки данной книги. Обычно этот модуль используется для сцен со сложным освещением, и его применение требует большого опыта.
На рисунке слева коэффициент преломления
Рисунок 11.13. На рисунке слева коэффициент преломления стекла равен 1,2, а на рисунке справа — 0,8
Чтобы указать, будет ли объект видимым в преломляющей поверхности, откройте для него окно диалога Attribute Editor (Редактор атрибутов) и в разделе Render Stats (Условия визуализации) установите или снимите флажок Visible in Refractions (Видимый при преломлениях).
Настройки камеры
Настройки камерыПришло время запрограммировать движение камеры.
1. Выберите в меню View (Вид) окна проекции Cameral (Камера!) команду Camera Attribute Editor (Редактор атрибутов камеры).
2. Установите флажки Display Film Gate (Отображение кадрового окна) и Display Resolution Gate (Отображение разрешения кадрового окна) в разделе Display Options (Параметры отображения) окна диалога Attribute Editor (Редактор атрибутов). Обратите внимание на расстояние между двумя появившимися прямоугольниками.
3. При выбранном разрешении 640 х 480 кадр имеет соотношение геометрических размеров, равное 1:1,33. Выберите в раскрывающемся списке Film Gate (Кадровое окно) вариант 35mm TV Projection. Теперь прямоугольники совпадут друг с другом. В принципе, в рассматриваемой ситуации этой операцией можно пренебречь, так как обычно она требуется только в случае монтажа компьютерной графики и реального видео.
4. Выбор другого кадрового окна изменил видимую область сцены. И для того, чтобы увидеть весь натюрморт, вам потребуется переместить камеру. Но при попытке отодвинуть ее назад выясняется, что камера заблокирована. Это было сделано для предотвращения ее случайного смещения с места, что могло бы привести к искажению проекции.
5. Для снятия блокировки выберите в меню View (Вид) окна проекции Cameral (Камера!) команду Select Camera (Выделить камеру). В окне диалога Channel Box (Окно каналов) появится перечень атрибутов камеры. Часть из них выделена серым цветом. Это означает, что они заблокированы. Выделите эти атрибуты и щелкните на них правой кнопкой мыши. В появившемся меню выберите команду Unlock Selected (Снять блокировку с выделенного набора).
СОВЕТ
Для фиксации положения и ориентации объекта нужно выделить атрибуты преобразований перемещения и поворота в окне диалога Channel Box (Окно каналов), щелкнуть на них правой кнопкой мыши и выбрать в появившемся меню команду Lock Selected (Заблокировать выделенный набор).

6. Введите в поле End Time (Конечное время), расположенное справа от шкалы диапазонов, значение 25. Убедитесь в том, что ползунок таймера анимации установлен на отметку кадра № 1, выделите каналы преобразований перемещения и поворота в окне диалога Channel Box (Окно каналов), щелкните на них правой кнопкой мыши и выберите в появившемся меню команду Key Selected (Создать ключи анимации для выделенных параметров).
7. Установите ползунок таймера анимации на отметку кадра № 25 и отодвиньте камеру от стола таким образом, чтобы натюрморт поместился в кадре целиком. Создайте ключи анимации для преобразований перемещения и поворота.

Подвигайте ползунок таймера анимации, и вы увидите, как угол обзора сцены постепенно увеличивается.
Настройки сцены
Настройки сценыТеперь займемся подготовкой к визуализации объектов сцены. К уже знакомому вам натюрморту были добавлены винная бутылка и несколько бокалов. Источники света и камера расставлены по своим местам. Нам нужно добавить эффекты отражения и преломления в стеклянных поверхностях. Для этого требуется включить трассировку лучей света:
1. Включите процесс формирования отражений в поверхностях бокалов. Откройте окно диалога Hypershade (Редактор узлов) и дважды щелкните на образце материала Glasses, чтобы открыть для этого материала окно диалога Attribute Editor (Редактор атрибутов). Установите флажок Refractions (Преломления) в разделе Raytrace Options (Параметры трассирования) и введите в поле Refractive Index (Коэффициент преломления) значение 1,2. Параметру Refraction Limit (Предел преломлений) присвойте значение 2. Затем выделите материал Wine_Bottle и повторите для него описанные действия.
2. В данный момент тени формируются на основе карты глубины. Но так как в сцене есть полупрозрачные объекты, нам потребуются трассируемые тени. В окне диалога Outliner (Структура) выделите строчку spotLightl. В разделе Shadows (Тени) окна диалога Attribute Editor (Редактор атрибутов) установите флажок Use Raytrace Shadows (Использовать трассированные тени). Обратите внимание на то, что параметры теней на основе карты глубины теперь недоступны. Повторите указанную операцию для остальных формирующих тени источников света. Это прожектора spotlights и spotLight.4. Схема освещения сцены показана на Рисунок 11.17.
Настройки визуализации
Настройки визуализацииПосле завершения работы над сценой приходит время выбора параметров визуализации. Это последняя стадия создания компьютерной графики, но о ней следует помнить с самого начала. Если в процессе моделирования объектов, назначения им материалов и освещения сцены вы постоянно представляли, как это будет выглядеть на итоговом изображении, и исходя из этих соображений планировали все свои действия, конечная настройка не вызовет у вас никаких затруднений.
Для начала нужно решить, какой визуализатор вы собираетесь использовать: программный (он применяется чаще всего), аппаратный, Mental Ray или Maya Vector. От этого в немалой степени зависит конечный результат. Кроме того, от этого зависят некоторые этапы создания сцены. Поэтому лучше всего выбирать визуализатор с самого начала.
ПРИМЕЧАНИЕ
Чаще всего применяется стандартный программный визуализатор Maya — Maya Software. Именно с его помощью были получены иллюстрации, которые вы видели в предыдущих главах.
Общие параметры визуализации
Общие параметры визуализацииВне зависимости от выбранного визуализатора вам потребуется указать набор общих атрибутов в окне диалога Render Global Settings (Общие параметры визуализации) (Рисунок 11.1).
Это окно диалога, вызываемое командой Rendering Editors > Render Globals (Редакторы визуализации > Общие параметры визуализации) из меню Window (Окно), используется для выбора разрешения выходного изображения, типа итогового файла, диапазона сохраняемых кадров и т. п.
Окно диалога Render Global Settings (Общие параметры визуализации) содержит две вкладки. Одна из них называется Common (Общие), а название второй совпадает с названием выбранного визуализатора. Вкладка Common (Общие) содержит список параметров, общих для всех визуализаторов.
Окно диалога Attribute Editor для камеры
Рисунок 11.14. Окно диалога Attribute Editor для камеры
Окно диалога Batch Render Frame
Рисунок 11.16. Окно диалога Batch Render Frame
4. Если ваш компьютер имеет несколько процессоров, укажите, сколько из них требуется задействовать для визуализации сцены, введя соответствующее число в поле Number of Processors to Use (Число используемых процессоров).
5. Щелкните на кнопке Batch Render (Пакетная визуализация), чтобы запустить пакетную визуализацию. Это фоновый процесс. Степень его выполнения можно отслеживать в командной строке или в окне диалога Script Editor (Редактор сценариев).

В процессе пакетной визуализации вы можете просматривать уже готовые кадры. Для этого нужно выбрать в меню Render (Визуализация) команду Show Batch Render (Показывать пакетную визуализацию). Для остановки пакетной визуализации используется команда Cancel Batch Render (Отмена пакетной визуализации) из меню Render (Визуализация).
Файлы, получаемые при пакетной визуализации, по умолчанию сохраняются в папку images текущего проекта. Впрочем, вы всегда можете увидеть маршрут доступа к этим файлам и имя сохраняемого в данный момент изображения в верхней части окна диалога Render Global Settings (Общие параметры визуализации).
Окно диалога Render Global Settings
Рисунок 11.1. Окно диалога Render Global Settings
ПРИМЕЧАНИЕ
Чаще всего в раскрывающемся списке Frame/Animation Ext (Расширение имени файла/Нумерация кадров анимации) выбирается именно вариант name.#.ext (Имя.№.расширение), так как в этом случае, в отличие от вариантов name.ext.* (Имя.расширение.№) и name.* (Имя.№), однозначно определяется тип файла. Хотя в операционной системе Macintosh порядок следования номера и расширения не имеет значения, программы для монтажа (например, After Effects или Shake), работающие на указанной платформе, используют файлы, имена которых заканчиваются трехбуквенным расширением. Именно поэтому как в Windows, так и в Macintosh лучше сохранять файлы в формате name.#.ext (Имя.№.расширение).
Расширением называется трехбуквенная аббревиатура, определяющая тип сохраняемого файла. Указав с помощью раскрывающегося списка Frame/Animation Ext (Расширение имени файла/Нумерация кадров анимации), что файлы должны иметь расширение, вы гарантируете правильность распознавания этих файлов операционной системой.
Окно диалога Render View
Рисунок 11.10. Окно диалога Render View
Щелчок на кнопке Redo Previous Render (Повторить предшествующую визуализацию) приводит к повторной визуализации активного окна проекции. Кнопка Render Region (Визуализация области) позволяет визуализировать только указанную пользователем область изображения. Область выделяется с помощью рамки, нарисованной поверх изображения в окне диалога Render View (Визуализатор).
Как легко понять из названия кнопки Open Render Globals Window (Открыть окно общих параметров визуализации), щелчок на ней вызывает окно диалога Render Global Settings (Общие параметры визуализации).
Кнопка Display RGB Channels (Отображение RGB-каналов) позволяет получить полноцветное изображение, в то время как кнопка Display Alpha Channel (Отображение альфа-канала) дает возможность увидеть только альфа-канал изображения.
Кнопка Display Real Size (Показ реальных размеров изображения) восстанавливает реальные размеры изображения, гарантируя его корректное отображение. При изменении размеров окна диалога Render View (Визуализатор) или выборе нового разрешения изображение визуализируется таким образом, чтобы совпасть с размерами окна. Соответственно меняется и его размер. Если вам не нравится вид полученного изображения, убедитесь в том, что окно диалога Render View (Визуализатор) имеет заданный по умолчанию размер. Только после этого имеет смысл менять параметры визуализации в окне диалога Render Global Settings (Общие параметры визуализации).
Раскрывающийся список Select Renderer (Выбор визуализатора) позволяет выбрать алгоритм визуализации. Его аналогом является раскрывающийся список Render Using (Визуализировать с помощью) из верхней часта окна диалога Render Global Settings (Общие параметры визуализации).
Окружающая среда
Окружающая среда
Атрибуты раздела Environment (Окружающая среда) отвечают за цвет фона, на котором будет визуализирована сцена, а также за плоскости изображения. Как вы могли убедиться в процессе моделирования алебарды, эти плоскости позволяют ускорить работу над объектом.
В главе 4 плоскости изображения импортировались с помощью команды Image Plane > Import Image (Плоскость изображения > Импорт плоскости) из меню View (Вид) окна проекции. Альтернативным способом импорта является щелчок на кнопке Create (Создать) в разделе Environment (Окружающая среда) окна диалога Attribute Editor (Редактор атрибутов).

Щелчок на цветовом поле Background Color (Цвет фона) приводит к появлению окна диалога Color Chooser (Выбор цвета), в котором вы можете выбрать нужный цвет фона. Расположенный справа ползунок позволяет управлять яркостью этого цвета.
Отражения и преломления
Отражения и преломленияОтражения формируются как с помощью специальных карт, так и методом трассирования. При изучении главы 7 вы уже убедились, что создание карты отражения для объекта — довольно простой процесс. Достаточно назначить объекту материал на основе раскраски Phong (По Фонгу), PhongE (Расширенная по Фонгу), Blinn (По Блинну) или Anisotropic (Анизотропная) и убедиться в том, что атрибут Reflectivity (Отражательная способность) отличен от нуля. Затем остается щелкнуть на кнопке с рисунком шахматной доски, расположенной справа от ползунка Reflected Color (Цвет отраженного света), и назначить этому атрибуту текстуру или растровое изображение из файла. После этого поверхность объекта начнет формировать отражения.
Но для формирования истинных отражений требуется включить процесс трассирования. При этом уже не нужно назначать текстуры атрибуту Reflected Color (Цвет отраженного света). Все объекты, расположенные в сцене определенным образом, будут отражаться в рассматриваемой поверхности.
Пакетная визуализация и просмотр результатов
Пакетная визуализация и просмотр результатовИтак, все готово для анимации продолжительностью 25 кадров. Выберите в меню Render (Визуализация) команду Batch Render (Пакетная визуализация).
Так как визуализация производится при довольно большом разрешении и включенных эффектах трассирования, она может занять от 20 минут до часа. Отследить процесс прохождения визуализации можно в окне диалога Script Editor (Редактор сценариев), вызываемом одноименной командой меню Window > General Editors (Окно > Редакторы общего назначения).
Для просмотра полученного результата вам потребуется программа, позволяющая загружать наборы изображений и воспроизводить эту анимационную последовательность. Кроме того, вы можете импортировать изображения в программу для монтажа или редактирования, например After Effects или Premier от фирмы Adobe, и использовать встроенные средства просмотра анимации.
Вместе с Maya обычно устанавливается проигрыватель FCheck, предназначенный для воспроизведения анимации. Чтобы воспользоваться им, выполните следующие действия:
1. Выберите в меню Start (Пуск) операционной системы команду Programs > Alias > Maya 6.0 > FCheck (Программы > Alias > Maya 6.0 > FCheck). Окно этой программы показано на Рисунок 11.18.
Пакетная визуализация
Пакетная визуализацияВам уже не раз приходилось прибегать к визуализации статичных сцен, но как поступить, если вам требуется визуализировать последовательность кадров? Этот процесс в Maya называется пакетной визуализацией (batch rendering). Вот каким образом он запускается:
1. Откройте окно диалога Render Global Settings (Общие параметры визуализации).
2. Убедитесь в том, что в раскрывающемся списке в верхней части этого окна диалога выбран вариант Maya Software (Программный визуализатор). Выберите подходящий вариант формата изображения в раскрывающемся списке Image Format (Формат изображения). В раскрывающемся списке Presets (Предустановленные значения) в разделе Resolution (Разрешение) выберите нужное разрешение. В поля Start Frame (Начальный кадр) и End Frame (Конечный кадр) введите номера начального и конечного кадров визуализируемой анимации. Перейдите на вкладку Maya Software (Программный визуализатор) и в разделе Anti-aliasing Quality (Качество сглаживания) раскрывающегося списка Quality (Качество) выберите нужное качество изображения.
ВНИМАНИЕ
В раскрывающемся списке Frame/Animation Ext (Расширение имени файла/Нумерация кадров анимации) обязательно должен быть выбран вариант вида name.#.ext (Имя.№.расширение). Если оставить заданное по умолчанию значение, визуализации подвергнется только первый кадр анимационной последовательности.
3. Щелкните на квадратике, расположенном справа от команды Batch Render (Пакетная визуализация) в меню Render (Визуализация). Появится окно диалога, показанное на Рисунок 11.16.
Параметр Overscan
Параметр OverscanПараметр Overscan (Развертка за пределами экрана), расположенный в разделе Display Options (Параметры отображения), позволяет менять размер отображаемой области без изменения размеров визуализируемого кадрового окна. Сцена, показанная слева, получена при значении параметра Overscan (Развертка за пределами экрана), равном 1,3. В результате вы получили крупный план визуализируемого фрагмента. Сцена справа получена при значении параметра Overscan (Развертка за пределами экрана), равном 2. Это позволяет увидеть больший участок сцены, хотя визуализирована будет по-прежнему только область, попавшая в рамку.
Параметры визуализатора Maya Vector в окне диалога Render Global Settings
Рисунок 11.9. Параметры визуализатора Maya Vector в окне диалога Render Global Settings
Пленка
ПленкаПараметры раздела Film Back (Пленка) управляют свойствами получаемого в результате визуализации изображения. Например, раскрывающийся список Film Gate (Кадровое окно) предназначен для выбора различных форматов кадра. При этом меняется соотношение геометрических размеров, то есть отношение ширины кадра к его высоте. Большинство выходных изображений, транслируемых по телевизору, имеет соотношение геометрических размеров 1:1,33. Сюда относится, например, формат 35mm TV Projection. Дополнительную информацию о соотношении геометрических размеров вы найдете в главе 1.
Раскрывающийся список Fit Resolution Gate (Подгонка к разрешению кадрового окна) управляет соотношением размеров, заданных с помощью параметров Resolution Gate (Разрешение кадрового окна) и Film Gate (Кадровое окно). Это нужно для корректного совмещения действия, созданного с помощью компьютерной графики, с импортированной плоскостью изображения.
Плоскости отсечки
Плоскости отсечкиЛюбая камера в Maya имеет плоскости отсечки, ограничивающие количество информации, которое может транслироваться через ее объектив. Положение этих плоскостей задается параметрами Near Clip Plane (Ближняя плоскость отсечки) и Far Clip Plane (Дальняя плоскость отсечки). Они задают минимальное и максимальное расстояния расположения плоскостей отсечки соответственно. В сцене вы наблюдаете только объекты, попавшие между этими двумя плоскостями. Кроме того, только эти объекты подвергаются визуализации.
Если какой-то из объектов при перемещении камеры исчезает, отредактируйте значения параметров Near Clip Plane (Ближняя плоскость отсечки) и Far Clip Plane (Дальняя плоскость отсечки).
Подведем итоги
Подведем итогиПуть к стадии визуализации обычно бывает долгим и трудным, но, видя полученные результаты на экране своего компьютера, пользователи понимают, что их усилия были не напрасны. Ничто так не вдохновляет, как просмотр готовой анимации. Но было бы ошибкой считать, что процесс визуализации сводится к простому нажатию нужных кнопок. Всегда оставляйте на эту стадию достаточно времени, чтобы гарантировать корректную визуализацию с наилучшим качеством. Новички часто недооценивают количество времени, которое требуется для выбора ее параметров.
По мере накопления опыта вы начнете чувствовать, что же требуется для максимально быстрой и эффективной визуализации. Следует помнить и о правильной систематизации файлов. Результаты визуализации сцен могут быстро привести к недостатку места на жестком диске вашего компьютера.
Предварительный просмотр
Предварительный просмотрОкно диалога Render View (Визуализатор) автоматически открывается при запуске визуализации. Вы можете открыть его и вручную, выбрав в меню Window (Окно) команды Rendering Editors > Render View (Редакторы визуализации > Визуализатор). Его вид и основные функции показаны на Рисунок 11.10.
Пример воспроизведения анимационной последовательности в окне программы FCheck
Рисунок 11.18. Пример воспроизведения анимационной последовательности в окне программы FCheck
2. Выберите в меню File (Файл) этого окна команду Орел (Открыть).
3. Укажите маршрут доступа к папке с сохраненными кадрами и дважды щелкните на имени первого кадра. Проигрыватель по очереди загружает кадры в оперативную память и воспроизводит получившуюся анимацию в реальном времени. Нужно только выбрать корректную скорость воспроизведения. Для управления показом анимации используются кнопки, расположенные на панели инструментов окна программы FCheck.
Работа с камерами
Работа с камерамиКамеры фиксируют всю созданную вами анимацию. В теории камеры Maya должны функционировать аналогично реальным камерам. Соответственно, чем лучше вы разбираетесь в фотографии, тем проще вам будет работать. Термин "камера" связан с центральной проекцией. В сцене может присутствовать произвольное количество камер, при этом желательно, чтобы хотя бы одна из них отображала вид в окне проекции Perspective (Перспектива). Впрочем, па эту роль замечательно подходит существующая в сцене по умолчанию камера persp.
При желании вы можете визуализировать вид в любом из окон ортографической проекции.
Размывание в движении
Размывание в движенииРазмывание в движении — это оптический эффект, возникающий при слишком быстром движении объекта перед камерой. В Maya существуют два способа его визуализации — двумерное и трехмерное размывание в движении. Ни один из этих эффектов не может быть визуализирован в виде отражений.
Процесс двумерного размывания в движении обсчитывается после визуализации кадра. Данный фильтр действует на любые перемещающиеся в кадре объекты. Это довольно эффективный способ получения размывания в большинстве приложений. Кроме того, визуализация сцен происходит быстрее, чем в случае трехмерного размывания.
Трехмерное размывание в движении обсчитывается непосредственно во, время визуализации кадров анимационной последовательности. Размыванию подвергаются только заранее указанные пользователем объекты. В результате получается более качественное изображение, чем при двумерном размывании, но при этом увеличивается время визуализации сцены.
Чтобы включить эффект размывания в движении, откройте окно диалога Render Global Settings (Общие параметры визуализации) и установите флажок Motion Blur (Размывание в движении) в одноименном разделе. Затем с помощью переключателя Motion Blur Type (Тип размывания в движении) нужно выбрать тип размывания. Обычно величина размывания контролируется с помощью атрибута Blur by Frame (Размывание по кадрам). Чем выше его значение, тем сильнее проявляется эффект.
Кроме того, дополнительные элементы управления позволяют влиять на величину двумерного размывания на итоговом изображении. Атрибут Blur Length (Длина размывания) позволяет получать размытые участки в виде полос, а также усиливает или уменьшает величину размывания, заданную параметром Blur by Frame (Размывание по кадрам).
СОВЕТ
Атрибут Shutter Angle (Угол затвора), расположенный в разделе Special Effects (Эффекты) окна диалога Attribute Editor (Редактор атрибутов) для камеры, также влияет на степень размывания. Чем больше его значения, тем более размытым окажется изображение.
Разрешение
Разрешение
Атрибут Resolution (Разрешение) задает размер визуализируемого изображения в пикселах. Вы можете выбрать один из предустановленных вариантов в раскрывающемся списке Presets (Предустановленные значения), расположенном в разделе Resolution (Разрешение) окна диалога Render Global Settings (Общие параметры визуализации). Для профессионального вещания обычно используется разрешение 720 х 486, относящееся к стандарту NTSC. В раскрывающемся списке Presets (Предустановленные значения) ему соответствует вариант CCIR 601/Quantel NTSC. Если компьютерная графика предназначена для монтажа с домашним цифровым видео, лучше всего визуализировать сцену с разрешением 720 х 480. Но в этом случае вам придется вводить упомянутые значения в поля Width (Ширина) и Height (Высота) вручную.
Атрибуты Device Aspect Ratio (Пропорции устройства) и Pixel Aspect Ratio (Пропорция пиксела) отвечают за то, чтобы изображение имело определенную ширину. В данном случае мы оставим значения, заданные по умолчанию.
ВНИМАНИЕ
Если в раскрывающемся списке Presets (Предустановленные значения) раздела Resolution (Разрешение) выбран вариант, отличный от CCIR 601/Quantel NTSC, значение параметра Pixel Aspect Ration (Пропорция пиксела) должно быть равным 1. В противном случае изображение может оказаться растянутым или сжатым.
Чем выше разрешение, тем дольше будет визуализироваться сцена. При увеличении разрешения вдвое время визуализации может возрасти в четыре раза. Именно поэтому тестовую визуализацию рекомендуется проводить при уменьшенном разрешении.
На время обсчета сцены влияет также атрибут Quality (Качество). Поэтому для тестовой визуализации желательно выбирать в этом раскрывающемся списке варианты с более низким качеством изображения. Каждый из методов визуализации имеет свой набор настроек качества. О них мы поговорим чуть позже.
Результат визуализации сцены с фруктами с помощью алгоритма Maya Vector
Рисунок 11.8. Результат визуализации сцены с фруктами с помощью алгоритма Maya Vector
В разделе Fill Options (Параметры заливки) установите флажок Fill Objects (Заливка объектов) и с помощью расположенного ниже переключателя выберите количество цветов для каждого из объектов. Чтобы сформировать линии по контуру объектов, установите флажок Include Edges (Включить границы) в разделе Edge Options (Параметры границы) и укажите в поле Edge Weight (Вес границы) вес линий.
Результат визуализации сцены со сферами внутри ящика с помощью алгоритма
Рисунок 11.6. Результат визуализации сцены со сферами внутри ящика с помощью алгоритма
Рисунок 11.7. Результат визуализации сцены со сферами внутри ящика с помощью модуля

Слева показана последовательность
Рисунок 11.2. Слева показана последовательность изображений, визуализированная при значении параметра Frame Padding, равном 1. Как легко заметить, этот параметр позволяет лучше систематизировать файловую последовательность благодаря сохранению порядка нумерации
Сохранение/загрузка изображения
Сохранение/загрузка изображенияВ большинстве случаев окно диалога Render View (Визуализатор) используется для просмотра результатов визуализации сцены, но не стоит забывать о том, что оно позволяет сохранять отдельные кадры. Для этого достаточно выбрать в меню File (Файл) этого окна команду Save Image (Сохранить изображение). В этом меню есть также команда Open Image (Открыть изображение), позволяющая открыть в окне диалога Render View (Визуализатор) ранее визуализированное изображение. Если вам нужно получить всего один кадр, это идеальный способ его сохранения.
Создание камеры
Создание камерыПроще всего создать новую камеру, выбрав в меню Panels (Панели) окна проекции команду Perspective t New (Перспектива " Создать). Это приведет к появлению нового узла, а изображение в активном окне проекции переключится на вид через объектив новой камеры.

Камеры, как и прочие объекты в Maya, можно выделять и подвергать преобразованиям перемещения, поворота и масштабирования. Кроме того, существует возможность менять вид сквозь объектив камеры с помощью одновременного нажатия клавиши Alt и одной из кнопок мыши и последующего перемещения указателя.
Например, щелкните правой кнопкой мыши на окне проекции Perspective (Перспектива), чтобы сделать его активным. Выделите камеру, через которую отображается сцена, выбрав в меню View (Вид) окна проекции команду Select Camera (Выделить камеру). В окне диалога Channel Box (Окно каналов) появятся атрибуты камеры. Попробуйте подвигать проекцию, используя комбинации клавиши Alt и кнопок мыши. Обратите внимание на то, как при этом меняются атрибуты. Чтобы анимировать камеру, достаточно создать для этих атрибутов ключи анимации.
Сравнение результатов визуализации
Рисунок 11.5. Сравнение результатов визуализации сцены: слева— с помощью алгоритма Maya Hardware; справа — с помощью алгоритма Maya Software
Для активизации аппаратного визуализатора достаточно выбрать вариант Maya Hardware (Аппаратный визуализатор) в раскрывающемся списке Render Using (Визуализировать с помощью), расположенном в верхней части окна диалога Render Global Settings (Общие параметры визуализации). Качество изображения определяется с помощью раскрывающегося списка Number of Samples (Число образцов), расположенного на вкладке Maya Hardware (Аппаратный визуализатор).
Ступенчатый эффект по краям объектов
Рисунок 11.4. Ступенчатый эффект по краям объектов (слева) возник при визуализации с эскизным качеством. После улучшения качества изображения (справа) этот эффект исчезает
Разумеется, чем выше качество изображения, тем больше времени займет визуализация сцены. По мере накопления опыта вы научитесь находить баланс между качеством и временем визуализации.
Типы камер
Типы камерВы можете создать камеры, состоящие из одного, двух и трех узлов. Чаще всего используется камера, состоящая из одного узла. Это собственно узел камеры, преобразования которого задают ее положение и ориентацию в пространстве.
Камера, состоящая из двух узлов, включает в себя не только камеру, но и ее мишень. Мишень используется для нацеливания камеры на нужный объект. Таким способом можно заставить камеру следовать за движущимся объектом. Достаточно анимировать мишень, и камера станет перемещаться следом за ней.
Трассируемые отражения
Трассируемые отраженияДля формирования отражений методом трассирования нужно назначить объекту материал с атрибутом Reflectivity (Отражательная способность) и открыть окно диалога Render Global Settings (Общие параметры визуализации). Убедитесь в том, что в раскрывающемся списке Render Using (Визуализировать с помощью) выбран вариант Maya Software (Программный визуализатор), и перейдите на вкладку Maya Software (Программный визуализатор). Установите в разделе Raytracing Quality (Качество трассирования) флажок Raytracing (Трассировка лучей).
В результате визуализации альфа-канала
Рисунок 11.3. В результате визуализации альфа-канала место расположения прозрачной бутылки будет залито серым цветом
Альфа-канал можно увидеть в окне диалога Render View (Визуализатор). Кстати, именно это окно используется для показа результатов тестовой визуализации.
СОВЕТ
Для просмотра альфа-канала изображения в окне диалога Render View (Визуализатор) достаточно щелкнуть на кнопке Display Alpha Channel (Отображение альфа-канала). Для возвращения к обычному изображению нужно щелкнуть на кнопке Display RGB Channels (Отображение RGB-каналов).
Визуализация бутылки
Визуализация бутылкиВ этом разделе вам предстоит запрограммировать перемещение камеры вокруг натюрморта с винной бутылкой и визуализировать полученный результат.
Загрузите файл still_life_render_v01.mb из папки ChapterFiles\Lighting\scenes прилагаемого к книге компакт-диска. Вам предстоит не только указать параметры визуализации сцены с натюрмортом, но и отредактировать назначенный бутылке материал.
Визуализация эффекта преломления
Визуализация эффекта преломленияЭффект преломления формируется исключительно трассированием лучей. Кроме того, нужно, чтобы объект, поверхность которого преломляет лучи света, был полупрозрачным. Управление процессом преломления осуществляется через назначенный объекту материал.
Для включения эффекта преломления выделите нужный материал в окне диалога Hypershade (Редактор материалов) и откройте для него окно диалога Attribute Editor (Редактор атрибутов). В разделе Raytrace Options (Параметры трассирования) установите флажок Refractions (Преломления). После этого останется указать значения параметров Refractive Index (Коэффициент преломления) и Refraction Limit (Предел преломлений).
Для создания преломляющего эффекта параметр Refractive Index (Коэффициент преломления) должен иметь значение, отличное от 1. Для большинства эффектов преломления вполне достаточно значения, отличающегося от 1 на 0,2. Изображение на Рисунок 11.13 слева получено при значении параметра Refractive Index (Коэффициент преломления), равном 1,2. Правое изображение получено при значении этого параметра, равном 0,8.
Включение трассирования
Включение трассированияТрассирование, с которым вы познакомились в предыдущей главе, используется для воспроизведения двух оптических эффектов, которые нельзя создать с помощью стандартного визуализатора с настройками по умолчанию. Трассирование представляет собой процесс отслеживания пути световых лучей от источника света до каждого объекта, а затем отслеживания пути отраженных лучей света от объекта до объектива камеры. Таким способом формируются эффекты отражения и преломления, а также тени с высокой детализацией, с которыми вы также познакомились в предыдущей главе.
Создавать трассированные тени, как правило, нецелесообразно, так как сопоставимого уровня качества можно достичь с помощью карт глубины, вдобавок значительно сократив время визуализации.Истинные отражения возникают в случаях, когда в отражающей поверхности появляется изображение расположенных перед ней объектов. В главе 7 вы узнали, что получить имитацию отражений можно с помощью карты отражения, но истинные отражения создают только трассированием.
Для их получения требуется включить процесс трассирования, установив флажок Raytracing (Трассировка лучей) в разделе Raytracing Quality (Качество трассирования) вкладки Maya Software (Программный визуализатор) окна диалога Render Global Settings (Общие параметры визуализации). Но если для создания трассированных теней вам требуется запустить процесс их формирования, установив соответствующий флажок в окне диалога Attribute Editor (Редактор атрибутов) для выделенного источника света, то получаемые методом трассирования отражения ничего подобного не требуют.
После включения трассирования на поверхности отражающих объектов появится изображение окружающей обстановки. Это касается и объектов, поверхностям которых назначены карты отражения. Более подробную информацию об этом вы получите немного позже.
Преломление световых лучей возникает при пересечении границы сред с различной плотностью. Например, если опустить карандаш в стакан с водой, появится ощущение, что карандаш сломан. Отражающиеся от поверхности карандаша лучи слегка меняют направление распространения при переходе из воды в воздух. В результате изображение карандаша под водой слегка смещается и возникает впечатление его излома.
Выбор имени файла
Выбор имени файлаВизуализированные изображения сохраняются в файл, имя которого указывается пользователем в следующем виде: собственно имя файла, номер кадра и расширение. В общей форме это выглядит так: имя_файла.####.ехt Например, still_ life.0234.tif.
Имя набора сохраняемых изображений вводится в поле File Name Prefix (Приставка имени файла). Если оставить это поле пустым, Maya автоматически присвоит сохраняемым изображениям имя текущей сцены (в рассматриваемом примере это stilllife). Такой подход имеет смысл использовать, если приходится иметь дело с набором различных сцен. В этом случае вы сможете легко определить, к какой сцене относится тот или иной результат визуализации.
Номер кадра (в рассматриваемом примере 0234) указывает, какому кадру анимационной последовательности соответствует каждое из изображений. Раскрывающийся список Frame/Animation Ext (Расширение имени файла/Нумерация кадров анимации) позволяет выбрать форму именования файлов. В рассматриваемом случае в этом списке был выбран вариант namej.ext (Имя.№.расширение). Если оставить заданное по умолчанию значение name.ext (Имя.Расширение), приложение визуализирует только один кадр вне зависимости от того, визуализируется ли анимация или статичная сцена.
Выбор параметров визуализации
Выбор параметров визуализацииНачнем с выбора разрешения и качества отображения сцены:
1. Откройте окно диалога Render Global Settings (Общие параметры визуализации) и перейдите на вкладку Maya Software (Программный визуализатор).
2. В раскрывающемся списке Quality (Качество) раздела Anti-aliasing Quality (Качество сглаживания) выберите вариант Production Quality (Качество фильма).
3. Перейдите на вкладку Common (Общие) и выберите в раскрывающемся списке Frame/Animation Ext (Расширение имени файла/Нумерация кадров анимации) вариант name.tf.ext (Имя.№.расширение). В поля Start Frame (Начальный кадр), End Frame (Конечный кадр) и Frame Padding (Количество цифр в номере кадра) введите значения 1, 25 и 2 соответственно.
4. В раскрывающемся списке Image Format (Формат изображения) выберите вариант TIFF.
5. Убедитесь в том, что в раскрывающемся списке Renderable Objects (Визуализируемые объекты) выбран вариант Render All (Визуализировать все), а в раскрывающемся списке Camera (Камера) — вариант cameral. В раскрывающемся списке Presets (Предустановленные значения), расположенном в разделе Resolution (Разрешение), выберите вариант 640 х 480.
Выбор визуализатора
Выбор визуализатораВыбор визуализатора в Maya осуществляется в окне диалога Render Global Settings (Общие параметры визуализации). Хотя чаще всего пользователи работают со стандартным программным визуализатором, наличие прочих методов дает вам возможность выбирать вид итогового изображения.
Дополнительные техники анимации
Анимация частиц
Анимация частицСоздадим струйку пара, вырывающуюся из носика созданного в главе 6 чайника.
Анимация с помощью модуля динамики
Анимация с помощью модуля динамикиВ упражнении этого раздела вам предстоит создать бильярдный стол и анимиро-вать движение шаров при столкновении друг с другом.
Анимация твердых тел
Анимация твердых телПри желании вы можете включить аппаратный показ текстур в активном окне проекции. Для этого достаточно нажать клавишу 6. Теперь нужно привести в движение белый шар, заставив его удариться о шар с желтой полоской. Последний, в свою очередь, должен столкнуться с черным шаром и вызвать его движение по направлению к лузе. Проще всего это сделать, создав ключи анимации для белого шара. Но так как возможность создавать ключи анимации для активных тел в Maya отсутствует, нужно превратить этот шар в пассивное тело:
1. Выделите белый шар. Обратите внимание на то, что атрибут Active (Активное) в окне диалога Channel Box (Окно каналов) имеет значение On (Вкл).
2. Убедитесь в том, что ползунок таймера анимации стоит на отметке первого кадра, и выберите в меню Soft/Rigid Bodies (Мягкие/Твердые тела) команду Set Passive Key (Создать пассивный ключ). Обратите внимание на то, что атрибут Active (Активное) в окне диалога Channel Box (Окно каналов) теперь выделен оранжевым цветом и имеет значение Off (Выкл). То есть вы создали ключ анимации для активного состояния белого шара и перевели его в пассивное состояние. Таким образом, вы имеете возможность переводить тела из активного состояния в пассивное и обратно.
3. Установите ползунок таймера анимации на отметку кадра № 10 и переместите белый шар по направлению к шару с желтой полоской. При этом поверхности шаров должны немного проникнуть друг в друга. Снова выберите в меню Soft/Rigid Bodies (МягкиеДвердые тела) команду Set Passive Key (Создать пассивный ключ).

4. Установите ползунок таймера анимации на отметку кадра № 11 и выберите в меню Soft/Rigid Bodies (Мягкие/Твердые тела) команду Set Active Key (Создать активный ключ). В результате после столкновения с полосатым шаром белый шар опять станет активным телом.
Анимировав шар как пассивное тело созданием ключей анимации для двух различных его положений, а затем вернув его в активное состояние, вы получили динамическую имитацию движения. В момент столкновения белого шара с полосатым Maya начинает вычислять перемещение последнего. А так как в кадре № 11 белый шар опять перешел в активное состояние, модуль имитации динамики рассчитает и его движение после столкновения. Это избавит вас от необходимости дальнейшей анимации белого шара.
Верните ползунок таймера анимации в начало диапазона и запустите воспроизведение. Первым начнет двигаться белый шар. После удара о шар с желтой полоской он срикошетирует в сторону. При этом шар с желтой полоской должен удариться о черный шар и заставить последний упасть в лузу. Если этого не происходит, вернитесь к редактированию ключей анимации белого шара и подберите для него правильную траекторию движения.
Впрочем, при текущих настройках падение в лузу невозможно. Вам нужно определить упругость столкновений:
1. Верните ползунок таймера анимации на отметку первого кадра. Выделите все шары и введите в поле Bounciness (Упругость) окна диалога Channel Box (Окно каналов) значение 0,2.
ПРИМЕЧАНИЕ
Одновременно поменять значение атрибута набора выделенных объектов можно только в окне диалога Channel Box (Окно каналов). Если вы решите воспользоваться окном диалога Attribute Editor (Редактор атрибутов), потребуется по очереди выделять сферы и вводить значение 0,2 в поле Bounciness (Упругость).

2. Запустите воспроизведение анимации и обратите внимание на то, что теперь шары отскакивают друг от друга и от бортов гораздо медленнее. Чтобы увидеть, как черный шар проваливается в лузу, увеличьте диапазон анимации до 200 кадров.
Вы можете загрузить уже готовый файл Table_v2.mb с прилагаемого к книге компакт-диска.
Атрибуты частиц
Атрибуты частицСозданные частицы оснащены набором атрибутов, находятся под действием существующих в сцене полей и принимают участие в столкновениях. В этом они полностью аналогичны твердым телам.
На Рисунок 12.11 показано окно диалога Attribute Editor (Редактор атрибутов) для выделенной системы частиц. Вкладка partidel, как и вкладка любого узла объекта, содержит уже знакомые вам атрибуты преобразований перемещения, поворота и масштабирования. Параметры узла формы находятся на вкладке particleShapel. Третья вкладка, emiterl, содержит параметры генератора частиц.
Атрибуты генератора
Атрибуты генератораОтредактировать поведение частиц можно, поменяв тип генератора и значения его атрибутов.
Генератор типа Omni (Всенаправленный) испускает частицы во всех направлениях, в то время как генератор типа Directional (Направленный) испускает частицы в направлении, указанном пользователем. Пример работы такого генератора показан на Рисунок 12.8.
Атрибуты эффектов рисования
Атрибуты эффектов рисованияНачать знакомство с атрибутами эффектов рисования лучше всего с создания одного мазка в пустом окне проекции и последующего редактирования его параметров. Выделите мазок и откройте окно диалога Attribute Editor (Редактор атрибутов). Атрибуты мазка находятся на вкладке с его названием. Например, для мазка, созданного с помощью кисти africanLily.mel, это будет вкладка africanLilyl.
Визуализация мазков в виде трехмерных объектов осуществляется благодаря функции, называемой трубкой (tube). В процессе роста трубок могут образовываться ветви, листья, цветы и бутоны. Каждый отдел трубки имеет собственные элементы управления. Это позволяет вам моделировать самые разные эффекты. По мере накопления опыта работы с модулем Paint Effects (Эффекты рисования) вы начнете понимать, как изменение того или иного параметра влияет на вид получаемого эффекта.
Вот перечень наиболее важных атрибутов:
Эффекты рисования визуализируются при последующей обработке кадра. Это означает, что таким способом невозможно создать эффекты отражения или преломления. Зато вы можете просматривать результат изменения динамических параметров эффектов рисования прямо в окнах проекции.
Кроме того, существует возможность преобразовывать эффекты рисования в полигональные поверхности, которые будут визуализироваться уже вместе с остальными элементами сцены. В этом случае вы сможете добавить к ним эффекты отражения и преломления. Для преобразования нужно выделить мазок и выбрать в меню Modify (Изменить) команду Convert > Paint Effects to Polygons (Преобразовать > Эффекты рисования в полигоны). При этом редактировать преобразованные трубки можно с помощью большинства упомянутых ранее параметров. Впрочем, информация, например, о цвете трубок больше не будет влиять на их вид в окне проекции, потому что в процессе превращения эффектов рисования в полигоны цветовая информация преобразуется в назначенный этим полигонам материал.
Поэтому лучше всего сначала завершить работу с рассматриваемым эффектом, а потом уже преобразовывать его в сетку полигонов.
Модуль Paint Effects (Эффекты рисования) позволяет легко создавать такие сложные эффекты, как, например, поле колышущихся цветов. Эта сложность порождает большое число элементов управления. К счастью для начинающих пользователей, в Maya существует набор уже готовых кистей. Самостоятельно поэкспериментируйте с ними, меняя различные атрибуты, чтобы узнать, какие эффекты вы можете создать.
Атрибуты твердого тела
Атрибуты твердого телаОбъект превращается в твердое тело в результате добавления ему набора атрибутов, отвечающих за его поведение в процессе имитации динамики. В этом разделе мы перечислим наиболее важные параметры как активных, так и пассивных тел, участвующих в столкновениях.
Атрибут Mass (Масса) задает относительную массу твердого тела. Масса является фактором, определяющим, какое количество энергии будет передано при столкновении от одного объекта другому. Чем больше масса объекта, тем меньшее усилие ему потребуется, чтобы при столкновении сдвинуть другой объект, сохранив при этом часть собственной энергии для дальнейшего движения. Масса является относительной величиной, то есть если все взаимодействующие объекты имеют одинаковое соотношение масс, имитация динамики будет выглядеть одинаково вне зависимости от абсолютной массы.
Атрибуты Static Friction (Трение покоя) и Dynamic Friction (Динамическое трение) определяют коэффициент трения твердого тела в состоянии покоя и в движении. Этот коэффициент задает силу, с которой тело сопротивляется движению или попыткам вывести его из состояния покоя. При равном нулю коэффициенте трения тело будете перемещаться свободно, как на льду.
Параметр Soundness (Упругость) определяет количество энергии, остающееся у тела после столкновения. Чем больше его значение, тем быстрее будет двигаться рикошетировавшее после столкновения тело.
Параметр Damping (Торможение) отвечает за уменьшение кинетической энергии в процессе движения тела. Чем больше значение этого параметра, тем быстрее будет уменьшаться скорость объекта.
Атрибуты визуализации
Атрибуты визуализацииПараметры раздела Render Attributes (Атрибуты визуализации) определяют вид частиц и способ их визуализации. В Maya существует два способа визуализации частиц — программный и аппаратный. Аппаратно визуализируемые частицы обычно визуализируются отдельно от основной сцены, соединяясь с ней уже на стадии монтажа. Это довольно сложная техника, поэтому мы не будем рассматривать ее на страницах данной книги, ограничившись рассказом о программно визуализируемых частицах типа Cloud (Облако).
Итак, откройте окно диалога Outliner (Структура), выделите строчку partidel и откройте для частиц окно диалога Attribute Editor (Редактор атрибутов). Обратите внимание на раскрывающийся список Particle Render Type (Тип визуализации частиц) в разделе Render Attributes (Атрибуты визуализации). Три варианта в этом списке даны с суффиксом "s/w", что указывает на программную визуализацию частиц. Частицы остальных типов визуализируются исключительно аппаратно.
Выберите в раскрывающемся списке Particle Render Type (Тип визуализации частиц) вариант Cloud (Облако) и щелкните на кнопке Add Attributes For Current Render Type (Добавить атрибуты визуализации частиц данного типа). В результате снизу появится набор новых атрибутов, а частицы в окне проекции превратятся из точек в большие окружности.
Частицы типа Cloud (Облако) имеют атрибуты Radius (Радиус), Surface Shading (Тонирование поверхности) и Threshold (Пороговое значение).
В разделе Per Particle (Array) Attributes (Атрибуты одной частицы (массива)) содержатся атрибуты, имеющие отношение к индивидуальным частицам.
Например, атрибут Radius (Радиус) частиц типа Cloud (Облако) задает радиус каждой частицы в наборе. Присвоив этому параметру значение 1,5, вы получите набор частиц радиусом 1,5 каждая.




Контроль состояния индивидуальных частиц дает возможность получать интересные эффекты. Например, для частиц типа Cloud (Облако) можно создать атрибут radiusPP (Радиус одной частицы), позволяющий присвоить каждой из частиц свой радиус. При этом вам не придется вводить радиус каждой частицы вручную, так как программа обрабатывает эти данные как массив. Обратите внимание на наличие атрибута life-spanPP (Время жизни одной частицы), позволяющего контролировать время жизни каждой частицы индивидуально.
Бильярдный стол с шарами
Рисунок 12.4. Бильярдный стол с шарами
4. Создайте три полигональные сферы, уменьшите их масштаб и поместите на стол, как показано на Рисунок 12.4. Желательно воспроизвести именно такое положение шаров друг относительно друга.
5. Создайте для каждого шара материал своего цвета, чтобы они отличались друг от друга. Например, один шар сделайте белым, второй — белым с желтой полосой, а третий — черным (Рисунок 12.5).
Более реалистичный пар из носика
Рисунок 12.18. Более реалистичный пар из носика
5. Для устранения зазора между струей пара и носиком можно переместить генератор частиц внутрь носика.
Чтобы сравнить результат своей работы с образцом, загрузите файл Kettle_Steam_ vS.ma с прилагаемого к книге компакт-диска.
Поэкспериментируйте со значением параметра Rate (Частота), стараясь получить наиболее достоверный результат. Кроме того, попытайтесь анимировать атрибут Speed (Скорость) и посмотрите, как будет выглядеть анимация при различных значениях параметра radiusPP (Радиус одной частицы). Имитация, полученная в данном упражнении, довольно корректна, но нельзя сказать, чтобы она воспроизводила реальный пар. По мере дальнейшего знакомства с Maya вы откроете для себя другие техники создания подобных эффектов, но их рассмотрение выходит за рамки данной книги.
Воспользуйтесь частицами типа Cloud (Облако) для имитации, например, пара от чашки с кофе. Этот пар двигается намного медленней и имеет меньшую плотность. Также попытайтесь самостоятельно воссоздать след от самолета и сигаретный дым.
Частицы типа Cloud (Облако) превосходно подходят для получения начальных навыков работы с данным типом объектов. Постепенно можно переходить к исследованию частиц других типов. Чем больше вы экспериментируете, тем проще вам будет в дальнейшем. Вы быстро обнаружите, что частицы позволяют реалистично сымитировать множество эффектов для анимации.
Частицы, испускаемые в определенном направлении
Рисунок 12.8. Частицы, испускаемые в определенном направлении
Существует также генератор типа Volume (Объемный), в процессе работы которого частицы возникают в некоторой точке фиксированного объема (Рисунок 12.9). Этот объем может иметь форму куба, сферы, цилиндра, конуса или тора. По умолчанию частицы могут покидать границы этого объема.
Частицы вылетают из носика чайника по прямой
Рисунок 12.12. Частицы вылетают из носика чайника по прямой
На этом этапе вы можете загрузить файл Kettle_Steam_vl.ma из папки Chapter-FHes\Tea_Kettle\scenes прилагаемого к книге компакт-диска и сравнить свой результат с нашим.
4. Чтобы заставить частицы разлетаться в разные стороны, отредактируйте значение атрибута Spread (Разброс). Выделите генератор частиц, откройте для него окно диалога Attribute Editor (Редактор атрибутов), перейдите на вкладку emitterl и введите в поле Spread (Разброс) значение 0,25. Вид потока частиц после этой операции показан на Рисунок 12.13.
Динамические взаимодействия
Динамические взаимодействияДинамикой называется имитация движения на основе действующих законов физики. Вместо создания ключей анимации вы присваиваете объектам физические характеристики, которые определяют их поведение. Для этого обычные объекты Maya преобразовываются в динамические тела, что приводит к появлению у них набора динамических атрибутов, влияющих на поведение тела при взаимодействии с другими объектами сцены.
Динамические тела приводятся в движение действием внешних сил, называемых полями (fields). В Maya существует целый набор полей, имитирующих самые разные силы — от силы ветра до силы тяжести. Подробную информацию о них вы получите чуть позже.
Динамические объекты в Maya делятся на следующие категории: тела, частицы, волосы и жидкости. Тела (bodies) создаются из геометрических поверхностей и используются в основном при моделировании столкновений. Частицы (particles) представляют собой визуализируемые точки пространства, обладающие динамическими свойствами. Они применяются для создания таких эффектов, как огонь или дым. Появившиеся в текущей версии Maya волосы (hair) представляют собой кривые, обладающие динамическими свойствами. Своим поведением они напоминают веревки. Модуль для работы с жидкостями (fluids) присутствует только в версии Maya Unlimited. Для имитации свойств жидкостей применяются объемные частицы, которые могут проявлять свойства поверхностей. Они позволяют моделировать такие природные явления, как волнистые облака или струйки дыма. Впрочем, рассмотрение динамики мягких тел, волос и жидкостей выходит за рамки данной книги.
Динамика частиц
Динамика частицПодобно твердым телам, частицы движутся под действием полей, сталкиваясь друг с другом. Короче говоря, частица (particle) представляет собой допускающую визуализацию точку в пространстве. Большие скопления частиц позволяют создавать такие эффекты, как дым, рой насекомых, фейерверк и т. п. Хотя работа с частицами относится к продвинутому уровню использования Maya, новичкам полезно получить представление о данной теме.
Большинство сведений, которые вы получили при изучении динамики твердых тел, применимы и в данном случае. Только работать придется с большим набором объектов, а не с отдельными частицами. Управление движением частиц осуществляется с помощью полей, а также изменением их атрибутов.
Например, в упражнении с бильярдным столом вы вручную запрограммировали движение белого шара, позволив программе в дальнейшем автоматически рассчитать перемещения всех взаимодействующих объектов. Каждый шар представлял собой отдельный объект сцены и визуализировался как отдельный элемент кадра. Частицы же обычно используются в виде больших скоплений, потому что только так можно получить нужный эффект при визуализации. Управление системами частиц осуществляется созданием генератора и нужных полей, а также выбором корректных атрибутов.
Динамика твердых и мягких тел
Динамика твердых и мягких телВ Maya существует два типа динамических тел — твердые и мягкие. Твердые тела представляют собой монолитные объекты, которые двигаются и вращаются в соответствии с назначенной им движущей силой. Примером твердого тела могут послужить игральные кости или бейсбольный мяч. К мягким же телам относятся деформируемые поверхности, например занавеска, колышущаяся под действием силы ветра, или прыгающий резиновый мячик. Подобный эффект достигается превращением в динамическое тело не всего объекта, а только его управляющих точек (если оно построено на основе NURBS-поверхности) или вершин (если использовалась полигональная сетка). При столкновениях или под действием полей эти точки смещаются, вызывая деформацию поверхности.
В этой книге будет рассматриваться динамика только твердых тел.
Дополнительные атрибуты твердых тел
Дополнительные атрибуты твердых телНа примере анимированных бильярдных шаров исследуйте действие различных атрибутов твердого тела. Внимательно понаблюдайте за тем, как изменение значений этих атрибутов влияет на поведение тела. Особое внимание обратите на следующие атрибуты:
Хотя создание анимации путем имитации динамических взаимодействий твердых тел на первый взгляд представляет собой довольно простой и очевидный процесс, получить с его помощью реалистичное движение можно только при наличии определенного опыта. Кроме того, сложности возникают на стадии интеграции полученной таким способом анимации в готовый проект. Большинство профессионалов использует модуль имитации динамики в качестве отправной точки. Впоследствии полученная с его помощью анимация преобразуется в стандартный набор ключевых кадров, который редактируется вручную с учетом особенностей конкретной сцены.
Вот примеры сцен, которые вы можете смоделировать с помощью модуля имитации динамических взаимодействий:
Генератор частиц типа Omni испускает частицы во всех направлениях сразу
Рисунок 12.7. Генератор частиц типа Omni испускает частицы во всех направлениях сразу
Испускание частиц
Испускание частицТипичный процесс создания различных эффектов на основе частиц состоит из двух частей — программирования движения частиц и их визуализации. Традиционно частицы вводятся в сцену с помощью их генератора (emitter), то есть объекта, испускающего частицы. После создания полей и редактирования поведения частиц приходит время настройки параметров их визуализации.
Рассмотрим процесс создания системы частиц на практике:
1. Убедитесь в том, что в раскрывающемся списке, находящемся в левой части строки состояния, выбран вариант Dynamics (Динамика), и щелкните на квадратике, расположенном справа от команды Create Emitter (Создать генератор) в меню Particles (Частицы). Это приведет к появлению показанного на Рисунок 12.6 окна диалога с различными параметрами генератора.
Испускание частиц
Начнем с создания генератора частиц и настройки их свойств. Загрузите файл Kettle_Model_v02.ma из папки ChapterFiles\Tea_Kettle\scenes прилагаемого к книге компакт-диска.
1. Создайте генератор типа Directional (Направленный) и поместите его в верхнюю часть носика чайника.
2. Теперь нужно задать потоку частиц определенное направление. В разделе Distance/Direction Attributes (Атрибуты расстояния/направления) введите в поле Direction Y (Направление вдоль оси Y) значение 1,5. В результате частицы начнут вылетать под углом примерно 70°.
Эффекты рисования
Эффекты рисованияВ арсенал инструментов Maya входит модуль Paint Effects (Эффекты рисования). С его помощью вы можете создать поле колышущейся под порывами ветра травы, волосы или перья птицы и даже северное сияние. Меню с набором соответствующих команд появляется при переходе в режим Rendering (Визуализация). Динамические свойства эффектов рисования поистине поразительны. Вы можете моделировать как трепещущие на ветру листья, так и гнущиеся под порывами урагана деревья. Впрочем, динамические вычисления в данном случае производятся средствами самого модуля, то есть действует отличный от уже знакомого вам по упражнениям, посвященным имитации динамических взаимодействий и движению частиц, механизм. Модуль Paint Effects (Эффекты рисования) можно считать одним из самых мощных инструментов Maya. Изучение всех его функций выходит за рамки книги для начинающих. Поэтому здесь мы рассмотрим только способы доступа к существующим кистям и создания с их помощью различных эффектов.
Как легко догадаться по названию модуля, эффекты просто рисуются в сцене с помощью набора кистей. Кисти создают мазки на предназначенной для этого поверхности или просто в окне проекции, что приводит к появлению визуализируемых трубок. Трубки обладают набором динамических свойств, то есть способностью двигаться под действием различных сил. Именно благодаря этому вы можете легко смоделировать поле качающихся травинок.
Посмотрим, как это выглядит на практике:
1. Создайте новую сцену. Разверните окно проекции Perspective (Перспектива) на весь экран.
Набор кистей с изображением травы в окне диалога Visor
Рисунок 12.19. Набор кистей с изображением травы в окне диалога Visor
2. Убедитесь в том, что вы находитесь в режиме Rendering (Визуализация). Если это не так, нажмите клавишу F5. Выберите в меню Paint Effects (Эффекты рисования) команду Get Brush (Выбрать кисть), чтобы открыть окно диалога Visor (Просмотр образцов). Это окно позволяет выбирать кисти из заранее созданного набора. Выделите слева папку grasses, чтобы получить доступ к кистям с изображением травы (Рисунок 12.19). Управление окном диалога Visor (Просмотр образцов), как и любым другим окном диалога в Maya, осуществляется с помощью комбинаций клавиши Alt и различных кнопок мыши.
3. Выделите образец grassWindWide.mel, чтобы активизировать соответствующий инструмент. В результате указатель мыши приобретет вид карандаша.
4. В окне проекции Perspective (Перспектива) нарисуйте две горизонтальные линии. Если вы не увидите при этом ни одной травинки, откройте окно диалога Paint Effect Brush Settings (Настройки кистей для эффектов рисования), выберите в меню Paint Effects (Эффекты рисования) команду Template Brush Settings (Параметры текущей кисти) и измените значение параметра Global Scale (Общий масштаб).
Настройка атрибутов частиц
Настройка атрибутов частицТеперь, когда частицы вылетают из носика в нужном направлении и с нужной скоростью, отредактируем их атрибуты. Начнем с указания времени жизни:
1. В окне диалога Outliner (Структура) выделите строчку partidel и откройте окно диалога Attribute Editor (Редактор атрибутов). Выберите в раскрывающемся списке Lifespan Mode (Режим времени жизни) вариант Random Range (Случайный диапазон). Параметру Lifespan (Время жизни) присвойте значение 3, а параметру Lifespan Random (Случайное время жизни) —значение 1. В результате жизнь каждой частицы будет продолжаться от 2 до 4 секунд.
2. Выберите в раскрывающемся списке Particle Render Type (Тип визуализации частиц), расположенном в разделе Render Attributes (Атрибуты визуализации), вариант Cloud (Облако). В результате частицы превратятся в набор огромных перекрывающих друг друга кругов. Они слишком велики для данного случая, однако иногда им требуется придать именно такой вид.
3. Радиус для каждой частицы будет выбираться индивидуально. В разделе Add Dynamic Attributes (Добавление динамических атрибутов) окна диалога Attribute Editor (Редактор атрибутов) щелкните на кнопке General (Общие), чтобы открыть окно Add Attribute (Добавить атрибут). Перейдите на вкладку Particle (Частицы) и выделите строчку radiusPP (Рисунок 12.14). Щелкните на кнопке ОК, и в разделе Per Particle (Array) Attributes (Атрибуты одной частицы (массива)) появится атрибут radiusPP (Радиус одной частицы).
Настройка атрибутов визуализации
Настройка атрибутов визуализацииТеперь, когда частицы двигаются нужным вам образом, осталось придать им корректный вид. Этот процесс называется настройкой атрибутов визуализации. Для разных типов частиц он проходит по-разному, соответственно, описанная в данном разделе последовательность действий применима только к частицам типа Cloud (Облако).
Для корректной визуализации таких частиц им нужно назначать материал Particle Cloud (Облако частиц). Во многом он подобен материалам, с которыми вам уже приходилось сталкиваться при выполнении упражнений.
1. Откройте окно диалога Hypershade (Редактор узлов) и выберите в меню Create (Создать) этого окна команду Volumetric Materials > Particle Cloud (Объемные материалы > Облако частиц). Созданный по умолчанию материал particleCloudl присутствует в каждой сцене, но мы создадим новый образец.
2. Дважды щелкните на образце материала particleCloud2, чтобы открыть для него окно диалога Attribute Editor (Редактор атрибутов) (Рисунок 12.16), и присвойте новому материалу имя steam.
Окно диалога Add Attribute
Рисунок 12.14. Окно диалога Add Attribute
Управление размером частиц будет осуществляться назначением текстуры атрибуту radiusPP (Радиус одной частицы). В Maya текстуры можно использовать для управления такими свойствами частиц, как, например, радиус или размер.
В данном случае вам потребуется градиентная текстура. Выбор одноцветной текстуры приведет к тому, что радиус частиц останется неизменным. Например, если текстура имеет белый цвет, радиус всех частиц будет равен 1. В данном случае белый соответствует значению 1, а черный — значению 0.
Таким образом, применение градиентной текстуры с цветовым переходом от черного к белому задаст постепенное увеличение радиуса частиц. Вот как происходит назначение текстуры атрибуту radiusPP (Радиус одной частицы):
1. Щелкните правой кнопкой мыши на текстовом поле radiusPP (Радиус одной частицы) и выберите в появившемся меню команду Create Ramp (Создать градиент). В текстовом поле появится строчка arrayMapperl.outValuePP. Этим вы только что назначили атрибуту градиентную текстуру, которая будет определять радиус частиц по мере их старения.
2. Чтобы получить доступ к редактированию этого градиента, щелкните на текстовом поле radiusPP (Радиус одной частицы) правой кнопкой мыши и выберите в появившемся меню команду arrayMapperl.outValuePP t Edit Ramp (arrayMapperl.outValuePP > Правка градиента). В окне диалога Attribute Editor (Редактор атрибутов) появятся параметры градиента. Присвойте ему имя radiusPP_ramp. Кроме того, редактировать градиент можно в окнах диалога Hypershade (Редактор узлов) и MultHister (Список узлов).
Окно диалога Attribute Editor для материала steam
Рисунок 12.16. Окно диалога Attribute Editor для материала steam
3. Измените цвет материала с голубого на белый. Выделите в окне диалога Outliner (Структура) строчку particlel, в окне диалога Hypershade (Редактор узлов) щелкните правой кнопкой мыши на образце материала steam и выберите в появившемся меню команду Assign Material to Selection (Назначить материал выделенному объекту).
4. Откройте окно диалога Render Global Settings (Общие параметры визуализации) и выберите в раскрывающемся списке Presets (Предустановленные значения) раздела Resolution (Разрешение) вариант 640 х 480. Перейдите на вкладку Maya Software (Программный визуализатор) и выберите в раскрывающемся списке Quality (Качество) раздела Anti-aliasing Quality (Качество сглаживания) вариант Intermediate Quality (Промежуточное качество). Запустите воспроизведение анимации и остановите его примерно посередине диапазона. Визуализируйте окно проекции Perspective (Перспектива). Вы должны получить примерно такой же результат, как на Рисунок 12.17.
Визуализируйте всю сцену при минимальном разрешении 320 х 240, чтобы оценить полученный эффект. Просмотреть результаты визуализации лучше всего с помощью служебной программы FCheck, с которой вы познакомились в предыдущей главе. Сразу бросаются в глаза слишком большая плотность пара и отсутствие прозрачности. Кроме того, по истечении времени жизни частицы просто исчезают. В реальности же пар рассеивается. То есть нужно сделать так, чтобы по мере роста частицы постепенно сливались с окружающей средой. Их прозрачность должна возрастать, достигая максимума к концу времени жизни. Вот как это можно сделать:
Окно диалога Attribute Editor для системы частиц
Рисунок 12.11. Окно диалога Attribute Editor для системы частиц
Окно диалога Dynamic Relationship
Рисунок 12.2. Окно диалога Dynamic Relationship
Слева располагается окно, содержащее список объектов сцены. Справа по умолчанию перечислены все созданные в сцене поля, но с помощью находящегося сверху переключателя вы можете открыть также список столкновений, список генераторов или же список всех упомянутых элементов. Для создания связи достаточно выделить строчку с именем плоскости (pPlanel) в окне слева, а затем — строчку с именем поля (gravityFieldl) в окне справа.
Теперь при воспроизведении анимации вы увидите, что плоскость тоже начинает падать вниз с первого же кадра. И так как два объекта перемещаются в одном направлении под действием одного и того же поля, столкновения между ними не произойдет. Для прекращения воздействия поля на плоскость достаточно снять выделение со строчки gravityFieldl в правой части окна диалога Dynamic Relationship (Динамические связи).
Окно диалога Dynamic Relationship
Редакторы связей, к которым относится и окно диалога Dynamic Relationship (Динамические связи), предназначены для соединения друг с другом различных узлов. Рассматриваемое здесь окно диалога используется для соединения динамических атрибутов, благодаря чему в процессе имитации динамики поля, частицы и твердые тела начинают взаимодействовать друг с другом. Другим примером редактора связей может послужить окно диалога Light Linking (Связывание источников света), позволяющее в явном виде указать, какие объекты сцены должен освещать тот или иной источник света. Впрочем, работа с этими редакторами относится к продвинутому уровню владения Maya, поэтому мы не будем заострять на них внимание.
Для преобразования активного тела в пассивное нужно вернуть ползунок таймера анимации на отметку первого кадра, а затем снять флажок Active (Активное) в окне диалога Attribute Editor (Редактор атрибутов). После этого плоскость снова превратится в неподвижный пол, от которого при ударе будет отскакивать мяч.
Окно диалога с параметрами генератора частиц
Рисунок 12.6. Окно диалога с параметрами генератора частиц
По умолчанию эта команда вызывает появление в сцене генератора типа Omni (Всенаправленный), испускающего 100 частиц в секунду. Скорость частиц составляет 1,0. Щелкните на кнопке Create (Создать), и в начале координат появится небольшой круглый объект. Это и есть генератор.
2. Запустите воспроизведение анимации. Как и в случае имитации динамических взаимодействий твердых тел, в раскрывающемся списке Playback Animation (Скорость воспроизведения) должен быть выбран вариант Play Every Frame (Воспроизводить каждый кадр). При этом вы не можете, например, запустить воспроизведение анимации в обратном направлении, пока сцена не будет записана в память. О том, как это сделать, вы узнаете чуть позже.
Испускаемые частицы выглядят как малиновые точки, летящие во всех направлениях. Вид сцены с работающим генератором частиц показан на Рисунок 12.7.
Перемещение твердых тел
Перемещение твердых телТак как движение любых активных твердых тел в Maya контролирует модуль имитации динамики, вы лишены возможности создавать ключи анимации для атрибутов, определяющих положение и ориентацию объекта. У пассивного объекта это ограничение отсутствует. Пассивные тела не контролируются модулем имитации динамики, поэтому вы можете поступать с ними, как с любыми другими объектами Maya.
Любое движение пассивных тел, созданное с помощью ключей анимации, преобразуется в импульс, который при столкновении с активным телом может передаваться последнему. Представьте себе удар бейсбольной биты по мячу. Бита является пассивным телом, перемещения которого запрограммировали созданием ключей анимации, в то время как мяч относится к активным телам. В момент удара кинетическая энергия биты передается мячу, и он летит вперед.
Практический пример такого поведения мы рассмотрим в следующем разделе.
Подведем итоги
Подведем итогиМощность того или иного инструмента неотделима от сложности его использования. Модуль имитации динамики в Maya оснащен множеством функций и элементов управления. Изучать их лучше всего на практике. В конце концов, с базовыми принципами работы в Maya вы уже знакомы. Имитация динамики относится к интерактивным процессам, поэтому вам придется немало экспериментировать, подбирая нужные значения параметров. Но со временем вам начнет помогать интуиция, и даже самые сложные задачи вы будете выполнять быстро и эффективно.
Поместите полигональную сферу над опорной плоскостью
Рисунок 12.1. Поместите полигональную сферу над опорной плоскостью
3. Нажмите клавишу F4 для перехода в режим Dynamics (Динамика). Выделите сферу и выберите в меню Soft/Rigid Bodies (Мягкие/Твердые тела) команду Create Active Rigid Body (Создать активное твердое тело). Обратите внимание на то, что атрибуты преобразований перемещения и поворота в окне диалога Channel Box (Окно каналов) теперь выделены желтым цветом. Это означает, что с этого момента значения данных параметров будет устанавливать модуль имитации динамики, и поэтому вы не сможете создавать для них ключи анимации.
4. Выделите опорную поверхность и выберите в меню Soft/Rigid Bodies (Мягкие/Твердые тела) команду Create Passive Rigid Body (Создать пассивное твердое тело). В результате плоскость превратится в пассивное тело, с которым будет сталкиваться наш мячик. Разумеется, активные и пассивные тела имеют различные атрибуты, но пока мы не будем обращать на них внимания и оставим им заданные по умолчанию значения.
5. Выделите мяч. Чтобы привести его в движение, вам потребуется поле. В реальном мире тела падают вниз под действием силы тяжести, поэтому в меню Fields (Поля) выберите команду Gravity (Сила тяжести). Выделенная в момент создания поля сфера автоматически подпадает под его действие. Впрочем, установить связь между полем и объектом можно в любой момент. Для этого применяется инструмент Dynamic Relationship (Динамические связи), о котором мы поговорим чуть позже.
ВНИМАНИЕ
Если сейчас запустить воспроизведение анимации, движение мячика будет замедленным. Это связано с тем, что модуль динамики рассчитывает его положения в каждый момент времени. Такое поведение будет продолжаться до записи имитации динамики в память. Для корректных расчетов нужно, чтобы воспроизводился каждый кадр. Поэтому откройте окно диалога Preferences (Параметры), выбрав в меню Window (Окно) команду Settings/Preferences > Preferences (Настройки/Параметры > Параметры), выделите в списке Categories (Категории) строчку Timeline (Временная шкала) и в раскрывающемся списке Playback Animation (Скорость воспроизведения) выберите вариант Play Every Frame (Воспроизводить каждый кадр).
Перед воспроизведением анимации введите в поле Playback End Time (Время окончания воспроизведения анимации), расположенное справа от ползунка шкалы диапазонов, значение 500. Установите ползунок таймера анимации на отметку кадра № 1 и щелкните на кнопке Play Forward (Воспроизведение вперед).
В результате сфера начнет падать вниз, а при столкновении с плоскостью отскочит вверх. Посмотрим, как изменится движение объектов, если превратить плоскость из пассивного тела в активное.
6. Выделите плоскость и откройте для нее окно диалога Attribute Editor (Редактор атрибутов).
7. Перейдите на вкладку rigidBody2 и установите флажок Active (Активное).
8. Теперь при запуске анимации вы обнаружите, что после столкновения мяча с опорной поверхностью последняя начинает падать вниз вместе с мячом. Но так как на нее не распространяется влияние поля Gravity (Сила тяжести), в начальный момент она неподвижна.
Чтобы заставить поле Gravity (Сила тяжести) влиять на плоскость, откройте окно диалога Dynamic Relationship (Динамические связи) (Рисунок 12.2). Это можно сделать с помощью команды Relationship Editors > Dynamic Relationship (Редакторы связей > Динамические связи) из меню Window (Окно).
После присвоения параметрам Min
Рисунок 12.10. После присвоения параметрам Min Distance и Max Distance значения 3 частицы появляются на расстоянии 3 единиц от генератора
Результат работы генератора типа Volume
Рисунок 12.9. Результат работы генератора типа Volume
Вот основные атрибуты частиц, влияющие на их поведение в сцене.
Атрибут Rate (Частота) определяет число частиц, испускаемых генератором за одну секунду. Скорость этих частиц задается атрибутом Speed (Скорость). При этом существует возможность сделать скорости частиц случайными, из-за чего процесс их генерации станет более натуральным. Достаточно воспользоваться параметром Speed Random (Случайная скорость), определяющим границы диапазона, в котором скорость частиц будет меняться.
Параметры Min Distance (Минимальное расстояние) и Max Distance (Максимальное расстояние) позволяют начать создание частиц на заданном расстоянии от генератора. На Рисунок 12.10 показано облако частиц, полученное после присвоения этим параметрам значения 3.
Результат визуализации сцены с чайником, из носика которого вырывается пар
Рисунок 12.17. Результат визуализации сцены с чайником, из носика которого вырывается пар
1. Выделите материал steam в окне диалога Hypershade (Редактор узлов) и откройте для него окно диалога Attribute Editor (Редактор атрибутов). В данном случае не имеет смысла присваивать атрибуту Transparency (Прозрачность) какое-то определенное значение. Вам потребуется еще один градиент. Точно так же, как и назначенная атрибуту radiusPP (Радиус одной частицы) градиентная текстура, новый градиент заставит частицы блекнуть по мере старения. А к моменту окончания времени жизни они станут совершенно прозрачными. Щелкните на кнопке с рисунком шахматной доски, расположенной справа от поля Life Transparency (Изменение прозрачности со временем), чтобы открыть окно диалога Create Render Node (Создать узел визуализации).
С помощью модуля Paint Effects вы можете добавить траву и цветы в любую сцену
Рисунок 12.20. С помощью модуля Paint Effects вы можете добавить траву и цветы в любую сцену
Вид и движение мазков, созданных с помощью модуля Paint Effects (Эффекты рисования), можно отредактировать в окне диалога Attribute Editor (Редактор атрибутов). Однако количество атрибутов в данном случае слишком велико. В следующем разделе мы расскажем о наиболее часто используемых.
Создание активных и пассивных тел
Создание активных и пассивных телВ твердое тело можно преобразовать любой геометрический объект. После преобразования его поверхность начнет испытывать действие полей и сможет принимать участие в столкновениях. При этом поведение объектов в процессе столкновения вычисляется программой исходя из их массы, скорости и других свойств.
Существует два типа твердых тел — активные и пассивные. Активные тела реагируют на столкновения с другими объектами и действие полей. В отличие от них, пассивные тела никак не реагируют на воздействие полей или удары о них других, тел, хотя могут участвовать в столкновениях. Обычно в роли пассивного тела выступает поверхность, с которой сталкиваются активные тела.
Познакомимся на практике со свойствами этих элементов на примере прыгающего мячика:
1. Создайте полигональную плоскость и увеличьте ее размер. Она послужит опорной поверхностью.
2. Создайте полигональную сферу и поднимите ее над поверхностью (Рисунок 12.1).
Создание бильярдного стола и шаров
Создание бильярдного стола и шаровНачнем с создания бильярдного стола. Выполните следующие действия:
1. Создайте полигональную плоскость и увеличьте ее масштаб по ширине и длине в 10 раз.
Создание кэш-файла для сцены с частицами
Создание кэш-файла для сцены с частицамиДля создания дискового кэш-файла выберите в меню Solvers (Модули просчета) команду Create Particle Disk Cache (Создать дисковый кэш-файл для частиц). Это автоматически запустит воспроизведение анимации, после чего сцена будет записана в файл, сохраненный в папке particle текущего проекта. Положение всех частиц фиксируется. В результате вы получаете возможность воспроизводить анимацию с любого места и в любом направлении.
Если впоследствии возникает необходимость изменить, например, частоту испускания частиц или их скорость, потребуется сначала удалить кэш-файл. Для этого выберите в меню Solvers (Модули просчета) команду Edit Oversampling and Cache Settings (Изменить точность просчета) и снимите флажок Use Particle Disk Cache (Использовать дисковый кэш-файл для частиц) в окне диалога Attribute Editor (Редактор атрибутов).
Теперь, когда вы получили информацию о базовых принципах динамики, пришло время рассмотреть их практическое применение.
Создание твердых тел
Создание твердых телТеперь нужно определить бильярдный стол как пассивное тело. Шары, соответственно, должны стать активными телами.
1. Выделите плоскости, образующие поверхность стола, и кубы, играющие роль бортов, и выберите в меню Soft/Rigid Bodies (МягкиеДвердые тела) команду Create Passive Rigid Body (Создать пассивное твердое тело).
2. Выделите все сферы и выберите в меню Soft/Rigid Bodies (Мягкие/Твердые тела) команду Create Active Rigid Body (Создать активное твердое тело).
3. Не снимая выделения со сфер, выберите в меню Fields (Поля) команду Gravity (Сила тяжести). Теперь на шары будет действовать сила тяжести.
4. Запустите воспроизведение анимации. Вы увидите, что шары опустились на поверхность стола. При этом взаимопроникновения геометрии не происходит. Если же взаимопроникновение есть, Maya выделяет соответствующие объекты и выводит сообщение об ошибке в командной строке.
Увеличение частиц по мере удаления их от носика чайника
Рисунок 12.15. Увеличение частиц по мере удаления их от носика чайника
Сравните полученный результат с файлом Kettte_Steam_v2.ma с прилагаемого к книге компакт-диска.
Вид потока частиц после увеличения значения параметра Spread
Рисунок 12.13. Вид потока частиц после увеличения значения параметра Spread
ПРИМЕЧАНИЕ
Атрибут Spread (Разброс) задает угол конуса, в пределах которого происходит испускание частиц. Если этот параметр имеет значение 0, частицы вылетают по прямой. При значении 1 частицы распространяются в пределах 180°.
5. Пока что частицы движутся слишком медленно для струи пара, поэтому введите в поле Speed (Скорость) значение 2, а в поле Speed Random (Случайная скорость) — значение 1. В итоге частицы будут иметь скорости в диапазоне от 1 до 3.
6. Чтобы частицы не вылетали из одной точки, введите в поле Min Distance (Минимальное расстояние) значение 0,5, а в поле Max Distance (Максимальное расстояние) — значение 1. В результате частицы будут вылетать на расстоянии от 0,5 до 1 единицы от носика чайника.

Вид шаров после назначения им материалов
Рисунок 12.5. Вид шаров после назначения им материалов
Сферы немного приподняты над поверхностью стола, так как требуется избежать взаимного проникновения плоскостей объектов друг в друга. Только в этом случае можно гарантировать корректный результат имитации динамики.
Для сравнения вы можете загрузить файл Table_vl.mb, расположенный в папке ChapterFHes\Pool_Table\scenes прилагаемого к книге компакт-диска.
Время жизни частиц
Время жизни частицВремя жизни определяет продолжительность присутствия частицы в сцене. Ограничивать время жизни частиц обычно имеет смысл по ряду причин. Как вы убедитесь при моделировании струи пара из носика чайника, частицы с определенным временем жизни могут в течение этого времени менять свои свойства. Например, частица в момент создания может иметь белый цвет и постепенно становиться прозрачной. Ограничение времени жизни позволяет также сохранять минимальным общее количество частиц в сцене, увеличивая тем самым эффективность работы.
Существует несколько режимов времени жизни. Их выбор осуществляется в раскрывающемся списке Lifespan Mode (Режим времени жизни). Выбранный по умолчанию вариант Live Forever (Бесконечное время жизни) означает, что появляющиеся в сцене частицы остаются там навсегда. Режим Constant (Постоянное время жизни) приводит к исчезновению частиц через промежуток времени, указанный в поле Lifespan (Время жизни). По умолчанию параметр Lifespan (Время жизни) равен одной секунде, то есть при частоте 30 кадров в секунду каждая частица будет существовать в сцене на протяжении 30 кадров.
Режим Random Range (Случайный диапазон) позволяет разнообразить время жизни частиц, заданное параметром Lifespan (Время жизни). Расположенный ниже атрибут Life-span Random (Случайное время жизни) указывает, в каком диапазоне может меняться время жизни частиц. Режим lifespanPP only (Время жизни одной частицы) позволяет контролировать время жизни отдельных частиц, которое задается выражениями на языке MEL. Впрочем, рассмотрение выражений выходит за рамки данной книги.
Запись сцены
Запись сценыЗапись движения частиц в память или на диск облегчает редактирование анимации. Для этого достаточно выделить частицы и выбрать в меню Solvers (Модули просчета) команду Memory Caching > Enable (Кэширование памяти > Включить). Запустите воспроизведение анимации, и сцена будет записана в память. После этого вы получите возможность, например, наблюдать анимацию при перемещении ползунка в обратном направлении. Однако любые попытки редактирования сцены ни к чему не приведут, пока вы не удалите зафиксированную информацию из памяти. Эта операция выбирается в меню Solvers (Модули просчета) команды Memory Caching > Delete (Кэширование памяти > Удалить). Количество информации, которую вы можете зафиксировать таким способом, зависит от количества оперативной памяти. Кэширование в память работает намного быстрее кэширования на диск, но в последнем случае вы можете записать положения всех частиц в течение всего времени их жизни. Это гарантирует корректную визуализацию сцены. Поэтому перед визуализацией сцены с частицами нужно создать кэш-файл.
Сайт: Аннимация - Видео - Графика
- Анимация на сайте
- Графика на сайте
- Фотография на сайте
- Кино на сайте
- Flash на сайте
- Видео для сайта
- Premiere Pro
- Vstudio
- VirtualDub
- Sonic Scenarist
- DVD
- Изображения для сайта
- Пакет Photoshop
- Adobe Illustrator
- Adobe Illustrator
- CorelDRAW
- CorelXARA
- Maya