Створення персонажа у Metahuman Avatar: робота з волоссям. Гайд і поради 3D-художниці

Усім привіт, я Олександра Коі, 3D Art Lead креативної студії Morphy Vision. У цій статті хочу поділитись досвідом того, як я долучилась до створення персонажа у Metahuman Avatar, який став практично членом нашої команди. А також розповім, яких драконів довелося приборкувати на шляху.

Чесно кажучи, це найсміливіша ідея, яку мені довелося реалізовувати у своїй роботі, і мій перший Metahuman Avatar.

Мене долучили з самого початку — разом з командою ми брейнштормили щодо концепту, опрацьовували характеристики, придумували різні цікаві фічі. Далі про все детально, цікаво буде дизайнерам і креативникам, можливо, знайдете для себе натхнення у цьому тексті.

Але для початку — невеликий глосарій 3D-художника

  • Pipeline (пайплайн) — це описання робочого процесу, схема виробництва чогось від початку і до фінального продукту.

Процеси

  • Моделінг — процес створення 3D-моделей;
  • Скульптинг — різновид 3D-моделювання об’єктів шляхом «виліплювання» їх з віртуального матеріалу, що нагадує глину;
  • Ретопологія — процес спрощування сітки моделі, її оптимізація;
  • Rigging (ригінг, риг) — процес підготовки 3D-моделі до анімації, створення «скелету» та його налаштування;
  • Рендеринг — це процес отримання зображення за 3D-моделлю з допомогою комп’ютерної програми, її візуалізація.

Програми / плагіни / інструменти

  • Maya — графічний редактор для моделювання тривимірних об’єктів, анімації, композитингу та візуалізації;
  • PureRef — застосунок для створення рефбордів, організації візуальних матеріалів;
  • ZBrush — програма для тривимірного моделювання, де основний напрямок це цифровий скульптинг;
  • Substance Painter (SP) — програма для текстурування тривимірних об’єктів;
  • Unreal Engine 5 (UE) — ігровий рушій, в цьому випадку використовувався для збірки та рендеру наших фінальних сцен;
  • XGen — плагін Maya для створення волосся або вовни;
  • Live Link Face — iOS-додаток для передачі даних анімації обличчя живого актора на персонажа в Unreal Engine;
  • MetaHuman Creator — інструмент від Epic Games для створення 3D-персонажів високої якості;
  • Quixel Bridge — програма, яка служить допоміжним інструментом для перегляду, імпорту та експорту різних матеріалів, у цьому випадку для експорту Metahuman у 3D-редактор;
  • Niagara — це інструмент для створення та налаштування візуальних ефектів (VFX) в Unreal Engine;
  • nHair — інструмент в Maya для створення волосся.

Рандомні поняття

  • NURBS-моделювання — це вид моделювання, в якому форми задаються кривими;
  • Полігональне моделювання — це вид моделювання поверхонь з використанням багатокутників (полігонів);
  • Curves (криві) — це примітиви, лінії, які описані математичними формулами;
  • Polygons (полігони) — багатокутники, з яких складається сітка 3D-моделей;
  • Lowpoly — низькополігональна, оптимізована модель, яка зазвичай має не щільну сітку, не містить високої деталізації;
  • Highpoly — високополігональна, деталізована модель, у більшості випадків потребує подальшої ретопології для використання у наступних процесах (створення текстур, ригінг, анімація);
  • Base color — це текстура кольору 3D-моделі;
  • Normal map (карта нормалей) — це текстура, яка «переносить» на lowpoly модель деталізацію highpoly, імітуючи високу деталізацію на оптимізованій моделі;
  • Blendshape (морфи, блендшейпи) — 3D-моделі ідентичної топології (однакова кількість вершин та їх нумерація), але з різною формою, тобто трансформовані;
  • Joint (джоінт) — «суглоби» в скелеті персонажа, які працюють, наче шарніри в ляльках.

Тепер, до розробки. Два шляхи на початку

Не буду одразу розкривати всі цілі, але з цим багажем ідей я пішла розробляти візуальну та функціональну частину. Як завжди, для створення рефбодру використовувала PureRef.

Рефборди — це дуже гнучкий матеріал, який змінюється по ходу проєкта, розростається, поділяється на багато окремих тем. І цей раз — не виключення: велика частина референсів змінювалась та доповнювалась в процесі

І ось з чого все починалось:

Коли команда зійшлась на тому, якою хоче бачити Seven (саме так назвали нашого персонажа), ми перейшли до обговорення пайплайну. Було два основні шляхи.

