Геймдев
#статьи

Волосы в видеоиграх: как менялись подходы к созданию причёсок на протяжении четверти века

От примитивных моделей до рендеринга по волоску.

Иллюстрация: Катя Павловская для Skillbox Media

В одной из статей журнала Vice встречается меткое высказывание о том, что эволюцию 3D-графики в видеоиграх можно отследить по причёскам персонажей. И действительно, с развитием технологий этот важный элемент образа становился всё более реалистичным. Тем не менее создание волосяного покрова в играх — как и лицевая анимация, например, — до сих пор остаётся болезненной темой для разработчиков и художников, особенно в контексте реалистичной графики.

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

1990-е: полигональные сетки и первые шаги в симуляции

Первые попытки добавить персонажам уникальные причёски встречаются в трёхмерных играх начала 1990-х годов прошлого века. Как правило, шевелюры героев там представляли собой набор полигонов и технически считались неотъемлемой частью модели персонажа. Отделить границу причёски от общей массы полигональной сетки помогали текстуры. Но даже на низкополигональных моделях художники старались подчеркнуть некое подобие причёски — от хвостов до ёжика из примитивных треугольников, как было, например, в файтинге Virtua Fighter 1993 года.

Скриншот: игра Virtua Fighter / Sega

Если образ персонажа предполагал длинные волосы, ситуация усложнялась. Во-первых, возникал риск превысить количество отображаемых полигонов на экране. К примеру, именно из-за технических ограничений, связанных с коллизией и лимитом полигонов, в самой первой игре Tomb Raider косу Лары заменили пучком.

Скриншот: игра Tomb Raider (1996) / Core Design

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

Здесь снова напрашивается пример из оригинальной Tomb Raider. Анимация в этой игре создавалась не на основе скелетного рига, как сейчас, а на джоинтах. Под ними подразумевались небольшие фрагменты полигональной сетки, отвечавшие за вращение частей тела. Программируя вращение джоинтов, разработчики могли придать героине разные позы, создавая из них циклы движений. Начиная со второй части Tomb Raider, у Core Design всё же получилось добавить в игру косу в виде отдельного меша.

Скриншот: игра Tomb Raider 2 / Core Design

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

Также в середине 1990-х годов появились первые наработки в области симуляции. Одна из таких встречалась в Virtua Fighter 3, где движения длинных волос персонажей, в частности конского хвоста Аой Умэнокодзи, обусловлены физикой.

Видео: игра Virtua Fighter 3 / Sega

Похожая динамика волос встречалась и в Soul Blade 1996 года — её можно заметить, если присмотреться к косе Софитии. В Tekken 3 (1997) хвост бойца Лэя Улуна тоже наделён физическими свойствами, хотя на видео ниже можно заметить определённые проблемы с коллизией во время геймплея.

Видео: игра Tekken 3 / Namco, Production I.G

А в Drakan: Order of the Flame длинные волосы героини Ринн, собранные в хвост, покачиваются из стороны в сторону при беге, а при прыжке меш хвоста слегка приподнимается.

Видео: игра Drakan: Order of the Flame / Surreal Software

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

Напрашивается вывод, что технические ограничения побуждали разработчиков и дизайнеров сосредоточиться на геймплее и окружении, а проработку внешности персонажа компенсировали текстурами и красивыми скинами. Вероятно, именно поэтому роскошную шевелюру Джулии из анимационного фильма «Тяжёлый металл 2000» заменили на лаконичный пучок в Heavy Metal F.A.K.K. 2

Скриншот: игра Heavy Metal: F.A.K.K.2 / Ritual Entertainment

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

Большая часть шевелюры профессора Дамблдора в игре «Гарри Поттер и философский камень» представлена в виде текстур — впрочем, как и его борода. Такую конструкцию модели можно сравнить с фигуркой шоколадного деда-мороза
Скриншот: игра «Гарри Поттер и философский камень» / KnowWonder

Такой подход к причёскам использовали на протяжении 1990-х вплоть до начала нулевых. Волосы старались делать короче или собирали в простые конструкции из полигонов, а мех или щетину визуализировали с помощью текстур.

2000-е: новые возможности шейдинга

