Як створювали ефекти для S.T.A.L.K.E.R. 2. Інтервʼю з Lead VFX Artist Антоном Пасічником для GameDev DOU

Lead VFX Artist Антон Пасічник разом з командою художників працював над ефектами аномалій та артефактів в S.T.A.L.K.E.R. 2. А також формував правила погоди, додавав великодки та заселяв Зону фауною. В інтервʼю він детально розповів про створення візуальних ефектів, важливість їхньої синергії з геймплеєм, а також — як відрізнити хорошого VFX Artist від професіонала.

«Зробив я той пеньочок — мене взяли, й так я опинився у геймдеві». Про початок вивчення 3D і вхід в індустрію

З дитинства, як зазвичай, хлопці грають в ігри, у деяких виникає бажання їх створювати, та я пішов трішки далі в цьому плані — я захопився артовою частиною розробки. Основним поштовхом став перший Max Payne, де можна було ставити моди і через впровадження та редагування цих файлів змінювати саму гру. Це тоді мені дуже сподобалось. Водночас я розумів, що з математикою та програмуванням мені складно, але я знаю Photoshop і трохи вмію малювати, тож почав глибше вивчати цей напрямок.

Якщо пам’ятаєте, колись був, хоч і руснявий, журнал «Ігроманія» і там, на DVD дисках, були перші уроки по 3ds Max. Попервах, коли я почав вивчати 3D, то не розумів і закидав ці заняття. Та потроху, все ж повертався і з кожним разом все більше і більше просувався в цьому. І досить швидко зрозумів, що точно хочу займатися артовою частиною ігрової розробки. Тож почав далі сам практикуватись: моделити та рендерити усілякі машинки, літаки тощо.

На першій своїй роботі, що не мала стосунку до геймдеву, я мав вільний час і вечорами продовжував вивчати 3ds Max з усіма його тонкощами. Згодом трапилась на очі вакансія в ENIXAN на позицію 3D дженераліста. Туди потрібно було зробити тестове — пеньочок. Концепт був досить простим, але його потрібно було зробити гарненьким, стилізованим, щоб він був ніби з дитячої казки. Зробив я той пеньочок — мене взяли, й так я опинився у геймдеві.


«Коли в ENIXAN далі вже рости було нікуди, я подався до Crytek на VFX Artist і фактично знов почав з джуніор позиції». Про будні 3D дженераліста та світч у VFX

Я швидко зрозумів, що мені не дуже цікаво робити усілякі стилізовані штуки, тож я тоді одразу попросився робити щось реалістичне. Мене кинули, скажімо так, на амбразуру, адже якраз тоді вони працювали над новою грою, і потрібно було обкатати нові технології: CAT (Character Animated Toolkit) — система для анімації, ригінгу тощо у 3ds Max. Вона трішки процедурна і якщо її знати, то вона дуже спрощувала і пришвидшувала роботу.

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

Коли ти 3D дженераліст — ти маєш знати все: від моделінгу high poly/low poly, текстурінгу, UV мапінгу, композитингу, освітлення до ефектів та симуляцій. Тобто, щоб стати VFX артістом, ти також маєш знати всього потрошку, щоб виконувати свої задачі швидко й на рівні, що теж важливо.

В ENIXAN ми працювали з Флешем, зі спрайт картинками, й усі наші рендери були дуже обмежені в розмірах та кадрах. Нам постійно доводилось вдаватися до різних хитрощів, щоб зекономити на кадрах. До прикладу: idle анімація у нас складалась з кількох кадрів вперед-назад (пін-понг). Основною задачею була мінімізація кількості кадрів та розмір резолюшену. Оскільки це був не real time, то все запікалось і на виході ми отримували відрендерену картинку з усіма анімаціями.

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

Коли були задачі і можливості спробувати щось нове — я користувався цим. Таким чином я зрозумів, що найбільше мені подобається робити, а саме — ефекти, тож почав фокусуватись саме на цьому. Коли в ENIXAN я вже досяг тієї планки, що далі вже рости було нікуди, я подався до Crytek на VFX Artist і фактично знов почав з junior позиції.


