Как создать динамический сетап анимационного персонажа в Autodesk Maya

Илья Заикин, супервайзер технической анимации студии Open Alliance Media
Илья Заикин, супервайзер технической анимации студии Open Alliance Media

Деятельность специалистов по технической анимации в разных компаниях называется по-разному, но сути дела это не меняет. Они устраивают разрушения, отвечают за динамику одежды и прочие симуляции. В этом уроке мы обсудим динамику одежды персонажа на примере Фроси – героини анимационного сериала «Джинглики».

Работу над динамикой персонажа можно условно разделить на две части: первая – это непосредственное создание динамического сетапа, вторая – симуляция одежды под конкретную анимацию.

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

Итак, займемся динамикой одежды в программе Autodesk Maya 2014 на примере персонажа Фроси.

Персонаж мультсериала «Джинглики» / Фото предоставлено Open Alliance Media
Персонаж мультсериала «Джинглики». Фото предоставлено Open Alliance Media

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

Часто персонажи имеют очень детализированную и высокополигональную одежду. Чтобы увеличить скорость просчета симуляции солвером (nucleus) программы, создают прокси-объекты (proxy). В роли прокси-объектов выступают низкополигональные копии одежды, на которых как раз и просчитывается симуляция, а на основную геометрию костюма мы только передаем деформации за счет различных деформеров (deformers). Низкополигональные копии увеличивают производительность и даже могут дать более красивый результат, чем если бы мы просчитывали всю одежду полностью.

Это оригинальная юбка:
 
Элемент одежды персонажа мультсериала «Джинглики» / Фото предоставлено Open Alliance Media
Элемент одежды персонажа мультсериала «Джинглики». Фото предоставлено Open Alliance Media

А это юбка для прокси:

Элемент одежды персонажа мультсериала «Джинглики» / Фото предоставлено Open Alliance Media
Элемент одежды персонажа мультсериала «Джинглики». Фото предоставлено Open Alliance Media

Мы удалили внутренние манжеты, немного проредили сетку и очистили историю. Плотность сетки на прокси-объекте может варьироваться в зависимости от того, насколько детальную симуляцию мы хотим получить в итоге (складочки, помятости). Также при создании прокси необходимо учитывать, что для корректного просчета плотность сетки должна быть максимально равномерной. Если на одежде присутствуют декоративные элементы в виде пуговиц, бантов и прочей атрибутики, то на прокси от них тоже стоит избавляться. Возможны варианты и без удаления, но даже в этих случаях предметы должны быть реализованы в виде отдельных объектов, и считывать их надо отдельно. Например, если мы будем делать прокси штанов следующего персонажа, то пряжки, пуговицы и накладные карманы, можем абсолютно спокойно удалить.
 
Элемент одежды персонажа мультсериала «Джинглики» / Фото предоставлено Open Alliance Media
Работа над элементами одежды для персонажа мультсериала «Джинглики». Фото предоставлено Open Alliance Media

Но вернемся к нашей Фросе и ее прокси-юбке. Пора назначить на нее nCloth. Но если мы это сделаем, то юбка уже не будет следовать за перемещением персонажа в сцене. То есть, если мы загрузим нашу героиню в анимационную сцену и подвинем ее за контрол (control), юбка останется в центре глобальных координат, так как солвер «ничего не знает» о том, что у нас есть персонаж, и это именно его юбка, и именно за ним она должна перемещаться. Чтобы это исправить, мы выделим скелет Фроси за рутовую (главную) кость, потом выделим прокси юбки, пойдем в меню animation и выберем команду Smooth Bind.

Работа над элементом одежды персонажа мультсериала «Джинглики» / Фото предоставлено Open Alliance Media
Работа над элементами одежды для персонажа мультсериала «Джинглики». Фото предоставлено Open Alliance Media

Теперь, если перемещать девочку за контролы, прокси юбки всегда будет следовать за ней. Не помешает также перекинуть «веса» с исходной юбки на прокси при помощи команды Copy Skin Weights.

Работа над элементом одежды персонажа мультсериала «Джинглики» / Фото предоставлено Open Alliance Media
Работа над элементами одежды для персонажа мультсериала «Джинглики». Фото предоставлено Open Alliance Media

Обычно в студиях, где используется динамика одежды в анимационных сценах, персонажей всегда выставляют в Т-позу, чтобы при начале просчета одежды, она всегда была в исходном положении, в котором ее смоделировали. Если поза будет отличаться от исходной, нам поможет копирование «весов» с исходной геометрии. Ведь на исходной одежде они уже прокрашены корректно – это учли еще на этапе создания рига персонажа.

Теперь можно назначить nCloth на прокси юбки. Выделяем юбку, идем в меню nDynamics и жмем на команду Create nCloth.
 
Работа над элементом одежды персонажа мультсериала «Джинглики» / Фото предоставлено Open Alliance Media
Работа над элементами одежды для персонажа мультсериала «Джинглики». Фото предоставлено Open Alliance Media

