Pull to refresh

Что не так с анимациями Mass Effect: Andromeda?

Reading time 11 min
Views 23K
Original author: Simon Unger
image

Большое внимание привлекли проблемы с анимацией в обзорах нового большого проекта BiowareMass Effect: Andromeda. Поэтому мы решили, что будет интересно собрать опытных аниматоров и обсудить затруднения, возникающие при работе над анимациями в таких проектах. Большое спасибо Дэниелу Флойду (Daniel Floyd) за модерирование этого «круглого стола». Итак, начнём с представления участников.

Дэн Флойд: Думаю, стоит начать с меня, потому что я здесь в основном в качестве ведущего и буду задавать вопросы умным людям. Меня зовут Дэн Флойд, я один из ведущих YouTube-канала Extra Credits. На этом канале я делаю шоу об игровых анимациях под названием Extra Frames. Кроме того, я аниматор с опытом работы в кино и игровой индустрии, но совершенно не дотягиваю до уровня моих собеседников.

Саймон Унгер (Simon Unger): Привет, меня зовут Саймон Унгер. Я аниматор в Phoenix Labs и работаю над новой игрой Dauntless. Раньше я был ведущим аниматором в Electronic Arts, Square Enix и Robotoki. Я учился в таких учебных заведениях, как Gnomon, iAnimate и Vancouver Film School.

Гвен Фрей (Gwen Frey): Привет, меня зовут Гвен Фрей, работаю в игровой индустрии уже десять лет. Последняя моя работа — создание небольшой инди-студии в Бостоне и разработка The Flame in The Flood. В проекте я была единственным аниматором и художником по эффектам. До этого я работала над технической анимацией в Bioshock Infinite и DLC, а ещё раньше — над MMO, например, над Marvel Heroes Online. Я участвую в публичных выступлениях о разработке игр, веду подкаст(The Dialog Box) и канал на YouTube (GwenFreyTheTA).

Тим Борелли (Tim Borelli): Привет! Я — Тим Борелли. Я работаю с анимацией с 1998 года, и у меня больше провалившихся проектов, чем удачных. Я работал в Volition (с Freespace 2 до начала разработки Saints Row 3), в 5TH Cell (где я в первую очередь учился быть хорошим лидером), а теперь я директор по анимации и видеоэффектам в First Strike Games.



Дэн: Так, давайте начнём с общих вопросов: какие проблемы свойственны вашей работе? С какими ограничениями чаще всего сталкивается аниматор, работающий над видеоиграми?

Саймон: Существует множество мелких технических затруднений, с которыми приходится справляться день за днём. Часто они связаны с конкретным проектом, продуктом или движком. Думаю, что во всей моей карьере постоянной была проблема достижения высокой «правдоподобности» действий персонажа. Нам приходится иметь дело с множеством переменных и внешних входящих данных (обычно игрок любит крутить джойстиком в разные стороны и обрывать видеовставки), поэтому интересная задача заключается в том, чтобы обрабатывать всё это таким образом, чтобы ощущения от игрового процесса не страдали. Иногда погрузиться в игру мешают мельчайшие шероховатости.

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

Дэн: Все мы видели ролики из раннего релиза Mass Effect Andromeda, и заметили в них довольно большое количество ошибок анимации, особенно в системах навигации и разговоров. Прежде чем переходить к частностям, может кто-нибудь объяснить, как работают системы разговоров? Чем отличается анимирование системы диалогов Mass Effect или Witcher от анимированных сценарных вставок в играх типа Uncharted или Kingdom Hearts?

Тим: Я работал с системами гораздо меньшего масштаба, и даже они были кошмаром для работающих над ними. Вместо создания специальных анимаций для каждой фразы диалога и выбора подходящего актёра озвучки нужно подготовить фонемы («А», «Э», «О», «М-м-м» и т.д.), эмоции (злость, печаль, радость и т.д.) для верхней и нижней частей лица, анимации языка тела (счастье, раздражение, печаль, восторг и т.д.) с разным уровнем интенсивности (очень злой, немного рассерженный, кипящий от гнева и т.д.). Я ограничусь этим, чтобы упростить описание процесса, но обычно над всем этим работает очень маленькая команда аниматоров, а по моему опыту — и вовсе один человек.

