За анимацию лиц всех персонажей Cyberpunk 2077 отвечает нейросеть - как это работает

CD Projekt поделились подробностями создания лицевой анимации в Cyberpunk 2077: оказалось, что за неё отвечала нейронная сеть, что позволило синхронизировать движения для каждого из языков озвучки.

Для этого CD Projekt использовали наработки канадской компании JALI Research. Чтобы объяснить, как работает технология процедурной генерации лицевых анимаций, в JALI подготовили специальную презентацию, которая была показана на конференции SIGGRAPH, а теперь её выложили в открытый доступ. Оказалось, что система используется для абсолютно всех персонажей, присутствующих в Cyberpunk 2077.

После выпуска The Witcher 3 в CD Projekt RED решили пересмотреть подход к созданию анимаций. Компании требовалась система, способная имитировать эмоции более высокого качества. Студия вышла на наработки JALI в 2016 году, когда начала подыскивать новую систему анимаций для Cyberpunk 2077 и уже совместно они дорабатывали продукт. Новая система должна была генерировать естественно выглядящие анимации для десяти языков без захвата движений и работать так, чтобы её можно было применить к любому персонажу. При этом персонаж не просто двигает губами в такт словам: меняются выражения лица, он моргает и проявляет эмоции в зависимости от контекста.


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


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

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

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

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


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

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

Полная версия презентации JALI

Поделиться:

Нет комментариев