Практика: модель рваной рубашки и брюк в системе nCloth

В  этом  разделе  предстоит воспользоваться   знаниями,  полученными  в   предыдущих разделах, для выполнения работы постановщика по одежде персонажей для одного  кадра съемки. Независимо  от вида создаваемой анимационной  продукции,  будь то  небольшой короткометражный анимационный фильм, визуальный  эффект для  кинобоевика  или  ху­ дожественный анимационный  фильм, существует несколько   принципов   и   последова­ тельностей выполнения  операций, которые помогут решить  задачу ввода динамической  ткани в  кадр съемки или на сцену.

В данном примере используется персонаж по  имени  Джек.  Этот персонаж  впервые появился   в качестве вымышленного  и  томящегося от любви  героя в  короткометражном анимационном фильме "Первые впечатления" (First Impressions),  созданном в универси­  тете Клемсона. В данном примере Джек должен иметь совершенно новый вид. Допустим,  что Джек —  пират, высадившийся  на необитаемом  острове в  тропиках, чтобы исследо­ вать его. Одежда Джека изношена и  изодрана, что предоставляет особый интерес для мо­ делирования  ткани.

Итак, откройте файл сцены jack_clothsetup.ma . Для сцены с тканью полезно  ус­ тановить  пространство проекта, чтобы использовать  его для хранения кэшей,  сценариев и  других файлов. Для этого выберите пункт меню File => Project => New •  (Фай л => Проект е Новый • ) .  Присвойте  новому проекту  имя  jack_clothsetup. Выберите ва­ риант Use  Defaults  (Использовать принятое по  умолчанию), чтобы  заполнить поля Project Data Location s (Места сохранения данных проекта), а затем щелкните на кнопке


Accep t (Принять). В каталоге

Maya/projects/jack_clothsetup

будут созданы  все

каталоги, необходимые для нового проекта. На рис. 23.24 показан персонаж Джек, подго­

товленный для моделирования  ткани.

Рис. 23.26. Грани, выделенные на                             Рис. 23.27.   Выделение   вершин   на стопах персонажа                                                        поясе брюк позволит привязать их к телу персонажа с помощью огра­

ничителя

Теперь  брюки  будут  взаимодействовать  с  телом  персонажа,  оставаясь привязанными к  его талии  с помощью  ограничителя. Закончив  основную подготовку брюк  к моделиро­ ванию ткани, перейдите к подготовке рубашки. Используя объект jak_shirt_garment, создайте узел nClothShir t и переименуйте его в nClothSbirtOuputClotb. Восполь­ зуйтесь для этого уже имеющимся решателем nucleusJackCloth.es, созданным ранее для  брюк.   Кроме  того,   выберите для  рубашки   ту  же  геометрическую   форму   объекта jak_body_collisio n в качестве объекта взаимодействия.

Моделируемые  брюки  должны   правильно взаимодействовать с  рубашкой.   Как  из­ вестно,  за  один проход  в   решателе  nCloth  получаются   решения для  нескольких  слоев одежды.  Но для  этого  ему  нужно  знать  о  расположении  слоев  одежды  друг  над  другом. В данном  примере  можно  выделить три  следующих  слоя  взаимодействия:  тело,  выде­ ляемое на слое 0, брюки — на слое 1 и рубашка  — на сдое 2. Благодаря  этому рубашка бу­ дет взаимодействовать как  с брюками, так и  с телом персонажа,  а брюки  будут  оставаться под рубашкой  в  тех местах,  где эти  предметы  одежды  перекрываются.

Д Л  Я рубашки можно выбрать аналогичный ограничитель типа nConstraint. Воротник и   вырез будут разъезжаться, если  не  скрепить их  вместе. В  частности, для  того чтобы привязать воротник рубашки  к телу персонажа Джека, необходимо применить  ограничи­ тель Point to surface.  

1.    Выделите  вершины вокруг воротника.

2.    Выберите пункт меню nCloth => nConstrain t => Point On surface.

3.    Переименуйте   вновь созданный ограничитель  dynamicConstrain t в   dynamic- Conatraint_PTS_SbirtCollar.

Для того чтобы скрепить вырез в  рубашке Джека с ее воротником,  необходимо при­ менить ограничитель Componen t to Component .

1.    Выделите  две  вершины,  расположенные друг против  друга на вырезе рубашки, как показано на рис. 23.28.

2.    Выберите пункт меню nCot h => nConstrain t => Componen t То Component .

3.    Переименуйте   вновь созданный ограничитель  dynamicConstrain t в  dynamic- Constraiat_CTC_ShirtCollar_01.

4.    Наложите  еще два  ограничителя   Componen t  to  Componen t  на  вершины,  располо­ женные на краях выреза, выполнив ту же последовательность  операций, что  и  на ша­ гах 1-3.

Рис. 23.28.  Вершины,  выделенные  на вырезе рубашки

Основная подготовка к  моделированию   ткани  рубашки   и   брюк  Джека  проведена, а теперь нужно настроить соответствующие  параметры, чтобы добиться наиболее каче­ ственного моделирования ткани  обоих предметов  одежды персонажа.