Поверх этих данных располагаются процедурные системы, как внутриигровые, так и в редакторе. Эти системы контролируют повороты глаз и головы в направлении цели (когда голова и глаза следят за чем-то интересным), иногда используется автогенерирование синхронизации губ в диалогах, и многое другое, но на этом можно остановиться.

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

  1. Объединяются командой, занимающейся настройкой всех разговоров в игре. Возьмём к примеру фразу: «А потом он украл свинью! ХА-ХА-ХА!», которая будет концовкой шутки. Команде аниматоров нужно подобрать правильные анимации языка тела и выражения лица. Синхронизация губ должна быть уже сгенерирована инструментом, который считывает фразу и создаёт из неё анимацию.
  2. Процедурно соединяются системой, считывающей «метки» данных. Эти «метки» назначаются аниматором или дизайнером для двух аспектов: для языка тела и лицевых эмоций, определяющих их сущность (например, «злость») и для фразы озвучки, чтобы её мог сыграть актёр озвучки. Затем система берёт случайный вариант «злости» и воспроизводит его в нужный момент. Синхронизация губ уже сгенерирована инструментом, которые считывает фразу и создаёт из неё анимацию.
  3. И, наконец, данные можно использовать в качестве основы, которую аниматоры могут настраивать и улучать в 3D-редакторе (например, в Maya). Они выбирают движения, которые нужно использовать, соединяют их вместе, а потом вручную улучшают их.

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

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

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

Дэн: В таких больших проектах неизбежно приходится сталкиваться с реалиями производственного плана. Время и деньги ограничены, и команде нужно планировать, чтобы тратить их как можно оптимальнее. Поэтому без множества прогнозов никак не обойдёшься. Как осуществляется выбор для команд аниматоров? Что входит в процесс графика анимаций видеоигры AAA-класса?

Гвен: [смеётся] Планирование производственного процесса в больших студиях — это довольно замысловатый процесс. После этапа препродакшена продюсер просит команду аниматоров подготовить кучу прогнозов. «Сколько часов работы аниматоров потребуется на анимирование движения двуногого NPC? Сколько часов работы аниматора необходимо для нового двуручного оружия для рук игрока и для всех NPC?» И так далее. Аниматоры отвечают на эти вопросы, исходя из собственных оценок, а потом производственная группа приступает к работе. Производственная группа собирает данные по каждому аспекту, а затем предоставляет директору данные на основании этих оценок: «Мы можем или добавить одно новое оружие в игру, или добавить трёх новых NPC», и всё в таком духе.

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

Очевидно, что ради блага игры в процессе производства приоритеты меняются. Большие фрагменты возможностей игроков и сцен выбрасываются, диалоги изменяются в последний момент, и так далее. Иногда важные сроки полностью меняются, что сильно влияет на задачи каждого. Это «захватывающее» приключение.

Саймон: Да, Гвен объяснила всё правильно. Если команда провела этап препродакшена достаточно хорошо (то есть изучила всё неизвестное, создала прототипы, проверила работоспособность базовых геймплейных циклов, и т.д.), то оценки будут близки к реалиям производства. У команды аниматоров могут возникнуть проблемы, когда ей приходится оценивать нечётко заданные дизайн или функцию. Здесь помогает опыт, но в играх часто приходится делать то, чего никто не делал раньше. Очень сложно оценить в часах (или даже днях), сколько времени уйдёт на реализацию. Нужно расположить функции и задачи в порядке приоритета, постараться соотнести их с графиками других отделов и начать с самого важного. Всё, что не умещается в рамки сроков, или вырезается, или реализуется затем в обновлении или DLC.



Дэн: Я хочу затронуть ещё одну тему: анимация в игре (хорошая или плохая), которую видит игрок, является результатом работы не только команды аниматоров. Думаю, что по своему опыту все вы можете ответить об этом по-разному, но в целом игровая анимация зависит от координирования множества дисциплин: от программирования до дизайна. Это действительно командная работа. Как на вашу работу влияют другие дисциплины внутри команды?

Гвен: Я думала над тем, что люди винят за баги аниматоров, хотя на самом деле их скорее всего не в чем упрекнуть. В AAA-проекте такого масштаба большинство мелких вставок аниматоры даже не видят. Создаётся система для дизайнеров, и на них возлагается вся надежда в правильном написании скриптов. Например, создают систему «настроений», чтобы персонаж мог быть счастливым, печальным или злым. Затем дизайнерам поручают создать в сцене настроение для NPC. Дизайнерам дают кучу фоновых NPC с базовым поведением, чтобы расположить этих персонажей в логичных местах. Аниматор в основном занимается сценами с героями (сценами, которые полностью анимируются вручную) или работает с программистами анимации над обеспечением «герметичности» геймплейных систем. Например, нужно сделать так, чтобы при беге в гору персонаж наклонялся вперёд, поэтому аниматор работает над смешиванием различных анимаций движения. Все баги, замеченные в роликах, походят на технические ошибки или ошибки реализации. Я не говорю, что аниматоров не в чем винить: каждый несёт ответственность за обеспечение AAA-качества игры и каждый обязан бить во все колокола, когда что-то идёт не так. Однако я смотрю на все эти ошибки как технический аниматор и думаю, что они похожи на проблемы с инверсной кинематикой и ошибки скриптов.

