Нанесение значений параметров кистью  в системе nCloth

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

На объект nCloth с помощью кисти  могут быть нанесены значения следующих пара­ метров   и   динамических атрибутов   ткани:  Thickness ,  Bounce ,  Friction,   Mass,   Stretch,   Bend,  Wrinkle ,  rigidity , Deformability  и  Input  Attract  (подробнее  обо  всех этих параметрах см. в  предыдущем разделе). Эти параметры и  атрибуты можно наносить как в виде  карты текстур,  так  и   карты  вершин. Разрешение карты  текстур  может быть выше, чем  плот­ ность вершин на сетке ткани, но для этого на объект ткани  необходимо  наложить чистую карту UV. С другой стороны, карта вершин пригодна  для любого объекта ткани  незави­ симо от наложения на него карты UV.

Более  подробную  информацию  о  текстурировании  и   проецировании  карт  UV  см.  в   гла­ ве  12, "Тонирование и текстурирование при анимации".

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

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

а затем выберите в меню nCloth пункт Edit nCloth => Paint Vertex Properties => Thicknes s • (Правка объекта nCloth => Pacкpacкa свойств вершин => Толщина). Откроется стандартное окно Tool Settings (Параметры инструмента)  для инструмента Paint (Кисть),  а сетка  по­ лотнища флага станет черной, указывая на нулевую толщину всех ее вершин (сейчас  они взаимодействуют  таким образом,  как  будто ткань  очень  тонкая).  Установите  значение около 0.25 параметра Opacity (Непрозрачность), выберите операцию  replac e (Замена)

в раскрывающемся  списке Paint Operatio n (Окрашивание), установите значение  1 пара­

метра Value (Значение) и  приступайте к  раскраске  сетки  ткани. Вполне  благоразумно сделать  материал ткани  более  толстым  вблизи  древка флага  и   более  тонким ближе к краю   полотнища,  но   более   творческий подход   к   раскраске   продемонстрирован на рис. 23.17, а. Как показано на рис. 23.17, б в режиме отображения параметра Self Collision Thicknes s в  виде  сфер, чем  светлее раскрашиваемый  участок,  тем  толще  оказывается ткань во  время самовзаимодействия.  А на рис. 23.17, в показан  флаг при  воспроизведе­ нии его анимации.

Рис. 23.17. Нанесение толщины флага кистью (а); наглядное представление полу­ чающихся в итоге значений толщины (б); флаг при воспроизведении анимации (в)

Теперь нанесем карту растяжения как текстуру. Для этого вернитесь сначала к сохра­ ненному ранее файлу сцены, где отсутствует  карта толщин, чтобы лучше видеть  резуль­ таты раскраски  на карте складок.  Выделите объект ткани, а затем выберите  пункт меню Edit nClotl r => Paint  Textur e Properties  => Stretch  • (Правка объекта  nCloth  =>  Раскраска свойств  вершин => Растяжение). На этот раз сетка ткани  первоначально  выделена белым цветом, указывая на то, что весь флаг оказывает сильное сопротивление  растягиванию. Оставьте без изменения выбранный  черный цвет, чтобы он вычитался из  текущего цвета, уменьшите непрозрачность приблизительно до величины  о. 2 и  приступайте к раскраске поверхности   объекта  ткани. На  рис. 23.18  приведены результаты  нанесения свойства растяжения: верхняя часть флага, выделенная черным, растягивается  и  свисает   в  боль­ шей степени, чем нижняя часть, выделенная белым цветом.

Ограничители

Помимо параметров  ткани  и   внешних  сил, для  повышения  реалистичности  модели используют ограничители.  Если  ограничители  перемещения уже использовались  ранее для  привязки  некоторых вершин полотнища  флага к его древку, то для решения этой же задачи    имеются  и    другие  ограничители. На   рис. 23.19   показан   раскрытый   пункт nConstraint меню nCloth. Обратите  внимание, что помимо пунктов наложения ограниче­ ний, в  этом меню имеются также пункты нанесения параметров  ограничений  и  преобра­ зования  текстурных карт в  карты  параметров  ограничений  (подробнее о  нанесении  ки­ стью параметров  и  атрибутов  в  системе nCloth см. в  предыдущем разделе). Кроме того, в этом меню есть пункты правки  принадлежности  к ограничителям  (т.е. влияния  видов ограничителей  на отдельные вершины) и  удаления ненужного ограничителя.  Ниже при­ ведено краткое описание каждого вида ограничителей.