«Crytek для мене став школою бойового хрещення в плані real-time VFX art». Про зміну парадигми, хороший тон для VFX на мультиплеєрах та особливості CryEngine

Коли я потрапив у Crytek, то моя парадигма змінилась. Необхідно було вже враховувати, що це real-time гра, яка запускається в 60 fps, дотримуватись чітких технічних обмежень, адже платформи на яких випускатимуться ігри — різні. Для тестів у нас були машини low-spec, mid-spec та high-speck, які відповідали параметрам 30 та 60 fps відповідно. Через це підхід до роботи вже будується трішки інакше: замість того, щоб зробити дуже гарно (і байдуже скільки полігонів та пам’яті займають текстури), відрендерити й закинути у sprite-sheet по мінімум кадрів, тут вже враховувалось багато факторів: від поліганажу та кількості й складності партіклів до того, скільки цей ефект займатиме місця на екрані.

Зазвичай VFX ефекти — це прозорість (translucently) або? по-простому? «прозрачка». А прозрачка — це зазвичай дим, вогонь, волюметрики тощо. Тобто чим більше у нас прозрачка займає місця на екрані, тим складніший цей кадр для обчислення. В студії були дійсно дуже круті техартісти, які допомагали з пошуком проблемних місць.

Для того щоб вкластись в бюджети ми використовували стандартні методи: зменшити кількість спрайтів, але водночас зберегти вигляд ефекту (тобто менше спрайтів диму, але щоб він лишився так само гарним), зменшення роздільної здатності текстур тощо. Інколи ми використовували хитрі методи рендерингу, щоб текстура, до прикладу, рендерилася у 4 рази менша, а потім розтягувалась на екран і видавалась як потрібно. Це ті хитрощі, що значно економили нам час та ресурси. Тож так, Crytek для мене став школою бойового хрещення в плані real-time VFX Art.

Гра мала в собі мультиплеєр й co-op місії. Задачею VFX-художника було розуміти різницю між типами мультиплеєрних та co-op карт й розставляти ефекти на мапі відповідно. До прикладу, у нас було правило, і вважалось хорошим тоном, для мультиплеєрних карт — не виставляти такі environment партікли як дим, іскри чи листя, що літає на місяцях де перебувають гравці. Тобто всі ці ефекти мають бути бекграундом і знаходитись за межами геймплейної зони.

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

Warface у Crytek був на кастомізованій версії CryEngine 2,5, якщо я не помиляюсь. Тобто він був дуже старий і зі своїми quirks and features, навіть порівнюючи з Unreal Engine. Наприклад, у нас не було GPU партіклів, усі були на CPU, а отже хоч і велику їх кількість ми не могли собі дозволити, але вони були дійсно дуже «розумними». Загалом, в CryEngine були присутні фічі щодо партіклів, які досі відсутні в Unreal Engine. До прикладу, в UE немає такого поняття як вітер — його потрібно власноруч прописувати, а в CryEngine це внутрішній інструмент і він міг одразу впливати на партікли.

Я не сильно застав часи Unreal Engine 3. Почав вже з UE4, де був ще «Каскад», але вже відбувався поступовий перехід на «Ніагару». На мою думку, це і є однією з основних революцій для VFX-художників на Unreal. Її модульна система, візуальний скриптинг, скетчпад — дуже сильно розширив межі для створення ефектів. Фактично, на «Ніагарі» можна робити власні ігри, настільки у неї прогресивна логіка. Хоча люди примудряються робити ігри на Exel, на «Ніагарі» це буде легше =)


«Якщо воно застаріле, якщо з погляду сьогодення, воно не має права на існування — перероблювати повністю». Про підходи до створення ефектів для S.T.A.L.K.E.R. 2

Коли я прийшов в GSC, то ми ще працювали на Unreal Engine 4 і було тільки анонсовано 5, якщо я не помиляюсь. Я підходив до розробки з думкою, що треба зробити краще, але і зберегти душу Сталкера. Щоб як олдскули, так і нові гравці відчували цей дух. Ну і плюс, щоб це виглядало добре.

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

