Практическое применение Hair and Fur, с использованием Vertex Paint
Иногда, приходиться или хочется сделать какое-нибудь пушистое создание или к примеру поверхность ткани в микроскопическом масштабе, траву, волосы и т.д. Для этого как нельзя лучше подойдет модификатор Hair and Fur (WSM) появившийся в 8 версии 3dsMax.
В этом уроке я попытаюсь объяснить один из способов применения модификатора
hair and fur (WSM) к объектам с не настроенными или не имеющих вовсе UWV координатами, лично для меня это остается одной из трудно-решаемых задач, поэтому я постарался обойти её с помощью Vertex Paint. Чтобы в итоге получить более-менее хорошую картинку, а не просто шарик покрытый мехом, мы начнем работу с нуля, а закончим небольшой сценкой, которую вы сможете увидеть в конце урока.
Начнем с самого примитивного, создайте плоскость и расположите её в начале координат, затем примените к ней модификатор noise (параметры на рисунке):
Теперь смоделируем цветочек, для этого перейдите в вид сверху (top) и сделайте следующее:
- Создайте круг (Create->Shapes->Circle) с радиусом около 10 и конвертируйте его в Editable spline (Правый клик по модели->Convert to->Editable spline).
- Выделите точку с номером 2 и удалите [Delete].
- С помощью Uniform Scale немного сожмите лепесток по оси x и поменяйте у него центр спустив к нижнему краю (Hierarchy->Affect Pivot Only).
- Скопируйте объект несколько раз, удерживая [Shift] и вращая.
- Выделите все объекты и примените к ним модификатор Extrude с параметрами по умолчанию.
- Примените модификатор Bend к каждому лепестку так, чтобы они немного согнулись к центру.
- Выделите все объекты и скопируйте их уменьшая размер: удерживая [Shift] уменьшите размер.
- В центр цветка поместите полусферу (Create->Standard primitives->Sphere hemisphere:0,5).
- Создайте цилиндр (Create->Standard primitives->Cylinder raius:0,2 Height segments:16 sides:6)
- Скопируйте несколько лепестков из бутона и распределите их по стеблю.
- Манипулируя настройками Bend, согните лепестки так, как вам нравится.
- Подставьте бутон к стеблю и наложите материал по ярче.
Итак земля готова, цветок тоже, остались мелкие детали и собственно собака.
Пора приняться за цепь и ошейник:
Цепь:
- Создайте torus (Create->Standard Primitives-> Torus) с параметрами как на изображении.
- Скопируйте его и поверните копию по оси Y на 90 градусов.
- Выделите оба torus и скопируйте его несколько раз, пока не достигните необходимой длины.
Ошейник:
- Создайте box (Create->Standard Primitives->Box) с параметрами (length:8,0 width:100,0 height:1,2 width segs:32), количество сегментов по высоте и длине оставьте 1,0.
- Создайте cone (Create->Standard Primitives->Cone) с параметрами как на изображении, и расположите на поверхности box в левом краю.
- Просто скопируйте несколько раз параллельно сдвигая вправо.
- Выделите все объекты и сгруппируйте (Group->Group), примените к группе модификатор Bend с параметрами: Bend Axis: X Angle:360.
Процесс моделирования пса очень сложно систематизировать, поэтому я продемонстрирую только кратко технологию его создания:
Думаю те кто знаком с ZBrush поймут что к чему, а тем кто не знаком, советую поискать в сети ZScript туториалы их очень много и они достаточно информативны в сочетании с небольшим размером.
Теперь необходимо подобрать свойства меха, для нашего пса.
Сохраните вашу сцену и жмите File->Reset
В новой сцене создайте Sphere (radius:30) и источник света Spot Light (Create->Lights->Standard lights->Target Spotlight Multiplier:2,0 Hotspot/Beam:36,8 Fallof/Field:56,7)
К сфере примените модификатор Hair and Fur (WSM)
С параметрами по умолчанию при рендере у вас должна получиться такая картинка:
В настройках Hair and Fur (WSM) нажмите на кнопку Tools->Style Hairs … там вы увидите довольно интересную утилиту предназначенную для редактирования длины, формы волос, даже есть внутренняя система просчета динамики и мини рендер, что для моделирования человеческих волос довольно удобно. Нам пока отсюда требуется лишь функция Comb Away from Camera:
Она смещает отростки в направлении от камеры, учитывая взаимодействие с другими волосами и геометрией входящих в Collision list (список взаимодействующих с волосами объектов).
Переставьте камеру с оси Y (по умолчанию) на ось Z и жмите Comb Away from Camera.
Теперь картинка отличается от предыдущей, мы сделали имитацию гравитации.
Вот теперь приступаем к настройке меха:
- Для начала загрузите шаблон Fuzzybrown.shp (Hair and Fur (WSM)->tool-> Presets-> Load)
- Увеличьте количество волос (Hair Count) до 20000, волосы распределяются по всей поверхности сферы и такого количества будет достаточно для поверхности сферы, ведь пока мы настраиваем только форму и цвет.
- Количество сегментов поставьте 8, этого хватит чтобы не потерять качество и не нагружать излишне систему.
Из рисунка видно что при числе сегментов 2 программе приходиться прорисовывать в 2 раза больше волос, при 8 в 8 раз.
- Вариацию длины волос (Random Scale) сделайте равной 80, это добавит неоднородности к меху.
- Толщину волос у корней поставьте 3, а на концах около 1.
- Настройки материала волос легче будет изобразить:
- Во вкладке Frizz ставьте такие параметры:
Frizz закручивает волосы у корней (Root) и на кончиках (Tip). Чем больше будет частота Frequency, тем меньше будут витки.
- Kink работает на подобие noise только мнет каждый волос в отдельности у корней и на кончиках.
Во вкладке Kink ставьте такие параметры:
- Теперь зайдите в Renderings->Effects…->Hair and Fur, выделите источник света и нажмите на кнопку Add hair properties
Этим самым мы передали источнику света информацию о том в каком месте необходимо затенять объект, тенью от волос. Тут же поставьте Shadow density:60, а то мех будет слишком темным. Теперь перейдите в настройки света, там должна появиться Hair Light Attr, там ставьте Fuzz: 6,0 он отвечает за степень размытия тени от волос.
- Поставьте Hair Count: 200.000 и поставьте на рендер. Думаю мы достигли желаемого результата поэтому сохраните в базу волос макса наши настройки (Tools->Presets->Save), а если нет то ещё поэкспериментируйте.
Вот мой рендер:
Пока никаких проблем у вас возникнуть не должно, откройте нашу сохраненную сцену, в ней уже должен быть готов наш песик импортированный из ZBrush, цепь, ошейник, цветок и почва.
Выделите почву и примените к ней модификатор Hair and Fur (WSM), я просто загрузил шаблон травы и немного подогнал под сцену, хотя вы уже без проблем должны справиться с этим вручную, вот на всякий случай необходимые свойства:
Hair count = 100000
Hair segments = 3
Hair passes = 3 (Кстати забыл упомянуть этот параметр, buffer render (движок просчета волос) увеличивает фактическое число волос, рисуя рядом с волосом столько волос сколько вы указываете в hair passes но рисует их с прозрачностью 100/hair passes, т.о визуально количество волос остается прежним.)
Density = 100,0
Scale = 6,0 (Размер я ставил таким маленьким потому что изначально начал моделить в маленьком масштабе, у вас этот параметр может быть другой, поэкспериментируйте)
Rand Scale = 100,0
Root thick = 1,0
Tip thick = 0,1
Tip color = болотный светло-зеленый
Root color = текстура травы из стандартной библиотеки текстур макса.
Hue variation = 40,0
Self shadow = 60,0
Fizz Root = 24,0
Fizz Tip = 335,0
Fizz X Freq = 16,0
Fizz Y Freq = 23,0
Fizz Z Freq = 15,0
Остальные параметры оставьте без изменения.
Для ускорения рендера, ставьте в Renderings->Effects…->Hair and Fur->Oversampling значение draft (самое низкое качество).
Поставьте на рендер и полюбуйтесь.
Как-то суховато смотрится сцена, без ярких красок, поэтому сейчас мы разбросаем по полю немного цветов.
Примените еще один модификатор Hair and Fur (WSM), только сейчас не загружая никаких шаблонов, нажмите на кнопку Pick Node во вкладке Tools и появившемся окне выберите цветок. (тем самым вы выбрали цветок в качестве волоса).
Так как цветов нам нужно не много а поверхность довольно большая Hair Count ставьте около 100, опять же надо подбирать их количество опытным путём, я упоминаю эти цифры лишь потому, что сам их использовал.
Вот несколько параметров, чтобы цветы не просто торчали а выглядели немного живыми:
Scale = 25,0
Rand Scale = 70,0
Root thick = 20,0
Tip thick = 5,0
Fizz Tip = 30,0
Fizz X Freq = 14,0
Fizz Y Freq = 14,0
Fizz Z Freq = 14,0
Вот собственно и подошли мы к основной теме урока, к покрытию шерстью пса, что же хватит болтовни перехожу сразу к делу:
Первое что надо будет сделать - это создать скелет для нашей твари, я использовал максовский biped, хотя в принципе проще было бы создать скелет вручную.
Включите опцию Structure mode
После того как вы создали biped, поставьте его в позу приближённую к позе нашего четвероногого виртуального друга, как показано на рисунке в верхней части.
Дальше с помощью инструмента uniform scale настройте длину конечностей шеи и спины.
На заключительном шаге, вставьте получившийся biped в модель.
Сейчас мы можем применить модификатор physique, который привязывает тело вашего животного к костям, нажмите сначала Attach to Node, а потом нажмите [h] и в появившемся списке выберите “bip01”.
Пока не спешите менять ему позу, это может создать кучу проблем в дальнейшем.
Отключите structure mode.
Применяйте модификатор Vertex Paint к вашей твари, настройте размер кисти так чтобы вам было удобно рисовать. После этого можете приступать к рисованию, СТОП! Чуть не забыл объяснить самое главное, что мы собственно будем рисовать!
Продемонстрирую это на рисунке:
На изображении видно каким образом генерируется длина и плотность волос, т.е. в темных местах длина и плотность волос меньше чем в светлой, получается что при абсолютно черном цвете волос вообще не будет. Так же и вы должны нарисовать карту длины волос, для этого нужно указать номер канала-карты в свойствах Vertex Paint Map Channel = 4.
Вы должны привести вашу модель к такому виду:
Сначала рисуйте примерно в тех местах где волосы по меньше или их вообще нет, причем можно это сделать небрежно:
А потом уже использовать кисть разжижения, для плавных переходов:
И в конце еще раз обвести чёрным цветом в глазах, во рту и на нижней части лап.
Откройте Tool->Channel info и в последней строчке с номером :4 щелкните правой кнопкой->name и переименуйте его, ну допустим в “fur”.
Когда все сделайте, переименуйте модификатор в “Scale” или “Длина”, а после еще раз примените Vertex Paint только теперь укажите Map Channel = 5 и нарисуйте карту плотности, вообще где волосы короткие правильнее рисовать светлее, т.к. при расчете динамики длинные волосы закроют все пробелы, а короткие этого не смогут сделать, поэтому сначала залейте все черным (поменяв значение opacity на 40), а потом покрасить сплошным белым морду, и хвост. И не забудьте про капельку, которая поможет вам сгладить границы вашего творчества.
Теперь снова откройте Channel info и :5 канал переименуйте в что-то вроде “density”.
Откройте map editor [m] и щелкните по любому не используемому материалу, там ну допусти в diffuse примените карту Vertex Color, затем перетащите кнопку [M] рядом с цветом diffuse в тот материал, в котором вы работайте, после этого вместо сферы в material editor-е появиться разноцветная плоскость:
Назовите её ScaleMap, скопируйте её(просто перетащив в любое другое свободное окошко mat. ed.) и назовите DensityMap.
Снова перейдите на карту scale, в ней номер канала (Map Channel) укажите 4 или выберите “fur” в выпадающем списке, то же самое сделайте с другой Vertex Color картой только вместо Map Channel ставьте 5.
Таким образом можно использовать сколько угодно канальных карт, причем редактировать их не составит труда, просто переходите в Vertex Paint указываете номер канала и рисуете!
Вроде все с рисованием покончено, теперь осталось лишь загрузить шаблон меха для собаки подогнать его под вашу сцену. Для этого примените к собаке Hair and Fur (WSM) загрузите шаблон, потом щелкните на квадратик справа от Scale, в появившемся окне слева будет панель Browse From, выберите в ней Material editor, а там выберите только что созданную карту ScaleMap:
Тоже самое сделайте для Density, только укажите вместо ScaleMap, DensityMap.
Включите draft качество и отрендерьте, проверяйте, меняйте длину или толщину волос, а потом снова рендерить, и так пока не добьемся хорошего результата.
После того как собака приняла более-менее похожий вид, настройте положение скелета так как вам угодно и включайте просчет динамики (это в свойствах Hair and Fur (WSM) модификатора, а точнее панель “Dynamics”) вот с такими параметрами:
Думаю вам не составит труда подогнать ошейник и цепочку в то же положение что получилось у меня на финальной картинке:
Здесь я ставил 400.000 волос для собачки и 100.000 для травы, думаю если бы ещё правильнее нарисовать карту плотности то хватило бы и 200.000, для собаки.
Спасибо за интерес к уроку, если у вас возникнут какие-либо сложности оставляйте отзывы, постараюсь на все ответить!
Скачать модель пса можно здесь
Всем удачи!