Изменение параметров ткани и решателя  

При   воспроизведении   анимации   обнаруживается  ряд  недостатков,  которые  следует устранить. Эта часть задачи  в  большей степени  связана с экспериментированием  над ани­ мацией ткани. Наилучших результатов такого экспериментирования можно добиться лишь со временем и  с опытом. А поскольку система nCloth и  ядерный решатель относятся к  но­ вым средствам, большинство пользователей Майя не имеют особых преимуществ  с  точки зрения практического  опыта использования  этих средств. В то же время принцип действия большинства  решателей ткани  основан на настоящих динамических  силах,  поэтому, при­ звав на помощь собственную интуицию   и проявив  известную долю  творческих  способно-

стей, вполне можно найти  решение,  которое приведет к отличным результатам. В связи  с этим следует заметить, что любые предположения, которые делаются в этом разделе  отно­ сительно манипулирования  свойствами  ткани, являются не более чем  предположениями. Здесь  предоставляется возможность исследовать систему nCloth  и манипулировать   ее свойствами наиболее интересным и привлекательным образом. Ведь иногда даже самые не­ вероятные  варианты выбора способны привести к наилучшим результатам.

В  данном  примере можно  оставить  без  изменения  устанавливаемые  по  умолчанию значения параметров  решателя и  начать с анимации  ткани  брюк.  При  устанавливаемых по умолчанию значениях параметров в узле nClothPantsShap e брюки съезжают вверх, когда  Джек  поднимает ноги  или   сгибает их  в   коленях.  Брюки  двигаются  достаточно изящно, хотя и  немного пружинисто,  кроме того, они  слишком сильно  растягиваются и отскакивают при  взаимодействии  с телом персонажа.

По-видимому,  пружины, или  связки,  соединяющие   вершины  сетки  ткани, слишком свободны и  допускают значительное  растягивание и  сжатие. Поэтому попробуйте увели­ чить сопротивление  растягиванию  и  сжатию. Дл я этого увеличьте до 125 значение пара­ метра Stretch resistanc e и  до 75 значение параметра Compression  resistance . Это помо­ жет устранить  растягивание, но в  то же время внесет ненужные помехи. Для  возмещения данного недостатка попробуйте увеличить до 10 значение параметра Damp, до 5 — значе­ ние параметра  Collision Damp и до 2 000 — значение параметра Max Iterations. Кроме того, полезным окажется изменение до 0.2 параметра Thickness, до 0.1 — параметра Friction, до 0.5 — параметра Point Mass, а также установка  флажка Trapped Check. Следует также иметь  в виду влияние  на брюки той части тела персонажа, которая выступает в роли объек­ та  взаимодействия.   Так,  если   увеличить   до   0.5 значение параметра  Friction  в   узле nrigidPants, скольжение ткани по поверхности объекта взаимодействия уменьшится.

У модели  ткани  рубашки  свои  сложности. Если  используются устанавливаемые  по умолчанию  значения параметров  ткани, то пружины, или связки,   оказываются слишком свободными  и  рубашка явно съезжает на голову персонажа Джека,  когда он поднимает руки  или наклоняется. При  этом происходят также многочисленные самопроникновения рубашки. Для устранения  этих недостатков откройте редактор атрибутов для выделенного узла рубашки nClothShirtOuputCloth и увеличьте до 125 и 75 соответственно значе­ ния параметров Stretch  resistanc e и  Compressio n  resistance .  Измените до   0.2   значение параметра Thickness, до 1 — значение параметра Friction, до 5 — значение параметра Damp, до 1 — значение параметра  Collision Damp, до 40 — значение параметра  Max Self Collision Iterations,  до 2 о о о — параметра Max Iterations,  до  0.2  — параметра  Point  Mass,  до 2 — па­ раметра   Collision   Layer,  до   0.1   —   параметра   Self  Crossover   Push,   а   также   установите флажки Trapped Check и  Self Trappe d Check. По завершении  всех этих  настроек модель значительно улучшится и станет более устойчивой, как показано на рис. 23.29.

Кэширование анимации  

Как упоминалось выше, кэширование  анимации  ткани  может оказаться  весьма по­ лезным как для ускорения работы в  диалоговом  режиме со сценой, содержащей  модель, так и  для последующей правки  анимации  ткани. Дл я одновременного  кэширования  ани­ мации  ткани  рубашки  и  брюк можно воспользоваться системой  кэширования.

1.    Выделите узлы nClothShirtOutputClot h и nClothPantsOuputCloth .

2.     Выберите пункт меню nCloth => Create New Cach e • .

Рис. 23.29. Вид персонажа Джека   после  настройки модели ткани

3.    В открывшемся окне выберите вариант On e File Per Fram e или On e File и установи­ те флажок On e File Per Geometry . В данном примере отличия в режимах  кэширова­ ния не имеют особого значения.

4.     Щелкните на кнопке Create, чтобы начать процесс.

Некоторое время спустя воспроизведение завершится,  и  анимация  ткани  будет  пол­ ностью сохранена на диске. Если же потребуется повторить анимацию, удалите  ее кэш на диске   и создайте новую.

