Стилист главных героев - как создают прически в играх

Создавать убедительно выглядящие прически в играх — задача сложная, но очень важная. Человек, как и любое социальное животное, подсознательно распознает соплеменника по глазам, коже, зубам и волосам. Несоответствие этих элементов привычной реальности и вызывает пресловутый эффект «зловещей долины». Для большей достоверности 3D-персонажа у него должны быть реалистичные волосы. К тому же стильная прическа отражает характер.

Рендерить волосы и шерсть очень сложно даже с современными технологиями. Вуки в Star Wars Jedi: Fallen Order уже стали мемом — их мех больше похож на щупальца. При этом у главных героев с прической все нормально. Почему в одной и той же игре волосы одних персонажей выглядят хорошо, а других — феерически плохо?

Все объекты в играх — 3D-модели, состоящие из маленьких треугольников — полигонов. Достаточно убедительного персонажа можно сделать из всего нескольких тысяч полигонов, хотя в современных играх их количество значительно больше.

Например, Кратос из God of War 2018 года состоит из 80 тысяч треугольников, а его лицо — из 32 тысяч. Но если бы у него была реалистичная шевелюра, студия Santa Monica так просто бы не отделалась. На голове человека больше 100 тысяч волос, рендерить каждый было бы очень сложно.

К тому же необходимо рассчитывать их столкновения друг другом, с телом, взаимодействие с головными уборами. У анимационной студии Pixar есть целый отдел, который занимается исключительно физикой волос, шерсти и одежды.

Если все так сложно, то как делали волосы в играх раньше и как делают сейчас?

Самый простой метод — сделать волосы частью модели. Поверх головы персонажа накладывают текстуру волос и шейдеры — микропрограммы, которые указывают движку добавить глубину и отблески. Последние очень важны, потому что обычно здоровые волосы слегка блестят, а темные без этого выглядят просто черным пятном.

Это самый старый и простой метод, которым все еще пользуются. В Marvel’s Spider-man на PS4 прически Питера и Майлза достаточно короткие, их проще сделать именно так. Тот же способ применяет и Blizzard.

Прически в Overwatch — часть модели персонажа. Благодаря мультяшной стилистике не требуется воссоздавать слишком много прядей, а наложенные на довольно крупные элементы текстура, шейдеры и свет создают видимость настоящих волос.

Более современный метод — карты с волосами (hair cards), или «плашки» на сленге разработчиков. Это похоже на создание париков — художник использует фотографии волос или рисует их с нуля для создания частично прозрачных текстур и слоями накладывает их на голову 3D-модели.

Обычно таких слоев пять. Базовый задает форму. Большие пряди усложняют силуэт, делая прическу более естественной, а маленькие добавляют хаотичности. Благодаря им прическа становится правдоподобнее. Дополнительные переходные карты сглаживают зазор между головой и волосами, как сетки на настоящих париках.

Текстурировать карты с волосами приходится одновременно с моделированием. Это очень сложный процесс, который занимает от нескольких недель для побочных персонажей до нескольких месяцев для главных героев. Сложные прически могут потребовать нескольких лет работы — например, как волосы Элой в Horizon: Zero Dawn.

К сожалению, созданные таким образом прически статичны и плохо подходят для динамичных игр. Уже много лет разрабатываются методы рендеринга отдельных волос. Первой успела AMD в Tomb Raider 2013 года. Библиотека TressFX позволяла создавать тысячи мелких прядей, которые подчинялись гравитации, ветру и инерции от движений головы Лары Крофт.

Волосы героини смотрелись здорово, но эффект серьезно влиял на производительность — не все игроки обладали достаточно мощными ПК. Ситуация улучшилась в сиквелах, когда Eidos Montreal сделала свою версию алгоритма — Pure Hair.

В 2014 NVIDIA ответила технологией NVIDIA Hairworks, которая создавала не только пучки волос с симуляцией физики, но и шерсть монстров и животных. Зачастую новинка ощутимо меняла облик игр на разных настройках — это хорошо видно в RPG «Ведьмак 3: Дикая охота».

К сожалению, как и TressFX, Hairworks существенно влияла на производительность из-за тесселяции (процесса повышения детализации модели) волос до микрополигонов, и разработчики редко использовали технологию в консольных версиях игр. В последние годы Hairworks практически не применяют.

