Мы — небольшая студия энтузиастов, наша основная деятельность — создание проектов для местного музея с использованием VR-гарнитур (Oculus Quest 2). Мы стараемся добавлять функции в каждый наш новый проект. В этом проекте было решено отказаться от Mixamo и создать собственный набор анимации, тем более, что в наши руки попало две камеры Azure Kinect.
Вооружившись стареньким LeapMoution и IPhone 12 Pro Max, мы засняли более сотни движений, наконец-то наши персонажи перестанут быть однотипными болванками, подумали мы)
Если тема интересна, могу описать, как мы строили мини мокап студию.

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

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

И вот этот этап наступил. Очень сложно описать уровень моего мастерства в анимации: я знаю много и в то же время ничего не знаю… Я знаю правила Диснея, представляю, как создать риг, как анимировать объект в Гудини или футболку, могу сделать свою из Миксама, но при этом практического опыта на данный момент нет, тем более по исправлению такой проблемы. Я понимаю, что перемещать каждую клавишу — это не вариант. Просто копировать ножные клавиши из первого кадра и копировать их в остальные — не очень хороший вариант.

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

Для получения желаемого результата были использованы следующие инструменты: Maya, Cascadeur и (как следствие) WinAutomation.

ЧИТАТЬ   Власти Катара: Доха передала ХАМАСу параметры нового соглашения с Израилем

Возьмите анимацию из UE4

Экспорт анимации из UE4

Экспорт настроек

Экспорт настроек

Закидываем скачанный файл в Майю в новую сцену.

Файл экспортирован в Maya

Файл экспортирован в Maya

Обязательно отобразите все ключи на временной шкале.

Показать все ключи на временной шкале

Показать все ключи на временной шкале

Как вы можете видеть на скриншоте, в каждый кадр анимации встроен ключ. Кроме того, в шаблон встроены формы смешивания для лицевой анимации (пока имейте это в виду). Для первого шага нам нужна анимация скелета. Выберите все кости для лечения

Выбрать → Все по типу → Уплотнения

Выбрать → Все по типу → Уплотнения

В графическом редакторе откройте настройки Кривые → Фильтр сглаживания.

Кривые → Фильтр сглаживания

Кривые → Фильтр сглаживания

Далее, в зависимости от характера анимации, нам необходимо указать желаемый уровень детализации анимации. В этом нам поможет параметр «Частота выборки». Для неактивной анимации можно установить значение 1, тогда интерполяция будет производиться каждые 25 кадров. Для анимации диалогов, где нам нужно передать эмоции, установите значение 5.

Частота выборки = 5

Частота выборки = 5

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

На этом этапе нам больше не нужна функциональность футболки, выделите верхнюю корневую кость и экспортируйте выделение (Файл → Экспортировать выделение).

Экспорт из Майя

Экспорт из Майя

Давайте запустим Cascadeur. Для начала нам нужно загрузить сумку персонажа в позу А и выполнить авториг.

Персонаж в позе в каскадёре

Персонаж в позе в каскадёре

После этого вам нужно загрузить анимацию, которую мы обработали в Maya.

Файл → Импортировать Fbx/Dae → Анимация

Файл → Импортировать Fbx/Dae → Анимация

К загруженной сумке будет применена анимация.

Анимация, примененная к сумке

Анимация, примененная к сумке

Особенность программы Cascadeur в том, что имеется возможность расчета естественности позы, что дает возможность расставлять ноги и пересчитывать тело для каждого изображения. Если мы выберем вариант интерполяции на 25 кадров, это можно будет сделать вручную и получить приемлемый результат. В конце статьи прикреплю видео с этим результатом. А вот при декомпозиции с интерполяцией 6 кадров работать руками придется очень долго.

ЧИТАТЬ   Проблема суммы подмножества

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

Включить инструмент автоматического размещения

Включить инструмент автоматического размещения

Для работы нам нужны сочетания клавиш приложения, для перехода от одного ключевого кадра к следующему мы используем Шифт+А И Shift+Д (предыдущий и следующий кадр) Редактирование может выполняться только по ключевым кадрам; редактирование промежуточных изображений будет игнорироваться.

Прежде чем копировать положение ног на всех изображениях, нам нужно расположить персонажа в желаемой исходной позе; Для этого переключитесь в режим AutoPosing и измените положение синих сфер на ногах.

Когда стартовая поза готова, ее необходимо перевести в конечную позу; для этого переключитесь в режим рига (отключите AutoPosing), выделите все точки, скопируйте (Ctrl+С) стоим на последнем кадре и не снимая выделения нажимаем Ctrl+V. Нашу анимацию теперь можно рассматривать как цикл.

Перенос точек с первого изображения на последнее

Перенос точек с первого изображения на последнее

Теперь все готово, чтобы вы могли твердо стоять на земле. Для этого выделите точки на ногах, скопируйте их, перейдите к следующей клавише и вставьте. Это можно сделать, нажав комбинации Shift+D, Ctrl+V это нужно повторить 230 раз (количество клавиш в этой анимации)

Копировать точки ног

Копировать точки ног

Здесь на помощь приходит WinAutomation.

Автоматизатор сценариев

Автоматизатор сценариев

Строка 1: переместите указатель мыши на заголовок окна (вы могли бы сделать его активным с помощью дескриптора окна, но зачем)
Строка 2: Нажмите левую кнопку мыши.
Строка 3: цикл 100 раз (можно указать 230 за раз)
Строка 4: Комбинации ядов Shift+D, Ctrl+V

Копируем положение точек на изображении 0, запускаем скрипт и собираемся налить чаю… через минуту все изображения ног на прежнем месте, но тело в некоторых местах немного искажено картинки

ЧИТАТЬ   Администрация Байдена и чиновники Нью-Йорка раскритиковали после того, как бездомных ветеранов выгнали из отелей для мигрантов: «Пощечина»

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

Чтобы это выглядело хорошо, нам теперь нужно использовать автопозу, но если мы просто включим ее, то все положение тела станет таким же, как сейчас на 0 кадре, чтобы сохранить исходные позиции нам нужно определить важные точки . это не должно измениться, а остальное мы посчитаем. Для этого заморозьте точки ног (не снимая с них выделения, а если они сняты, выделите их снова), нажмите R и точки будут окружены красными квадратами.

Замороженные кончики пальцев ног

Замороженные кончики пальцев ног

Теперь во время самостоятельного положения ноги не будут менять положение.

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

Установите важные моменты

Установите важные моменты

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

Скрипт для автомата

Скрипт для автомата

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

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

Экспортировать анимацию

Экспортировать анимацию

Откройте Maya, создайте новую сцену и перенесите старый файл с сумкой, анимацией и формами смешивания, затем перенесите поверх него файл с новой анимацией.

Теперь вы можете открыть новый файл в UE и насладиться результатом.

Для сравнения можно посмотреть как было и как стало

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

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

Спасибо, что прочитали текст.
Денис Береженко

Source

От admin