Використання технології вертексної анімації VAT для створення комплексних візуальних ефектів
Вітаю, мене звати Руслан Черевичний. Наразі я обіймаю посаду Head of Tech Art Department в компанії Pingle Studio. У своєму блозі я прагну трохи розкрити поняття вертексної анімації, а також навести декілька реальних кейсів, реалізація яких була б неможливою без VAT. Але спочатку хочу подякувати нашим VFX-художникам Олександру Горюку та Софії Турко, які, власне, і брали участь в реалізації згаданих у статті ефектів. Нижче в тексті вони також дадуть свої коментарі.
Vertex Animation Texture (VAT) технологія полягає в збереженні анімації в текстурах для їх подальшого використання в шейдерах. Замість того щоб використовувати важкі файли анімації зі скелетним рігом чи покадровий кеш з анімацію, використовується статична геометрія і набір текстур, які містять в собі інформацію про зміну позиції та ротацію кожного вертекса цієї геометрії. Передана за допомогою текстур і відтворена шейдером анімація є досить оптимізованою, тому що для CPU така геометрія сприймається як повністю статична, отже, не навантажує процесор.
В роботі над спецефектами VAT є дуже корисним інструментом, тому що, окрім оптимізації, VAT дає можливість передавати досить комплексні анімації. Наприклад, анімація м’яких тіл, такі як тканини або симуляція рідини. Їх дуже складно реалізувати за допомогою скелетного рігу, а у випадку з рідинами практично неможливо, адже геометрія рідини в кожному кадрі суттєво відрізняється від попередньої, а кількість полігонів та вертексів постійно різна. Отже, якщо стоїть задача реалізувати комплексний ефект з реалістичною рідиною або реалістичні руйнування геометрії, то вертексна анімацію стає в пригоді.
Одним з проєктів, де була використана ця технологія, була гра Gord. В рамках цього проєкту нашою задачею було створення набору бойових (і не тільки) ефектів для шести персонажів, кожен з яких являв собою духа певної стихії: повітря, землі, води та вогню. Це була дуже цікава робота, що принесла з собою чимало викликів технічного і креативного плану.
Наприклад, у грі є персонаж Foehn, який керує льодяним вітром. Ефект смерті цього персонажу став одним з тих, для реалізації якого знадобилась VAT. Ось в чому полягала суть ефекту: персонаж підлітає догори, його тіло починає покриватися льодом, після чого він падає на землю і від удару тіло розлітається на сотні уламків.
Софія Турко, VFX Artist
«Першим моїм викликом став персонаж Foehn. Це старий, трошки пришиблений дідуган, який керує льодяним вітром. Для нього ми створювали торнадо, вітрові та льодові атаки, які заморожують супротивників і розбивають їх на маленькі частинки. Далі ми продовжували працювати не лише над персонажами, але і над сценою, додаючи бурульки (ці бурульки будуть мені ще снитися довго), морозний іній та пориви вітру для лігва Фоена».
Олександр Горюк, VFX Project Lead
«Досить цікавим та доволі непростим викликом стала реалізація ефекту жертвоприношення (так, це темне, жорстоке фентезі, тут є і таке). За задумом художників, Foehn морозним подихом заморожує свою жертву, в результаті чого та тріскається і розвалюється на уламки, котрі він, всмоктуючи, поглинає в себе. Основна складність була технічного характеру, оскільки жертвою цієї атаки міг бути будь-який персонаж гри: воїн, рибак, чоловік, жінка і навіть дитина. Тож потрібно було реалізувати цей ефект процедурно: так, щоб він працював з будь-якою геометрією.
Реалізувати цю задачу вдалося, поєднуючи декілька різних технік. Для ефекту замороження та тріщин була розроблена шейдерна функція, вона легко інтегрувалася в матеріал персонажа, і коректно працювала з будь-якими формами тіл. Для створення заморожених частин тіла одна з моделей персонажа була розбита на різного розміру уламки, бо вони були заморожені, до того ж в динаміці вони підходили під всіх персонажів. Також застосували різноманітні партіклові ефекти, сніг, пориви вітру — все це в фінальному вигляді формувало цілісний ефект»
Болотний монстр Mimic був іншим персонажем, для реалізації ефектів якого було неможливо обійтись без VAT. За задумом, Mimic влаштовує засідки на локації, імітуючи різноманітні ігрові ресурси. Він може несподівано атакувати персонажів гравця, який нічого не підозрював і планував просто позбирати ресурси своїми селянами. Отже, потрібно було вигадати та реалізувати ефект морфінгу з будь-якого ресурсу (залізна руда, вугілля, пшениця тощо) в бойову форму Міміка.
У клієнта на той момент не було чітких референсів. Натомість вони попросили нас щось вигадати і запропонувати. Оскільки тіло монстра у своїй основі — болото і глина, для реалізації морфінгу було прийнято рішення замаскувати його появу через сплески саме глини та слизу. Морфінг відбувається в декілька етапів. Спочатку відбувається сплеск, під час якого в місці, де був ресурс, він зникає. Натомість залишається жижа, що розтікається навколо. Далі ця жижа, як рідкий Термінатор, збирається до купи і формує тіло Міміка. Власне саме цей сплеск, ця рідина були реалізовані за допомогою вертекcної анімації.
Софія Турко, VFX Artist
«Другим був болотяний монстр: багато багнюки, частинок трави, каменів і грибів, які повільно стікають з його тіла — бррр, бридко, як і має бути :) Блювання грязюкою, слизом та отрутою — все це вміло реалізував Олександр, моїм вкладом стали ефекти ударів по монстру, після яких від нього відлітали частинки його ж тіла (болото, слиз, камені, гриби, травинки тощо)»
В грі були й інші, менш комплексні ефекти, реалізовані з використанням VAT: бризки крові, слизу тощо.
Наступний монстр — Morkul
Софія Турко, VFX Artist
«Morkul — кремезна стара рибина, яка вистрибує з води та повністю заковтує людей. Реалізація води та утворення випарів на тілі Моркула — це ще один виклик, що згодом перетворився на мій цінний досвід роботи з водою»
Олександр Горюк, VFX Project Lead
"В технічному плані найскладнішим кейсом з цим монстром був ефект розповсюдження чуми. За описом, гігантська рибина виринає з води, там починає відригувати щось типу кислоти, вона шириться територією та знищує все живе, на деякий період територія стає не придатною до життя. Для реалізації був розроблений процедурний блупринтовий ассет, котрий можна як завгодно розміщувати на локації, змінювати радіус зони ураження тощо. І тоді все, що потрапляє в цей радіус, покривається шаром кислоти: ландшафт, дерева, рослинність, будь-які інші об’єкти — інформуючи гравця, що ця зона є досить небезпечна.
Ще приклад, Aitwar — гігантський Птах Фенікс. В бойовому стані його тіло та пір’я вкриваються вогнем, під час атаки він, наче дракон, дихає полум’ям та пускає фаєрболи. Вогняні ефекти візуально вийшли досить потужними, а клієнт був задоволений результатом.
Загалом Gord залишив після себе хороший післясмак і дав нашій команді гору безцінного досвіду. Чималим об’ємом робіт була оптимізація всіх ефектів, тож, підводячи підсумок, можна сказати, що VAT — це дуже гнучкий інструмент для створення комплексних ефектів, що дозволяє втілювати у життя складні задуми авторів з невеликим, у порівнянні альтернативними технологіями, навантаженням на перформанс.
1 коментар
Додати коментар Підписатись на коментаріВідписатись від коментарів