Ситуация стала меняться, когда игровые движки начали поддерживать больше полигонов в сценах, а также шейдеры со свойствами прозрачности (Opacity). В основном по своей структуре меши причёсок оставались неотделимыми от модели персонажа. Тем не менее использование карт прозрачности позволило 3D-художникам создавать более разнообразные варианты шевелюр.

На изображении ниже представлена модель Юны из Final Fantasy X 2001 года. Можно заметить, что меш волос выполнен лесенкой, на концах которой используются карты со свойствами прозрачности. За счёт полупрозрачных концов с эффектом филировки причёска героини выглядит более естественно.

Изображение: Square Enix

А вот в Silent Hill 2 та же самая техника выполнена немного по-другому. Например, кончики волос в причёске Марии (на изображении ниже) состоят из плоскостей-лент с шейдерами прозрачности. И отдельный момент заключается в том, что полигональные пряди могут смещаться в динамике. Такой подход успешно применялся и в случае коротких стрижек, когда нужно было выделить чёлку.

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

Оригинальная модель Марии из Silent Hill 2 (2002). Справа можно увидеть распределение карт Opacity, отвечающих за прозрачность
Изображение: Konami

Если образ подразумевал волосы ниже плеч, то ленты из полигонов просто удлиняли — это можно заметить на модели Клаудии из Silent Hill 3.

Экспортированная из Silent Hill 3 модель Клаудии Вульф. На кадрах можно увидеть, что полигональные пряди-ленты не приклеены к спине, поэтому деформации мешей во время поворотов головы не наблюдается
Изображение: Konami

Но встречались и исключения. В Metal Gear Solid 2: Sons of Liberty (2001) причёска Райдена выполнена как отдельный меш, замещавший часть головы персонажа. Такой подход выбран не только для того, чтобы движения волос лучше смотрелись во время динамичных кат-сцен. Ещё одна причина кроется в особом геймплейном элементе — возможности надевать на героя бонусные парики разного цвета, обладающие уникальными характеристиками и по-разному влияющими на игровой процесс.

Демонстрация меша причёски Райдена на примере оригинальной модели, представленной на Sketchfab
Скриншот: Blender / Blender Foundation

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

Интересно, что движок The Legend of Zelda: The Wind Waker, вышедшей в 2002 году, поддерживал симуляцию одежды, гибких объектов по типу верёвок, а также волос. Поэтому даже стилизованная минималистичная чёлка Линка плавно двигалась в такт его движениям.

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

Например, такой способ отрисовки поддерживал движок AtmosFear, на котором создан шутер «Вивисектор: зверь внутри». Эта игра запомнилась правдоподобной визуализацией меха у животных и антропоморфных существ.

Скриншот: игра «Вивисектор: зверь внутри» / Action Forms

Информации о том, как Action Forms удалось создать такой эффект, довольно мало, а в медиапространстве тех лет по большей части встречались лишь общие тезисы восторженного характера. Учитывая, что разработчики использовали язык высокого уровня для программирования шейдеров (HLSL), а у каждой модели зверя во внутриигровых файлах с текстурами есть дополнительная маска с полупрозрачным слоем, можно предположить, что пиксельный шейдер меха сделан на основе вычислений.

В Сети есть «рецепт» похожего шейдера, и, если сопоставить примеры оттуда и модели из «Вивисектора», можно сделать вывод, что примерно такую же технику использовали и разработчики. И хотя некоторые пользователи отмечали, что визуально отрисовка меха уступала, например, меху зверей из Black and White 2, вышедшей в тот же период времени, по меркам 2005 года шейдеры в «Вивисекторе» всё равно выглядели довольно эффектно.

Шерстяной покров гигантских существ в Shadow of the Colossus тоже выполнен с помощью шейдера меха, но без программирования. Несколько параллельных друг другу плоскостей с разными характеристиками прозрачности накладывались поверх основного меша модели. В результате на экране отображались своеобразные «шипы» из хаотично расположенных участков текстуры меха — и таким образом формировалась объёмная фактура шкуры.

Примечательно, что подход разработчиков Shadow of the Colossus актуален до сих пор. И пример его использования встречается в игре Stray, вышедшей в 2022 году.

При детальном осмотре можно заметить множество слоёв со свойствами прозрачности, формирующих шерсть котика, главного героя Stray
Кадр: Shesez / YouTube