Перший — робити персонажа з нуля, відбудовуючи стандартний пайплайн з моделінгом, скульптингом, ретопологією, ригінгом тощо. Другий — це спробувати використати базову модель Metahuman від Unreal Engine і будувати процес роботи навколо її кастомізації. І цей шлях з Unreal Engine виявився доволі цікавим.

До цього я не працювала з Unreal Engine. Але доволі швидко зрозуміла, що Metahuman — це про хорошу базу для другорядних персонажів. А от для створення більш унікальних рис доведеться докласти зусиль.

Цей інструмент не дозволяє сильно змінювати стандартні риси лиця (на кшталт ельфійських вушок) або модифікувати тіло завдяки вбудованим інструментами. Тим не менш, можливість використовувати готовий риг, налаштування матеріалів шкіри від UE та записувати лицеві анімації за допомогою Live Link Face — це важлива перевага, яку все ще хотілось використати. Так почався шлях кастомізації.

Скульптинг більш унікальних рис обличчя та тіла я робила в ZBrush. Важливий нюанс — не змінювати сітку персонажа, не рухати очі та не чіпати краї геометрії на обличчі та тілі. Бо ця нова модель буде призначатись як blendshape на стандартне тіло Metahuman.

А зараз маленька порада на тему, як закинути нову голову в UE. В 3D-редакторі (в моєму випадку це Maya) ми визначаємо нову голову як blendshape на стандартну від Metahuman. Потім в Shape editor ставимо вплив цього блендшейпа на 1 і блокуємо (lock) його, щоб він автоматично завжди був увімкнений. Перевіряємо роботу лицевого ригу перед експортом, а потім закидаємо голову разом із її групою кісток у UE. Дублюємо матеріали зі стандартної голови — і вуаля!

Для зміни стандартних текстур я використовувала також Zbrush та Substance Painter. Спочатку виліплювала на highpoly необхідні деталі на шкірі, а потім у SP запікала цю деталізацію на lowpoly та робила текстури.

Важливо: необхідно кастомізувати всі текстури з папки SourceAssets, які ви завантажите разом із Metahuman через Quixel Bridge. Там використовуються декілька карт normal map, base color та інших, які вмикаються, коли ваш персонаж насуплюється або посміхається. Якщо замінити тільки основні текстури, то ваша деталізація буде пропадати при таких емоціях. Сподіваюсь, піде на користь.

Далі розпочався новий, ще більш цікавий та, напевно, найскладніший етап — створити волосся. Metahuman Creator має набір стандартних зачісок, які ви можете використовувати, однак нам потрібно було дещо більше. Щоб реалізувати задумане, мені довелося принести в жертву деяку кількість своїх нервових клітин (але все недарма).

До речі, при створенні зачіски для цифрового персонажа можуть виникати складнощі не тільки технічного, а й культурного та соціального характеру. Так ми зіткнулись з проблемою культурної апропріації, коли досліджували можливість використання дредів або bantu knots, які, до речі, були на перших концептах Seven. Пізніше зачіску було вирішено змінити.

Створюємо волосся для персонажа

Процес створення волосся виглядав приблизно так:

1) Після аналізу нової зачіски і розділення її на основні елементи, я створила базову форму та геометрію волосся у ZBrush;

Після імпорту цих форм у Maya, основна задача полягала в створенні кривих (curves) для подальшого їх використання у XGen. Деякі форми (наприклад гульки) спочатку переводились в NURBS. У інших випадках геометрію з базових форм я одразу конвертувала в криві.

Косички, як виявилось, простіше було зробити іншим шляхом, та про це згодом :)

2) Далі — XGen. На цьому етапі важливо правильно організувати свій проєкт та сцену. Створіть проєкт (папку) на своєму комп’ютері, шлях до якої не буде містити ніяких дивних знаків, виключно латинські літери та підкреслення (до речі, це правило стосується також усіх назв в ієрархії XGen).

У сцені в мене була голова Seven а також геометрія, яку я назвала «scalp» — це просто дублікат поверхні голови, саме тієї зони, з якої буде рости волосся. З інших зон виростити волосся не вийде, тож робіть цю геометрію трошки з запасом.

Отже, вибираємо «scalp» і створюємо на основі цієї геометрії нову колекцію волосся в XGen: Hair_collection.

Ця колекція буде включати різні descriptions (своєрідні групи волосся): гульки, косички, root hair (волосся, що прилягає до гульок та косичок), а також інше коротке волосся, яке знаходиться поза цима групами. Зокрема ви можете створювати окремі Collections для брів, повік та іншого.

3) Далі я конвертувала криві та NURBS у направляючі в XGen (для цього він має вбудовані утиліти Curves To Guides та Surface To Curves). На цьому етапі важливо стежити за напрямом кривих: вони мають починатись на голові, як і реальне волосся.