Самый актуальный метод создания волос в играх — пучки (strands). Прически моделируются отдельными волосками с использованием физически корректного рендеринга материалов. Этот способ отчасти схож с TressFX и Hairworks. Пряди правдоподобно рассеивают свет и могут иметь разную длину. Например, в FIFA 23 у каждого футболиста уникальная прическа, на которую влияет ветер, движения головы и коллизии волос друг с другом.

Рассчитывать симуляции для сотни тысяч волос было бы очень долго для игры в 4К и 60 FPS на новых консолях, поэтому физика работает только на 10% и только для части каждой пряди. Для соседних пучков расчеты интерполируются, потому что и в реальности они себя поведут схожим образом.

Проблема описанных методов в том, что каждый отдельный волос зачастую представляет собой линию толщиной меньше пикселя. Игровым движкам сложно рендерить такие мелкие детали, поэтому в играх волосы нередко мерцают, частично пропадают, на них появляются «лесенки» (алиасинг). В FIFA 23 часть проблем решили с помощью собственного программного растеризатора.

Он превращает 3D-объекты в 2D-изображение, которое показывает монитор. Обычно этим занимается видеокарта, но растеризатор EA использует аналитическое сглаживание и выполняется силами центрального процессора. В итоге получаются локоны без мерцания и “лесенок”, до сих пор встречающихся в других играх.

Свои сложности создают и отдельные виды причесок. Например, простейший хвост оказывается непреодолимым испытанием для физического движка, потому что все 100 тысяч волос сталкиваются в одном очень узком пространстве. Решение простое: убрать из симуляции волосы, скрытые другими прядями. Они просто будут повторять то, что делают видимые. Это может ускорить рендеринг сложных причесок до 4 раз.

Если прямой волос — это простая линия из точки А в точку Б, то кудрявый может весьма хитро загибаться. Решение — сделать кудряшку «сплайном». Это кривая из нескольких сегментов, каждый из которых считается разным уравнением. В теории каждый кудрявый волос надо симулировать отдельно, но на практике можно обойтись только 2% от всех пучков волос и интерполировать расчеты на остальные.

Для афроамериканцев характерна не только плотная структура волос, но и определенные типы причесок. Если в Spider-Man для PS4 волосы Майлза Моралеса — просто часть модели, то на PS5 и PC Insomniac внедрила рендеринг пучков, который позволил показать как реалистичную плотность, так и создать популярную стрижку с фэйдом.

Зачастую разработчики используют комбинации методов. Основную форму прически составляют карты с волосами, а отдельные пряди реализованы пучками. Иногда такие сочетания работают с физикой и светом не так, как хочется дизайнерам. Например, в Horizon: Forbidden West волосы Элой никак не меняют свое состояние в воде — не тонут и не поднимаются, а просто «висят».

Схожая проблема может возникать в других играх, хотя старые технологии вроде TressFX/Pure Hair и Hairworks имели все необходимое для расчета адекватного поведения волос в разной среде.

Рендеринг волос прошел огромный путь от простых моделей с текстурами до симуляции отдельных пучков. Сейчас в играх создают сложнейшие прически, которые показывают индивидуальность каждого персонажа. Но разработчикам предстоит еще много работы над улучшением физики и освещения. Хотя уже сейчас есть игры, где герои могут похвастаться восхитительными (а иногда — гомерически смешными) шевелюрами.

Комментарии: 2
Ваш комментарий

довольна сложная тема с волосами
думаю есть два направления. одна это физика на основе гпу или цпу с вычислениями веса волос на разных их течках и упругости, другая - водопад частиц где будет стимулировать косички достаточно сложно если возможно.
и все что чисто шейдерное. это около процедурный параллакс где опционально концы волос шерсти моут двигаться вслед за процессорным замечание векторов движения в текстуру. и что-то около подобное но уже с аналогом физики ткани для крупных сеток. либо что-то более сложное с физикой мягкой крупной геометрии но объемного 3д текстурирования в ней с чем нибудь по типу марширования луча на гпу.

а ве равно обычно шкуры и бороды делают просто плоскостями с текстуркой.

0

афигеть , при strands - как настоящие

0