Первые шаги в Maya. Урок 23. Имитация тканей
Примеры сцен с Cloth-объектами
Пингвин в лосинах
Воспользуемся модулем Maya Cloth для одевания пингвина в лосины. Самого пингвина моделировать не будем, а воспользуется уже готовым персонажем, созданным в приложении Poser (http://homepage.mac.com/woodland/archives/JTBabyPenguin.zip). Можно взять и любой другой персонаж, благо в Интернете имеется немало готовых Poser-персонажей. Импортируйте в Maya скачанный OBJ-файл, применив команду File=>Import (Файл=>Импорт). Поскольку импортированная фигура очень маленькая (увидеть ее можно лишь при сильном увеличении), то увеличьте размер персонажа до близкого к реальному, установив в полях Scale X/Y/Z окна каналов значение 70 (рис. 54).
Рис. 54. Исходный вид сцены после масштабирования
Для удобства дальнейшей работы создайте новый слой, вызвав из меню панели Layers команду Create Empty Layer (рис. 55). Объедините все элементы фигуры пингвина в группу (Edit=> Group), выделите группу и поместите ее в созданный слой, применив команду Add Selected Object из контекстного меню слоя. Переведите слой в режим шаблона, щелкнув на второй (слева) ячейке атрибутов слоя, в результате чего в ней появится буква T, а фигура станет прозрачной (рис. 56). После этого ни один из элементов фигуры пингвина уже выделить не удастся, а значит, создавать кривые станет удобнее. Активируйте окно проекции Front, щелкните на квадратике у команды Create=>EPCurveTool (Создать=>Кривая по редактируемым вершинам) и для того, чтобы кривая состояла из прямолинейных отрезков, в открывшемся диалоговом окне в поле CurveDegree установите вариант 1Linear (рис. 57). Теперь можно приступать к рисованию первой замкнутой кривой для создаваемых лосин. При этом не стоит забывать об участках, где предполагаются швы — из-за швов контур придется формировать из шести отдельных фрагментов. Следует также иметь в виду еще и то, что даже при условии включения режима прилипания к кривой CurveSnapping (для этого при построении очередного отрезка замкнутой кривой требуется удерживать нажатой клавишу C) из-за несовпадения начальных и конечных точек кривых обычно не получается создать кривую, образующую замкнутый цикл. В итоге попытка сформировать на ее основе панель заканчивается неудачей. Поэтому гораздо разумнее нарисовать фрагменты кривых так, чтобы они пересекались с запасом, а затем выделить их и удалить лишние концы. Создайте по такому принципу набор кривых для первого контура (рис. 58). Выделите все фрагменты контура и удалите лишние концы — для этого вначале воспользуйтесь командой EditCurve s=>CutCurves (режим Surfaces либо режим Modeling для старых версий Maya) — лишние фрагменты кривых окажутся обрезанными, а затем выделите все обрезанные концы (рис. 59) и удалите их, нажав клавишу Del (рис. 60).
Рис. 55. Создание нового слоя
Рис. 56. Включение режима шаблона слоя
Рис. 57. Настройка параметров инструмента EPCurveTool
Рис. 58. Исходный вид первого контура
Рис. 59. Выделение удаляемых концов
Рис. 60. Окончательный вид первого контура
Удерживая нажатой клавишу Shift, выделите первый контур и в окне проекции Perspective переместите его перед фигурой пингвина (рис. 61). Создайте на базе данного контура панель (Cloth=>CreatePanel) — рис. 62. Получите копию данного контура (Edit=>Duplicate) и установите ее позади фигуры (рис. 63). Сформируйте на базе второго контура панель, а затем из каждой панели получите по лоскуту ткани, то есть вначале выделите первую панель и примените команду Cloth=>CreateGarment, а затем те же самые действия выполните со второй панелью (рис. 64). Перейдем к сшиванию лоскутов. Активируйте проекцию Front и для удобства выделения отключите отображение в окне проекции всех объектов за исключением NURBS-кривых, последовательно выбрав команды Show=> None и Show=> NURBS Curves из окна проекции (рис. 65). Выделите две соответствующие кривые, по которым требуется проложить шов (рис. 66), и воспользуйтесь командой Cloth=>CreateSeam. Аналогичным образом создайте два других шва, в результате чего будет получен единый Cloth-объект с тремя швами, в чем вы сможете убедиться, вернув отображение всех объектов в окне проекции командой Show=> All (рис. 67).
Рис. 61. Перемещение первого контура
Рис. 62. Появление первой панели
Рис. 63. Появление второго контура
Рис. 64. Появление лоскутов
Рис. 65. Включение режима отображения только NURBS-кривых
Рис. 66. Выделение двух кривых для получения первого шва
Рис. 67. Cloth-объект с тремя швами
Верните фигуру из режима шаблона в нормальный режим, щелкнув на второй ячейке атрибутов слоя, — в итоге в ячейке появится буква R, а фигура вновь приобретет нормальный вид. Выделите группу, включающую все элементы фигуры, и превратите ее в объект коллизий с тканью (Cloth=>CreateCollisionObject). Уменьшите для фигуры значения параметров CollisionOffset и CollisionDepth до 0,2 — обратите внимание, что для этого придется выделять не группу, а элементы внутри нее (рис. 68). Увеличьте для ткани базовое разрешение (параметр BaseResolution) до 200. Запустите симуляцию, и вы увидите, что лосины окажутся натянутыми на пингвина (рис. 69 и 70).
Рис. 68. Настройка параметров фигуры
Рис. 69. Вид фигуры пингвина в лосинах в окнах проекций
Рис. 70. Пингвин в лосинах
Теперь попробуем сделать так, чтобы на предполагаемой талии у пингвина поверх лосин появился импровизированный пояс с пряжкой. В проекции Front создайте первую прямоугольную заготовку для пояса (рис. 71), продублируйте ее и расположите первую заготовку перед фигурой, а вторую — сзади (рис. 72). Превратите данные контуры в лоскуты ткани (рис. 74) и сшейте лоскуты между собой (рис. 73). Если после этого запустить симуляцию, то пояс в процессе преобразования сместится и окажется совсем не поверх штанов на талии (рис. 75). Поэтому требуется прикрепить его к штанам и в то же время оставить независимым элементом одежды. Это можно сделать с помощью ограничителя Clothconstraints, который позволяет привязать одну ткань к конкретным вершинам другой ткани. Выделите пояс, нажмите в одном из окон проекций на штанах правую кнопку мыши и выберите режим выделения вершин (Vertex) и при нажатой клавише Shift выделите вершины, расположенные в области талии (рис. 76). Примените команду Constraints=>Cloth — в результате пояс окажется надежно прикрепленным к штанам (рис. 77).
Рис. 71. Появление первого контура для пояса
Рис. 72. Расположение первого и второго прямоугольных контуров
Рис. 73. Появление ткани
Рис. 74. Выделение кривых для создания первого шва
Рис. 75. Первоначальный вид пингвина с поясом
Рис. 76. Выделение связываемых фрагментов ткани
Рис. 77. Результат прикрепления пояса к штанам
Напоследок разместим на поясе пряжку (в ее роли пусть выступит обычный торус). Создайте торус и расположите его на поясе желаемым образом. К сожалению, это не даст нужного эффекта, поскольку пояс при посадке на модель поменяет свою форму и положение, да и в дальнейшем останется динамическим, как и прочие элементы одежды. Поэтому пряжку следует на нем закрепить — для этого выделите торус и при нажатой клавише Shift еще и пояс (рис. 78) и воспользуйтесь командой Constraints=>Button. По окончании текстурируйте элементы сцены, и вы получите примерно такое изображение, как представлено на рис. 79.
Рис. 78. Выделение пояса и пряжки
Рис. 79. Пингвин в лосинах и с поясом