Puc. 23.18. Нанесение карты рас­ тяжения на полотнище флага

Рис. 23.19. Пункты меню nConstraint

Ограничитель Transfor m (Перемещение), который уже использовался в  начале этой главы, привязывает выделенные вершины  к локатору в  пространстве. При  перемещении в  пространстве или  вращении  локатора  привязанные  к  нему  вершины повторяют эти движения,  а вслед за ними  приводятся  в движение   и  остальные части  объекта ткани  по ходу  анимации.

Ограничитель  Componen t То Componen t (Компонент к компоненту)  аналогичен  ог­ раничителю  "кнопка", используемому другими  средствами  моделирования  ткани, но об­ ладающий большей  гибкостью. Позволяет прикрепить   пассивный объект  (например, кнопку)  к  объекту  ткани. Кроме того,  данный  ограничитель  позволяет присоединять другие объекты ткани, например карман  рубашки, к  объекту  nCloth,  что  обеспечивает больше  функциональных   возможностей, чем  классическое  кнопочные  ограничители. Пассивные  объекты,  подобные кнопкам,  будут  и  далее оставаться твердыми,  тогда как присоединенные объекты ткани будут сгибаться, как и  предполагалось.

Ограничитель Point То surface (Точка к поверхности) позволяет прикреплять  ткань к  пассивным  объектам  и   очень  удобен  для  соединения  элементов  каркаса  с  объектом, расположенным ниже. Так, если  в  одежде персонажа имеются узкие  лямки  на плечах, с помощью ограничителя Point То surface их можно "прилепить" к плечам персонажа и  не позволить им  соскальзывать.

Ограничитель  Slide On surface (Скольжение по  поверхности)  является  видоизме­ ненным вариантом  ограничителя  Point То surface, обеспечивающим  прилипание  вер­ шин объекта ткани к поверхности, но в  то же время позволяющий  скользить по ней в  ог­ раниченных  пределах. Возвращаясь к примеру одежды с  узкими  лямками, добавим,  что данный ограничитель  позволит узким лямкам,  оставаясь  на плечах персонажа, немного соскальзывать при  движении.  Такой  ограничитель  (аналогично ограничителю  Point То surface) может использоваться для  имитации  скольжения одной ткани  по другой, а так­ же скольжения ткани  по  пассивной геометрической форме.

Ограничитель  Wel d  Adjacen t  Borders (Объединение   смежных границ) в   какой-то степени аналогичен ограничителю Componen t То Component , хотя он предназначен для того, чтобы объединить края двух объектов ткани  и  заставить их действовать как единый объект в  ходе анимации. Так, если рубашка и  ее рукава смоделированы в виде  отдельных объектов, с помощью ограничителя  Wel d Adjacen t Borders рубашку можно соединить  с рукавами, чтобы создать из  них единый  объект.

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

Ограничитель  Attract То  Matchin g  Mes h (Притяжение  к  согласующей сетке)  приво­ дит сетку (или выделенные  вершины) в  соответствие с находящимся на сцене  пассивным объектом с аналогичной топологией. На практике исходную  сетку, из  которой создается объект  ткани, можно  сначала  сдублировать,  а  затем  деформировать,  придав  ей  иную форму, после чего создать анимацию по ключевым  кадрам с использованием  данного ог­ раничителя  так, чтобы объект  ткани  попадал в  необходимую форму на заданном кадре анимации.  И хотя такой  прием отличается  от "подлинного" моделирования,  он, тем  не менее, позволяет придать ткани определенный вид  в  нужный момент времени.

