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

В игре Team Fortress 2 используются четкие силуэты персонажей, что значительно облегчает работу аниматора над привлекательностью. (Использовано с разрешения Valve Corp.)
Модели столкновений (коллижн-модели) и центр массы / точка равновесия
Как и в анимации в целом, в каждом конкретном кадре нужно учитывать положение центра массы (ЦМ; она же точка равновесия) персонажа, особенно при переходах, и не допускать неестественных движений при смешивании. Центр масс обычно располагается над ногой, на которую опирается персонаж в движении, или между ногами, если он стоит на земле в состоянии покоя. Знание основ баланса не только значительно облегчит разработку поз, но и позволит избежать случаев, когда многие движения с точки зрения игроков выглядят неестественно, хотя те и не могут понять почему.
Особенно это важно, когда дело касается коллижн-моделей (моделей столкновения) или средства определения местоположения персонажа в игровом мире. Центр массы – единственная точка, относительно которой персонаж будет вращаться во время движения, и, что важнее, она же определяет координаты персонажа в любой момент времени. Игровые аниматоры анимируют положение персонажа относительно трехмерной сцены, но при экспорте анимации привязываются к этой конкретной точке. Поэтому движения персонажей должны заканчиваться позами, которые согласуются с другими (например, позами покоя) относительно этой точки. Подробнее об этом будет рассказано в следующей главе.
Контекст
Если в линейной анимации контекст любого действия определяется сценой, в которой это действие происходит, а также тем, что происходило по сюжету до этого момента и тем, что будет происходить в дальнейшем, то в игровой анимации это не так. Нередко аниматор не имеет четкого представления ни о том, в какой момент игровой персонаж будет совершать это действие, ни о том, в какой обстановке он будет действовать. Часто одно и то же действие совершается в разных условиях и даже разными персонажами.
Отличительность и однородность
Так как для большинства анимаций точный контекст неизвестен, аниматор должен стараться по возможности придать игровым и неигровым персонажам индивидуальный характер, но также должен понимать, когда это бывает нежелательно.