Пам’ятаєте, як виглядала Half-Life та Half-Life 2? Якщо порівнювати їх, то там тільки «назви» лишились, та чи зберегли вони ідентичність у другій частині? Ну якщо кроубар, чи Гордона Фрімена і G-Man вони зберегли, то все інше вони переробили повністю, аби зробити цей світ кращим. Тому у мене і був такий підхід: якщо воно погане, якщо воно застаріле, якщо з погляду сьогодення, воно не має права на існування — треба його перероблювати повністю. Тож і такі у нас були задачі, і деякі старі артефакти ми так переробили, що їх не впізнати, але сутність їх залишилась. Так само і з аномаліями.

Найбільше мені подобалось робити дві речі: перше — це придумувати нові аномалії, ефекти, які б додали шарму та різноманіття грі. Багато чого справді було придумано наступним чином: «О, а давайте спробуємо це!». Робиться швидкий прототип, команда розуміє: «О, у цьому є потенціал», тож це дороблюється і зрештою потрапляє в гру. Це дуже мотивуюча штука, коли ти можеш зробити щось своє, прототипувати свої ідеї і вони заходять настільки, що опісля бачиш їх у грі.

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

Якщо ви погуглите як робити на «Ніагарі» живих створінь, які мають свою логіку життя, які впираються чи оббігають стіни і це все на партіклах, то, зазвичай, це дуже дорогі системи і ми не могли собі дозволити такі штуки. Ми мали враховувати подальшу оптимізацію і той факт, що ми виходимо на слабкі консолі на кшталт Xbox Series S, де кожен здобуток оптимізації на вагу золота. Тож, я придумував шляхи, як би зробити цю живність дуже дешево, GPU партіклами, де було поєднання логіки життя ефектів і не на всі гроші світу щодо оптимізації.

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

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

Є влучне правило, як відрізнити хорошого VFX Artist від професіонала: хороший може зробити дуже гарний ефект, коли профі запитає тисячу питань про те, куди цей ефект йтиме, для чого він, як часто ми його побачимо на екрані і наскільки далеко. Згідно з відповідями на ці питання фахівець зробить висновки і відповідно виділить час на його розробку (високий пріоритет — більше часу та краща якість, низький пріоритет — менше часу та гірша якість).

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

Можу ще інший приклад навести: якщо ти робиш гру в жанрі перегони, і 3D моделер спитає: «А ми будемо бачити низ машини?» Якщо ми ніколи не бачитимемо його, то нам загалом не потрібно його моделити і таким чином відсікається частина непотрібної деталізації і витраченого часу, об’єктів тощо, що й економить нам час та бюджет. Знаю, що якось у Crytek, хлопці відрізали частину пушки, яку ми взагалі не бачили на екрані від першого лиця. Тобто ми бачили, до прикладу, лише ліву частину і ту що на нас дивилась, а передня права частина, яку ми не бачимо — взагалі не була замоделена.


«Часто буває, що концепт прям дуже крутий і деталізований, але в динаміці воно не завжди спрацьовує». Про надивленість для VFX-художників та ітеративність

Мабуть, найперше і найкраще правило — шукати референси з реального життя. Тобто якщо у вас є пелюстки, то ви дивитесь референси, що демонструють, як же ж ці пелюстки літають. Ви аналізуєте, наприклад, як це зроблено в грі Ghost of Tsushima, досліджуєте як це явище показано в кінематографі. Ніколи не робіть ефекти з голови — завжди опирайтесь на щось, що існує в реальному житті.

Якщо цього не існує, як от наші аномалії чи артефакти, то ви знаходите аналогії. До прикладу: є артефакти, які дуже нагадують корали або водорості у динаміці. VFX-художники мають бути «надивленими». Треба дивитись багато фільмів, вивчати різні концепти, вчитись на роботах інших для того, щоб в голові згенерувати свою ідею, опираючись на набуту візуальну бібліотеку. Це нормальна практика і комбінація як це роблять інші + референс + не боятись ітераційності процесу — це все дає свій результат. Так, ми завжди боремось із часом, тому до референсів додаємо ще й підхід ітеративності та швидкого прототипування.

