Знакомство с mecanim настройка анимации

Подкаст «Как Делают Игры»: аниматоры о тонкостях профессии, часть вторая — Gamedev на DTF

12 Контроллеры аниматоров (Animator controllers) Контроллер аниматора позволяет настраивать и управлять набором анимаций. Анимация, Animation, Skeletal Animation System, Система Скелетной Анимации. Mecanim, Persona, Animation Blueprint, Персонаж, Анимационный Чертёж. 2D, Sprite Как и настройки проекта Unity, они позволяют вам указывать. Максим Журавлёв, Principal animator, Remedy Entertainment; Максим Журавлёв: На Западе, в Америке для игровой анимации.

Это опция доступна только для Maya, 3dsMax и Cinema4D файлов. Контроллер имеет ссылки на используемые им анимационные клипы, и управляет различными анимационными состояниями и переходами между ними, используя, так называемый State Machine конечный автоматкоторый может быть представлен в виде блок-схемы, или простой программы, написанной на языке визуального программирования в Unity.

Состоит из двух секции: Окно редактирования состояний и переходов Окно редактирования слоев и параметров 14 Контроллеры аниматоров Animator controllers Контроллер аниматора создается Unity и позволяет вам руководить набором анимаций для персонажа и переключаться между ними когда выполняется некоторое условие. Например вы можете переключиться от анимации походки к прыжку при нажатии клавиши пробела.

Контроллер управляет переходами между анимациями используя так называемую машину состояний State Machine ,- род некоторой программы написанной языком визуального программирования в Unity. Доступные действия будут зависеть от типа геймплея, но типичные действия будут включать в себя такие вещи, как стойка на месте idlingходьба walkingбег runningпрыжок jumping и. Эти действия называют states, в том смысле, что персонаж находится в состоянии, где он идет, стоит или делает ещё что-нибудь.

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

Аналогично, скрипт может устанавливать значения параметров для подхвата системой Mecanim. Например, скрипт может выставить параметр для контроля дерева смешивания. Значения по умолчанию параметров могут быть установлены в виджете Parameters в левом нижнем углу окна Animator. Они могут быт четырех основных типов: Вы можете управлять слоями из виджета слоёв Layers Widget в верхнем левом углу контроллера аниматора Animator Controller.

Знакомство с Mecanim, настройка анимации

Для каждого слоя вы указываете маску тела часть тела к которой будет прикладываться анимация и тип смешивания. Замещение Override означает, что информация из других слоев будет проигнорирована, а сложение Additive означает что анимация будет добавлена поверх предыдущего слоя. Свойство Mask применяется для указания маски тела используемой на данном слое.

Значение, которое каждое движение вкладывает в финальную анимацию, управляется параметром смешивания, который является одним из числовых параметров анимации связанных с Animator Controller. Чтобы смешанное движение выглядело осмысленно, смешиваемые движения должны быть примерно равные по длине и природе. Blend Trees - это особый вид анимации в Animation State Machine.

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

Из-за сходства в структуре скелета, можно перенести анимацию от одного гуманоида на другой, что позволяет реализовать переназначение retargeting и инверсную кинематику inverse kinematics. За редкими исключениями можно ожидать, что модели гуманоида будут иметь одни и те же основные структуры, представляющие основные суставы тела, головы и конечностей.

В терминологии Mecanim, это отображение называется аватар Avatar. Поскольку Avatar является важным аспектом системы Mecanim, важно, чтобы он был правильно настроен для вашей модели. А находить ошибки тяжело — 24 анимации, которые постоянно смешиваются в какой-то пропорции. Когда нога провалилась на полкадра, например или персонажа дёрнуло, найти, какая не работает - очень сложно. Есть ещё варианты гибридных систем, например, в Just Cause 3 сделали смешанный вариант.

У них развороты на месте и некоторые ускорения сделаны по старой методике, чтобы минимизировать отклик от геймпада. Когда в нашей системе персонаж просто стоит на месте — он полностью animation driven. Когда он начинает разгоняться — он в гибридной системе. А когда он набирает полную скорость — он переходит в состояние, где всё делается процедурно, а анимации выбираются автоматически из довольно большого объёма. Это тоже сделано для улучшения отклика.

Один из больших недостатков гибридных систем — это мультиплеер: Обычно сетевые системы ведутся кодом. Бывают и исключения, например, Uncharted и For Honor. Поднять качество в полностью процедурной системе практически невозможно. А вот в Paragon используется обратная история. Ты нажимаешь джойстик, генерируется траектория. Но одновременно генерируется и модель-предсказание.

Он знает, где ты будешь через треть секунды, если продолжишь жать ввод. И он эту информацию отдаёт анимации. Поэтому, когда ты отпускаешь джойстик — анимации сообщается: Системы возможны любые, у каждого большого разработчика они. В QB, кинематографичной игре, это важно. Например, идёшь Джеком по коридору, и начинаются сложности со временем, и Джек начинает играть анимацию, когда он видит, что дождь начинается, он замедляется, прикрывается рукой. Такой перфоманс нельзя отыграть на пяти метрах в секунду равномерным бегом.

