Достоверная анимация в играх, создаваемая нейросетями

Пост опубликован в блогах iXBT.com, его автор не имеет отношения к редакции iXBT.com
| Рассуждения | Компьютерные и мобильные игры

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

Вопрос касающийся автоматизации создания трёхмерных моделей в играх я разобрал в предыдущей свой статье. Если кратко, инструменты позволяющие существенно упростить эту работу всё активнее внедряются с каждым годом. Из ближайших примеров крупных игр можно привести Microsoft Flight Simulator и Forza Horizon 5, в которых большую часть открытого мира генерировали с помощью нейросетей. 

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

Одним из примеров самой дотошной в плане анимации игры в своё время стала Assassin's Creed Unity. Можно многое говорить о сюжете игры, геймплее и техническом состоянии, но уровень проработки анимаций там был высочайший на своё время. У главного героя были тысячи анимаций, которые учитывали огромное множество возможных комбинаций движений персонажа и его окружения. При этом главные герой был не единственным персонажем. У статистов и врагов тоже было множество различных анимаций и их движения не выглядели рвано и неестественно. Хотя тут опять же стоит убрать за скобки гору всевозможных багов.

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

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

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

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

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

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

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

Так какая же в итоге выгода от использования такой системы? Аниматорам всё ещё требуется создавать набор базовых анимаций. Либо вручную, либо с помощью систем захвата движения. Но дальше всю работу на себя может взять данная автоматическая система. Для неё не нужно будет заготавливать какие то промежуточные анимации. Она будет буквально в режиме реального времени генерировать их, учитывая не только сам факт перехода между конкретными действиями, но и окружающую персонажа среду. А для таких событий как попадание в персонажа стрел, пуль или подобных объектов, не потребуется в принципе создавать отдельных анимаций. Нейросеть физически корректно среагирует на них и автоматически внесёт правки в текущую анимацию персонажа.

Когда же такие нейросети появятся в играх? Система из данной статьи была представлена ещё в 2018 году. Но тогда это был исключительно прототип, который работал на собственном графическом движке. Стоит учитывать, что потребуется не один год, что бы адаптировать такую систему для популярных графических движков, вроде Unreal Engine или Unity. И ещё несколько лет потребуется на создание самих игр, которые будут эту систему использовать. С другой стороны, данная нейросеть не уникальна. Приходят новости от разных разработчиков и крупных компаний, которые создают похожие программы. Так что можно говорить о том, что игры, в которых большинство анимаций генерируется автоматически с помощью нейросетей, начнут появляться уже в ближайшие 2-4 года.

Возможно, в начале такие нейросети будут применяться только в крупных проектах. Если конечно Тим Суини не удивит нас снова и не анонсирует похожую систему для Unreal Engine 5 в ближайшее время. Но даже в самом пессимистичном случае, потребуется не больше пары лет для обкатки таких программ. Так что до конца десятилетия определённо можно ожидать появления инди игр, использующих такие нейросети. И по сути именно для них они пригодятся больше всего. Уже сейчас можно встретить инди проекты, в которых графика не уступает крупнобюджетным играм. А подобные нейросети позволят и анимации подтянуть до уровня триплА. 

ДругойДругая
Автор не входит в состав редакции iXBT.com (подробнее »)

1 комментарий

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

Добавить комментарий