Симуляция ткани

30.09.2008 tagged as

Ну что ж, вот и готовы все движения 3-х мерного персонажа, но все-таки опять чего-то не хватает… Не хватает легкого летнего ветерка, развевающего занавески нашей телеги. А одежда Героя уж как-то слишком повторяет все его движения, создавая ложное ощущение “второй кожи”. Фонарик на телеге скорее приварен к ней намертво, а не подвешен…
Пусть это и мультяшный, не настоящий мир, но все-таки это копия нашей реальности, где, как известно, никто законы физики не отменял. Итак, жизнь в персонажа мы вдохнули, теперь осталось вздохнуть жизнь в мир, в котором живет наш Герой. Следующий этап анимации – добавление вторичных движений.
Начнем, пожалуй, с самого простого – фонарика, подвешенного впереди телеги.

Если вдуматься, то проблема сводится к тому, что фонарик прикреплен к телеге в одной точке. На каждое движение повозки, фонарь будет тоже дергаться, стараясь при этом вернуться в свое начальное положение. Чтобы достичь этого эффекта, достаточно использовать hair system («систему волос», как это ни странно звучит). Но почему бы и нет? Ведь в принципе, схема работы с волосом такая же: мы можем прикрепить его куда нам надо, мы можем регулировать его жесткость, можем привязать к нему и гравитацию, симулировав при этом наличие массы у объекта. Настроив как нужно систему волос, достаточно заставить ее управлять костями, к которым привязан наш фонарик. Вуаля! Без лишних установок ключей и т.п. уже совсем другая картина: фонарик болтается на тележке, а аниматор, сделав свое дело, спокойно курит на балконе 🙂
Теперь, настала очередь для куда более сложной задачи – симуляции ткани. Это и одежда героев, и ткань на телеге, и занавески, и коврик, и всякие причиндалы, подвешенные то там, то сям. Трудность сводится к тому, что все это нужно заставить адекватно вести себя, взаимодействовать друг с другом, при этом, не допуская «проваливаний» объектов друг в друга, т.е. нужно учитывать трение между ними.

При этом наша мультяшная ткань должна вести себя как настоящая: образовывать складочки, реагировать на ветер, растягиваться и сжиматься, и при этом необходимо учитывать возможности компьютеров (Рендер – дело нешуточное, может занять ооочень много времени). Поэтому почти всегда работа сводится к “дипломатическим усилиям” в поисках компромисса между скоростью и качеством симуляции.
Сначала указывается какой объект есть “ткань” а какой – нет. Затем на этой ткани с помощью кисти прорисовываются участки, которые будут больше или меньше деформироваться; устанавливается, с какими силами (ветром, гравитацией и т.д.) они будут реагировать, и как это будет происходить. На этот пункт тратится, пожалуй, 90% работы, т.к. нужно указать силу тяжести, степень влияния ветра, где надо, степени гибкости ткани, ведь у одной рубашки их может быть несколько.

Все это делается для ускорения просчета: зачем, например, в местах, где почти всегда ткань натянута или не видна наблюдателю, считать динамику, если ее можно просто отключить, и при этом визуально не терять в качестве? 😉
Часто применяются различные виды привязок или сonstraint-ов: это своего рода ограничитель, булавка, которой мы можем прикрепить нашу ткань к какой-либо поверхности.
После многих часов мучений с настройками получаем результат, который удовлетворяет всех. Но даже на этом этапе не всегда удается избежать изъянов. Приходится исправлять их вручную, используя инструментарий 3D пакета. И вот уже после этого действительно УРА! Все готово, ждем от аниматора новой сцены.

Апдейт:

Цикл короткометражных мультфильмов

Dji.Death Fails

SIMPALS 1999 - 2019