Вернёмся к теме волос. В эпоху консолей седьмого поколения — PlayStation 3 и Xbox 360 — в некоторых играх причёска уже создавалась как отдельный меш, по аналогии с моделью Райдена, описанной ранее. Таким образом, разработчики могли задать различные условия физики для отдельных частей шевелюры.

Несмотря на странное положение косы на этом промоскриншоте, в динамике причёска Лары выглядела довольно неплохо для игры 2006 года
Скриншот: игра Tomb Raider: Legend / Crystal Dynamics

В 2007 году вышел слэшер Heavenly Sword, разработанный с использованием последней на тот момент версии физического движка Havok. Эта технология задействована и в симуляции волос главной героини Нарико. И хотя в динамике красные полигональные пряди экстремальной длины порой выглядели довольно хаотично, дерзкий фэнтезийный образ стал визитной карточкой персонажа.

Ближе к концу десятилетия художники стали использовать технику наложения карт-плоскостей небольшого размера с полупрозрачными текстурами. Текстуры создавались на основе смоделированных волосков-кривых, запечённых в наборы карт. Эти карты, также известные как Hair Cards или Hair Sheets, применяли на плоскости небольшого размера. Полученные полигональные фрагменты распределяли по основной модели.

Gears of War 2 стала одной из первых игр, где начали применять такую технику. Скопления плоскостей с полупрозрачными текстурами могли не только придать причёске визуальный объём, но и сформировать более правдоподобную растительность на лицах персонажей. Ведь ещё буквально десять лет назад бороды и щетину создавали при помощи текстур или за счёт дополнительного рельефа полигональной сетки.

Техника Hair Cards / Hair Sheets работает по тому же принципу, что и создание ресниц или формирование прядей волос. Но сам процесс более кропотливый, так как длина «кусочков» может различаться, равно как и текстура, наложенная на них. Сама основа в этом случае будет более реалистичной, так как пряди сформированы кривыми, а не отрисованы вручную или получены в результате фотосканирования.

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

2010-е: стремление к реализму

В 2010-х годах в погоне за реализмом разработчики стали уделять волосам персонажей ещё больше внимания. Полигональная сетка причёски превратилась в отдельный сегмент, похожий по форме на парик из множества ранее упомянутых Hair Cards.

Такой подход не только добавлял желанного реализма, но и позволял оперативно заменить один меш на другой, если внешний вид персонажа менялся в процессе игры. Также подход был удобен при многократном использовании — например, во время создания NPC. В настоящий момент формирование волосяного покрова из отдельного меша или групп мешей считается стандартом индустрии.

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

Также можно упомянуть подход с созданием волос на основе процедурной геометрии и систем частиц в реальном времени — как, например, в Blender или в плагине Yeti в Maya. Финальный результат впечатляет, но требует очень много ресурсов, что критично для производства видеоигр. Всё дело в том, что во время симуляций постоянно рассчитывается физика, коллизия (при столкновении с другими объектами), отражение света и прочие свойства каждого волоска. Тем не менее эту технику активно применяют в производстве анимационных фильмов.

Остальные волосы на лице и теле (ресницы, брови, щетина, волосы на груди, на руках и так далее) также стали разделять на отдельные группы мешей. Ниже можно увидеть пример самых базовых форм мешей, выполненных на основе Hair Cards в игре начала 2010-х годов.

Оригинальная модель Нейтана Дрейка из «Uncharted 3: Иллюзии Дрейка» в «разобранном» состоянии: слева — отдельные меши бровей и ресниц, справа — меш причёски. На голове персонажа можно заметить чёрную «шапочку» — область текстуры, которая маскирует возможные просветы плоскостей. Впрочем, в настоящее время чаще всего эта область закрыта дополнительным мешем. Что касается щетины, то в данном случае её визуальный рельеф сформирован не с помощью Hair Cards, а за счёт шейдера
Скриншот: Blender / Blender Foundation

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

