Игровые анимации, как правило, не длинные и плавные, а короткие и воспроизводятся друг за другом. Они часто останавливаются, прерываются, запускаются и накладываются друг на друга в разной последовательности. Аниматор видеоигр обязан следить, как эти анимации сочетаются друг с другом, чтобы сохранить общую плавность, и для этого существуют различные приемы, конечная цель которых – минимизировать любые нежелательные движения, которые могут отвлечь игрока от основного действия, а также сглаживание «стыков» между анимациями.
Смешивание и переходы
В эпоху классических двухмерных спрайтов анимация либо воспроизводилась, либо нет. Такой подход на первых порах сохранялся и в трехмерной анимации, пока разработчики не поняли, что, поскольку персонажи, по сути, анимируются благодаря позам, записанным в виде данных, этими данными можно по-разному манипулировать. Первым усовершенствованием стала возможность смешивать анимации в нескольких кадрах (перекрестное наложение одной анимации на другую во время перехода) с постепенным уменьшением отображения одной и постепенным увеличением отображения другой. Такой прием требует дополнительных компьютерных вычислений, но позволяет увеличивать плавность перехода между разными анимациями и устранять жесткие «стыки» между ними.
В качестве примера можно привести нахождение в состоянии покоя и бег. Если по команде игрока персонаж бросается бежать на полной скорости, то движения персонажа будут выглядеть резкими и обрывочными, особенно если игрок будет то и дело нажимать на кнопки, останавливая персонажа и тут же снова приказывая ему бежать. Это действие можно сделать более визуально привлекательным, смешав режим ожидания и бега на протяжении нескольких кадров, чтобы персонаж более плавно переходил от одной позы к другой. У аниматоров должна быть определенная степень контроля над продолжительностью смешивания двух анимаций, чтобы они выглядели как можно более привлекательными (но, конечно же, с учетом требований геймплея и реакции на действия).
Prince of Persia: Sands of Time была первой игрой, в которой для обеспечения плавности большое внимание уделялось небольшим переходам. (Copyright 2003 Ubisoft Entertainment. Основана на игре Prince of Persia®, созданной Джорданом Мехнером. Prince of Persia является торговой маркой Waterwheel Licensing LLC в США и/или других странах, используемой по лицензии.)
Описанную выше ситуацию можно улучшить (хотя и не без труда) с помощью небольших специальных анимаций между состоянием покоя и бегом и наоборот, между бегом и состоянием покоя; при этом все эти анимации по очереди смешиваются между собой. Но что, если игрок захочет бежать в противоположном направлении? Аниматор может создать переход для каждого направления, разворачивая персонажа в нужную сторону и заставляя его отталкиваться ногами в нужном направлении.
Но что, если игрок захочет, чтобы персонаж шел, а не бежал? Опять же, можно создать несколько переходов в определенном направлении с нужной скоростью. Понятно, что таким образом количество анимаций может быстро увеличиться, поэтому нужно находить баланс между бюджетом, размером команды и желаемым уровнем плавности.
Бесшовные циклы
Сохранять плавность движений важно даже в рамках одной анимации, в том числе и при остановке и возобновлении циклической анимации. Значительная часть игровых анимаций циклически повторяется, поэтому нужно проследить за тем, чтобы игрок не обращал нежелательное внимание на момент перехода от конца цикла к началу. Поэтому так важно следить за сохранением динамики действий и за тем, чтобы конец анимации полностью совпадал с ее началом.
При этом недостаточно просто сделать так, чтобы последний кадр совпадал с первым; игровой аниматор должен также сохранить импульс каждой части тела, чтобы сделать «стык» незаметным. Для этого можно изменить кривые до и после последнего кадра так, чтобы они образовывали чистые дуги и продолжались в том же направлении. Что касается технологии захвата движений, где дуги практически не работают, то для нее существуют отдельные приемы, автоматически обеспечивающие сохранение импульса при смене цикла, которые будут описаны далее в главе 11 «Ваш проект: захват движения».
При создании анимации с переходом в цикл следует также позаботиться о сохранении динамики; например, анимация остановки должна плавно совпадать с анимацией состояния покоя (ожидания). Для достижения максимальной плавности в этом случае лучше всего скопировать уже утвержденную анимацию покоя и переход к остановке в одну и ту же сцену, вручную совместить кривые, ведущие к анимации покоя, и экспортировать из этой сцены только переход к остановке.
Плавная остановка
Этот прием, как правило, используется в тех случаях, когда в конце анимации персонаж должен принять какую-то позу, если на это есть время. Бывает очень некрасиво, когда какое-нибудь активное действие, например атака, резко заканчивается позой боевого ожидания, особенно если все части тела останавливаются одновременно. Более приятное визуальное оформление получается благодаря отдельным движениям элементов, таких как, например, руки или базовая кость (root, «точка опоры»).
Однако в играх часто встречается ситуация, когда для повышения отзывчивости по окончании анимации персонаж слишком быстро возвращается к позе ожидания, чтобы игрок смог выполнить следующее действие. Резкость остановки можно уменьшить, создав длинную последовательность остановки с «продолжением» в конце анимации и, что важно, предусмотрев возможность предварительного выхода из нее в определенном кадре в случае поступления новой команды. Такая возможность прерывания анимации до ее завершения позволяет аниматору использовать необходимое количество кадров для плавного перехода к следующей анимации.
В игре Uncharted 4: A Thief's End активно используются «кадры прерывания», позволяющие плавно выйти из анимаций игрового процесса и кинематографических сцен до их окончания. (Публикуется с разрешения Sony Interactive Entertainment.)
Плавная остановка, как правило, достигается копированием нужной позы в конец анимации, но так, чтобы некоторые элементы, такие как конечности (иногда даже разделяемые на плечи и предплечья), достигали конечного положения в разное время. Иногда при этом применяется принцип перекрытия, когда отдельные элементы проходят дальше конечной точки, а затем возвращаются к ней. Что касается базовой кости (пожалуй, самого важного элемента, так как вслед за ней движется все остальное), то можно сделать так, чтобы она достигала конечной позы в разное время по разным осям. Допустим, сначала базовая кость достигает нужной высоты (ось Y), продолжая двигаться слева направо (по оси X), в результате чего проскакивает нужное положение по высоте, а потом возвращается. Небольшие расхождения в движениях головы, конечностей и базовой кости уменьшают резкость перехода к конечной позе в одном кадре, хотя стоит следить за тем, чтобы не переусердствовать с перекрытием, из-за чего конечности могут показаться слишком вялыми и болтающимися.
Читаемость
Следующее после интерактивности отличие игровой анимации от традиционной (по крайней мере, в трехмерных играх) заключается в том, что игровая анимация чаще всего рассматривается со всех сторон. Это напоминает традиционный принцип «сценичности», но ориентироваться приходится не на какой-то фиксированный вид, и «обмануть» камеру не получится. Действия нужно создавать так, чтобы они выглядели привлекательными со всех сторон. При работе над анимацией недостаточно показать движение только «спереди» или «сбоку». Игровые аниматоры должны наблюдать за своими персонажами с разных сторон и прорабатывать движения с разных ракурсов. В этом они уподобляются скульпторам, постоянно обходящим свои произведения в процессе работы.
Создание поз для игровых камер
Для большей привлекательности и читаемости того или иного действия лучше всего избегать движений, осуществляемых только по одной оси. Например, комбинация из трех ударов должна заставлять персонажа двигаться при атаке не только вперед, но и слегка вправо и влево. Точно так же и движения, которые персонаж совершает после каждого удара, не должны читаться только с одного направления – например, то, что ноги сгибаются, лучше показывать с разных сторон, а не только сбоку. Каждая поза должна быть динамичной, и линии действия персонажа должны проходить не строго по осям.
Линии действий – упрощенные линии, которые можно провести через любую позу, чтобы наглядно продемонстрировать общее движение. Сильные позы можно проиллюстрировать одной дугообразной или прямой линией, тогда как слабые и плохо продуманные позы, как правило, образуют менее заметные линии, которые извиваются и не сразу читаются зрителем. Сильно контрастирующие соседние позы (контрастных действий) с четкими линиями создают более читаемые движения, чем несколько одинаковых или слабых поз.
Что касается самих движений, то размашистые движения всегда читаются лучше прямых и однонаправленных (вроде удара ножом), потому что они образуют дугу, заметную для игрока независимо от угла камеры. Даже без эффекта «продолжения» размах проходит по нескольким осям (и, соответственно, читается с разных углов обзора камеры), поэтому даже если игрок смотрит не с самого удачного ракурса, он все равно получит представление о том, что происходит, особенно если персонаж резко меняет направление движения и принимает разные позы во время действия.
Как было сказано, всегда следует учитывать особенности конкретной игры. Если камера установлена сбоку, как, например, в файтинге один на один, то действия должны лучше всего читаться именно с этого ракурса. Аналогично, если вы создаете анимацию бега для игры с преимущественным видом сзади, то нужно убедиться в том, что цикл бега выглядит лучше всего именно с этого ракурса; только потом можно переходить к отладке движений с других точек зрения.
В игре League of Legends анимация выглядит невероятно зрелищной и сложной благодаря высоко расположенным камерам и экшену на экране. (Публикуется с разрешения компании Riot Games.)
Силуэты
На этапе разработки концепции персонажа аниматор должен участвовать в определении его внешнего вида, причем не только для того, чтобы избежать проблем с картонной и похожей на броню одеждой в ключевых узлах вроде плеч или талии. Аниматор также должен проследить за силуэтами персонажа в разных позах. Привлекательные силуэты значительно облегчают работу аниматора; работать всегда труднее, если персонаж состоит из набора плохо состыкованных между собой блоков или бесформенных трубок, играющих роль конечностей.
На ранних этапах разработки рекомендую запрашивать «предварительные» версии персонажей, создавать для них наброски анимации и рассматривать эту анимацию в контексте игровой камеры. В целях улучшения пространственного восприятия игрового процесса для камеры часто устанавливают широкое поле зрения, а это деформирует конечности персонажей по мере их приближения к краю экрана. В общем случае самыми привлекательными персонажами оказываются те, которые выглядят более грузными и толстыми, чем если бы они выглядели в реальной жизни, потому что они деформируются и растягиваются при взгляде с игровой камеры.
В игре Team Fortress 2 используются четкие силуэты персонажей, что значительно облегчает работу аниматора над привлекательностью. (Использовано с разрешения Valve Corp.)
Модели столкновений (коллижн-модели) и центр массы / точка равновесия
Как и в анимации в целом, в каждом конкретном кадре нужно учитывать положение центра массы (ЦМ; она же точка равновесия) персонажа, особенно при переходах, и не допускать неестественных движений при смешивании. Центр масс обычно располагается над ногой, на которую опирается персонаж в движении, или между ногами, если он стоит на земле в состоянии покоя. Знание основ баланса не только значительно облегчит разработку поз, но и позволит избежать случаев, когда многие движения с точки зрения игроков выглядят неестественно, хотя те и не могут понять почему.
Особенно это важно, когда дело касается коллижн-моделей (моделей столкновения) или средства определения местоположения персонажа в игровом мире. Центр массы – единственная точка, относительно которой персонаж будет вращаться во время движения, и, что важнее, она же определяет координаты персонажа в любой момент времени. Игровые аниматоры анимируют положение персонажа относительно трехмерной сцены, но при экспорте анимации привязываются к этой конкретной точке. Поэтому движения персонажей должны заканчиваться позами, которые согласуются с другими (например, позами покоя) относительно этой точки. Подробнее об этом будет рассказано в следующей главе.