Ограничитель Tearabl e surface (Рваная поверхность) интересен тем, что  позволяет создавать рваные участки  на объекте ткани. Под внешним  воздействием,  величина кото­ рого определяется параметром Glu e Strengt h (Интенсивность  сцепления), ткань рвется, образуя рваные участки. После  применения  данного  ограничителя  можно  нанести  ки-

стью значения параметра Glue  Strength  так,  чтобы задать  те  участки  ткани, которые должны рваться легче. Для этого достаточно выбрать пункт меню nConstraint => Paint  Properties by Vertex Ma p => Glue Strength  (Система nConstraint  => PacKpacKa свойств no карте вершин => Интенсивность сцепления).

Ограничители  Disable   Collision   (Отмена   взаимодействия) и   Exclud e  Collision   Pairs   (Исключение взаимодействующих  пар)  позволяют отдельным объектам  ткани  (или  же частям каждого  из  них) не взаимодействовать  с другими  объектами, находящимися  на сцене. В частности, ограничитель Disable Collision отменяет взаимодействия со всеми ос­ тальными  объектами  на сцене (как пассивными,  так и  объектами  ткани), тогда как огра­ ничитель  Exclud e Collision Pairs исключает  взаимодействия только с конкретными  пас­ сивными  объектами  или  же с другими  объектами  ткани. Для того чтобы наложить огра­ ничитель  Disable Collision, достаточно выделить ткань (или  контрольные вершины  на ткани), для которой требуется отменить  взаимодействие на сцене. А для того чтобы на­ ложить ограничитель  Exclud e  Collision  Pairs, выделите   все  объекты ткани  (или   кон­ трольные вершины  на этих объектах),  для которых требуется исключить  взаимодейст­ вие, а затем выберите данный ограничитель.

Поля

Если   С И Л Ы   тяжести  и  ветра являются неотъемлемой частью исходного ядерного ре­ шателя, то для воздействия на модель ткани  могут быть созданы поля целого ряда других сил. Это те же поля, что и  для моделирования частиц, поэтому если приходилось пользо­ ваться частицами, то они должны быть знакомы.

Поля могут существовать в трех формах: автономной, объемной и объектной. => Авто- номные поля существуют на  сцене  независимо  от  объектов  ткани  или  геометрических объектов, оказывая влияние   на  все   объекты  сцены,  если   только  не  включен режим Attenuation (Затухание). В этом случае поле будет затухать по мере отдаления от источ­ ника. По мере надобности  такие поля могут быть перемещены (повернуты или  масшта­ бированы)  на сцене. Для создания автономного поля достаточно выбрать его из  пункта Fields меню nCloth, например Fields => Turbulenc e (Поля => Турбулентность).

Объемные поля также не зависят от других элементов  сцены, но порождают соответ­ ствующие силы в  пределах объемной формы. В отличие от автономных полей, объемные поля действуют только в  объеме, определяемом выделенной формой, а за пределами это­ го объема их силы не оказывают никакого воздействия на объекты. Дл я этого можно ис­ пользовать  такие формы, как  куб  (Cube) ,  сфера (Sphere) ,  цилиндр  (Cylinder) ,  конус (Cone ) и  тор (Torus) , изменяя их форму и  размер. Дл я формирования  объемного поля сначала создайте автономное поле, а затем выберите для него требуемую объемную фор­ му  из   раскрывающегося   списка Volum e  shap e  (Объемная форма)  в   разделе Volum e  Control Attributes (Атрибуты управления объемом) редактора атрибутов, как показано на рис. 23.20.  После выбора формы объема становятся доступными  некоторые параметры,