Далі я додавала нові гайди та змінювала наявні інструментами add\sculpt guides, доводила зачіску до плюс-мінус потрібного мені вигляду. Звісно, змінювала параметри гладкості (кількості підрозділів кривих) та щільності волосся. Також для розділення волосся використовувала параметр region mask — цей інструмент дозволяє програмі розпізнати, в якому напрямку треба нарощувати волосся.

4) Етап модифікаторів. Це основний інструмент в XGen, який дозволяє зробити волосся схожим на реальне, — наприклад, додати параметри clumping (злипання волосся в пасми) та noise (краплинка безладдя, притаманна натуральному волоссю). А також створення обламаних волосків, завитків та інших неідеальностей.

Тож у процесі підбору параметрів для кожного дескріпшну я приводила зачіску Seven у більш схожий на фінальний стан. Косички потребували втручання магії, бо робота із ними ніяк не просувалась.

5) Цією магією став nHair, який дозволяє створити косичку на базі однієї кривої. При цьому є можливість динамічно змінювати її положення та вид. Однак nHair не працює коректно, якщо в сцені є система XGen, тому я створила косички (стільки, скільки мені було потрібно) в окремій сцені і імпортувала їх до XGen у вигляді кривих. Додала модифікаторів на кшталт нойзу і отримала круті косички без реєстрації та смс.

6) Наступним кроком був імпорт зробленого волосся в UE. Це можна зробити, якщо конвертувати descriptions зі сцени у Interactive Groom, а потім експортувати в форматі .alembic через Interactive Groom Editor.

На цьому етапі я також розділила усе волосся на декілька .alembic-файлів: гульки, кожна косичка окремо, а також root hair, яке прилягає до косичок та гульок. Ці групи я зберегла для більш точного налаштування фізичних параметрів волосся, бо косички мали рухатись не так, як туго стягнуте волосся зверху голови.

Волосся з групами

7) Якщо правильно експортувати волосся, то при імпорті .alembic файлів до Unreal Engine він автоматично розпізнає їх, як groom (волосся). Після цього необхідно було створити прив’язку цього волосся до нової геометрії, до голови Seven. До речі, якщо ви створюєте кастомне волосся, не забудьте в налаштуваннях проекту замінити параметр Default Skin Cache Behavior на «Inclusive», інакше прив’язки не спрацюють, і волосся буде літати окремо від голови, або ж взагалі не відображатись

Матеріал я вирішила використовувати стандартний, який я налаштувала в Metahuman Creator. Він добре лягає навіть на кастомне волосся і при цьому залишається гнучкість в його налаштуваннях.

8) Для фізики волосся я вирішила використати Niagara. Я налаштувала характеристики окремих груп волосся та параметри їхної взаємодії з оточенням після того, як підключила систему плагіну до кожного закинутого .alembic-файлу. Так я отримала волосся, в якому тугі гульки тримаються у коренів, не сильно колихаючись від поворотів голови, а косички вільно рухаються разом із рухами Seven.

Звісно волосся можна було реалізувати також за допомогою кісток, але я побоювалась, що не зможу досягти бажаної реалістичності.

Дуже важко в таких проєктах стверджувати, що знайшлося остаточно правильне рішення і можна фіналізувати роботу. Іноді помічаю, що те, що спрацювало в одних випадках, в інших вимагає змін.

Звісно, було ще багато непростих моментів на кшталт додавання сторонніх об’єктів до тіла Metahuman. В нашому випадку це були кристали в голові, які ніяк не хотіли реагувати на емоції Seven та лишались на своїх місцях, коли лоб хмурився. UE наразі не надає якогось готового інструменту для реалізації таких елементів (з мого боку рішенням була прив’язка кожного з цих кристалів до найближчого до нього joint, хоча в такій складній системі кісток знайти потрібний joint — ще та розвага).

Створення Metahuman Avatar — це складний, але дуже цікавий шлях з пробами та помилками. До багатьох з виявлених рішень я приходила сама, іноді навіть випадково.

Але головне — що Seven продовжує ставати не менш реальною, ніж ми з вами, та вдосконалюватись з кожним кроком.

Вже невдовзі вона почне розповідати про метасвіти та взаємодіяти з іншими цифровими персонажами. Слідкуйте за розвитком подій в Instagram Morphy.Vision та на особистій LinkedIn-сторінці Seven. А з іншими кейсами та командою знайомтесь на сайті.

Підписуйтеся на Telegram-канал @gamedev_dou, щоб не пропустити найважливіші статті і новини

👍ПодобаєтьсяСподобалось8
До обраногоВ обраному4
LinkedIn


Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Підписатись на коментарі