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

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

Столь важная анимация ожидания

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

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

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

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

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

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

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

Бесшовные замкнутые циклы ходьбы/бега

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

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

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

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


Поза касания земли (слева) и поза переноса ноги (справа)


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


«Дерганье» может возникнуть даже из-за несовпадения начальной и конечной касательных

Отличное подспорье в отслеживании и устранении «дерганья» циклов – отображение кривых до и после ключевых кадров на графике. В графическом редакторе Maya это можно сделать, выбрав в меню View > Infinity, затем Curves > Pre Infinity > Cycle и Curves > Post Infinity > Cycle.


Чтобы одно движение перекрывало другое, касательные настраиваются так, чтобы одна кривая пересекала другую

Анимация с перемещением и на месте

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

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

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


На верхнем уровне управления задается обратная скорость движения, соответствующая скорости движения персонажа вперед

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


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

Наклоны, повороты и экспоненциальный рост

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

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

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

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

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

Стрейф

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


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


Цикличная анимация допускает удачное смешение только с аналогично синхронизированными движениями. Движение вперед может смешиваться с бегом «вперед» под углом 90 градусов, а движение назад – только с бегом «назад» под тем же углом.

Так как движение вперед и движение назад смешиваться не могут (по сути, они отменяют друг друга), то в какой-то момент нужно переключаться с одного на другое.

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


Пересекающиеся зоны стрейфа с движениями вперед и назад за пределами углов в 90 градусов


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

Старт, остановка и другие переходы

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

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

Начало движения, или «старт», можно также значительно улучшить, предусмотрев различные варианты для разных направлений со смешением между ними. Как и в случае со стрейфом два разных варианта охвата с углом в 180 градусов станут органично смешиваться без швов, если движение вправо будет начинаться с правой ноги, и наоборот.


Радиус охвата «стартов» в различных направлениях


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

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

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

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

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

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

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

Десять распространенных ошибок при создании циклов ходьбы/бега