Вскоре появилась новая технология рендеринга, которая вывела отображение волос в 3D на новый уровень. В индустрии она известна как метод strand-based. Слово strand означает «нить», и в данном контексте его можно интерпретировать как «волос». Секрет заключается в том, что причёска на экране преобразуется в тысячи, а порой и в миллионы волосков-кривых, которые представляют собой виртуальные полигоны, чаще всего преобразованные с помощью специального графического фреймворка Alembic. Внешний вид и физические свойства таких волос очень схожи с волосами в реальной жизни.

Сравнение хвоста, выполненного с помощью карт, и того же хвоста на основе кривых
Кадр: Tencent / YouTube

Главный недостаток этого метода в том, что подобный рендеринг основан на большом объёме вычислений во время процесса растеризации и требует мощной видеокарты. Но это не помешало TressFx от AMD и HairWorks от NVIDIA уже в 2010-х годах, привлекать игроков реалистичной для того времени картинкой и мотивировать разработчиков присмотреться к новой технологии.

В своё время TressFx стала известной благодаря интеграции технологии в переосмысленную Tomb Raider, вышедшую в 2013 году. Новая причёска Лары не только отображалась буквально по волоску, но и отличалась реалистичной физикой, обусловленной движениями персонажа, а также условиями окружения (вода, снег, ветер и так далее). В настоящий момент пятая итерация технологии TressFx доступна для интеграции в Unreal Engine — правда, пока только для версий 4.26 и 4.27.

Что касается HairWorks, то эта технология совмещала предыдущие наработки NVIDIA в области рендеринга и симуляции волос, а также меха и шерсти. А плагины HairWorks позволяли художникам регулировать густоту и форму волосяного покрова в программах для 3D-моделирования.

HairWorks поддерживали многие игры 2010-х годов, включая Far Cry 4, Call of Duty: Ghosts и The Witcher 3: Wild Hunt. В последней, к слову, нередко отмечались жалобы пользователей, что технология обрабатывает волосы Геральта некорректно. По этой причине был создан даже специальный мод, исправляющий ситуацию.

В индустрии 2010-х годах существовали и другие технологии в области рендеринга и симуляции волос, которые использовались в рамках определённого софта или движка. Некоторые из перечисленных ниже актуальны до сих пор.

  • В движке Dawn Engine от Eidos Montréal существовала собственная система для рендеринга волос персонажей, которая фактически представляла собой улучшенную технологию TressFx. Пример её использования можно встретить в Deus Ex: Mankind Divided.
  • Собственная технология рендеринга волос и меха в Luminous Engine (игры Square Enix). В конце десятилетия стала известна как Luminous Hair.
  • Встроенная система для волос в движке Frostbite (Mass Effect: Andromeda, Dragon Age: Inquisition). Несмотря на то, что подход Frostbite уступал другим решениям в индустрии, к концу десятилетия технология заметно эволюционировала, и результат этой эволюции можно увидеть в видео ниже. Специфику подхода мы рассмотрим ниже.
  • Движок Unreal Engine поддерживал улучшенные шейдеры для волос ещё в четвёртой итерации. Ближе к концу десятилетия в нём появилась собственная система Groom для создания реалистичной симуляции волос по ранее упомянутому методу strand-based.
  • Процедурный метод создания волос и шерсти в Houdini.
  • Различные плагины для софта и движков. Из самых известных можно упомянуть XGen от Maya; Ornatix для 3ds Max и плагин NeoFur для Unity от NeoGlyphic (в настоящий момент поддержка технологии прекращена).

К концу десятилетия возможности движков и железа достигли достаточной мощности, чтобы отображать в играх высокополигональные модели с высоким разрешением текстур. И вскоре художники смогли воплощать самые смелые и сложные задумки. Например, причёска Элой из Horizon: Zero Dawn, ставшая визитной карточкой героини, состоит из 100 тысяч треугольников и анимирована на основе 50 сплайнов.

Изображение: Йохан Литвалл / ArtStation

Наши дни и будущее

В настоящее время разработчики продолжают добиваться идеального отображения волос, оттачивая уже наработанные техники. Например, в большинстве AAA-игр художники используют комплексный подход к созданию шевелюр, сочетая технику Hair Cards с поддержкой рендеринга методом strand-based. Иными словами, при наличии мощной видеокарты вблизи причёска персонажа отображается буквально по волоску, а при низком уровне детализации или на слабой системе игрок увидит шевелюру, состоящую из полигональных прядей и полупрозрачных шейдеров.

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