Тим: Добавлю к тому, что сказала Гвен: в игру всегда вступает аспект создания и настройки персонажа. Команды создания персонажей и анимации всегда должны учитывать различия черт и пропорций лица, доступных игрокам при настройке персонажа. Любые такие настройки могут привести к неидеальной анимации лиц. Просто загуглите «Ugliest character in Saints Row 2», чтобы посмотреть на примеры. Часто в больших играх для заполнения мира NPC используется та же система настройки, и хотя мы стремимся контролировать качество персонажей, создаваемых этой системой, иногда что-то упускается или генерируется случайным образом.

Дэн: Не думаю, что кто-нибудь из нас способен в точности понять, что же не так с анимацией Mass Effect Andromeda (без знания рабочего процесса BioWare и сложностей системы). Но когда вы смотрите эти ролики, то какие причины этих странностей можете найти? Что именно могло пойти не так в системе разговоров и привести к таким ошибкам анимации?

Саймон: Думаю, что прежде чем строить предположения о причинах таких проблем с анимацией, важно объяснить людям, какие цифры стоят за играми этого уровня. Я не знаю точных оценок для ME:A, но мы знаем, что в Mass Effect 3 было более 40 тысяч строк диалогов, а в Dragon Age — около 60 тысяч. Если мы возьмём в качестве среднего 50 тысяч и прикинем, что каждая строка длится около трёх секунд, то в результате получим около 41,5 часа диалогов. Этого хватило бы на 21 фильм. Над большинством фильмов с анимацией работают команды из 70 и более аниматоров. Создание фильма занимает два года или даже больше. Над Mass Effect работали пять-десять аниматоров, и им пришлось создать в двадцать раз больше контента за тот же промежуток времени. Кроме того, надо учесть локализацию игры по крайней мере на 4-5 дополнительных языков.

Понятно, что невозможно разбить такой объём контента на ключевые фазы анимации с приемлемым уровнем качества. Поэтому, чтобы справиться с этим масштабом, студии стремятся как можно больше работы переложить на процедурные системы. Я знаю, что раньше они использовали готовое решение под названием FaceFX. Оно анализирует аудиодорожки и создаёт анимации на основании форм волн, проекции и т.д. На базовом уровне результат может выглядеть как движения роботов, и я подозреваю, что это мы и видим в роликах. Конечно, можно поработать со звуковыми и процедурными инструментами для усовершенствования анимаций. Но глядя на тысячи минут диалогов, которые нужно улучшить, определение «допустимого» сдвигается в сторону, близкую к возможностям команды и надвигающимся срокам. Если бы команда и проект были бы моими, я бы на основании игровых тестов собрал метрики о том, какие сцены смотрят наиболее часто, и отполировал бы их в первую очередь, а остальные оставил бы, как есть.

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

Вы видели баги с «крабьей походкой», когда персонаж быстро бежит? У них есть стандартные причины. Если коллизия с поверхностью не настроена правильно, то персонаж будет немного проваливаться в пол. Однако внутриигровая система инверсной кинематики не ожидает, что персонаж частично проходит сквозь землю, поэтому она поднимает ноги обратно на уровень поверхности. Это приводит к странному повороту коленей. Ещё один вариант причины такой проблемы: система инверсной кинематики обнаруживает несуществующий подъём, или есть какая-то математическая ошибка при опускании таза к земле. Например, если персонаж быстро бежит вверх по лестнице, то система обнаруживает, что он находится на подъёме, и для компенсации опускает таз к земле. Если система ломается и ей не сообщают, что подъём уже закончился, то таз будет постоянно находиться ниже, что приведёт к очень забавному «крабьему» перемещению.

У судорожного движения глаз тоже может быть множество возможным причин. В ME совершенно точно есть система динамического отслеживания глаз, используемая, когда NPC смотрят на движущиеся рядом с ними интересные объекты. Возможно, в некоторых вставках эта система не отключается, и процедурное отслеживание движений глаз борется с запланированной анимацией глаз. Или может быть, объект находится в промежуточном состоянии между нахождением в области видимости (когда он отслеживается глазами) и вне этой области (когда он не отслеживается). А возможно NPC пытается отслеживать два объекта одновременно, и система постоянно получает информацию о нацеливании от двух разных целей?

Тим: Наверно, не стоит забывать, что каждый участвующий стремится вложить в игру максимум, но чем масштабнее игра, тем больше вероятность недопонимания. У аниматора А есть оптимальные планы по использованию анимаций разговора, созданные согласно дизайн-документу, полученному от Сценариста А, но Сценаристу Б в другом городе (или просто в другой части здания) может понадобиться одна из анимаций в задаче, для которой она не предназначалась. Разумеется, он может создать запрос на создание конкретной анимации, но аниматор А, возможно, так его и не увидит из-за приближающегося дедлайна и сортировки запросов по приоритету.

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

И нам нужно, чтобы это время настало.

Дэн: Я хочу закончить тем, что отдам честь команде разработчиков Mass Effect Andromeda. Сейчас важно то, как игра будет принята игроками. Множество людей вложилось в её создание, и это заслуживает уважения. Поздравляю их с достижением финальной черты!

Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
+11
Comments 31
Comments Comments 31

Articles