Процедурная анимация лиц в Cyberpunk 2077 — подробное описание технологии
Чтобы персонажи выглядели правдоподобными, разработчики добавили даже малозаметные движения, такие как саккады и сокращения мимических мышц.
Сооснователи студии Jali Research Пиф Эдвардс и Крис Ландреф, а также ведущий технический директор в области персонажей CD Projekt RED Матеуш Поплавски выступили на конференции Siggraph 2020 с докладом о создании лицевой анимации в Cyberpunk 2077. Разработчики рассказали, что их задача состояла в создании системы, которая позволяет делать выразительную мимику для персонажей, а также эффективно работает с разными языками. Мы выбрали из выступления главное.
Мир Cyberpunk 2077 наполнен огромным количеством персонажей, поэтому разработчики из CD Projekt RED отказались от захвата движений — команда искала способ автоматизации анимирования героев. При этом студия хотела, чтобы стандартный липсинк дополнялся полноценной мимикой, зависящей от эмоций говорящего. Задача осложнялась ещё и тем, что эта система должна была работать на десяти разных языках.
В 2016 году Поплавски прочитал статью Эдвардса с описанием принципов системы, поддерживающей разные стили произношения — от шёпота до крика. Этот подход отлично подходил для решения задачи, с которой столкнулись разработчики Cyberpunk 2077. Так началось сотрудничество CD Projekt RED и Jali Research, благодаря которому студиям удалось создать большое количество персонажей с уникальной манерой речи и лицевой анимации. Вот несколько примеров:
По словам Поплавски, в основе мимики и общения персонажей лежит несколько ключевых компонентов:
- речь;
- стиль общения;
- поведение глаз;
- движения бровей;
- эмоции;
- движение шеи.
В речи персонажа важное значение имеет движение губ. По словам Эдвардса, пользователи не замечают хороший липсинк, так как он позволяет им погрузиться в игру. А плохой липсинк, наоборот, бросается в глаза и возвращает пользователя в реальный мир.
Эдвардс кратко описал работу алгоритма, который позволяет анимировать мимику. В качестве входных данных разработчики используют аудио и тэги. Затем они устанавливают тайминги для фонем и анализируют запись, чтобы определить громкость, высоту голоса и темп речи. Обученный ИИ определяет, каким должно быть положение губ, языка и челюсти для каждой фонемы.
По словам Ландрефа, в стандартном пайплайне анимирования липсинк и мимика существуют независимо друг от друга. Но в реальности эти вещи сильно связаны, поэтому разработчикам было важно научиться совмещать движения губ и эмоциональные реакции. Вместе они формируют манеру общения персонажей.
В следующем примере можно сравнить, чем отличается стандартный липсинк от JALI-липсинка. Лучше всего разница видна в тот момент, как Пласид произносит слово «HOW?!» в конце.
В реальности люди могут произносить одни и те же фонемы по-разному двигая губами и челюстью. Разработчики хотели отразить эту особенность в игре, поэтому добавили эти две ключевые характеристики. К примеру, есть множество способов того, как Пласид произносит звук «и».
Следующий важный элемент системы — моргание глаз. По словам Эдвардса, в реальности люди моргают по двум причинам. Во-первых, чтобы сохранять глаза влажными. Во-вторых, люди моргают во время мыслительной активности.
В Cyberpunk 2077 моргание зависит от трёх факторов:
- аудио — анализируется звуковая дорожка;
- лексика — анализируется текст;
- время, прошедшее с последнего моргания.
Другой важный признак, который делает поведение героев более правдоподобным — это малозаметные резкие движения глаз, которые называются саккадами. С их помощью человек рассматривает сцену и воссоздаёт её у себя в сознании — люди делают такие движения непроизвольно. Часто саккады — это результат внешних раздражителей, например, яркого света. Также такие движения появляются, когда человек рассматривает чужое лицо и следит за движущимся объектом.
За саккады в Cyberpunk 2077 отвечает система под названием Ambient Gaze.
Поведение бровей и лба не влияет на артикуляцию, но это важная часть мимики, которая позволяет делать акценты в речи человека и помогает выражать эмоции. Если между бровями появляются вертикальные морщины, а сами брови нахмурены, то это признак негативного настроя. Если же брови расслаблены или подняты, то человек испытывает позитивные эмоции.
Чтобы в игре движение бровей соответствовало речи, разработчики используют статистический анализ звуковой дорожки. На результат влияет высота, громкость и темп речи — они определяются при помощи профилей каждого персонажа.
Также в Cyberpunk 2077 мимика зависит от конкретных тэгов, выставленных разработчиками. Тэг может содержать информацию об уровне определённой эмоции. Например:
<happy-50> Ты дома! </happy-50>
<fear-20> Погоди, что? </fear-20>
<fear-130> AAAAA! </fear-130>
Следующий ключевой компонент — эмоции, которые выражаются через малозаметные сокращения мимических мышц. По словам Эдвардса, правдоподобные эмоции — это ключ к погружению пользователя. В Cyberpunk 2077 этот аспект состоит из двух частей: фон, который определяется при помощи общего состояния героя, а также акцент, добавляющий выразительность поведению. Разработчики анализируют аудио, чтобы определить, в каких местах меняется тон голоса.
Последний ключевой компонент — движения шеи. Небольшие покачивания головы во время речи создают иллюзию того, что персонаж живой. По признанию Эдвардса, главное — не переусердствовать.
В совокупности все эти компоненты делают персонажей правдоподобными. Вот как выглядит Джуди, если постепенно добавлять в её поведение разные компоненты.
Эта система также применяется при локализации игры на десять языков. Чтобы мимика и движения губ соответствовали оригинальному варианту, разработчики обучали алгоритмы, используя три вещи:
- акустическую модель, которая на основе звуковой дорожки и письменного текста предсказывает, какие фонемы использует персонаж. Этот алгоритм натренирован на больших датасетах, которые содержат сотни часов записанной речи для каждого языка;
- словарь произношения — таблица, содержащая лексемы, которые дают все возможные варианты произношения слов в конкретном языке. Разработчики использовали CMU ARPABET для английского и X-SAMPA для остальных языков;
- модель графемно-фонемного преобразования (grapheme-to-phoneme, G2P), которая гарантирует, что все слова, которых нет в словаре, произносятся правильно.
Если сравнить произношение на разных языках, то можно увидеть, что персонаж проявляет одни и те же эмоции, но при этом учитывает особенности языка. К примеру, в немецком языке есть склонения, поэтому носители дополнительно подчёркивают окончания мимикой.
А в японском языке окончания одинаковые, и определяющую роль играет выбор слов, порядок и словоформы спрягающихся частей речи. Поэтому в японской версии движения бровей у Джуди менее интенсивные.
У Джуди спокойный стиль общения
Зачем я это минуту смотрел...
Что-то это как-то совсем не впечатляет... Уровень топовых игр эпохи ПС2... За исключением полигонов разве что. Ну, может и не ПС2, но блин, Джиман из интро ХЛ2 выглядет гораздо более естественным в плане мимики.
Комментарий недоступен
Чувак, это же захват из редактора, а не из игры, сравнил жопу с пальцем. Посмотри финальный ролик и сравни с тем же гменом, гмен сосёт. Про липсинк и говорить нечего, который полностью теряется при переводе на другой язык. В киберпанке же он исправляется под перевод автоматически, да это ж обалдеть