Не бійтеся швиденько зробити щось просте, що можна легко перевірити, такий собі proof of concept, що дозволить перевірити чи прототип працює і тільки, якщо воно працює в геймплеї (якщо це, наприклад ефект для геймплейної фічі), беремо далі деталізувати. Бо часто буває, що концепт прям дуже крутий і деталізований, але в динаміці воно не завжди спрацьовує. Тому, і особисто мені, доводилось повністю перероблювати ефект не за концептом, а з урахуванням роботи у 3D світі. Зрештою, концепт — це вектор напрямку, а от куди цей напрямок приведе, то вже робота для VFX художника.


«Під час креативного процесу дуже корисно розбирати ефекти/задачі на менші частини, аби глибше зрозуміти, що і як може працювати». Наочні приклади брейншторму та потрібні скіли

В грі є аномалія «Бульба». В процесі розбору цього завдання я подумав: «Якщо є аномалія, що впливає на гравітацію і поруч є ставок чи болотце, де можуть бути жаби, то було б круто, якби вона також і на них впливала і ці жаби літали». Як бачимо, гравцям ця ідея, що цих жаб носить туди-сюди під дією топ аномалії, сподобалась. Під час креативного процесу дуже корисно розбирати ефекти/задачі на менші частини, аби глибше зрозуміти, що і як може працювати.

VFX-художникам, особливо тим, хто працює в реалізмі, дуже допомагає перегляд науково-популярних передач та досліджень: від природи електромагнітних хвиль, до хімічних експериментів. Я дивлюсь більшість топових научпоп каналів на YouTube, бо перше — ти краще розумієш, як світ створено, за якими правилами він працює і вже на базі цього ти можеш експериментувати і додавати деталізацію у свої ефекти.

Візьмемо вогонь. Якщо він горить, то навіть якщо ти додаси лайт, то він просто встане в сцену, адже світло дуже продає ефект. Але, якщо це вогонь горить на металі і немає декалі, що показує наскільки цей матеріал розжарений, наскільки він гріється, то не буде того сприйняття ефекту. У мене от, на жаль, не було часу на те, щоб деталізувати нашу великодку до Back to the Future, де в нас рейки у вогні. Не було можливості підготувати декальку, що показувала б пролитий бензин, чи ще додати певний рівень деталізації впливу явища на оточення.

Я люблю свою професію не тільки за те, що я можу створювати круті ефекти, оживляти світи, а й за те, що через свій пайплайн я постійно дізнаюсь щось нове. До прикладу, я не знав, як формуються блискавки в небі, яким чином вони освітлюють небо, що є блискавки, які б’ють не вниз, а вверх — називаються red sprites, дуже унікальне та рідкісне явище.

Це розвиває тебе не тільки як спеціаліста, а й як людину. Щодо якостей, що потрібні VFX-артістам, то це у більшості випадків залежить від проєкту. Не може бути VFX художника, що одночасно класно робить блискавки і симуляції води, вогню, диму тощо. Все ж у команді у тебе формується певна ніша і поступово ти стаєш більш вузькоспеціалізованим фахівцем. Тому і набір сетів для них буде трішки різним, якщо узагальнено, то: розуміти природу ефекту та його місце у геймплеї, де і для чого він, чітко розуміти його пріоритетність у сцені та вміння швидко прототипувати і робити proof of concept, перевіряти чи виконує ефект свою функцію у геймплеї. Ми працюємо на геймплей і здебільшого ефекти у нас геймплейні.

«Реюз і адаптація ефектів — одна із великих навичок, які, до речі, допомогли нам зробити S.T.A.L.K.E.R. 2»

