Блин, опять правки по проекту в 3 часа ночи прислали…
Добрый день, дорогие хабражители!
Много ещё тем отделяют нас от полного понимания мироустройства игр. Много тонкостей, подходов и нюансов. Однако с каждым шагом мы становимся чуть ближе к этой заветной цели. На очереди у нас ещё одна сложная тема, которую я попытаюсь изложить максимально доступно. Речь пойдет об анимациях.
Пост рассчитан на тех, кто еще только знакомится с тонкостями игровой инженерии, и поэтому некоторые понятия специально подаются утрировано для понимания сути процесса. В тексте будет много упоминаний программ, сайтов и сервисов, а также игр и разработчиков игр. Не сочтите это за рекламу. Также в тексте будут встречаться скриншоты, схемы строения, рендеры моделей и текстуры из различных игр. Это иллюстративный материал, приведенный в качестве примера. Все права на модели и их текстуры из игр принадлежат разработчикам и издателям этих игр. Мои личные модели и анимации будут специально отмечены. |
Жизнь в движении
Само слово «анимация» отсылает нас к греческому «анима» что значит «душа». Да, английское animal имеет то же происхождение. И долгое время человечество могло только мечтать о том, чтобы вдохнуть жизнь в свои произведения искусства, одушевить их. Причём происходить это начало задолго до того, как человечество изобрело письменность!
Сначала люди переставляли фигурки (вспомните, как сами играли с фигурками динозавриков или куклами Барби), отбрасывали на стены пещеры тени, заставляли колебаться шкуры с нарисованными на них зверями и сценами охоты. Потом рисовали своеобразные «раскадровки» — последовательные картинки, описывающие одну цельную историю. Таковы, например, египетские и шумерские росписи.
Позже в нескольких уголках мира независимо появились так называемые марионеточные представления и их разновидности — «театры теней» и им подобные, а также всякие зрительные иллюзии, наподобие птички в клетке. Ещё позднее люди придумали аниматроников. Но об этом в другой раз.
В 1830-х годах появился Фенакистископ. Изобретение Иозефа Антуана Плато (1801-1883) состояло из двух дисков, вращающихся по одной оси. Через отверстия в первом из них просматривались рисунки на втором, и при быстром вращении картинки сливались в непрерывно движущиеся короткие сюжеты. По сути, бельгийский физик стал прародителем гифок.
И только с изобретением и массовым распространением бобин в конце позапрошлого века начало развиваться такое направление визуального творчества как анимация.
Виды анимации
Сколько существует видов изобразительного искусства, столько же, вероятно, есть и различных видов анимации. Или даже больше, ведь с развитием цифровых технологий появляются всё новые и новые способы обработки изображений. И ненамного меньше существует всевозможных классификаций по различным признакам и техникам.
Остановимся на «классическом» типе разделения: анимация бывает двумерной и трехмерной.
Двумерная анимация (2D) соответствует 2D-пространству и произведениям (картинкам, мультипликации, играм) имеющим всего два измерения. У 2D-анимации нет объёма как такового, хотя специальные визуальные эффекты могут в какой-то степени имитировать объёмность картинки. |
Среди 2D-анимаций можно выделить четыре крупных группы:
- ПерерисовываниеПоверх исходного изображения рисуют следующее, при этом предыдущее «уничтожается». Нечто подобное можно увидеть в мультфильме «Падал прошлогодний снег»: пластилин персонажей предыдущего кадра становился основой для нового. Либо «песочные рисунки».
- СменаИ сходное изображение сменяется другим изображением. Это классическая анимация «кадр за кадром», которую много лет применяли аниматоры Disney и, собственно, создатели кинофильмов. При этом новый кадр может быть как цельной картинкой, так и послойной. Возможно, завсегдатаям Интернета будет ближе такое понятие, как GIF-анимация или просто гифка.
Мультфильмы Disney и Warner Bros. как раз создавались похожим образом: кадр разбивали на несколько слоёв. В общем и целом это выглядело так: первым слоем шла фоновая картинка (её легко отличить по прорисовке), потом лист или несколько листов прозрачного или полупрозрачного целлулоида с персонажами и объектами среднего плана, а затем лист с главным героем или объектами переднего плана.
Впрочем, кроме смены кадров знаменитый «Мышиный дом» пользовался и другими методами, в том числе успешно комбинируя перерисовку, смену и сдвиг.
- СдвигЧем-то похож на смену кадра, только вместо замены картинки её сдвигают, имитируя движение. Часть картинки на прозрачном целлулоиде или вырезанную картинку могут двигать относительно фона, поворачивать и всячески имитировать перемещение в пространстве. В истории таким образом функционировал знаменитый «Театр теней», в котором фигурно вырезанные залитые тушью бумажки или деревяшки двигали на фоне шёлкового или бумажного полотна.
Однако можно двигать не весь кадр целиком. Можно перемещать только одного персонажа или вовсе разбить его на подфигуры (тело, рука, нога) и двигать каждую из них в отдельности!Частным случаем сдвига, постепенно превратившимся в самостоятельную отрасль анимации, стала костная, она же скелетная анимация.Кстати, это не изобретение 20-го века — тот же театр теней мог представить своим зрителям танцующих человечков, играющих музыкантов и извивающихся драконов благодаря тому, что каждая фигурка состояла из нескольких соединённых верёвочкой или проволокой частей.
Да, вы уже могли слышать о ней или прочитать в предыдущих статьях цикла, но до этого, скорее всего, она ассоциировалась у вас практически исключительно с 3D-анимацией. И это немудрено, ведь мало кто из непрофессионального круга знает, что костная анимация впервые зародилась именно в 2D.
Вы угадали, в тех же театрах теней, мультипликационных студиях и у вас на кухне дети порой вырезают бумажных зверюшек, с помощью или без помощи родителей пришивая или прикрепляя на скотч конечности или одежду. В Советском Союзе даже выпускали журналы со специальными страницами для подобного занятия.
Чаще всего для правильной костной анимации картинку разбивают на части, а их, в свою очередь, на аналог полигонов 3D-модели. Так проще контролировать каждый элемент. (Картинка из официального руководства по Unity.)
-
Костная анимацияПодразумевает создание поверх основной картинки специальной вспомогательной системы — оснастки или рига (rig), а сам процесс при этом обычно именуется риггинг (rigging). Данная система напоминает проволочный каркас или скелет, состоящий из узловых точек — «суставов» (joint) и соединяющих их линий — «костей» (bones).
Другие виды 2D-анимации
Источник по этой ссылке
Кроме того, существует деление цифровой 2D-анимации на растровую и векторную:
Источник по этой ссылке
Кроме того, существует деление цифровой 2D-анимации на растровую и векторную:
- Растровая подразумевает смену кадров путём замены пикселей в картинке. Форма объекта и направление движения задается последовательно перекрашивающимися пикселями — растрами (букв. точками). Это та самая гифка, о которой мы уже говорили. Или диодные «бегущие строки», движение в которых имитируется последовательным включением соответствующих лампочек. Кстати, почти все современные экраны работают по принципу растровой графики. Количество кадров финальной анимации зависит от количества кадров с изменёнными пикселями. Минусы: невозможно увеличить или уменьшить без искажения качества. Плюсы — высокая детализация и точность рисунка.
- Векторная больше похожа на анимацию-сдвиг, но также включает в себя возможность деформировать объекты. Объекты в ней строятся из заранее заданных геометрических фигур, как стандартных (круг, квадрат, треугольник и т.п.), так и комбинированных. При этом количество кадров может быть изменено при сохранении, т. к. программы векторной графики, как правило, записывают траекторию движения и изменение формы фигур, а не конкретный кадр. Плюсы: нет потери качества при масштабировании. Минусы: как правило, низкая точность и нереалистичность изображения.
3D-анимация, в свою очередь, подразделяется на две больших категории: скелетная анимация и деформация.
Скелетная анимация и деформация
Кое-что из этого мы уже упоминали раньше, однако некоторые вещи придется повторить, а некоторые — пояснить.
Объекты в 3D-пространстве так же, как и вырезки на столе художника, можно передвигать, мять и сгибать. Однако сделать это сложнее, чем кажется. |
- Простое перемещение и вращение.Некоторые даже не выделяют его как самостоятельную анимацию. Кроме изменения положения модели в пространстве, больше не меняется ничего. Однако какое-то время именно его использовали для создания простейших анимаций и даже мультиков.
- Визуальная анимация или анимированная текстура.На первый взгляд, это самый простой после перемещения тип. Однако зачастую проблемы с ней возникают до сих пор даже в очень производительных продвинутых движках. Сама модель, как правило, остается нетронутой, однако на её поверхности происходят различные изменения наложенных на нее текстурных карт.
Карты могут сдвигаться, сменяться покадрово, мерцать или даже полностью менять режим отображения, делая объект, например, прозрачным. Достигается это различными способами — как изменением масштаба проекции текстуры на полигональную сетку, так и добавлением различных шейдеров (shader) — специальных мини-алгоритмов, определяющих, какой материал будет ассоциирован с моделью и каким образом он будет отвечать на свет внутри движка.
- Деформация или морфинг (morph).Этот тип подразумевает изменение формы или кривизны поверхности фигуры без использования вспомогательной оснастки (рига). Ближайшая аналогия с реальным миром — скатывание пластилинового шарика или складывание оригами. В случае с полигональными моделями, поверхность которых содержит сетку из полигонов (многоугольных фигур) и их вершин, деформация происходит путём сдвига этих вершин относительно друг друга и общего «центра масс» модели.
В современной индустрии мультипликации и игр морфинг обычно используют как вспомогательный инструмент при создании лиц героев, лицевых анимаций и эмоций, а также для процедурной генерации вариантов существ и предметов и изменения телосложения героя (Dark Souls, TES: V Skyrim, The Legend of Zelda).
Так, например, многие редакторы персонажей в играх при создании лиц опираются именно на морфы (Dark Souls, Elden Ring, TES V: Skyrim, Fallout 4). Кроме того, подобный подход используется во всех графических движках, включая генераторы лиц как FaceGen Pro, программу для профессиональных 3D-художников DAZ Studio 3D, и множество программ для мультипликации.
Всего у мимика-амулета 187 костей, каждая из которых отвечает за свою часть. Можно было бы сделать и меньше, но тогда некоторые звенья цепи деформировались бы. Фото автора.
- Костная анимацияВ 3D так же, как и в 2D, подразумевает создание рига (оснастки). Для этого создаётся скелет, содержащий множество последовательно соединенных костей (bones) с определенной иерархией. Форма этого скелета и количество костей зависит от конкретного объекта анимации (у травинки это может быть одна кость, у дракона — свыше 300), задач анимации (что должно двигаться у фигуры и как именно) и возможностей движка. Сейчас это, пожалуй, самый распространенный тип анимации в индустрии игр и мультипликации.Однако сам по себе скелет еще не обеспечивает движение модели. Для того чтобы наша модель двигалась вслед за изменением положения костей, ее меш/скин (mesh/skin, поверхность модели) нужно «привязать кожу к скелету».
Костная анимация 3D-моделей больше всего похожа на работу с марионетками или шарнирными куклами. Однако есть одно «но"» куклы создаются уже со «скелетом», т. е. их материал неразрывно связан с тем, что обеспечивает им подвижность, а само движение зависит от рук кукловода. Тогда как для модели нужны специальные средства.
Данный процесс именуется weigh drawing или skinning — рисование влияния, «развесовка». Если коротко, то параметр weight отвечает за то, как сильно будет влиять положение кости на изменение в модели. Кроме того, при развесовке имеется возможность настроить влияние двух костей на одно место так, чтобы переход между ними был плавным либо, наоборот, резким.
Настройка влияния костей на «кожу» в 3ds Max с помощью капсул влияния. Фото автора.
Впрочем, чистый риг не всегда хорошо справляется со своими обязанностями. Так, например, при анимации лиц часто комбинируют морфинг и анимацию посредством лицевых костей (Half Life 2, BLESS Online, Fallout 4, Mass Effect).
Игроки Mass Effect Andromeda еще долго будут вспоминать свои прохождения. Конечно, со временем разработчик поправил большую часть таких «глюков» патчем, но…
При некоторых движениях персонажей может «ломаться» и «проваливаться» одежда. В старых играх это решалось, хотя и не полностью, удалением подлежащей под одеждой кожи и более тонкой настройкой костей. Сейчас же используют как систему морфов, так и физику. Причём это справедливо и для игр, и для мультфильмов, и для остальной 3D-индустрии (CInema 4D, DAZ Studio, iClone и т. д.). Однако такой подход не всегда лучше — физику при сильной деформации может «глючить», а морфы подчас ломаются, создавая жуткие гримасы для мемов.
Сила притяжения и центральная кость
Когда риггинг сделан, а веса настроены, модель нужно сохранить в таком формате, который поддерживает скелетные модели. Да, далеко не все форматы могут хранить информацию о костях и их влиянии как, например, OBJ, STL или DAE. По умолчанию в большинстве движков и редакторов помимо собственных кодировок для сохранения и импорта используется формат FBX.Скелетную модель (skeletal mesh, rigged model) нужно анимировать.
Для этого в 3D-редакторах есть специальные режимы, включающие следующие элементы интерфейса:
-
Временная линейка с отметкамиОна соответствует кадрам. На этой линейке отмечаются кейфреймы (keyframes) или ключевые кадры, в которых фиксируется положение костей. Кейфрейм может содержать как «слепок» позы всей модели целиком, так и фиксацию нескольких костей скелета или задействованные морфы и их силу.
Это может быть удобно в ситуациях, о которых мы поговорим позже. Как правило, в более-менее современных движках промежуточные кадры и положения костей рассчитываются автоматически, однако в некоторых движках (как, например, Source) придётся проверять и фиксировать любое мельчайшее изменение.
Линия времени в 3ds Max (фото автора):
…Cascadeur (демонстрационный пресет):
И Blender… (фото автора):
- Кнопки старта, остановки и перемотки анимации.Это необходимый инструмент для просмотра и тестирования созданных и записанных в кейфреймах движений.
Чем больше отличающихся положений в ключах на каждой кости в анимации, тем «живее» будут движения. Blender 3D, фото автора. -
Рhysical simulationЭто кнопки включения-отключения физической симуляции. Если модель имеет параметр имитации твёрдости или веса, либо когда на модели есть элементы с костями с привязанной к ним, кроме меша, физикой (одежда, волосы, усы, плавники, хвосты и т.п.), эта кнопка запускает симуляцию действия гравитации, ветра и столкновения. Однако для этого необходимо заранее придать модели необходимые свойства -— сделать физику тела, задать и настроить определённые участки и т.д.
Сфера с заданной физикой в Unity 2018, фото автора. -
Список костей скелета модели.Далеко не всегда удобно выбирать кости непосредственно в окне визуализации, а порой это практически невозможно без переключения режимов отображения. Тогда поможет раскрывающийся иерархический список всех костей и суставов. Обычно кости поименованы в соответствии со стандартами движка, что ещё больше облегчает работу с ними. В противном случае переименовывать придётся вручную.
В 3ds Max список всех костей для взаимодействия удобнее вызывать в панели Scene Explorer. Мое -
Панель управления камерой.Как правило, аниматор или геймдизайнер видит модель в редакторе совсем не так, как потом будет видеть игрок. Создавая анимацию, художник многократно изменяет угол обзора, проверяя движения модели. Однако контролировать придется и с точки зрения игрока. Поэтому некоторые движки поддерживают работу сразу нескольких камер или переключения одной камеры в разные положения.
Вот так выглядят камеры:
Падение шарика и следующая за ним камера без стабилизации угла зрения в Unity. Мое.
Зачастую камера в играх должна следовать за персонажем. Для этого игровую камеру закрепляют за героем. Для игры с видом «Око Бога» (вид сверху в отдалении) или из-за спины героя достаточно будет зацепить камеру за самую главную (базовую) кость героя. В играх от первого лица камеру закрепляют на кости, отвечающей за голову.
В играх с переключением вида обычно существует две камеры: 1 — камера для вида от первого лица, закреплённая на голове, 2 — камера для вида от третьего лица, закреплённая за базовую кость. В TES V: Skyrim положение камеры 2 регулируется колесиком мыши.
- Окно с настройками положения кости.Оно может выглядеть как небольшая панель с окошками для вбивания параметров в системе координат и иметь кнопку вызова визуального инструмента деформации GIZMO (тот самый конструкт из трех стрелочек и трёх окружностей).Но червь-паразит на нижней стороне тела всё также будет двигаться. То же самое можно наблюдать в отношении личинок, вылезающих из зомби в окрестностях Высокой Стены Лотрика в Dark Souls 3, и в местах появления насекомых в Dark souls PtDE и в Hellpoint.
Интересный факт: анимированные текстуры, шейдеры и деформации далеко не всегда привязаны к тем же кадрам временных линий, что и кости. Так, например, если принудительно остановить анимации агрессивных версий омаров-мутантов в Elden Ring, сама модель останется неподвижной.
Источник по ссылке здесь. Видео с канала ZulieTheWitch.
Панели настройки анимированных текстур, системы и настройки захвата движений, окна настройки влияния и физики во многих редакторах либо вынесены как отдельный режим, либо поставляются как отдельные плагины или аддоны (дополнительные функции), разнесённые с обычной костной анимацией. Впрочем, всё это можно узнать и в учебниках по общей 2D-анимации. Что же там с играми?
Особенности игровой анимации
Когда-то для приличной анимации художникам приходилось прибегать к ротоскопированию, т. е. съёмке видео или серий фотографий с живыми людьми и животными и их обрисовке/обработке, причём вручную в каждом кадре. Сейчас мультипликаторам и фильмоделам в помощь придуманы системы захвата движений.
Motion capture (MoCap) — распространённая система захвата движений с реального прототипа. Существует несколько типов захвата движений (по точкам — визуально, по повороту частей тела — гироскопические системы, по относительному положению — экзоскелетные и т.п.). Многие разработчики пользуются этим для создания своих произведений. Однако есть нюансы. |
В первом случае создателям игр нужно отснять или сделать вручную анимации для каждой ситуации, каждой отдельно взятой сцены и диалога, совсем как в кино.
Звучит громоздко.
Съемочная площадка Detroit: Become Human, Demon’s Souls и Аватар 2: Путь воды. Что называется, feel the difference.
Во втором случае уникальные анимации игрок найдёт только во время катсцен (постановочных роликов, подчас записанных заранее), а всё остальное время вам придется ходить, копать, махать мечом или кулаками и снова ходить. Таково большинство игр. В таком случае игроделам нужно озаботиться сетами — наборами анимаций для конкретных действий.
Хорошую Idle-анимацию можно без проблем превратить в зацикленную гифку. Мое.
Стандартный сет содержит следующие анимации:
- Idle или анимация ожидания применяется, когда герой стоит и ничего не делает. Да, для этого тоже обычно делают анимацию, так как стоящий неподвижно в Т-позе персонаж несколько мешает погружению. Как минимум, анимация дыхания, как максимум — переступание с ноги на ногу, оглядывание и потирание рук.
- Walking cycle или анимация ходьбы, соответствуя названию, отвечает за стандартное передвижение персонажа. Спокойный шаг или небыстрый бег.
- Анимации атаки/взаимодействия (в зависимости от жанра и направления игры). Их может быть от одной до нескольких сотен (привет, игры Dark Souls)
- Анимация смерти.
Многие анимации организованы в циклы (cycles). Это значит, что начальный и конечный кадр (положение модели или картинка спрайта) совпадают, и при многократном проигрывании создают ощущение непрерывности. В таком случае все анимации желательно начинать с такой же позы, что и поза начального кадра в Idle, и ей же заканчивать. |
- Анимация бега (run cycle) — быстрое передвижение персонажа (для ускорения)
- Анимация рывков/подкатов/отскоков — как правило, своя для каждого направления, а то и для комбинаций кнопок (снова здравствуй DS и ER);
- Анимация прыжков — помогает преодолевать препятствия (заграждения и пропасти);
- Специальные анимации (навыки, каст заклинаний, специальное взаимодействие);
- Переходные анимации.
В экшн-играх с высокой динамикой происходящего на переходные анимации частенько не обращают внимания при разработке. Помню, что кому-то из моих знакомых очень сильно не нравилось, что при взаимодействии с рычагом персонаж в Elden Ring просто притягивался к нему, находясь изначально на расстоянии метра.
Но по сравнению с количеством других активностей и плавными переходами между анимациями атаки в комбо это несущественно. Зато в The Dark Pictures, Heavy Rain, Death Stranding или Detroit: Become Human почти к каждому положению есть переходные анимации.
Но так уж вышло, что эти игры заточены на внимание к деталям и кинематографичность. В них нет фестиваля безудержного экшена, и рваные анимации здесь сильно бы портили впечатление. Хотя несколько моментов с кривыми переходами всё же есть.
Интересный факт. Для создания игровых 3D-анимаций лучше всего анимировать модель, не сдвигая её с места, т. е. не трогая самую главную, базовую кость (root или dummy), даже если вам предстоит сделать анимацию бега. Вернее, особенно для анимации бега или ходьбы, и тем более, полёта. |
Разумеется, список далеко не полный. В играх, где в руки игроку дают дракона или ксеноморфа вместо анимации ходьбы может быть анимация полёта (Century: Age of Ashes, Глаз Дракона), анимация ходьбы может переходить в анимацию лазания по стенам (AvsP). В играх с дополнительной составляющей шутера добавляются анимации вскидывания и перезарядки оружия, в играх-симуляторах — анимации повседневных действий, в играх с прогрессией — усложнённые варианты базовых анимаций и т. д.
Плюсы и минусы
Постановочные анимации хороши для создания мизансцен, особых атмосферных моментов с заскриптованными событиями и заранее записанным положением камеры. Это очень трудоемкий процесс, особенно для актёров захвата движений. Ведь им надо как можно экспрессивнее отыгрывать свою роль на протяжении часов, дней и даже недель. Технически это действительно аналогично съёмкам в фильме. Возможно, даже превосходит их по сложности, ведь, как правило, для кино не нужно проигрывать одну и ту же сцену десять раз для каждого варианта выбора ответа игрока.
Сеты анимаций проще отснять — в среднем, актёров на данный вид анимаций забирают на день, максимум три дня, и этого обычно хватает. Зато геймдизайнеру, который будет всё это компилировать в целостный набор и задавать управляющие скрипты для правильного подключения анимаций будет непросто.
Впрочем, каждый подход хорош для конкретного проекта. Или даже конкретной части проекта. Например, большие ролевые игры как Baldur's Gates 3 или экшн-проекты как Atomic Heart имеют примерно поровну наборной беготни и постановочных катсцен. Работа и в том, и в другом проекте была проделана колоссальная.
С вами была Людмила Хигерович, всего хорошего и не болейте! |
— 15% на заказ любого VDS (кроме тарифа Прогрев) — HABRFIRSTVDS
swordgna
Вы проделали огромную работу, спасибо! Очень интересная получилась статья. Так сказать, история анимации... техника анимирования и всё такое))
phanerostroi_evidence Автор
Спасибо)