Анимация в видеоиграх. Полное руководство для игрового аниматора — страница 12 из 49

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

Машины состояний (state machines)

Машины состояний, называемые также «машинами с конечным числом состояний» или «конечными автоматами» (также «графы состояний») и схожие с «деревьями смешиваний» (blend trees), представляют собой средство визуального редактирования – схему, описывающую различные состояния (действия), в которых могут находиться анимированные персонажи, способы перехода между этими состояниями, а также различные смешивания, которые могут происходить в рамках одного состояния, например при наведении оружия. С началом или смешиванием анимаций можно сопоставить входные сигналы, такие как угол наклона джойстика или нажатие кнопки; это позволяет аниматорам не просто создавать анимацию, но и переносить ее в движок и настраивать смешивание после экспорта. Разница между хорошим и отличным игровым аниматором заключается в том, что последний способен не только создавать красивую и плавную анимацию, но и находит новые умные способы смешивать их в игровом движке под разные действия игрока.

Раньше перед началом работы или на этапе оценки требований к персонажу игровой аниматор рисовал на бумаге различные его состояния (например, «ожидание», «ходьба», «бег» и т. д.) в виде схемы из узлов и линий перехода между ними.


Оригинальная выполненная на бумаге схема анимации для игры Jak & Daxter. (Публикуется с разрешения Sony Interactive Entertainment.)


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

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


Машина состояний в редакторе игрового движка

Параметрическое смешивание

Самый простой способ реализовать анимацию персонажа – отобразить одно движение за раз и смешивать по необходимости для перехода к другому; тем не менее многие современные игры отображают одновременно несколько движений. Смешивание нескольких анимаций необходимо для постоянной иллюзии реальности персонажа; на смену одному-единственному действию приходит сложная система анимаций, накладываемых друг на друга ради плавности.

Основная причина смешивания анимаций – необходимость отобразить различные варианты действий в зависимости от параметров игры. Например, в зависимости от угла наклона земли под ногами персонажа можно смешивать между собой цикл ходьбы/бега по ровной поверхности, цикл подъема и цикл спуска. Так персонаж будет подниматься в гору с видимым усилием и легко спускаться со склона.

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

Частичная анимация

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


Параметрическое смешивание синхронизированных анимаций ходьбы и бега в зависимости от скорости игрока


Самый большой недостаток такого подхода – возможная визуальная «нестыковка» между верхней и нижней частями тела, но этот эффект можно в какой-то степени ослабить, применив так называемое перьевое смешивание (feather blend) по цепочке костей (например, рук или позвоночника) между двумя отдельно анимированными частями.

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

Дополнительные слои

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

Важно отметить, что для корректной работы аддитивных анимаций вторая анимация перед наложением почти всегда требует вычитания из нее позы. Это связано с тем, что к базовой анимации нужно применить только разницу между аддитивной анимацией и выбранной позой (обычно idle-позой «ожидания») – наложение двух полных анимаций приведет к «распуханию», персонажа, так как удвоятся все показатели положения и вращения.


Оригинальная анимация + поза смещения = модифицированная анимация


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

Физика, динамика, ragdoll

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

Некоторые из первых реализаций «физики персонажей» часто основывались на «рэгдолле» и применялись во время гибели персонажа – от анимации тот переключался на полностью физическую симуляцию движения; так персонажи убедительно падали замертво в любом месте игрового мира. В последнее же время физика стала гораздо более существенной частью передачи движений. Подобно аддитивным слоям, физика накладывается поверх анимации, чтобы показать вздрагивание от атаки или заносы в движущемся транспорте; сцены гибели персонажей представляют собой сочетание готовых анимаций с наложенной поверх них реагирующей на окружение физикой – так в момент гибели разыгрывается настоящий мини-спектакль.


Особое внимание в игре Red Dead Redemption уделяется сценам гибели, передаваемым с помощью физики. (Публикуется с разрешения Rockstar Games.)


Физические симуляции также используют для отображения разрушений объектов и элементов окружающей среды, то есть для того, что в противном случае было бы очень трудно и долго анимировать. Эти симуляции могут осуществляться в режиме реального времени (если игрок своими действиями влияет на случайные объекты) или передаваться в виде готовых анимаций, выполняемых в программе DCC и экспортируемых в игру подобно всем другим анимациям. Разрушение – это отличный способ сделать игровой мир более отзывчивым к действиям игрока и добавить зрелищность и драматизм к активным сценам.

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

После первоначальной настройки рига добиться более высокого визуального качества можно практически без дополнительной работы благодаря двум подходам к настройкам и расчетам динамических элементов – либо в программе создания цифрового контента (DCC), либо в режиме реального времени в самой игре. У каждого есть свои преимущества и недостатки.

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

2. При создании анимации с физикой в DCC все вторичные движения закладываются в файл анимации предварительно, что увеличивает объем каждой анимации. Любые изменения в настройках должны выполняться в DCC, и все исправления анимации приходится экспортировать заново, что занимает время. Такой подход лишен преимуществ реального времени, когда физика помогает сглаживать движения персонажа и обеспечивать их плавность, но он помогает сэкономить на вычислениях в реальном времени, что особенно важно для тех случаев, когда персонажей много (например, при отображении толпы), а также для не слишком мощных систем (например, мобильных).


Физика плаща Бэтмена в серии Arkham значительно облегчает переходы. (Изображение Batman Arkham Knight публикуется с разрешения Warner Bros. Entertainment Inc. и DC Comics.)

Продвинутые понятия