Render.ru

Создание штор при помощи nCloth

DemX86

Активный участник
Рейтинг
18
#1
По просьбе Новенькой привожу адаптацию урока по созданию штор (вариант 2).

Итак, поехали:
1. Создаем полотно штор, которое мы в дальнейшем будем сворачивать. Я создал poly plane размером 2х2.5 метра, разрешением 50х50. Понятно, что чем больше полигонов в объекте, чем точнее будет отрабатываться симуляция, но и работать это будет медленнее. Стоит иметь в виду что после того, как мы сделаем из этой плоскости nCloth, у нас еще будет возможность управлять детализацией.




2. Далее создаем верхнюю планку, шнурок и пол. Все это — простые poly cubes и poly plane в роли пола. Про помощи нехитрой анимации данных объектов мы будем придавать форму нашим шторам — планку и шнурок будем масштабировать, поэтому их pivot нужно перенести на их края.




3. Теперь проанимируем эти объекты.
Верхнюю плашку мы будем масштабировать, чтобы собрать шторы к краю.
Среднюю — тоже масштабировать (еще можно повращать), чтобы создать обвязку шнурком.
Пол — поднимать вверх для создания складок внизу штор (это по желанию).
Я добавил ключи анимации всех трех объектов в 200м кадре, чтобы добиться плавности работы симуляции.




4. Создаем из полотна шторы nCloth объект. Выделяем его и nMesh > Create nCloth. Так как сцена была создана с units=cm, то тут же для созданного солвера nucleus1 меняем space scale на 0.01 (почему так — ищем в хелпе описание ноды nucleus1). А на саму штору накидываем пресет; я выбрал silk (конечно же, вам ничего не будет стоить прочитать про параметры динамики nCloth и настроить все вручную как надо). Тут же можно настроить толщину шторы (параметр Thickness в разделе Collisions) на что-нибудь поменьше, например, 0.1 вместо 0.8 по умолчанию. Это сантиметры.




5. Теперь нам необходимо соединить шторы с верхней планкой и шнурком, то есть надо создать constraint.
Для этого выделяем верхний ряд вершин у полотна шторы и сам объект планки, далее nConstrainst > Point to Surface. Как нетрудно догадаться из названия пункта меню, только что мы соединили верхние точки к плоскости объекта планки.




6. То же самое и со шнурком. При помощи дрожащей руки (это опционально) и Lasso Tool выделяем вершины, расположенные вдоль куба, изображающего из себя шнурок. Ультра-мега точность в выделении здесь не особо важна. Далее дополнительно выделяем куб шнурка и снова nConstrainst > Point to Surface.




7. Осталось добавить в нашу динамику пол, выбрав его и сделав nMesh > Create Passive Collider. Как вариант, можно было сделать подборку штор снизу по полу, анимируя параметр Plane Origin в атрибутах солвера nucleus1, не забыв при этом включить Use Plane — это собственно невидимый пол, встроенный в солвер.

8. Теперь в Time Slider ставим кадров побольше (например, 500), убеждаемся, что режим проигрывания выбран play every frame (для корректной отработки динамики) и запустить play. И вот что у нас получилось:



Что-то похожее на собранную штору. Однако, как мы видимо, у нас случилось много проникновений материала шторы сквозь саму себя (это черные области на вставке справа снизу, там отключен Two Sided Lighting).

9. Качество self collisions регулируется параметром Max Self Collide Iteration у шторы в разделе Quality Settings. Увеличив его до с 4 до 12, получим симуляцию поаккуратнее:




10. Глобально качество симуляции управляется из раздела Solver Attributes солвера nucleus1 — это параметры Substeps и Max Collision Iteration. Как несложно узнать из F1, Substeps — это количество дополнительных шагов (вычислений), которые будут производиться за один кадр симуляции. А Max Collision Iterations — максимальное количество вычислений коллизий (и внутренних и межобъектных) на каждый шаг.
Повысив значения этих параметров до 6 и 8 (3 и 4 было по умолчанию) соответственно, мы вообще избавимся от взаимопроникновений шторы:




11. Когда мы останемся довольны формой получившихся штор, нам останется сделать duplicate шторы для того, чтобы получить конечную геометрию, которую можно дополнительно сгладить.
На картинке слева направо: полученная геометрия > сглаженная при помощи Smooth Mehs Preview сетка > конечный вид шторы.




12. Остается только назначить материал (как?) и отрендерить.
Я же здесь отрендерил попроще:

 

roling777

Пользователь сайта
Рейтинг
2
#3
Скажите пожалуйста модуль Cloth встроен в Maya 2011? Или же его нужно устанавливать отдельно?, если да то где его скачать? спасибо.
 

DemX86

Активный участник
Рейтинг
18
#5
Скажите пожалуйста модуль Cloth встроен в Maya 2011? Или же его нужно устанавливать отдельно?, если да то где его скачать? спасибо.
nCloth встроен в Maya, начиная с версии 8.5. Если же имеется в виду Cloth, который Classic, то его уже вырезали за ненадобностью пару версий назад.
 

Новенькая

Активный участник
Рейтинг
5
#6
Отличная ветка для обсуждения ткани!!! Еще интересует кто как делает одеяла со складками?
 

Владислав Жихарев

Активный участник
Рейтинг
15
#9
Как при помощи Paint nCloth Attributes Tool, выделенное мною место на nCloth, сделать недвижимым? Вот например, кофта на персонаже: надо чтобы на туловище кофта не двигалась, а её рукава были динамичны. Какой атрибут для этого требуется? Просто в списке их до фига, а методом тыка ничего не работает.
 

DemX86

Активный участник
Рейтинг
18
#10
Как при помощи Paint nCloth Attributes Tool
Вы имеете в виду nMesh > Paint Vertex/Texture Propeties > ... ?
Если да, то можно попробовать красить свойство Input Attract, например, чтобы модель тела кофты выступала исходной формой (то есть подвергалась действию Input Mesh Attract, это свойство в атрибутах nClothShape), а рукава были свободными, то есть в динамике.


Вот например, кофта на персонаже: надо чтобы на туловище кофта не двигалась, а её рукава были динамичны.
Надо, чтобы прямо вот на туловище кофта вообще не двигалась? Она обтягивающая в туловище что ли? По-моему, если делать всю модель кофы динамичной, то на теле она и сама по себе не особо будет двигаться.

Так или иначе, если вам нужно, чтобы прямо вот не двигалась кофта в туловище, то есть ариант вообще не делать туловище одежды в nCloth, а сделать динамичными только рукава, прицепив их в плечах при помощи nConstraints.
 

Dark™

Модератор форума
Команда форума
Рейтинг
431
#11
DemX86, все круто, а чего не в отдельную статью оформить?
 

DemX86

Активный участник
Рейтинг
18
#12
DemX86, все круто, а чего не в отдельную статью оформить?
Спасибо :)
Отдельная статья — это про шторы или кофту с рукавами? Так или иначе, ни первое, полгода назад написанное, ни уж тем более второе, как-то не выглядит достойным именоваться статьей.
 
#13
Большое человеческое спасибо за конструктивное пособие по созданию такой лепоты! Да, поддерживаю это достойно оформления в отдельную статью!)))
 

DemX86

Активный участник
Рейтинг
18
#14
Надо же, приятно, что что-то сделанное полтора года назад кому-то пригодилось и сейчас.
Valeroosh, а тебе спасибо за то, что не ленишься пользоваться поиском :)
 
Сверху