в зависимости   от  вида   выбранной формы.  В  частности, флажок  Volum e  Exclusio n   (Исключение объема)  изменяет действие  поля на обратное:  когда  он установлен, сила поля  воздействует  только  на  объекты,  находящиеся вне  его  объема.  В  полях Volum e  Offset X, Volum e Offset Y и  Volum e Offset Z можно задать смещение поля относительно точки  его  создания на  сцене.  Несмотря  на  определенную пользу от  данного  элемента управления,  как  правило,  намного проще сместить сам объем  поля  в   окне  сцены.  Дл я сферических и тороидальных объектов доступно свойство Volum e Swee p (Ограничение

объема), позволяющее сократить объект до  определенной части  его  формы  (например, полусферы вместо целой сферы). И наконец, для тороидальной формы  доступно свойст­ во Section radiu s (Радиус сечения), изменяющее  толщину  такой  формы. На рис. 23.21 приведены результаты воздействия поля тороидального завихрения на флаг.

Puc. 23.20. Создание поля объемной фор­ мы в редакторе атрибутов

Рис. 23.21. Результаты  воздействия  объем­ ного поля  завихрения на флаг (для большей наглядности такого воздействия было отме­ нено действие силы тяжести)

И наконец, объектные поля применяются к самим объектам nCloth и  порождают си­ лы в  зависимости  от положения и  скорости  движения  вершин  объектов  nCloth по ходу воспроизведения анимации. Вершины  объекта nCloth с  примененным полем действуют в качестве источников  этого поля, оказывая  воздействие на другие объекты сцены. Напри­ мер, силовое поле ветра или  спутной  струи  может быть применено к объекту ткани  (или пассивному объекту), оказывая  воздействие на окружающие объекты ткани  в зависимо­  сти  от движения  того  объекта  ткани, который  порождает силу ветра. Для формирования объектного поля создайте сначала само поле, выделите его, а затем, нажав клавишу <Shift>, выделите  объект  nCloth,  к  которому требуется применить  данное  поле.  Затем  выберите пункт меню Fields => Fields Use Selected As Source Of Field (Поля => Использовать поля, выделенные в  качестве источника поля), чтобы применить силовое  поле к объекту (в этом случае поле станет порождаемым по отношению к объекту ткани).

Далее следует краткое  описание  полей,  которые  могут быть использованы  вместе с объектом  nCloth.  Поле Air имитирует  воздействие  воздуха на объект.  К  его  предвари-

тельно заданным разновидностям относятся ветер (Wind ) и спутная струя (Wake) .  Так, поле Win d имитирует ветер, дующий в  заданном направлении, а поле Wak e —  действие воздуха, возмущенного проходящим мимо объектом,  подобно листьям,  развевающимся от проезжающей мимо автомашины.  Поле Drag имитирует  воздействие  сопротивления воздуха на  объект,  тормозя  движение  ткани   (т.е.  оказывая ей   сопротивление).   Поле Gravity равномерно прикладывает к объекту силу тяжести  (как  правило,   в  отрицатель­ ном направлении  по оси  Y). Поле Newton , связанное с силой  тяжести, представляет  со­ бой радиальное гравитационное поле "планетарного" характера,  которое убывает обратно пропорционально квадрату расстояния от  центра  объекта.  Такое  поле моделирует воз­ действие одних крупномасштабных объектов  (подобных планетам) на другие, и  поэтому оно может оказаться не вполне пригодным для ткани. Поле radia l также имитирует силу радиального  действия, но не убывает в  пространстве, а втягивает   или же отталкивает  все объекты от себя в пределах заданного сферического объема. Поле Turbulenc e возмущает объект ткани, подобно кружащемуся  вихрем  ветру   или другой силе завихрения.  Это поле очень  удобно  использовать  для  того,  чтобы  придать модели  более  ярко  выраженный  вздымающийся  вид. Поле Unifor m действует аналогично полю radial , но прикладывает силу в  одном направлении  и равномерно, тогда как поле radia l действует в  пределах за­ данного сферического объема. Поле Vorte x втягивает  в себя объекты по спирали  (или от­ талкивает  их), подобно  водовороту. Оно также  удобно для  создания эффекта  торнадо. Поле Volum e Axis перемещает ткань по заданной оси  в  пределах объемной формы и  мо­ жет быть использовано для создания эффектов, в  которых ткань перемещается в  ограни­ ченном пространстве, как, например, белье в  стиральной или сушильной машине.

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

По теме:

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

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