Когда смотришь современные кат-сцены в видеоиграх нет сомнения. Графика достигла невероятных высот и фактически приблизилась к CGI. А ведь это все показывается в реальном времени на игровом движке! Правда, осталась одна маленькая неприятность, которая все еще портит внешний вид – это волосы. Очень важный элемент дизайна персонажа, который во многом определяет вид героя. Какие есть проблемы и как решают их разработчики – узнайте в нашем материале.

Да что там такого сложного?

Создание моделей игровых персонажей дело трудоемкое, но с современными вычислительными мощностями можно реализовывать достаточно проработанных героев. Все упирается лишь в число полигонов – треугольников. Именно с помощью них создаются все модели. Раньше старые консоли могли оперировать лишь небольшим числом полигонов – именно поэтому модели имели такие угловатые формы. Теперь же в персонаже может быть больше 100 000 полигонов. Например, Элой в Horizon: Zero Dawn имеет невероятные 600 тысяч «треугольников».

Однако сформировать тело – это лишь одно дело. В этом уже нет ничего сложного, но с волосами все намного труднее…

В идеале – каждый волосок должен быть отдельной моделью с собственным поведением и правилами взаимодействия с другими волосами. Такой подход обеспечил бы беспрецедентную реалистичность. Однако на практике реализовать это невероятно сложно. И дело не только в том, чтобы все это запрограммировать. Современным видеокартам банально не хватает мощности, чтобы высчитывать такие объемы.

Метод частиц активно используют в мультипликации. В этом случае для каждого "волоска" просчитывается физика столкновений и отражений, поэтому рендер картинки занимает очень много времени. Насколько много? Помните Салли – огромного пушистого синего добряка из «Корпорации Монстров»? Так вот на его теле разместили 5,4 миллиона волос. Для обработки всего одного кадра мультфильма с этим персонажам потребовалось 29 часов работы двух тысяч 16-ядерных процессоров. В секунде – 24 кадра, так что представьте, как долго пришлось обрабатывать сцены с участием Салли.

Частично такой подход иногда применяют. Например, в Final Fantasy XII используют пререндеринг, поэтому в кат сценах волосы выглядят очень реалистично. Однако в геймплейных моментах просчитывать волосы методом частиц - все еще непозволительная роскошь.

Именно поэтому разработчики вынуждены использовать альтернативные методы. Они менее требовательные к производительности, но каждый из них имеет свои недостатки.

Методы создания волос игровых персонажей

Первый и самый бюджетный способ решения проблемы – это сделать волосы частью модели самого персонажа. Фактически дизайнеры создают не каждую отдельную прядь или даже волосинку, а общий вид прически. Эту методику использовали практически во всех старых играх. Ходить далеко не нужно, достаточно взглянуть на персонажей какой-нибудь GTA Vice City или любой другой относительно старой игры.

Естественно, выглядят такие волосы максимально статично, практически как пластилиновые. Однако взамен разработчикам не нужно тратить много времени и ресурсов. Такой метод применяют и в современных играх. Например в тех, где не стоит приоритет сделать фотореалистичную графику – Overwatch и другие.

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

Благодаря развитию технологий появилась возможность делать более проработанные прически, используя карты волос (hair cards). Суть заключается в том, что разработчики моделируют уже отдельные пряди, которые хоть и не могут похвастаться высокой детализацией, но смотрятся куда более реалистично.

Весь процесс включает создание и наложение нескольких слоев карт. Первый – базовый (Base). Здесь создается общая форма прически, скрывающая череп персонажа. Второй слой (Structural) формирует стиль и добавляет детализации прически. Третий (Breakup) еще больше повышает реалистичность и создается для того, чтобы полностью закрыть базовый слой. Далее могут использоваться четвертый и пятый (Flyaway) – они придают хаотичности и выделяют отдельные волоски.

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

Например, прическу Элой из Horizon Zero Dawn разрабатывали почти два года, а выделенный бюджет оставил целых 100 тысяч полигонов. В некоторых играх в такой предел можно вместить всего персонажа, причем с достаточно высокой проработкой. Однако в этом нет ничего удивительного, если вы посмотрите, насколько сложная в итоге получилась работа. К тому же, волосы ведут себя максимально реалистично при беге или движении головы.

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

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

 

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

Если говорить о кучерявых волосах – то это самая сложная задача. Именно поэтому в играх встретить кучерявых героев с проработанной прической – большая редкость.

Решить проблемы с волосами пытаются и отдельные компании. Например, вы наверняка слышали о Nvidia HairWorks на базе DirectX 11. Мех и пряди волос представляются не как набор полигонов, а как отдельные объекты. После технология получила множество улучшения и доступна для DirectX 12. Впрочем, результат не всегда получается лучше – многое зависит от угла обзора и освещения. А нагрузку на железо HairWorks оказывает ощутимую.

 

Наилучших результатов добились EA на базе Frostbite. Технология была представлена в 2019 году и предлагает рендеринг в реальном времени. Правда используется ли она в каких-то играх сейчас или пока находится лишь на стадии разработки – остается вопросом. Наибольших успехов в реалистичности волос EA добилась в FIFA22.

Как ни странно, но при всех технологиях и уровне производительности делать реалистичную прическу с моделированием миллионов волос – все еще непосильная задача.

Популярные публикации

Самые популярные публикации по теме
за сто дней