28 ноября 2014 28.11.14 0 30K

Анатомия игр: Анимация

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

Мы уже в курсе, как ассет обретает свои дизайн и форму, а также игровую модель. С этого момента можно считать, что он уже достиг своего финального вида. Однако пока что он никак не двигается. И чтобы придать ему живости, в дело вступает анимация. Которая начинается с такого странного, на первый взгляд, этапа в производстве, как…

Скелет персонажа из нашумевшего realtime-demo Infiltrator на Unreal Engine 4.
Скелет персонажа из нашумевшего realtime-demo Infiltrator на Unreal Engine 4.

Сетап и скиннинг (Rig, skinning, setup)

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

Первым делом создается виртуальный скелет.

Наш ассет: создан скелет

 

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

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

Наш ассет: скиннинг

 

Казалось бы, теперь можно приступать к анимации! Но, увы, еще нет. Пока что анимировать будет очень неудобно.

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

Это так называемая прямая кинематика (FK, forward kinematics). То есть когда мы именно вручную поворачиваем все косточки так, как нам нужно. И она отлично подходит, если надо, скажем, заставить персонажа размахивать руками во время бега. Потому что в этом случае нам без разницы, где именно окажется последняя кость в цепочке: кисть руки просто болтается в воздухе.

Ставим руку в нужную позу через FK.
Ставим руку в нужную позу через FK.

Но что делать, если нам надо привести последнюю кость в какое-то конкретное место? Как в примере выше, со ступенькой. На глазок не подгадаешь, насколько надо повернуть сперва эту косточку, потом ту, потом третью… чтобы конец последней оказался во-о-он там.

Вот тут-то нам и приходит на помощь инверсная кинематика (IK, inverse kinematics). Это обратный подход: вместо того чтобы крутить все косточки по очереди вручную, мы создаем стартовый и конечный контроллеры (такие штуки, которые можно двигать), а все косточки между ними автоматически поворачиваются таким образом, чтобы «проложить маршрут» из одной точки в другую.

На словах это объяснить очень сложно, так что давайте просто посмотрим, как аниматор управляет персонажем в режиме IK.

Наш ассет: сетап

 

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

Профессиональные требованияВладение софтом:

— Все студии используют для анимации Maya, поэтому и риггинг делается там же;
— некоторые фрилансеры-одиночки пытаются анимировать в 3ds Max (потому что знают лишь его). У кого-то даже получается. Для риггинга обычно используются плагины (коих для «макса» — более 9000 в степени 100500);
— конкретно для анимации персонажей есть MotionBuilder, в котором практически не надо ничего «ригать» самому, но есть ряд ограничений (и вообще он лучше подходит для motion capture, а не для «ручной» анимации);
— пока это считается экстравагантным, но некоторые студии перешли на анимацию в Houdini. Правда, их мало, и они заняты не в геймдеве, а в VFX;
— ну и вновь: для любителей Open source существует Blender!

Навыки:

— Доскональное знание анимационного инструментария в основном 3D-пакете студии. Местами — до уровня «немного умею программировать». А местами — даже не «немного»;
— понимание принципов работы так называемых «констрейнов» — тех автоматических «штук», через которые происходит связывание одного объекта с другим;
— понимание того, как риг работает с алгоритмической точки зрения;
— очень хорошее знание математики, а в особенности — геометрии в целом и тригонометрии в частности;
— владение техниками скиннинга.

GameDev vs. VFXСовременные движки поддерживают только кости. Хотя на самом деле для анимации используется широчайший спектр всевозможных деформаторов. От простых процедурных (типа «загнуть по дуге») до сложных динамических, которые по физике умеют рассчитывать движение мышц с учетом их массы, инерции, скольжения кожи, самоколлизий и так далее:

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

Анимационное дерево в Unity для нашего персонажа.
Анимационное дерево в Unity для нашего персонажа.

Анимация (Animation)

Ура! Все подготовительные работы закончены. Можно сказать, ассет почти готов. Осталось лишь его анимировать. Правда, это «лишь» весьма условно: порой создание набора анимаций для персонажа занимает время, соизмеримое со всей предыдущей производственной цепочкой. Чем же конкретно занимается аниматор? Как именно он вдыхает жизнь в ассет? Какой рецепт на этот раз?

После относительно техничного лоу-поли-моделлинга, где, по сути, надо лишь следовать инструкции… После текстурирования, где просто «инструкций» (техник) становится больше… После сверхтехничного риггинга, где вы, собственно, сами создаете инструкции, по которым ассет будет реагировать на ваши действия… После нескольких довольно «рецептурных» стадий — в финале мы вновь обращаемся к старому доброму таланту.

У аниматора нет никакой волшебной кнопки «сделать красиво». Он просто таскает за те ползунки и рульки, которые ему предоставил риггер, до тех пор пока персонаж не станет вести себя как живой. Вот так, просто, как все гениальное.

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

В этом видео легендарная студия Blur хвалит «автодесковский» продукт Face Robot. Дескать, это и есть ее секрет. Но мы-то с вами знаем, что дело не столько в «фэйс-роботе», сколько в том, что «блюровцы» — попросту боги лицевой анимации.

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

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

За последние годы она заставила вас верить в неподдельные эмоции близких сердцу персонажей. В сознании всплывают названия DmC, Batman, The Last of Us и, конечно же, Heavy Rain. Припоминаются какие-то собачки из каких-то очень популярных шутеров, откуда-то сбоку в этот список крадется Голлум из киношного «Властелина колец»…

Да, все верно. Я имею в виду Motion Capture (захват движения).

Анатомия игр: Анимация
Анатомия игр: Анимация

Технология Motion Capture
Ей одной можно посвятить отдельную статью. Если вкратце, то суть ее — в записи движений реальных актеров. Вот ее плюсы и минусы.

Плюсы:

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

Теперь поговорим о минусах:

— В целом технология довольно дорогостоящая. Да, она позволяет разгрузить аниматоров, но при этом требует целый штат новых специалистов, включая наличие хороших актеров. Это финансово оправдано только при работе над очень крупными проектами, для которых надо очень много анимаций. И даже в этом случае все равно будет дешевле арендовать студию, а не держать свою. Потому что стоимость оборудования достигает астрономических сумм (цены настолько высоки, что некоторые производители их вообще не указывают, предоставляя информацию «по запросу»);
— даже полностью «мокап»-сцена требует ручной чистки и доводки, так что аниматоры без работы не останутся;
— некоторые движения в принципе невозможно получить через «мокап», другие же приходится долго и утомительно дорабатывать, чтобы они подходили под технические требования (анимационный цикл должен составлять ровно N кадров; персонаж должен двигаться строго по оси Z; пол, по которому он шел, должен быть безупречно ровным и горизонтальным…);
— данные «мокапа» гораздо сложнее модифицировать, чем ручную анимацию;
— «мокап» должен поддерживаться в риге.

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

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

Наш ассет: анимация

 

Профессиональные требованияВладение софтом — все то же, что и на этапе рига:

— Обычно — Maya;
— иногда — 3ds Max/MotionBuilder/Softimage;
— возможно — Houdini;
— любителям бесплатного — Blender.

Навыки:

— Знание механики тела;
— чувство массы и инерции;
— но на самом деле навык один — умение натурально воссоздавать поведение живых (и не очень) объектов природы.

Итак, теперь мы в курсе, каким образом вообще создается наполнение игр. Очевидно, что одному такой объем работы не потянуть, нужна команда. Поэтому разработку своей игры лучше начинать именно с этого — с поиска единомышленников, которым нравится ваша идея и которые готовы принять участие в ее воплощении.

Если такой объем работы вас не пугает — великолепно! Только позвольте предупредить, что все вышеописанное — лишь один из компонентов игры. Пока что это всего-навсего куча отдельных ассетов. Они могут быть сколько угодно великолепными, но играть в них невозможно. Сами по себе они вряд ли привлекут игрока. Поэтому в следующий раз мы продолжим изучать геймдев, добравшись до самого увлекательного — до сборки этого конструктора в, собственно, игру.

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

До встречи на страницах StopGame.ru, а пока — желаю вам найти таких единомышленников, с которыми мечты воплотятся в жизнь.


Поддержи Стопгейм!

Лучшие комментарии

Читай также