В некоторых случаях необходимого движения удается достичь с первого раза, а в дру­ гих для этого приходится  соединять вместе отдельные части  разных фрагментов  анима­ ции.  Как уже упоминалось,  для смешения кэшей можно воспользоваться  редактором до­ рожек. При  смешении  кэшей иногда оказывается полезно создать чистый, "ограниченный" вариант ткани. Для  этого  сначала  создаются  дубликаты   предметов   одежды  из   ткани, а затем  они  подвергаются воздействию  деформаторов  оболочки, которые  придают им форму моделируемой  ткани. Полученные таким  образом предметы одежды кэшируются и  далее используются  для смешения с  другими  кэшами  анимации  ткани. Другой способ создания такой "ограниченной" ткани заключается в  получении  варианта одежды с огра­ ничителем Point to surface, наложенным на всю одежду. Если сохранить большое значе­ ние параметра Strength,  то получится  поведение модели  ткани, которое может быть кэ- шировано и  смешано.

Для манипулирования кэшированной   моделью ткани  пригодны деформаторы  сеточ­ ного и  кластерного типов.  В частности, их  можно использовать  для получения  опреде­ ленного силуэта персонажа или  для устранения некоторых видов  взаимного  проникно­  вения, от которого нельзя полностью избавиться  при  моделировании.  Следует, однако, иметь в виду,  что такие деформированные  варианты ткани  требуют  повторного  кэширо­ вания, чтобы смешивать их с другими кэшами  в редакторе дорожек.

Управление красивой тканью  Maya

После того  как  будут завершены все  операции  анимации,  смешения и  деформации ткани, в  результате которых были  получены удовлетворительные  результаты, настанет время воспользоваться моделью ткани  с низким  разрешением  для управления   движени­ ем красивой ткани. Этот последний этап работы может  быть  выполнен с помощью дос­ тупных в  Майя деформаторов  оболочки.

Перейдите в  начальный кадр и  активизируйте слой представления ткани, чтобы была видна красивая  ткань.

1.    Выделите объект  jak_shirt_beaut y и,  нажав  клавишу <Shift>,  выделите  узел

nClothShirtOuput.

2.    Выберите пункт меню Animation => Create Deformers => Wrap Deformer (Анимация => Создать деформаторы => Деформатор оболочки).

Благодаря  этому  красивая  ткань  рубашки  приводится    в  движение   при  перемеще­ нии ткани nClothShirtOuput . Повторите шаги 1-2 для ткани брюк с низким   и высо­ ким  разрешением, чтобы  наладить управление   движением  красивой ткани  брюк  при анимации  ткани.

Теперь красивая ткань готова для передачи  на следующую стадию производственного процесса  (как  правило,  это  освещение  и   визуализация).   Остается  нанести  последний штрих — создать кэш геометрической формы для красивой ткани. Благодаря этому  дан­ ная сцена избавляется от всех лишних объектов  nCloth, которые уже не требуются  на по­ следующей стадии  производства и  только загромождают ее. Для того чтобы  просмотреть анимацию  персонажа  Джека  в   одежде,  откройте  файл  фильма  JackClothSim.mo v на прилагаемом к этой книге CD . В этом фильме показано,  как сетка с высоким разре­ шением приводится   в  движение.   А на рис. 23.30  показан  визуализированный  кадр  из этого фильма.

Рис. 23.30. Персонаж Джек в ру­ башке и брюках с  высоким раз­ решением,  которые приводятся в движение тканью с низким раз­ решением

Как следует из  данного примера, система nCloth  позволяет добиться отличных  ре­ зультатов   моделирования   ткани   после  некоторой  настройки   и   экспериментирования. Используя  описанные здесь  принципы,  можно  снарядить свои  персонажи  одеждой  из динамической ткани, приводимой   в движение  средствами nCloth.

Резюме

Как было продемонстрировано  в  этой главе, новый решатель ткани  nCloth в  Maya, использующий  механизм на основе технологии  nucleus для моделирования  ткани,  явля­ ется надежным, оперативным и  относительно простым средством создания ткани  из лю-

бого полигонального объекта. Создать саму ткань нетрудно, но намного труднее  настро­ ить ее многочисленные  свойства и  атрибуты, чтобы добиться точной имитации  желаемо­ го эффекта. Возможность настраивать  свойства решателя и  ткани, вводить  силы и  взаи­ модействия,   наносить кистью значения атрибутов  и   кэшировать  результаты  делает но­ вую  систему nCloth  в   Майя  одним из  самых эффективных  решателей  ткани  на  рынке и  превращает ее в  отличный инструмент для технических  постановщиков  и  аниматоров, которым требуется создавать реалистичные эффекты  ткани для своих персонажей.

Источник: Кундерт-Гиббс, Джон,  Ларкинс, Майк,  Деракшани, Дариус, Кунзендорф, Эрик,  и др., Освоение Maya  8.5.:  Пер.  с англ.  – М.:  ООО  «И.Д.  Вильямс», 2007.  – 928  с.:  ил.

По теме:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий