Практичне застосування 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->Standardprimitives-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 програмі доводиться промальовувати вдвічі більше волосся, при 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, для собаки. Дякую за інтерес до уроку, якщо у вас виникнуть якісь складності залишайте відгуки, постараюся на все відповісти!