Создаем плащ в Maya

Гайд по симуляции ткани для новичков

Если вы уже знакомы с 3D анимацией, то знаете, что ткань крайне редко анимируют вручную: очень долго, очень сложно, а результат далек от реализма. Вместо этого создается симуляция — и если у вас, как и у меня, уже чешутся руки проверить возможности nCloth в деле, то давайте начнем.

Приобщаться к тайным знаниям я буду вместе с Роки — персонажем AnimationSchool. Его мощная фигура явно нуждается в супергеройском плаще, так что долго думать над объектом для экспериментов не придется.

Для начала нужно сделать сам плащ. Создаем plane и увеличиваем количество полигонов, чтобы деформация ткани была максимально естественной:

Не буду углубляться в сложные дизайнерские решения и просто сделаю плащ более узким в месте крепления к телу. Для этого нужно перейти в режим редактирования компонентов (F8), выделить крайний ряд точек и активировать мягкое выделение с помощью клавиши B. Чтобы отрегулировать радиус выделения, достаточно зажать B и перемещать мышку влево-вправо, зажав при этом колесико. Я захватываю весь плащ, после чего остается только придать ему нужную форму с помощью скейла.

Теперь самое интересное. Выделяем plane, заходим в FX, выбираем nCloth — Create nCloth, и… ткань готова. Просто, не так ли?

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

Для начала можно зайти в Attribute Editor, выбрать nClothShape и полюбоваться на внушительное количество ползунков и настроек, отвечающих за толщину, вес, летучесть свежеиспеченного плаща, его склонность к деформации и растягиванию. Это уже продвинутый уровень, потому здесь я трогать ничего не буду. К счастью для новичков, в Maya есть набор заготовок для тканей разного типа. Я выбираю шелк — непрактично, зато эффектно — и жму Presets — Silk — Replace.

Визуально никакой разницы: плащ все еще падает ровно вниз, причем весь. А ведь узкий край у нас по идее крепится к персонажу и должен оставаться на месте. Исправляем: выделяем точки, которые должны быть неподвижными, и выбираем nConstraint — Transform Constraint.

Внимание — выделенные точки закрепились в пространстве и никак не зависят от Роки. Связь с персонажем рассмотрим чуть позже. А сейчас запускаем анимацию — и вуаля, шелковый плащ изящно опускается на спину персонажа. Круто, но мне бы хотелось, чтобы ткань развевалась на ветру.

Для этого нужно снова зайти в Attribute Editor и выбрать ноду nucleus. Именно здесь можно настроить силу и направление ветра. Направление определяется по осям (X,Y,Z) и по умолчанию ветер движется по оси X слева направо (1,0,0). Меня интересует движение по Z справа налево, а потому я выставляю (0,0,-1). Возможно, звучит не слишком понятно, а потому легче всего ориентироваться в этот системе методом перебора.

Готово! Осталось только добавить текстуру для плаща и выставить свет в сцене. Гайд по визуализации вы найдете здесь, а текстуру я добавлю через Hypershade. Выбираю 2D Textures — File и подгружаю заранее скачанную картинку. Можно было поискать что-нибудь посимпатичнее, но для первого раза сойдет. Выбираю полученную текстуру в окне Textures, зажимаю колесико мыши и перетаскиваю ее на плащ.

Осталось только записать плейбласт. Роки выглядит вполне довольным обновкой, так что первая часть знакомства с nCloth успешно завершена.


Если вам интересно, как связать ткань с персонажем в движении, то двигаемся дальше 😉

Теперь моя подопытная — шагающая Алиса. Начало работы точно такое же: создаем plane, редактируем форму и применяем nCloth. Выбираем те точки плаща, которые должны крепиться к плечам, зажимаем shift и выделяем геометрию персонажа. Теперь констрейним: nConstraint — Point to Surface.

Отлично, плащ послушно тянется за идущим персонажем. Почти победа, только вот ткань, падая, проникает в Алису. Чтобы это исправить, выделяем геометрию персонажа и выбираем nCloth — Create Passive Collider.

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

Если вы все настроили, а плащ ведет себя нелогично — например, летит по воздуху, не желая опускаться — есть смысл проверить показатель Space Scale ноды nucleus. По умолчанию там стоит единица — это верно, если ваша сцена измеряется в метрах. Если в настройках сцены выставлены сантиметры, то и Space Scale нужно уменьшить до 0,01. Иначе ткань длиной в метр будет обрабатываться так, словно это стометровое полотно.

Ну и, наконец, если вы не удержались и подергали ползунки, меняя настройки ткани, то есть смысл закэшировать изменения, иначе вы можете не увидеть результатов своего творчества. Это также поможет, если анимация ткани не желает проигрываться в реальном времени. Делается это тремя щелчками: nCache — Create New Cache — nObject.

Остается только записать плейбласт и насладиться результатом.

Накидки, плащи и повязки добавят вашим персонажам уникальности, но качество итоговой работы все равно будет зависеть от качества анимации. На курсе 3D анимации вы получите крепкую базу и научитесь не просто оживлять трехмерных героев, но и передавать их характер через движения. Мы обучаем с нуля и до стажировки на студиях!

 

Автор текста: Светлана Ключко




Обсудите статью в наших социальных сетях

ВКонтакте   Instagram   Discord