Образ Трейсер в Overwatch и Overwatch 2. Помимо новой анимации и слегка модифицированной геометрии, можно заметить, что изменился подход к созданию шейдеров волос. В данном случае отражение стало более рассеянным
Кадр: Ultraclocked / YouTube

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

  • Плагин Groom в Unreal Engine 5. Поддерживает как импорт систем волос на основе метода strand-based в формате специального фреймворка Alembic, так и альтернативные варианты геометрии причёсок в виде карт и мешей. Для более точных настроек шевелюры доступен встроенный редактор Groom Asset Editor.
Кадры: Unity / YouTube
  • Набор инструментов GroomBear для Houdini. Содержит специальные ноды для генерации меха и волос в рамках софта, кисти, а также ноды для конвертации в геометрию (например, для плоскостей, перьев и так далее).
  • Усовершенствованная технология движка Frostbite, упомянутого выше. Новая система также основана на методе strand-based, а динамика волос обусловлена физикой. Результаты прогресса можно оценить не только по причёскам футбольных звёзд в современных симуляторах вроде EA Sports FC, но и в недавно вышедшем трейлере Dragon Age: The Veilguard, удивившим игроков реалистичной физикой длинных волос и их отображением в реальном времени.

О последней технологии стоит рассказать поподробнее. В прошлом поклонники Dragon Age постоянно жаловались на технические ограничения серии, которые не позволяли создать персонажа с длинными волосами, а реализация динамики причёсок и общий их вид оставляли желать лучшего. Но BioWare прислушалась к сообществу и сделала ещё один шаг к тому, чтобы волосы персонажей выглядели более реалистичными.

Скриншот: игра Dragon Age: The Veilguard / BioWare

Секрет нового подхода в том, что волосы импортируются в движок Frostbite в формате NURBS. Вдоль каждого волоска формируется тесселяция — набор точек для формирования кривой. Чем больше таких точек, тем лучше результат. Чтобы сохранить баланс между реализмом и производительностью, разработчики используют ограниченное количество точек. Например, в демонстрационном видео Frostbite, представленном ранее, использовано 25 точек на один волос. И вполне вероятно, что в будущем подход с NURBS получит более широкое распространение.

В одном из материалов мы уже упоминали, что сейчас в области 3D-графики специалисты начали активно присматриваться к нейросетям. И создание волос в этом плане не исключение. Из актуальных наработок можно выделить, к примеру, Digital Salon и Haar. NVIDIA также активно изучает область генеративного ИИ и нейронной графики, привлекая к своим исследованиям десятки научных сотрудников из различных институтов по всему миру.

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

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

***

Создать реалистичную причёску в 3D довольно сложно — в первую очередь из-за сложной передачи динамики, которой волосы наделены в реальной жизни. Эти движения обусловлены различными факторами. К тому же, в отличие от реальности, даже самая продвинутая физика в программах для 3D-моделирования и движках обусловлена определёнными сценариями и множеством настроек.

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

И в конце концов, даже современные игровые миры, подразумевающие большое количество NPC, нуждаются в оптимизации, что сказывается на прорисовке и уровне детализации.

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

Скриншот: MetaHuman Creator / Epic Games

К тому же не стоит забывать, что сегодняшние понятия о стандартах графики сильно размыты, учитывая популярность стилизаций вроде сел-шейдинга или low-poly. Отображение причёсок по волоску встречается далеко не в каждой игре, а в некоторых инди-проектах с определённой концепцией дизайнеры могут намеренно использовать самые примитивные техники. Но разве можно осуждать их за это? История доказывает, что порой в таких экспериментах можно найти не только решение для актуальной задачи, но и неожиданно открыть новые грани виртуального парикмахерского искусства.

Любите игры? Попробуйте себя в геймдеве!

❓ Кто вы: геймдизайнер, разработчик, концепт-художник? Узнайте на бесплатном курсе

😼 Узнать, кто я →
Кто вы в мире геймдева? Узнайте на бесплатном курсе ➞
Вы на практике попробуете 3 профессии: геймдизайнера, 2D-художника и разработчика на Unity. Создадите свою первую игру в стиле Mario. Подробности — по клику.
Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована