Последние несколько недель проекта будут посвящены работе над (предположительно, уменьшающимся) списком ошибок, передаваемым вам отделом по контролю за качеством и другими специалистами. Цель отладки – не только выявить как можно большее количество ошибок и обеспечить стабильное состояние игры, но и проследить за отсутствием заметных визуальных глюков в анимации. Ниже описаны наиболее распространенные ошибки анимации, на которые следует обратить внимание в первую очередь, а также дается несколько советов о том, на чем следует сосредоточить усилия по отладке и исправлению ошибок на завершающих этапах проекта.
Скольжение ног
Иногда бывает так, что ноги персонажа не фиксируются на земле и выглядят «плывущими» над ней, что сильно снижает связь персонажа с игровым миром. Исправление такой ошибки в отдельной анимации – это просто визуальная задача, но чаще всего этот эффект наблюдается либо при несовпадении скорости перемещения персонажа и скорости анимации во время, например, цикла бега, либо при плохом смешении, в результате чего ноги при прямой кинематике переставляются независимо от перемещения по земле.
В первом случае можно обойтись без решения и просто подкорректировать скорость перемещения персонажа в игре. Если же скорость изменилась в результате настроек дизайнера, аниматор должен ввести новые значения в программу DCC и проследить за тем, чтобы анимация соответствовала им (не забыв после этого удалить модификацию дизайнера).
Последний случай гораздо сложнее. Каждый случай уникален, но обычно эффект возникает при смешивании двух анимаций, когда само смешивание порождает заметное неуклюжее движение, отвлекающее от исходной анимации. Например, если в позе ожидания левая нога выставлена вперед, но цикл бега начинается с поднятия левой ноги, а не правой, из-за этого левая нога может при смешении с движением бега сначала двинуться назад, что нежелательно.
Решение состоит в том, чтобы начинать цикл бега с поднятия правой ноги, и тогда в смешивании будет учитываться движение правой (задней) ноги вперед на протяжении всех кадров смешивания при переходе персонажа из состояния покоя в состояние бега. При смешивании необходимо учитывать движение конечностей и т. д. на протяжении всего смешивания. По сути, при смешивании мы создаем отдельную анимацию между двумя «позами».
Переход от позы ожидания к бегу со скольжением ног при смешении
«Дерганье»
Эффект, выражаемый в том, что персонаж заметно перескакивает через один или несколько кадров, из-за чего нарушается плавность. Опять же, он легко устраним в рамках одной анимации, но чаще возникает между анимациями.
Что касается разных анимаций с довольно отличающимися друг от друга позами, то, как правило, эффект объясняется недостаточно продолжительным смешением. Непродолжительное смешение, скорее всего, связано с геймплейными целями, поэтому старайтесь использовать более длинные смешения или переходы с возможностью предварительного восстановления контроля над персонажем с помощью флагов прерывания или смешения частей тела, о чем говорилось выше. Если ни один из этих способов не помог, обратитесь к программистам или техническим аниматорам; возможно, проблемы порождает какой-либо процесс, выполняющийся в фоновом режиме. Если вы не можете сразу определить причину ошибки, всегда лучше сначала спросить, а не просто переадресовать ее кому-то другому, поскольку в этом случае ответственность может лежать на вас.
Точки контакта
Во время кат-сцен и прочих моментов, когда камера находится близко к персонажу, уровень достоверности должен повышаться. Если во время быстрых боевых действий руки персонажа при броске могут слегка парить над плечами врага, то в кат-сцене руки, снятые крупным планом и опирающиеся на стол, должны идеально совпадать с поверхностью стола, иначе это покажется неестественным.
Естественно, лучше всего с этой задачей справляется инверсная кинематика, и в зависимости от сложности рига и желаемой визуальной достоверности при необходимости можно использовать настройки инверсной кинематики для отдельных пальцев. Однако наиболее универсальное решение – «привязки» одного объекта к другому на протяжении нескольких кадров. Например, если рука одного персонажа несколько кадров касается плеча другого, прикрепите локатор или аналогичный инструмент к плечу второго персонажа и используйте его для привязки или ограничения положения руки на время контакта.
Пальцы в точках контакта до и после отладки
Если во время производственной стадии часто встречаются такие задачи, как совмещение рук с оружием или другими объектами, попросите техническую команду автоматизировать этот процесс или создать инструмент, который позволит делать эти задачи быстрее. То же относится к любым повторяющимся действиям, которые могут автоматизировать технические аниматоры.
Непостоянство импульса
Часто при анимации игрового персонажа бывает заметной неприятная особенность, когда персонаж, допустим, бежит на полном ходу к препятствию, а затем, перепрыгивая через него, заметно снижает скорость в момент начала прыжка. После создания всех игровых систем необходимо полностью просмотреть все анимации, чтобы убедиться в их согласованности и сохранении импульса между действиями. Если действие может выполняться с разной скоростью, то следует продумать уникальные варианты или переходы между действиями для каждой скорости.
Частый пример – приземление после прыжка или падения с высоты, когда игра должна определить момент столкновения с землей и прервать анимацию падения. Если смешение слишком длинное, то удар о землю будет восприниматься как слишком мягкий, но чаще всего анимация задерживается на кадр-другой, так что персонаж визуально как бы замирает, прежде чем начать наземную анимацию. Подобные моменты можно обнаружить, включив замедленное воспроизведение в движке, если такая функция доступна, или, что еще лучше, с помощью покадрового перемещения во время игры – оба этих инструмента движка необходимы для окончательной отделки анимации.
Пересечение элементов
Довольно частая ошибка в неотлаженных играх – пересечение трехмерных элементов, будь то попадание персонажей в объекты окружения («застревание») или, что более характерно, пересечение конечностей персонажа с его телом – оба эти явления нарушают погружение в игру и делают ее недостаточно аккуратной на вид.
Неправильное размещение оружия, из-за которого оно застревает в руке
Некоторая степень пересечения допускается, когда вид персонажа можно настраивать (например, облачать его в разные доспехи и предметы одежды) или когда анимация используется совместно для нескольких персонажей, особенно разного размера. Однако ее можно свести к минимуму, создавая отдельные анимации для более крупных и объемных персонажей и учитывая переменные размеры в позах ожидания и т. д. (где пересечение бывает более продолжительным и заметным) с небольшим отводом рук от тела. Также следует обращать внимание на расположение оружия или других предметов на персонаже с учетом возможного его пересечения с руками; талию и бедра рекомендуется оставить свободными, а оптимальный вариант – держать оружие за спиной.
Для «пересекающихся» элементов одежды, таких как высокие воротники, которые могут застревать в шее или в голове, можно использовать настраиваемый риггинг, однако настройку придется делать в реальном времени, если только не предварительно запекать для каждой анимации.
Отличный способ предусмотреть возможность исправления ошибок (при условии наличия времени), за которые ответственны лично вы, – это заранее составить список проблем, зависящих от вас, и внести их в общий список с указанием вашего имени. В противном случае у вас, скорее всего, не получится вносить изменения в игру без соответствующего задания на исправление ошибок.
Избирательная («точечная») отладка
Почему бы не производить отладку всего? Потому что тысяча анимаций, одинаково «отполированных» до хорошего уровня, обладают гораздо меньшей ценностью, чем около сотни анимаций, встречаемых в игре постоянно, но «отполированных» до отличного качества. Сосредоточиваться в первую очередь следует на том, что игрок видит чаще всего, и от чего сильнее зависит восприятие игры в целом. Если основной геймплей вашей игры сосредоточен на рукопашном бое, то именно на рукопашный бой и следует направлять свои усилия. Если особенность игры – это сюжет, то, возможно, главной целью должны стать мимика и другие актерские движения и системы.
Понимание того, что является ключевым для игры, – это огромная часть роли руководителя или директора анимации. Какие характерные движения, какие самые яркие приемы будут вновь и вновь повторяться на протяжении всей игры, став синонимом самой игры или игрового персонажа? Доведя их и соответствующие системы до безупречного состояния и сделав запоминающимися, вы создадите у игрока впечатление качества в той области, которая имеет наибольшее значение.
Если в игре имеется некая сюжетная линия, по которой игрок должен пройти, чтобы «закончить» игру, то такая линия называется «критическим путем». Анимации можно использовать везде, в любом месте и независимо от локации, но анимации кат-сцен или анимации окружения, связанных с критическим путем, всегда должны иметь приоритет перед анимацией необязательного побочного контента. Важно, однако, не проводить избирательную отладку настолько, чтобы образовывалась целая пропасть, из-за которой необработанная анимация будет выглядеть гораздо хуже обработанной.
«Критический путь», указывающий на элементы, требующие доработки в первую очередь
Управление памятью и сжатие данных
Один из самых напряженных периодов разработки начинается ближе к концу проекта, когда представители разных дисциплин стараются как следует собрать воедино все свои данные, такие как анимация, художественное оформление уровней, звуки и тому подобное. Скорее всего, для игры будут поставлены какие-то ограничения по объему памяти. Игровые проекты обычно устанавливают объем памяти для каждого отдела в начале проекта, в зависимости от потребностей и важности каждой сферы для достижения конечного результата. С каждым поколением консолей объем выделяемой командам памяти растет, но мы всегда находим способы заполнить его под завязку, поэтому всегда полезно работать эффективно.
Для решения проблемы памяти игровые движки используют различные алгоритмы сжатия и другие методы, благодаря которым анимация выполняется с минимальными затратами памяти, сохраняя при этом максимально возможное качество. Однако в конечном счете это компромисс между памятью и качеством, поэтому настоятельно рекомендуется следить за памятью на протяжении всего проекта, а также заранее продумать план сжатия на завершающих этапах.
Во многих играх вместо выбора областей для большего или меньшего сжатия или вместо возможности пользовательских настроек используется общее значение сжатия для всей анимации, в результате чего в играх с большим количеством анимации иногда наблюдаются рывки и подергивания, даже на важных ассетах с высокой степенью отображения.
В зависимости от движка, идеальная настройка позволяет техническим аниматорам задавать типы сжатия (а не только процентные значения) для отдельных анимаций или групп анимаций в зависимости от типа действия. Например, в простых статичных действиях (в положении стоя) можно предотвратить скольжение ног, предусмотрев более высокую точность для ног, в то время как в движениях с двуручным оружием выгоднее использовать более высокое качество для рук, чтобы объект не «плавал» в них.
Исходные кривые без сжатия и те же кривые после сжатия
Таким образом, настройки пресетов сжатия можно менять для освобождения памяти, сохраняя при этом повышенный уровень качества более важных элементов, благодаря чему еще больше улучшается общее восприятие плавности и качества. Если же такое средство недоступно, то проследите за тем, чтобы учитывать в своей работе вопрос памяти постоянно, а не только в последние дни непосредственно перед отправкой игры, чтобы избежать панического снижения качества по всем параметрам.