Буває таке, що ефект не тільки не виконує свою функцію, а й може загалом його ламати, коли, до прикладу, дуже багато ефектів на екрані, що створює для гравця складнощі з навігацією. Є така гра — Anthem, її закрили EA, так ось там було дуже багато ефектів на екрані і коли починався бій, не було зрозуміло взагалі що відбувається. Якщо кожен ефект розібрати окремо, то вони дійсно дуже гарно зроблені, та коли все настільки намішано, плюс ще й вельми динамічний геймплей — це все перетворюється на нечитабельну кашу і класні ефекти перетворюються в шум.

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

Тобто, реюз і адаптація ефектів — одна із великих навичок, які, до речі, допомогли нам зробити S.T.A.L.K.E.R. 2.

Бо насправді S.T.A.L.K.E.R. 2 ми випустили дуже малою командою VFX художників. Тож так, вміння розподіляти ресурси — це велика навичка і досвід для VFX-художників.


Case Study. Брейкдауни та цікаві деталі з розробки VFX для S.T.A.L.K.E.R. 2

Environment Particle Системи

Щоб зробити партікл систему логіки живності дешевшою ми робили її на GPU, адже таким чином вона не багато їсть перформансу. Також, ми використовували VAT систему (Vertex Animation Texture) для анімацій тварин, комах тощо.

Момент, який могли помітити гравці, це те що ворони в S.T.A.L.K.E.R. 2 не вмирають, бо вони вже не повноцінні NPC (скелетал меш), а партікли. Оскільки ресурсів у нас було досить обмежено і ми не встигали, то я запропонував ідею зробити їх GPU партікл системою, що просто літатиме в повітрі та злітатиме з поверхні, коли хтось наближатиметься. Це досить простий ефект, який робиться дуже швидко. Тобто, це простий оверлап зі сферою, де тригериться ефект злету ворон — стандартний базовий пайплайн, який ефективно спрацював у «Сталкері».

Детальніший технічний розбір кейсу на ArtStation.


Arch Anomaly Tornado

Стосовно Торнадо, то у мене було багато досліджень, як його краще зробити, бо зазвичай робили як в іграх Just Cause 3 або 4, де у них торнадо це був просто циліндр, на якому був шейдер з нойзом, що просто виконував свою задачу.

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

Це наочний кейс того, про що ми говорили раніше: ми маємо розібрати ефект, який він у житті. В англійській мові «Торнадо» — це і смерч, і торнадо. У нас смерч і торнадо це різні речі. Смерч це те явище, яке починається внизу і тягнеться вверх, а торнадо — це те, що з хмар починається і опускається донизу. Оскільки я не міг поєднати нормально небо з землею по типу торнадо, щоб хмари збирались і опускали явище вниз, я зробив смерч. Тобто він знизу іде вверх і так розповсюджується. Варіант торнадо можливо було реалізувати, але це тягнуло ресурси і час яких ми просто не мали.

У Horizon Forbidden West є схожий кейс з великим вортексом в небі й на GDC був розбір, як вони то робили: це титанічна робота багатьох департаментів студії, а у мене таких бюджетів не було, тож зупинився на смерчі.

Я постійно в пошуку цікавих шляхів вирішення задачі, тож можу знайти референс з природи того, що мені більше підходить — це теж один із важливих ключів VFX художника: знаходити те що більше підходить відповідно до твоїх ресурсів. Тож після набитих ґуль і набутого досвіду з торнадо, я пізніше зробив хмару для викиду, оту червону на генераторах, якщо пам’ятаєте.

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

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

До прикладу, у грі Death Standing 2 є симуляція тару, оцієї смоли — введено в культ, вона дуже круто зроблена, але це один із hero effects, який ми постійно бачимо, це геймплейна і їх впізнавана візуальна штука, тож вона пророблена дуже сильно і на ній команда натаскалась.

Ми ж натаскались на аномаліях та артефактах, що вийшли, на мій погляд, дійсно класними. І окремо дякую моїй команді з VFX — без них таких офігенних ефектів в S.T.A.L.K.E.R. 2 не було б!


Першоджерело інтерв’ю: https://gamedev.dou.ua/

Залишити відповідь