Анимация забирает часть контроля вы всё ещё можете двигаться персонажем, можете остановиться.

Game Development | Урок 9 - Анимация Mecanim в Unity 5.

То есть движение вперёд идёт от анимации, а повороты и движение назад от процедурной системы. Фактически, я могу переключаться от полностью animation driven в процедурный режим таким слайдером. Для синематик-игр такая возможность экономит много усилий.

Не могу говорить про анимацию, но некоторые из таких вещей геймплею помогают: В Paragon изначально это игнорировали. А в одном из апдейтов мы сделали это ближе к реальности. И игрокам понравилось, потому что они считают, что это добавляет глубины геймплею. Это зависит от игры. Вот есть такой термин —fast paced action shooter. Быстрые, традиционные игры типа InFamous, когда игру дизайнят на старых, олдскульных аркадных механиках. Там это не взлетает. Но дизайн в AAA-сегменте с каждым годом прогрессирует.

Пару лет назад все смеялись, потому что фирменная атака в ближнем бою у Bungie во всех Halo занимала четыре кадра до попадания в прицел.

Разработка игр (Урок 9 - Анимация в Unity 5 - Animator)

А потом вышел Destiny, оказалось, что она уже занимает семь кадров. Игры становятся глубже, и люди начинают искать детали в механиках, маленькие вещи, которые делают персонажа более правдоподобным и повышают качество. О прямой и инверсной кинематике Роман Семёнов: У персонажа есть скелет, и он изначально движется по прямой кинематике.

Это последовательная цепь костей, например — локоть, плечо и запястье.

  • Заоконный датчик. Железо
  • Знакомство с Unreal Engine 4 / Для разработчиков с Unity
  • Подкаст «Как Делают Игры»: аниматоры о тонкостях профессии, часть вторая

Если во всей это системе подняли плечо, вслед за ним идут локоть и запястье. То есть, если вам нужно куда-то потянуться, что-то взять и так далее — малейшее изменение сместит всю руку. Инверсная кинематика IK работает наоборот. Если представить лампу настольную, вы двигаете её в сторону и все суставы за ней поедут.

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

Либо персонаж поставил руку на стенку и действует, разговаривает, но рука остаётся на стене. Есть понятие full body IK, инверсная кинематика на всё тело. Если мы потянем персонажа за руку, то он начнёт наклоняться, тянуться в этом направлении всеми частями тела. Это используется, чтобы решать проблемы, в частности, ходьбу по неровной поверхности. Даже если у вас есть анимации для 12 направлений, они всё равно в какой-то момент смешиваются, и нога будет скользить например, вы взяли на 5 градусов левее, чем угол, на который рассчитана анимация.

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

Есть поза прицеливания, и любой поворот будет либо полностью процедурным, либо ограничен несколькими направлениями. IK вращает между ними руки, как будто за пистолетом есть некий объект, пистолет управляет рукой, рука — запястьем и так далее.

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

В первом случае учитывается биомеханика поведения: И одно дело, если персонаж полуприсев бежит по неровной поверхности, и другое — если расслабленно идёт. В QB использовалась одна хитрость. У нас весь locomotion в плоскости — когда ты начинаешь бежать по неровной поверхности, работает IK.

Posts / Bookmarks / Profile of tutanhomon / Habr

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

Это процедурное действие тоже чуть улучшает всю ситуацию. О генерации анимации Максим Журавлёв: Это как ragdoll, только с мышцами и интеллектуальный, который пытается симулировать человеческое поведение. Он используется в GTA: V и Star Wars: Например, если персонажа ударить — он не падает, а начинает отступать, перебирая ногами, система пытается удержать баланс.

Если у него сзади окажется бордюр, он зацепится пяткой и упадёт, сложится калачиком максимально — руки к голове, колени поджать. Есть видео от сотрудника Ubisoft, в котором только одна ходьба у персонажей и эту анимацию превращают процедурно в разные походки. Об анимационных state-машинах Максим Журавлёв: То, о чём мы рассказывали выше об огромном количестве анимаций только на начало бега — это не так страшно.

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

Поэтому на рынке появилась системы state machine: У Naughty Dog своя система, написанная внутри компании, у Ubisoft своя. Если вам не понравилось, как анимация старта работает — вам не нужно тормошить программиста, достаточно чуть-чуть подкрутить эту анимацию, поставить на неё ускорение или переделать ивенты на правую и левую ноги.

Всё делается в одной middleware, промежуточной программе. Когда я сел за Morpheme, для меня самой крутой возможностью оказался дебаг. Анимации смешиваются по этапам. Сначала движение, потом играют аддитивные анимации повреждений, потом корректирующие хватку под различные оружия. В этой цепочке довольно сложно понять, что именно сломалось. Morpheme записывает предыдущие состояния, минуты три-четыре и ты можешь просто поставить игру на паузу, отмотать назад и посмотреть, где и что заглючило.

На одной стороне экрана у тебя игра, на другой все ноды, включатели-переключатели.