После этого у нас автоматически создастся солвер (nucleus) и сформируется динамика у выделенного объекта. Теперь мы можем сделать предварительные настройки для загрузки персонажа в анимационную сцену. Первое, на что стоит обратить внимание – это нода солвера, которую мы можем увидеть в аутлайнере (outliner).

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

Кроме того, следует обращать внимание на такие основные настройки, как Substeps и Max Collision Iterations. Оба параметра позволяют повысить качество просчета вашей динамики. Substeps отвечает за то, сколько промежуточных кадров будет просчитываться в межкадровом интервале. Например, если по замыслу ваш персонаж двигается очень быстро, то Substeps нужно повысить, иначе солвер не успеет просчитывать ткань, и она будет бажить. Max Collision Iterations устанавливает, сколько раз, максимум, солвер будет обращаться к вершинам вашего объекта для определения их последующего положения в пространстве. Его также стоит повышать при быстрых и сложных симуляциях. Параметр Time Scale отвечает за скорость протекания процессов при симуляции.
 
Работа над элементом одежды персонажа мультсериала «Джинглики» / Фото предоставлено Open Alliance Media
Работа над элементами одежды персонажа мультсериала «Джинглики». Фото предоставлено Open Alliance Media

Обычно, если вы правильно задали параметр Space Scale, то для настройки симуляции ткани можно выбрать один из пресетов и немного подкрутить его. Не будем сейчас углубляться в дебри всего, что там можно настраивать, – этому надо посвящать отдельный большой мануал. Выберем стандартный «майский» пресет. Для этого выделим прокси юбки, перейдем в Attribute Editor и нажмем в нем на кнопку Presets в верхнем правом углу, а из выпадающего списка выберем пресет tshirt, нажав команду Replace.

Работа над элементом одежды персонажа мультсериала «Джинглики» / Фото предоставлено Open Alliance Media
Работа над элементами одежды для персонажа мультсериала «Джинглики». Фото предоставлено Open Alliance Media

Этот пресет позволяет создавать стандартные ткани, типа хлопка. Кроме того, при необходимости, мы можем смешивать разные пресеты, выбирая значения в процентном соотношении.

Если теперь мы нажмем кнопку play и запустим просчет симуляции, наша юбка будет свободно падать, пролетая сквозь персонаж. Чтобы это поправить, присоединим (приконстрейним) ее к телу и создадим объекты коллизии, от которых юбка будет отрабатывать. Для этого выберем прокси юбки, перейдем в режим выделения вертексов и обозначим их на поясе. Затем выделим тело персонажа и нажмем команду Point to Surface.
  
Работа над элементом одежды персонажа мультсериала «Джинглики» / Фото предоставлено Open Alliance Media
Работа над элементами одежды для персонажа мультсериала «Джинглики». Фото предоставлено Open Alliance Media

Таким образом мы «оденем» юбку. Теперь, если нажать кнопку play, юбка будет прикреплена к поясу Фроси, но будет проникать внутрь. Это происходит потому, что в данный момент Maya автоматически создала объект коллизии (Passive Collider), но не включила её, а только зафиксировала юбку на объекте. Чтобы включить коллизию, выделим тело персонажа и в Attribute Editor активизируем галку collide.

Работа над элементом одежды персонажа мультсериала «Джинглики» / Фото предоставлено Open Alliance Media
Работа над элементами одежды для персонажа мультсериала «Джинглики». Фото предоставлено Open Alliance Media

Для включения в коллизию дополнительных объектов (например, рук и головы), обозначим интересующий нас объект и выберем команду Create Passive Collider. 

Работа над элементом одежды персонажа мультсериала «Джинглики» / Фото предоставлено Open Alliance Media
Работа над элементами одежды для персонажа мультсериала «Джинглики». Фото предоставлено Open Alliance Media

Это создаст объект коллизии, и при выполнении данной команды галка collide установится автоматически.

Теперь нужно сделать так, чтобы исходная ткань юбки наследовала трансформации, которые будут возникать на прокси-объекте при симуляции. Для этого мы можем  объединить нашу высокополигональную юбку и низкополигональную прокси. Для этого выберем сначала высокополигональную юбку, затем низкополигональную, перейдем в меню animation и там нажмем команду Wrap.

Работа над элементом одежды персонажа мультсериала «Джинглики» / Фото предоставлено Open Alliance Media
Работа над элементами одежды для персонажа мультсериала «Джинглики». Фото предоставлено Open Alliance Media

Теперь можно скрыть прокси-геометрию, нажать play и увидеть, как исходная геометрия юбки опустится на Фросю.

Работа над элементом одежды персонажа мультсериала «Джинглики» / Фото предоставлено Open Alliance Media
Работа над элементами одежды для персонажа мультсериала «Джинглики». Фото предоставлено Open Alliance Media

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

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *