Процедурная анимация лиц в 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?!» в конце.

Замедленная часть видео — это фрагмент, во время которого персонаж произносит «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), которая гарантирует, что все слова, которых нет в словаре, произносятся правильно.
Звучание на разных языках

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

Вариант на немецком языке

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

Японский вариант
409409
231 комментарий

У Джуди спокойный стиль общения

170
Ответить

Зачем я это минуту смотрел...

26
Ответить

Что-то это как-то совсем не впечатляет... Уровень топовых игр эпохи ПС2... За исключением полигонов разве что. Ну, может и не ПС2, но блин, Джиман из интро ХЛ2 выглядет гораздо более естественным в плане мимики.

31
Ответить

Комментарий недоступен

105
Ответить

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

32
Ответить