«У вас запись глючит»: что под капотом у трансляций с виртуальными аватарами

Привет! Меня зовут Кирилл Песков, я арт-директор и сооснователь студии студии компьютерной графики ITSALIVE. Мы занимаемся производством цифровых аватаров и маскотов для брендов.

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

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

Что такое Realtime

На самом деле, realtime-трансляция — это тавтология. Realtime — это «реальное время», и трансляция — это то, что происходит в реальном времени. Суть realtime в том, что во время трансляции не воспроизводится ничего предзаписанного. Все движения аватара и его мимика не заготовлены, а воспроизводятся потоково с помощью костюмов захвата движения и актеров. Если аватар меняет одежду или взаимодействует с предметом, то это не отрендеренная картинка, которую мы пустили склейкой, а действие здесь и сейчас.

На выходе мы видим ожившего персонажа, непринужденно говорящего со зрителями

На выходе мы видим ожившего персонажа, непринужденно говорящего со зрителями

В момент трансляции за кадром трудится команда из 5–6 человек, которая обеспечивает функционирование всех систем. Работа над realtime — это сложный процесс, который не виден зрителям. За ним стоит много человеческого труда и науки.

Как построен процесс работы над трансляцией

Обычно перед проведением трансляции в студии заранее подготавливают:

  1. Ассеты. Это любая вещь в 3D-графике, которую можно использовать во время трансляции: например, одежда аватара. Они заранее отрисовываются в софте и «примеряются» на него.

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

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

  4. Оборудование. Нужно заранее приехать на площадку проведения трансляции и подключить все инструменты. Это может занять несколько часов.

При создании 3D-фильма с виртуальными персонажами у вас есть выбор: записать анимацию при помощи технологии mocap или создать её вручную с аниматорами. В realtime выбора нет, потому что движение должно появляться здесь и сейчас. Вам нужно записывать действия актера и потоково переносить их на тело аватара. То же самое делается с пальцами и мимикой. Кроме этого, синхронизируется движение камеры: если она начинает двигаться, нужно передавать эту информацию в движок. Для этого используются специальные трекеры.

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

Процесс надевания шлема для захвата мимики

Процесс надевания шлема для захвата мимики

Кто стоит за аватаром

Аватара всегда отыгрывает актер мокапа. Это новая профессия, которая зародилась в кузницах блокбастеров Голливуда. Эти люди обладают не только актерскими навыками, но и опытом работы с мокап-оборудованием — костюмами для записи движения.

Пример классной работы актера мокапа — Энди Серкис в роли Голлума из «Властелина Колец». 

Серкис отлично поработал с каждой мышцей на лице, чтобы в итоге вышел экспрессивный 3D-персонаж

Серкис отлично поработал с каждой мышцей на лице, чтобы в итоге вышел экспрессивный 3D-персонаж

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

Без вспомогательных алгоритмов аватар не сможет сделать некоторые движения. Например, он не сможет класть руки на колени или на подлокотники кресла, брать предметы в руки и трогать лицо — без дополнительных настроек рука провалится в него.

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

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

Что нужно знать инженеру трансляций

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

Игровой движок и компьютерная графика

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

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

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

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

Математика

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

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

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

Программирование

Unreal Engine практически состоит из готовых плагинов: например, для костюмов захвата движения или захвата мимики. Metahuman — это тоже плагин. Чтобы дорабатывать их или писать свои с нуля в Unreal Engine, нужно знать С++. Но для обычной работы в движке подойдет система визуального программирования блюпринтов, которая в него встроена. Для работы с ней не нужно знать плюсы, но хорошо бы понимать принципы ООП и то, как работают базовые структуры данных и циклы.

Так выглядит система визуального программирования блюпринтов

Так выглядит система визуального программирования блюпринтов

3D-графика

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

Кино и видеосъемка

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

А если я просто хочу статьи витьюбером?

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

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

© Habrahabr.ru