Создание убедительных циклов – одна из самых сложных задач анимации, не в последнюю очередь потому, что игроки будут видеть их постоянно. Ниже приведены десять типичных ошибок, на которые следует обратить внимание при создании циклов, а также несколько полезных советов по поводу того, как их избежать.
1. Инверсная кинематика рук: используйте прямую кинематику для рук, которые просто качаются и не касаются ничего статичного; в противном случае придется менять позиции суставов вверх по цепочке вплоть, например, до базовой кости или позвоночника.
2. Скольжение ног: скорость движения ног должна соответствовать скорости движения вперед, иначе они будут скользить под персонажем.
3. Прерывистое движение ног: при касании земли во время цикла ноги движутся назад с постоянной скоростью. Любое отклонение от этой скорости приведет к эффекту скольжения. (Это проблема только для циклов с анимацией на месте.)
4. Чрезмерная асимметрия: если только персонаж не хромает, конечности должны двигаться одинаково и с постоянным ритмом 1–2. Ускорить процесс можно, анимировав сначала одну ногу, а затем скопировав анимацию на другую и сместив ее на полцикла.
5. Анимация только по одной оси: обязательно проверяйте свою анимацию, рассматривая персонажа с разных сторон, а не только спереди или сбоку. Начинающие аниматоры часто забывают, что персонаж должен двигаться не только вперед, но и из стороны в сторону, перенося вес с одной ноги на другую.
6. Линейное скольжение вперед: каждый раз, отталкиваясь ногой, мы набираем небольшой импульс до следующего отталкивания. Это должно отражаться в колебательном движении базовой кости вперед-назад.
7. Отсутствие наклона: мы идем или бежим, отталкиваясь ногой и как бы падая вперед, после чего выставляем другую ногу, которой будем отталкиваться в следующий раз. Отсутствие наклона вперед при движении вперед (или наклон назад) будет выглядеть неестественно, особенно на большой скорости.
8. Слишком большое вытягивание ног: инверсная анимация может иногда приводить к растяжению ног в крайних точках цикла. Проследите за тем, чтобы стопа при касании земли постоянно перекатывалась, и чтобы расстояние от нее до таза не растягивалось неестественным образом.
9. Недостаточная анимация движения ног назад: ноги после отталкивания отводятся назад и вверх, особенно в беге. Недостаточная анимация этого движения – распространенная ошибка, поэтому старайтесь это движение преувеличивать.
10. Широкие взмахи руками назад: еще одна распространенная ошибка – негнущиеся руки, откидывающиеся назад при циклическом движении. Следите за тем, чтобы руки во время бега были напряжены и смещались не более чем на один-два кадра относительно движения ног, так как они движутся практически синхронно.
Прыжки
Мир в играх, в которых большое внимание уделяется исследованию, часто не ограничивается одной плоскостью, и игроки ожидают, что в них можно будет перепрыгивать препятствия или подниматься на какие-нибудь уступы, а в некоторых случаях даже карабкаться по стенам и скалам, если это допускает дизайн игры. Таким образом, прыжки и лазанье – это распространенная система, разработка которой отчасти поручается игровому аниматору. Вместе с тем стремление сделать интерактивный мир более вертикальным сопряжено с целым рядом трудностей.
Как и в случае с передвижением по земле в игре, фактическое движение при прыжке может выполняться либо с помощью физических расчетов, либо с помощью заранее созданной анимации.
Если в первом случае анимация легче поддается настройке, то во втором случае она лучше соответствует действию и обычно создается так, как будто персонаж прыгает с высокого уступа и продолжает падать бесконечно, пока его движение не прервет какая-нибудь поверхность. Лучшее решение – это, как правило, сочетание обоих вариантов, когда аниматор создает анимацию на основе траектории прыжка (дуги), но дуга обрабатывается в игре с помощью кода.
Дуги
Дуга, или траектория, прыжка обычно представляет собой простую параболическую кривую, подобную кривой в классическом упражнении на анимацию с прыгающим мячом; однако ей можно придать определенный характер и улучшить «ощущение». Например, можно увеличить время зависания или сделать более резким приземление. Любая модификация обычной параболы повышает уникальность ощущений, получаемых от игры игроком.
Анимация прыжка обычно подразумевает цикл прыжка и приземления
Независимо от выбранных настроек дуги нужно следить за тем, чтобы позы игрового персонажа соответствовали его положению на траектории прыжка; так он должен выпрямляться при отталкивании, зависать в верхней точке (переворачиваться или совершать кувырок, если так задумано), затем спускаться с вытянутыми ногами и готовиться к приземлению в конце (на предполагаемом уровне поверхности).
Отталкивание
В традиционной анимации показывается предвосхищение, или подготовка к действию в виде приседания перед прыжком, но прыжок бывает таким частым действием в игре, что любая задержка перед ним может ощущаться как заторможенность или недостаток контроля со стороны игрока.
Здесь, опять-таки, можно воспользоваться преимуществами смешения и сжать первый кадр настолько, чтобы персонаж казался искаженным («сломанным»), если рассматривать этот кадр отдельно от других; при смешивании же этот кадр быстро переходит к текущему действию. Так благодаря смешению с предыдущим действием персонаж будет приседать в тот момент, когда он уже начинает прыжок. Создание невидимых «сломанных» поз и анимаций в целях смешения – еще один инструмент в инвентаре аниматора, позволяющий добиться правдоподобия без ухудшения «ощущения» или плавности.
Кадр с невидимой «сломанной» позой для перехода к последующим позам при смешении
Кроме того, сама анимация прыжка может в некоторой степени компенсировать недостаток подготовки за счет того, что такие перетягиваемые элементы, как руки, ноги и любые второстепенные объекты, в самом начале будут смешиваться с этой самой крайней позой, а не анимироваться в обратном направлении, отчего будет создаваться впечатление, что они продолжают движение из начальной точки.
Приземление
Приземление – это почти всегда отдельная анимация, которая прерывает прыжок при обнаружении земли и чаще всего допускает различные варианты столкновения с поверхностью в зависимости от того, насколько далеко упал персонаж (часто с гибелью после падения с определенной высоты).
В отличие от отталкивания, показывающего усилие персонажа перед прыжком, приземление показывает вес персонажа, и если вес никак не влияет на приземление, то нарушается правдоподобность физики мира. При приземлении может возникнуть сложный момент в виде потери контроля над персонажем, особенно если игрок хочет продолжить движение вперед. Для решения этой проблемы можно создать дополнительные анимации приземления при движении, например при ходьбе или беге, и, возможно, даже для смены направления при приземлении – так будет достигнута максимальная достоверность без потери реакции.
Частой проблемой, из-за которой анимация приземления теряет свою эффективность, бывает задержка в один-два кадра, когда персонаж касается земли, определяет касание и переходит от анимации падения к анимации приземления. Смешение всегда должно быть минимальным, но для достижения желаемого результата во время смешения можно, опять-таки, опустить персонажа ниже реально возможной позы. При работе над анимацией приземления обязательно следует сотрудничать с программистами, чтобы для максимального эффекта минимизировать задержки при обнаружении земли.
Программными средствами можно предусмотреть проверку лучей перед персонажем или под ним, тем самым заранее устанавливая точку приземления и заставляя персонажа реалистично вытягивать ноги. Предвосхищение действия можно использовать и в других случаях – например, перед столкновением со стеной на бегу, так что этот прием отлично повышает точность анимации во всем игровом мире.
Предвосхищение действия позволяет заранее плавно переходить к разным позам или игровым состояниям – например, запрыгивать на стену или перекладину или даже просто определить, с какой высоты должен будет спрыгнуть игрок, и подготовиться к соответствующему приземлению на колено, на живот или руки. В более реалистичной игре, в которой не предусмотрено контроля над игроком в воздухе, прыжки могут быть, по сути, предопределенными действиями, а обнаружение точки приземления может происходить во время отталкивания. Так можно воспроизводить совершенно разные типы прыжков – например, с разной высоты и разной длины, чтобы идеально подобрать нужный вариант и усилить иллюзию осознания персонажем окружающего мира.
Подъемы и лазание
Лазание отличается от прыжков тем, что высота объекта, на который нужно взобраться, известна почти всегда. Поэтому наиболее типичный способ работы с лазанием в играх – это создание набора предустановленных анимаций для всех высот, доступных для персонажа. Это, пожалуй, самый сильный аргумент в пользу стандартизации высоты и размера элементов окружения в игре, причем не только для корректной работы анимации, но и для того, чтобы игрок мог прочитать местность и понять, на какие элементы он сможет залезть, а какие слишком высоки.
Вариации высот и метрики
Как и в случае со смешиванием циклов анимации, анимации лазания с аналогичными параметрами можно смешивать друг с другом для реализации подъема на любую высоту, при условии, что эти анимации достаточно хорошо соответствуют друг другу. Пятьдесят процентов от подъема на 1 метр и пятьдесят процентов аналогичного подъема на 3 метра должны создать приличную анимацию подъема на 2 метра, хотя чем мельче разделение на высоты, тем лучше. Помните, что если анимации подъема на 1 метр и 3 метра отличаются существенно, то для охвата всех высот от 1 до 3 метров нам потребуется две анимации подъема на 2 метра, одна из которых соответствует 1 метру, а другая – 3 метрам.
1–2-метровая и 2–3-метровая высоты подъема со смешением параметро
Соображения по поводу коллижн-моделей
Если при прыжках коллижн-модели полезны для обнаружения земли, то при анимации подъема они становятся помехой, потому что часто не могут пересекаться с окружением, по которому поднимаются персонажи. Как правило, персонаж при этом очень сильно приближается к элементам окружения, которые пересекают границы типичного цилиндра, и чтобы он не застрял, коллижн-модель приходится анимировать отдельно. Можно во время подъема отключать коллижн-модель, но это рекомендуется не всегда, особенно если действие можно будет прерывать; в таком случае после того, как коллижн-модель будет снова включена, персонаж застрянет внутри геометрии окружения.
Точки среза (склейки) и ключевые позы
Снизить объем работ можно, разрезав анимацию на составные части таким образом, чтобы на каждую определенную высоту подъема приходилась определенная поза – например, с поднятым коленом, – из которой можно сделать различные концовки или переходы. Приземление на колено, например, можно использовать и для анимации соскальзывания с карниза, после которого персонаж будет снова подниматься. Одни и те же позы, подходящие для различных систем, позволяют сократить объем работы в целом и поддерживают визуальную последовательность.
Выравнивание
Ключевая особенность анимации лазания по сравнению с другими менее строгими системами навигации состоит в том, что в определенных кадрах отображается точное касание персонажа точек окружения. Если руки персонажа не совсем точно обхватывают перекладины лестницы, то это выглядит так же неудачно, как и тогда, когда персонаж неправильно стоит перед стеной, которую должен перелезть, и пересекается с ней. Чтобы решить эту проблему, следует не только разрабатывать анимации с учетом стандартных метрик окружения, но и предусмотреть проверку выравнивания персонажа с окружением в реальном времени с соответствующим вращением и передвижением.
Точное положение и ориентация лестницы или другого препятствия (или, скорее, смещение от него) относительно коллижн-модели персонажа должны быть приняты уже в сам момент перехода персонажа к анимации подъема – так можно предусмотреть выравнивание точек контакта. Для менее четких препятствий, таких как длинные стены, на которые можно залезть в любой точке, или карниз скалы, с которого свисает персонаж, эти элементы окружения обычно помечаются как «доступные для подъема» по всей их длине.
Такая разметка мира улучшает способность персонажа определять возможности для специфичных анимаций, таких как анимация подъема, но ее можно использовать и для других действий, таких как открывание двери, благодаря чему повышается степень интерактивности при взаимодействии с миром.