Движения игровых персонажей в сравнении с движениями неигровых, как правило, отличаются повышенной точностью, достоверностью и большей проработанностью. (Copyright 2007–2017 Ubisoft Entertainment. Все права защищены. Assassin's Creed, Ubisoft и логотип Ubisoft являются товарными знаками Ubisoft Entertainment в США и/или других странах.)
Например, если известно, что определенный цикл бега предназначен только для одного конкретного персонажа, то аниматор может придать ему максимум индивидуальности в соответствии с описанием этого персонажа. Еще лучше будет создать несколько циклов бега для этого персонажа в разных ситуациях. Допустим, сначала персонаж силен и уверен в себе, но затем терпит поражение и впадает в уныние. Или же в одних случаях он гонится за кем-то, а в других убегает от катящегося валуна, который вот-вот раздавит его. Степень отличий в анимации движений зависит от того, насколько известен контекст, в котором происходят эти движения.
Если же анимация предназначается не для игрового персонажа, а для нескольких неигровых (NPC), то уровень отличий, как правило, не должен быть высоким, чтобы они не выделялись. Их походка и бег должны выглядеть как можно более шаблонно, если только анимация не предназначена для какой-то отдельной группы NPC (солдаты, например, могут бегать не так, как гражданские). Игровой же персонаж почти всегда уникален среди прочих обитателей игрового мира, и его уникальность должна отражаться в анимации.
Повторение
Что касается циклической анимации, то если предполагается, что действие может потенциально повторяться бесконечно – например, в режиме ожидания или бега, – то отдельные шаги или взмахи рук не должны выделяться на фоне остальных. В противном случае ритм повторения будет слишком очевидным для игрока – например, если на каждом четвертом шаге персонаж будет слегка подпрыгивать.

В игре Uncharted: Drake's Fortune используются дополнительные позы, позволяющие избежать повторений при нахождении в укрытии. (Публикуется с разрешения Sony Interactive Entertainment.)
Вместо этого можно подчеркнуть индивидуальность, добавив «дополнительные» действия к основному циклу или «прерыватели цикла» – например, когда персонаж переставляет ногу после длительного стояния, слегка спотыкается от усталости после долгого бега или потягивается – более подробно это рассматривается в следующей главе «Что нужно знать».
Отображение действия на экране
Степень преувеличения движений определяется таким ключевым фактором, как относительный размер персонажа на экране, зависящий от расстояния до камеры и поля зрения. По мере приближения камеры к персонажам точность прорисовки увеличивается, но игроки при этом все равно должны видеть большую часть окружения, поэтому во многих играх персонажи бывают довольно маленькими. Дальнее расположение камеры требует преувеличенности действий по сравнению с реальной жизнью, чтобы эти действия хорошо читались.
То же самое можно сказать и о действиях противника, находящегося на большом расстоянии – например, это касается анимации получения урона; игрок должен четко понимать, что попал в цель. И наоборот, только очень близкое к персонажу расположение камеры (например, в кат-сценах) позволяет передавать такие тонкости, как мимика; в таких случаях излишняя театральность будет выглядеть неуместно. Для игрового аниматора важно знать, какая камера используется для анимации того или иного действия, и создавать анимацию в соответствии со стилем проекта. Широкий угол обзора игровой камеры может даже настолько исказить персонажа, что это повлияет на внешний вид анимации, поэтому лучший способ оценить конечный вид, как и всегда, – это посмотреть на него в игре.
Изящество
Игровые анимации редко проигрываются сами по себе; их запуском руководят игровые системы, запускающие их и чередующие по команде игрока. При этом они часто плавно смешиваются, накладываются друг на друга и комбинируются, показывая несколько действий одновременно. Игрок при этом не задумывается, какие отдельные анимации отображают действия его аватара.
Если аниматор не разрабатывает эти системы сам, то в его обязанности входит совместная работа над этими системами и их воплощением в жизнь. Эффективность любой системы оказывает существенное влияние на производство и способность вносить изменения, особенно ближе к концу проекта. Как хорошо анимированный персонаж демонстрирует эффективность движений, так и хорошая, удачно разработанная система способна создавать настоящие чудеса.
Простота дизайна
Промышленный дизайнер Дитер Рамс, сформулировавший десять принципов хорошего дизайна, в качестве последнего принципа утверждал, что хороший дизайн предполагает «как можно меньше дизайна» и проработку только самых существенных аспектов. В хорошей системе анимации также не должно быть слишком много дизайна, потому что при увеличении масштаба проекта многократно возрастает и количество анимаций до сотен и даже тысяч.
Каждый уникальный аспект игрового процесса, связанный с персонажем, требует какой-то системы воспроизведения анимации, от передвижения по миру до боя, прыжков и лазания, разговоров, диалогов и тому подобного. Игровой аниматор должен помогать разрабатывать такие системы анимации для воплощения в жизнь каждого элемента управления персонажем, и часто стремление создать как можно больше анимаций вступает в конфликт с реалиями производства, такими как продолжительность проекта и бюджет.

В игре DOOM для визуального контроля использовалась анимация повреждений всего тела, а не отдельных его частей. (DOOM® Copyright 2016 id Software LLC, ZeniMax Media company. Все права защищены.)
К счастью, существует множество приемов, позволяющих команде максимально использовать потенциал анимации, таких как повторное использование и совместное использование, наслоение и комбинирование анимаций для создания множества вариантов, а также оригинальные решения по смешиванию, позволяющие повысить плавность без необходимости учитывать абсолютно все возможные варианты перехода. Самое простое решение – воспроизводить анимации последовательно, но это редко дает плавные и приятные визуальные эффекты. Наиболее разумный подход – это сочетание анимаций в игровом движке и попытки получить максимальную отдачу от анимаций, на которые у команды есть время. Некоторые из возможных системных решений мы рассмотрим в следующей главе.
Максимальная отдача
Как и в случае с совместным использованием анимации, продуманный выбор на этапе проектирования позволяет повысить эффективность работы, ведь аниматорам не придется искать уникальные решения для каждой новой системы. Например, хорошо продуманную систему открывания дверей можно расширить до взаимодействия с ящиками. При разработке любой системы следует учитывать возможность ее использования и для каких-то других целей.
Правильный подход к проектированию системы позволит получить максимальное качество движения при минимальных затратах. Следует подчеркнуть, что каждая новая анимация требует затрат времени и труда не только для создания, но и для последующей модификации в течение нескольких итераций, а также отладки к концу проекта. Любой ассет умножается на количество этапов разработки, поэтому отказ от добавления, допустим, двадцати новых анимаций позволяет не только сократить расходы, но и добавить в игру больше объектов. (Вместе с тем, если бюджет позволяет, то иногда самый простой способ – это создать как можно больше анимаций.)
Совместное использование и стандартизация
Как уже говорилось, важно знать, когда анимации могут быть общими для разных объектов, а когда уникальными для каждого. Если игровой персонаж должен взаимодействовать с множеством разных объектов, то имеет смысл стандартизировать размеры этих объектов, чтобы для них подходила одна и та же анимация.
То же касается и размеров игрового мира: если персонаж перепрыгивает через разные объекты по всей игре, то имеет смыл стандартизировать высоту этих объектов, чтобы для них работала одна и та же анимация. Заодно игрок будет лучше ориентироваться в схеме уровня и понимать, через что его персонаж сможет перепрыгнуть, а через что не сможет.
Однако если геймплей в основном заключается в подбирании предметов или в перепрыгивании через объекты, то, возможно, стоит уделить больше внимания уникальным анимациям, чтобы выделить именно этот аспект и потратить меньше усилий на другие. Это опять же вопрос соотношения цены и качества и осознания того, что важно для каждой отдельной игры.
При разработке систем для вашей игры следует учитывать все возможные варианты, потому что далеко не все команды могут позволить себе создавать уникальные анимации для каждой игровой ситуации. Вместе с тем даже один человек может создать прекрасную игровую анимацию, если он сосредоточится на какой-то одной особенности и очень хорошо ее реализует. В этом и заключается суть хорошего дизайна. От умных и изящных решений выигрывает каждый аспект разработки, независимо от типа игры.

В игре Gears of War использовались разные наборы анимаций для высоких и низких укрытий. (Copyright Microsoft. Все права защищены. Публикуется с разрешения корпорации Microsoft.)
Глава 5
Что нужно знать
Основные понятия игровой анимации
Каждый игровой аниматор должен знать об основах создания и внедрения персонажа в игру и о том, как приступать к созданию таких анимаций для видеоигр, от которых игроки будут получать удовольствие, управляя персонажами.
Распространенные виды игровой анимации
Чтобы понять, как разные виды игровой анимации сочетаются в целом, нужно для начала разобраться, для чего нужен каждый вид и как он помогает передавать движения персонажа. Плавность персонажу придают три основных вида анимации, которые определяются не только тем, как они начинаются и заканчиваются, но и тем, что в них происходит.
Циклы
Чаще всего, пожалуй, используются циклы, названные так потому, что их начальный и конечный кадры совпадают при сохранении скорости, благодаря чему создается впечатление бесконечно повторяющегося движения, которое воспроизводится, пока его не прервет другая анимация. Самые распространенные примеры – это состояние покоя (когда, например, персонаж стоит и относительно «ничего» не делает) или ходьба/бег (когда игрок дает персонажу команду передвигаться и персонаж передвигается по игровому миру с определенной скоростью).
В хорошо созданном цикле движение плавно возвращается к своей начальной точке так, что зритель не знает, где точно этот цикл начинается и заканчивается. Для этого не только должны совпадать конечная и начальная позы, но и не должно присутствовать никаких резких рывков и скачков. Кривые анимации не должны содержать резких ступеней (перепадов вверх или вниз), а касательные кривых должны совпадать в начале и конце.
Точно так же все движения разных элементов не должны заканчиваться в одном и том же кадре, как бы плавно они ни изображались, потому что в целом это нарушает плавность всего цикла. Чем больше будет перекрытий движений различных частей тела или деталей одежды, тем лучше замаскируется экспортируемый конечный кадр.
Наконец, нужно проследить за тем, чтобы ни одна часть цикла не выделялась на фоне остальных, иначе игрок невольно будет распознавать повторы в цикле – например, если какой-то жест воспроизводится ярче остальных. Однородность важнее отличий, и многое зависит от стиля проекта и конкретного персонажа, для которого создается анимация.
Линейные действия
Линейное действие – это однократная анимация, имеющая четкое начало и конец и обычно переходящая в позу покоя или начинающаяся с нее; при этом в силу своей однократности она не требует особой плавности. Самые частые и востребованные примеры – анимации движений по нажатию клавиши или кнопки контроллера, такие как прыжки, удары или взмахи мечом. Они прерывают текущее состояние персонажа и по завершении возвращают его в предыдущее состояние.
Особое внимание следует уделить резкому переходу от той позы цикла, в которой линейное действие прерывает цикл, и возвращению к этой позе сразу же после того, как игрок перестает подавать команду действия.
Важно отметить, что у игрока часто не бывает возможности прервать действие на середине, после того как команда уже подана, поэтому это обстоятельство также следует учитывать при разработке любого линейного движения.

У атаки мечом с размахом есть определенные начало и конец
Переходы
Этот вид анимации часто считается второстепенным, но придает плавность движениям персонажа и помогает художественно оформить переход от одного действия к другому. Переходы обычно бывают короткими и показывают правильное смещение веса между движениями с сохранением положения ног.
В самых простых играх, например при поступлении команды от игрока, цикл покоя просто прерывается циклом ходьбы/бега с небольшим смешиванием кадров, но гораздо лучше будет создать анимацию перехода к первому кадру цикла ходьбы/бега – например, показать, как персонаж сначала наклоняется в нужном направлении.
Еще более высокой точности можно добиться, создав несколько анимаций перехода к движению в разных направлениях, в каких только может двигаться персонаж; при этом аниматор может проконтролировать необходимый угол разворота и изменение импульса во время перехода. Как видно, количество переходов, необходимых для придачи персонажу плавности, может быстро увеличиться многократно, поэтому повышенное внимание им уделяют только в играх с большим бюджетом.
Скелеты, риги и экспорт в игру
Подобно тому как в традиционной кукольной анимации используются модели с жесткими скелетами, позволяющими придавать персонажам различные позы, многие программы 3D-анимации (а в последнее время и многие пакеты для 2D-анимации) предусматривают привязку отдельных элементов персонажа к внутреннему скелету. В самом простом виде углы разворота и координаты этих элементов экспортируются покадрово в игровой движок, который воспроизводит заранее позы и тем самым создает анимацию персонажа.

Игровые движки часто читают лишь экспортируемый скелет
3D-анимация по своей сути – это набор значений для поворотов и передвижений «суставов» скелета, от которых, в свою очередь, зависит перемещение вершин в трехмерном пространстве, создающее иллюзию движения персонажа. Если заниматься анимацией достаточно долго, то рано или поздно можно прийти к мнению, что все движения в окружающем мире можно описать с помощью чисел, и это открывает большие возможности. Как только будет приоткрыта завеса, скрывающая внутренний механизм движений, то с этими числами можно сделать гораздо больше, чем допускают простые манипуляции 3D-пакета.
• Сглаживание чисел при переходе от одной анимации к другой позволяет создавать эффект «сглаживания», то есть более плавного перехода между последовательными действиями.
• Складывание чисел, или так называемая аддитивная анимация, позволяет воспроизводить одно и то же движение (например, дыхание) поверх других. Этот прием должен уже быть знаком всем, кто занимается анимацией при помощи слоев DCC, так как принцип у них один и тот же.
• Вычитание чисел позволяет удалять позы, что также используется в аддитивной технике при объединении нескольких сложных анимаций.
• Экспорт или воспроизведение только нескольких отдельных значений позволяет анимировать отдельные элементы, такие как верхняя часть тела или руки. Так можно заставлять персонажей стрелять из оружия и перезаряжать его на бегу с использованием общей анимации бега.
• Варьирование числовых показателей в процентном отношении позволяет регулировать движение отдельных элементов: например, отображать мелкие движения рук или наклоны позвоночника.
Конечно, все математические вычисления выполняет игровой движок, но общее представление о принципах этих вычислений и о том, как меняются значения во время анимаций и между ними, позволяет глубже осознать основные принципы анимирования. Увлекающиеся своим делом аниматоры находят новые интересные способы делать много высококачественных анимаций через разумное сочетание и переиспользование анимаций.
Независимо от того, сколько ключевых кадров используется в каждом конкретном файле анимированной сцены, вся анимация экспортируется в игру с частотой кадров, установленной для всего проекта, – чаще всего 30 кадров в секунду, хотя в последнее время становится нормой частота 60 кадров в секунду. Затем движок игры в реальном времени осуществляет линейную интерполяцию между этими кадрами. Наилучшие результаты дает воспроизведение анимации на полной частоте кадров, но для экономии памяти анимацию часто сжимают (хотя сейчас по мере увеличения доступной памяти сжатие не такое уж радикальное), сохраняя только каждый второй кадр или меньше – в зависимости от алгоритма сжатия. Слишком сильное сжатие может заметно уменьшить плавность по сравнению с исходной анимацией, созданной в специальной программе, поэтому с ним лучше не переусердствовать.
Несмотря на то, что сами аниматоры при создании трехмерной анимации ориентируются на вращения в трехмерной системе координат по осям X, Y и Z (так называемые углы Эйлера или значения Эйлера, названные в честь описавшего их математика), игровой движок оперирует «кватернионами». Математические операции при этом требуют четырех значений, и каждое вращение описывается поворотом относительно каждой оси (для летательных аппаратов они, например, называются «рысканье», «тангаж» и «крен»), но для аниматора это слишком заумно, и ключевые показатели описываются углами Эйлера.
Серьезный недостаток такого переноса – так называемое складывание рамок, когда объект, например кость скелета, разворачивается по одной оси так, что две другие оси совпадают и делают объект нерегулируемым.

Анимационный риг, наложенный поверх скелета
При экспорте значений скелетов важно помнить, что аниматоры обычно не манипулируют напрямую скелетом, а используют накладываемый поверх него риг. Благодаря этому удается использовать все трюки и инструменты программ наподобие Maya – например, переключаться между локальным и глобальным вращением, – а также работать со сложными инструментами, такими как «инверсная кинематика» (Inverse Kinematics, IK).
Эти аспекты подробно рассматриваются в главе 8, «Ваш проект: техническая анимация», но будет полезно знать ограничения конкретного игрового движка и его особенности считывания скелетной анимации при экспорте в игру. Эти знания помогут вам настроить любую анимационную сцену или персонажа, над которым вы работаете, так, чтобы получить наилучшие результаты в зависимости от сложности работы.
Бесплатный фрагмент закончился.
Начислим
+20
Покупайте книги и получайте бонусы в Литрес, Читай-городе и Буквоеде.
Участвовать в бонусной программе