Хабрахабр

[Перевод] Cascadeur: будущее игровой анимации

image

Мы — студия разработки Banzai Games. Всем привет! Будем писать о наших технологиях, проектах и делиться историями из жизни компании. Рады наконец открыть здесь свой блог. В нем он рассказал о нашей программе для создания physics-based анимации Cascadeur и ее преимуществах перед mocap-анимацией.
Евгений, расскажите немного о себе и чем вы сейчас занимаетесь. Первый материал — перевод интервью с основателем студии Евгением Дябиным, которое он дал коллегам из издания 80lv.

Наш офис располагается в Москве, а ключевой партнер — компания Nekki, для которой мы разрабатываем ряд проектов, в том числе флагманский мобильный файтинг Shadow Fight 3. Я являюсь основателем и ведущим продюсером студии разработки Banzai Games. Но с давних пор меня очень интересует тема анимации, и именно анимация играет ключевую роль в наших проектах. Я занимаюсь продюсированием и гейм-дизайном, а также участвую в разработке игровых механик. Так и появился Cascadeur — программа для создания физически корректных анимации без использования motion capture. За годы работы мы вместе с аниматорами выработали особый подход к созданию анимации и используем его в нашем ПО.

Современные игры обладают очень продвинутой анимацией, но большая ее часть создается либо в Maya с применением простых ключевых кадров, либо с помощью motion capture. В чем вы видите ограничение этих подходов, и как они могут усложнить простые задачи?

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

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

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

И это даже не говоря о том, что в играх полно монстров, движения которых не так-то просто снять с человека.

Как вы применили 12 принципов Диснея в создании этой программы?

Первое, что мы добавили в процесс создания анимации — это физический скелет. Каким образом Cascadeur решает эти проблемы? А наши инструменты, имея информацию о них, анализируют ее и показывают вам физические характеристики позы или движения. Он соединен с ригом персонажа, и когда вы создаете анимацию, то анимируете также и движение твердых тел.

Например, когда персонаж делает сальто, угловой момент в прыжке должен оставаться неизменным. Кроме того, у нас есть инструменты для правки физических характеристик анимации. А наша программа старается найти такой вариант вращения, который сохранит угловой момент неизменным. Если вы не учитываете это, то сальто выглядит нереалистично.

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

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

image

Тогда почему мы до сих пор используем ключевые кадры не только в мультфильмах, но и в крупных ААА проектах? На Animation Bootcamp в Сан-Франциско вы говорили, что многие реалистичные анимации, например, волос, тканей и мускулов являются лишь симуляцией. Почему? Вот разработчик создал анимацию, но вынужден ее дополнительно править вручную.

То есть у вас есть какая-то основная анимация персонажа, и вы хотите знать, как с ней будут взаимодействовать его волосы и одежда. Обычно симуляция применяется только для «вторичного» движения. Но анимация тела персонажа зависит от всех его частей. При этом вторичная анимация никак не влияет на основную. Именно поэтому так сложно править мокап-анимацию, не нарушая ее реалистичности. Если взмахнуть рукой в реальной жизни, то это повлияет на поворот всего тела. Даже на поздних стадиях производства часто возникают какие-то новые требования и идеи. А вносить изменения в такую анимацию приходится практически всегда.

Например, вам нужно, чтобы персонаж прыгал выше, чем это физиологически возможно. Кроме того, иногда в играх нужны движения, которых вы не добьетесь с помощью мокапа. Только вот прыжок при земной гравитации всегда будет довольно медленным. Или у вас есть файтинг (как наш Shadow Fight 3), где все движения, включая прыжки, происходят очень быстро — потому что это важно для геймплея. Значит, вам потребуется увеличенная гравитация, которую мы и использовали для всех прыжков в Shadow Fight 3.

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

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

Что делает их такими сложными для работы и как избежать эффекта “зловещей долины” с помощью Cascadeur? В чем проблема симуляции двуногих человеческих персонажей?

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

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

Аниматоры отлично справляются с постановкой поз и красотой движения, но учитывать при этом еще и физику — это практически невозможно. Следовательно, если мы хотим избежать эффекта “зловещей долины” и заставить зрителя поверить в происходящее, движение должно быть не только красивым, но и учитывать законы физики. Cascadeur может помочь с этим.

Не могли бы вы рассказать о том, как это работает и как вы используете это при разработке игр? Работа Cascadeur похожа на какую-то магию.

Я сам удивлен, что инструменты, которые вы видите в Cascadeur, не включены по умолчанию в большинство 3D-пакетов, предназначенных для работы с анимацией. Возвращаясь к технологиям — то, что есть у нас сейчас, я бы точно не назвал магией.

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

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

У вас есть какая-то база движений? Как вообще происходит симуляция? Например, вы даете каждой части тела определенные физические свойства, импульс и вектор, затем смотрите, что получается? Вы моделируете всю физику движения тела?

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

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

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

У вас есть нейронная сеть, которая изучает все ваши движения? Давайте поговорим о дальнейшем развитии вашей интеллектуальной системы.

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

В наших мечтах это выглядит так: аниматор ставит ключевые позы, а искусственный интеллект сам понимает, где находятся точки опоры, где начинаются и заканчиваются прыжки и какова их высота. Мы называем эту концепцию “Зеленый Призрак”. Аниматор наблюдает это в виде Зеленого Призрака, который двигается параллельно с драфтом анимации. Эта система может предложить не только корректную физику, но и естественные позы и траектории для каждой части тела.

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

90% времени аниматора уходит отнюдь не на творчество, а на рутинную шлифовку финального результата. Такой подход может сэкономить кучу времени, ведь концепция движения часто понятна уже по нескольким кадрам.

Как вы планируете распространять Cascadeur?

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

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

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

Подробнее о вакансии можно прочитать здесь. На проект Cascadeur требуется C++ Developer.

Следите за новостями о разработке Cascadeur:
Facebook
ВКонтакте
Youtube

Теги
Показать больше

Похожие статьи

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть