JEKSON777, этот урок собственно в знак благодарности тебе, как человеку подсадившему всех на иглу Марфы! ) Надеюсь что многим, кому больше нравиться работать головой, а не руками, он поможет определиться с выбором софта.
С чего собственно начинается любой моделинг ? Рефы !!! Если у нас не стоит задача смоделить какой-то конкретный диван, то находим рефы в интернете или сразу отправляемся на сайты популярных производителей. Вот например некоторые из них Cassina , Poliform . Для примера в уроке остановим свой выбор на диване Bolton от Poliform.
На сайте производителя почти всегда можно найти размеры его продукции, а у уважающих себя фирм, как бонус для нас, размешены модели в 3d формате. Чем мы и не замедлим воспользоваться ! ) Скачиваем архив, распаковываем, и выбираем интересующую нас конфигурацию.Как видим моделька очень слабая, с ужасной сеткой, и совсем непригодна для дальнейшей обработки.
Также помним о правилах 3ddd, запрещающих использовать элементы чужих моделей для размещаемых в базе. Но нам никто не может запретить воспользоваться скачанным как размерным эталоном. Итак, создаем свою сетку:
1. основание, которое не будет симулироваться.
Не забываем сразу сделать мапинг и текстурим.
2. элементы которые будут симулироваться. Основное требование к сетке максимальная равномерность и разумная плотность, от которой будет зависеть качество результата и скорость симуляции. Главное тут правильно уловить этот баланс. Плотность делаю 8-9 мм. по длине ребра. Создаем первый элемент.
Наносим материал и делаем под него развертки.
Также на этом этапе уже надо позаботится о выделении вершин для будущих групп. Создать наборы выделения можно любым привычным для Вас способом. Я разбиваю выделения по цветам вершин. Для данного примера их могло быть и несколько, но чтобы не сильно грузить мозги создадим самую нужную - по линиям швов.
Групп много не бывает. Чем активнее Вы пользуете группы вершин при симуляции, тем точнее и интереснее будет результат. Скорость симуляции при их правильном применении можно увеличить в разы. Служат они для самых разнообразных целей: управление симуляцией и процессом образования формы, исключение из просчета, придания свойств отличных от остального полотна, с их помощью можно задавать поведение и взаимодействие полотна с другими объектами при анимации и т.д. и т.п.!
Нарезаем остальные элементы из сделанной сетки.
Набираем полный комплект деталей.
Для симуляции нам потребуется дополнительный объект для твердой коллизии, который ограничит движение полотна с низу. Без толщины, с нормалями направленными в сторону полотна, вот такого вида.
Еще одно небольшое лирическое... Cloth очень глубоко интегрирован в программу, в связи с этим это самый сильный и гибкий симулятор на сегодняшний день ( конечно после своих родителей партиклов). Думаю это мнение также полностью разделяют пользователи Майки. Он прекрасно понимает происходящее внизу и вверху стека, так еще и способен принимать эти изменения в себя. Стек можно сравнить с карточной колодой, которую можно тасовать и раскладывать как угодно Вам, но при этом все карты будут работать на вашего Джокера Cloth. Нужна всего лишь малость, стать шулером ! ))) И поверьте, когда это происходит, все невозможное становится сразу абсолютно реальным.Помимо своей прямой задачи симуляции ткани он становится помощником и в других случаях, но это уже тема для отдельного разговора.
Итак мы медленно и верно подошли к симуляции. Она будет состоять из трех этапов:
1. набор общей формы
2. уточнение формы с учетом особенностей таких как строчки, защипы, пуговицы и прочее
3. создание складок
Выделяем объекты участвующие в симуляции, накидываем клоуз и указываем какие объекты будут полотном, а какие объектами твердой коллизии.В параметрах я стараюсь оставлять все по дефолту меняя только необходимое.
Прежде чем нажать на кнопку симуляции нам необходимо задать некоторую рандомность в швах и сделать захват текущего состояния. Происходит это следующим образом:
- внизу стека выделяем нашу группу из вершин по линии швов
- выше Cloth добавляем Edit Poly и принимаем наше выделение
- для выделенного делаем Push со значением минус 2 мм.
- вносим рандомность модификатором Noise
- переносим сделанные изменения в клоуз (1)(2), при этом обязательно должно быть включено отображение вершины стека (3), после чего вершину стека можно либо удалить, если она больше не потребуется, либо отключить, если мы воспользуемся модификаторами вновь. Удаляем только Push.
- делаем захват текущего состояния (1) и указываем в разделе Keep Shape как полотно будет держать захваченную форму (2). Оставим Bend - углы между поликами 100%, а Stretch - длину ребер сделаем как у исходной формы 0%. Добавляем небольшое давление (3) Включаем самоколлизию полотна (4), отключаем отображение и использование швов (5) и гравитацию (6). Запускаем локальную симуляцию (7).
Когда общая форма немного округлилась останавливаем симуляцию (1) и отключаем использование захваченного состояния (2)
На подуровне Group (1) принимаем выделение с низа стека (2), создаем из него группу (3) и блокируем ее (4). В свойствах полотна поднимем давление до 12 (5)
Снова локальная симуляция (это уже второй этап) до удовлетворяющего нас результата. На этом этапе можно также скорректировать следы от взаимодействия с другими объектами.
Для дальнейшей работы нам необходимо сделать копию полученной формы и добавить ее в симуляцию как объект твердой коллизии:-добавляем Edit Poly в вершине стека (1) и детачим копии всех элементов в новый объект (2). После чего модификатор удаляем.
Для нового объекта Push со значением минус 2 мм., чтобы он оказался внутри, Relax по дефолту и подключаем к симуляции.
Для исходного объекта повторяем трюк с вершиной стека:
- включаем Edit Poly.
- включаем Noise немного корректируем параметры по вкусу.
- переносим сделанные изменения в клоуз.
- удаляем вершину стека.
Зададим формирование дополнительных складок уложив подходящую черно-белую карту бампа в слот текстурной карты (1) раздела Bend Map (2) свитка Selected Object (3) и увеличим силу bend-а до 1,0 .
В свойствах полотна: уменьшаем сопротивление изгибу (1), уменьшаем давление (2), чтобы полотно немного растянулось увеличиваем скейлинг (3). В настройках симулятора отключаем самоколлизию полотна (4), Включаем гравитацию (5). Запускаем последнюю симуляцию Simulate Local(6) или Simulate (7).
Ну вот собственно как-то так...
Сетка состоящая исключительно из квадров меня вполне устраивает. Так что никакой дополнительной триангуляции. И если планируется наполнение базы моделями мягкой мебели, то пусть это будут модели с хорошей сеткой !
Все что осталось - добавить пару декоративных подушек по тому же алгоритму, кинуть плед и загрузить модель в базу.
Желаю удачных экспериментов !
P.S. Разумеется это лишь самая вершинка айсберга под названием Cloth, очень многое осталось незатронутым.Писать о нем можно бесконечно, но тогда это был бы уже не урок, а целая книга.)
И немного бородатого юмора:
- Алло! Извините я туда попал ?
- Нет! Вас послать, куда надо !?