Геймдев #Статьи

24 августа, 2025

Что такое ретаргетинг анимации и как сделать его в Unreal Engine 5 / Skillbox Media

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

Научитесь: Профессия 3D-дженералист

Узнать больше

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

Из этого материала вы узнаете:

  • как работает перенаправление анимации с одного скелета на другой;
  • в чём специфика экспорта моделей со скелетом из Blender в Unreal Engine 5 без использования дополнительных аддонов;
  • как перенаправить анимации с манекена Unreal Engine на другую модель;
  • в чём специфика работы сервиса Mixamo;
  • с какими проблемами чаще всего сталкиваются при ретаргетинге и как их можно решить;
  • как изменился ретаргетинг в Unreal Engine 5.4 (если кратко: теперь весь процесс занимает всего несколько минут).

Что такое ретаргетинг анимации

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

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

Например, если в визуализации нужно продемонстрировать стандартные действия персонажа (ходьбу, бег, прыжок и так далее), не обязательно делать их вручную. Можно зайти в бесплатный сервис Mixamo, загрузить FBX-файл с моделью персонажа, выбрать подходящую анимацию из каталога, скачать её, а затем импортировать в программу для 3D-моделирования или в игровой движок.

Читайте также:

Что такое риггинг — и как подготовить его в Blender

Как происходит ретаргетинг анимации

Процесс ретаргетинга во многом зависит от специфики программы или редактора, но перенос анимации происходит по общему принципу.

Каждый риг содержит набор данных: наименования костей, их расположение и исходные пропорции при перемещении. Для моделей с другим ростом, толщиной и длиной конечностей простой привязки исходного скелета недостаточно: необходимо перенаправить данные костей. В противном случае во время анимации появятся различные дефекты — например, растяжки или исчезновение определённых частей меша.

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

Изображение: Unreal Engine

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

Оригинальный риг и два разных персонажа с этим же ригом после ретаргетинга. Зелёным цветом показано положение оригинального скелетаИзображение: Unreal Engine

По этому же принципу можно перенаправить данные на скелет с другими группами костей, но похожий по строению.

Исполнение одной анимации разными персонажамиИзображение: NVIDIA Omniverse

Примечание

Система ретаргетинга не переносит данные о вращении костей — они зависят от исходных значений в анимациях.

Общие настройки при экспорте в FBX для Unreal EngineСкриншот: Blender / Blender Foundation

Запускаем Unreal Editor и открываем шаблон Third Person — или добавляем контент Third Person в существующий проект. Создаём отдельную папку в разделе Characters и перемещаем в неё модель FBX, созданную в Blender. При импорте появится диалоговое окно. Указываем следующие настройки:

Рекомендованные настройки для первого импорта модели со скелетом в Unreal Engine 5Скриншот: Unreal Editor / Epic Games
Рекомендованные настройки для первого импорта модели со скелетом в Unreal Engine 5Скриншот: Unreal Editor / Epic Games

После этого в папке появятся Static Mesh, Skeletal Mesh, Physics Asset и все материалы, которые задействованы в данной модели. В Unreal Engine при работе с анимациями используют Skeletal Mesh. В отличие от Static Mesh, этот тип меша содержит данные арматуры. Именно его используют в проекте для создания игровых персонажей и NPC. Например, аватар в шаблоне Third Person — это Skeletal Mesh манекена Unreal Engine 5.

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

  • Источник — Skeletal Mesh актора, с которого будут перенаправлены анимации (в данном случае — манекен Unreal Engine);
  • Цель — Skeletal Mesh актора, на который нужно перенаправить анимации (в данном случае — импортированная модель).

Нажимаем ПКМ в области Content Browser, чтобы вызвать меню создания ассетов, и в разделе Create Advanced Asset находим вкладку Animation, далее — IK Rig → IK Rig. В диалоговом окне выбираем Цель, то есть Skeletal Mesh загруженной модели. Даём созданному ассету название и открываем его. В новом окне будем работать с вкладкой IK Retargeting, расположенной в правом нижнем углу. В ней создаются так называемые цепи (Chain) — объединённые группы костей, которые в дальнейшем можно сопоставить с арматурой другого скелета.

В окне слева выделяем группу костей позвоночника (с пометкой spine) и нажимаем Add New Chain. По умолчанию движок предлагает объединить их в цепь Spine. Подтверждаем. Далее следует уточнение, нужно ли добавить IK Goals — точки для изменения положения конкретного сегмента (работают по принципу IK-костей в Blender, которые мы разбирали в материале по риггингу). Выбираем No Goal.

Пошаговое создание цепочки костей для будущего ретаргетингаСкриншот: Unreal Editor / Epic Games

Примечание

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

Первая цепь готова. По этому же принципу создаём остальные группы, стараясь объединять их в логические сегменты. Например, в текущем риге кость шеи (neck) можно объединить с костью головы (head) и создать цепь Head. А в группу LeftArm добавить все кости руки, включая ключицу (clavicle). Аналогичные связки создаём для цепи костей ног и правой руки.

Выделение сегмента костей руки для формирования цепи LeftArmСкриншот: Unreal Editor / Epic Games

Примечание

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

В Unreal Engine есть своя специфика в отношении root bone. В качестве root bone обычно задействуют бедренную кость (pelvis или hips). Выделяем её в списке ПКМ и выбираем Set Retarget Root. При этом вносить root в список цепей костей для будущего перенаправления не нужно.

Выделение бедренной кости (pelvis) и действие Set Retarget RootСкриншот: Unreal Editor / Epic Games

Создав все необходимые цепи, сохраняем ассет и сворачиваем окно. Далее нужно проделать аналогичную операцию с Источником.

Создаём новый IK Rig и выбираем подходящий Skeletal Mesh. В UE5 доступно несколько видов манекенов, которые различаются как анимациями, так и иерархией костей. И в целом выбор зависит от скелета, на который будут перенаправлены анимации. Нет смысла брать стандартный риг, если скелет Цели простой, так как в состав цепей войдут лишь основные кости. В случае с низкополигональными моделями можно ограничиться классическим манекеном из UE4 (68 костей) или выбрать Manny_Simple или Quinn_Simple. Костей в арматуре последних почти в два раза меньше, чем в стандартном манекене (89 вместо 161). В текущем примере выбран Skeletal Mesh Quinn_Simple.

Теперь наша задача — создать в IK Rig Источника такие же цепи костей, как и у Цели. Возможно, даже в скелете Simple-манекена окажется гораздо больше костей, чем в импортированном, но всё содержимое можно также разделить на логические сегменты. Главное, чтобы общее содержание цепей совпадало у обоих ригов. Придерживаться одинаковых наименований цепей при этом не обязательно. В текущем примере у Цели есть цепь Head (кость шеи и головы), а у Источника — цепь Neck (две кости шеи и кость головы). Если сопоставить их между собой на следующей стадии, редактор всё равно поймёт, что кости в этих группах выполняют одинаковую задачу.

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

Результат массового выделения нескольких подгруппСкриншот: Unreal Editor / Epic Games

Если это произошло, выделяем необходимую кость, которую не получилось автоматически вписать в основную цепь, и в окне IK Retargeting указываем её как конечную (End Bone), а остальные сгенерированные цепи удаляем. Также можно изначально выделить только те кости, которые требуются для определённой цепи.

Первый способ добавления в цепь кости, которая относится к другой группеСкриншот: Unreal Editor / Epic Games
Второй способ добавления в цепь кости, которая относится к другой группеСкриншот: Unreal Editor / Epic Games

Далее переносим точку root на бедренную кость, как ранее в IK Rig Цели: нажимаем ПКМ на кость pelvis и выбираем Set Retarget Root.

Финальный IK Rig манекена Quinn с простой арматуройСкриншот: Unreal Editor / Epic Games

Закончив сборку цепей, сохраняем ассет, сворачиваем окно и в Content Browser создаём новый ассет — IK Retargeter. Он расположен в той же вкладке, что и IK Rig. В диалоговом окне нужно выбрать, какой IK Rig будет Источником. В данном примере мы переносим анимации с Quinn, поэтому выбираем этот IK Rig.

Меню при создании IK Retargeter. Красным выделен IK Rig ИсточникаСкриншот: Unreal Editor / Epic Games

Созданный ассет переименовываем на своё усмотрение и открываем. В новом окне отдаляем камеру во вьюпорте колёсиком мыши, чтобы лучше видеть модель. В настройках справа указано, что данный риг — Source (т.е. Источник), и теперь нужно назначить Цель. В разделе Target указываем IK Rig, который мы создавали в самом начале. После этого Цель появится в той же точке, где находится Источник.

Источник и Цель во вьюпорте IK RetargeterСкриншот: Unreal Editor / Epic Games

Во время ретаргетинга анимации учитывается изначальное положение скелета, то есть A- или Т-поза. Манекены в UE по умолчанию находятся в A-позе. Поэтому, если Цель изначально была в Т-позе, положение рук необходимо изменить, иначе при дальнейшем ретаргетинге меш импортированной модели будет деформирован. Аналогичные манипуляции потребуются и в случае, если Источником окажется модель в T-позе — тогда Цель в A-позе (например, тот же манекен) также нужно привести в Т-позу.

Чтобы придать Skeletal Mesh A-позу, нужно убедиться, что в меню слева отмечена Цель, и перейти в режим Edit Mode. Из списка выбираем кость плеча, которая отвечает за подъём руки (обычно это upper arm или shoulder) и перемещаем её в положение, максимально близкое к плечу Источника. Если размер меша Цели отличается от Источника, в настройках справа его можно увеличить или уменьшить (параметр Target Mesh Scale) и так добиться более аккуратного позиционирования.

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

Настройка позы Цели в соответствии с позой ИсточникаGIF: Unreal Editor / Epic Games

Закончив правки, отодвинем Цель в сторону. Для этого нужно изменить первое значение (ось X) в параметре Target Mesh Offset. Напоследок проверяем, соответствуют ли цепи костей обоих ригов друг другу. Особенно важно проверить цепи с разными названиями, как в случае со связкой Neck и Head, которая упоминалась ранее. Убедившись, что всё верно, переходим во вкладку Asset Browser со списком поз и проверяем результат.

Понравившиеся анимации можно экспортировать, нажав на Export Selected Animations (кнопка с зелёной дискетой). В настройках экспорта по желанию можно добавить к названию префикс или суффикс: они помогут быстрее отыскать ассет в строке поиска. Полученные анимации уже будут относиться к Skeletal Mesh Цели, и их можно использовать в дальнейшей работе.

Кат-сцена с предварительно загруженной анимацией, перенесённой на персонажа через ретаргетингGIF: Unreal Editor / Epic Games

Видеоурок по ретаргетингу анимаций в ранних версиях Unreal Engine 5 можно найти на YouTube-канале Druid Mechanics.

Нюансы работы с Mixamo

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

Во-первых, сервис Adobe может загружать напрямую не любые модели. По опыту пользователей, Mixamo часто выдаёт ошибки при воспроизведении высокополигональных моделей, требует переконвертации, а также не отображает текстуры, если они состоят из нескольких карт. Это значит, что работа с более детальными моделями потребует дополнительных манипуляций. Надёжным способом считается ретаргетинг анимации с помощью аддона Rokoko Mixamo в Blender. На сайте Mixamo из каталога подбирают модель, схожую по комплекции с оригинальной, сохраняют необходимые анимации, загружают в Blender и с помощью аддона перенаправляют данные костей. Полученную анимацию можно использовать в рамках программы или экспортировать в движок.

Во-вторых, прямая загрузка анимаций из Mixamo в Unreal Engine часто сопровождается ошибками. Самая распространённая из них — Mesh contains root bone as root but animation doesn’t content root track, из-за которой импорт невозможен. Это происходит, потому что Mixamo генерирует свой риг без кости root. Из-за этого придётся импортировать персонажа из сервиса, в котором есть арматура Mixamo по умолчанию, а затем перенаправлять анимацию на нужную Цель. Эту проблему также можно решить с помощью дополнительных плагинов типа Mixamo Animation Retargeting 2 и других похожих инструментов, но процесс также потребует дополнительного времени и финансовых затрат.

Способ ретаргетинга, описанный в этом материале, позволяет легко переносить анимации из Mixamo с помощью бесплатной утилиты Mixamo Converter. В комплекте с программой идут адаптированные FBX-файлы манекенов из четвёртой и пятой версий Unreal Engine — их можно загрузить в сервис Mixamo без ошибок, выбрать понравившиеся анимации из каталога, скачать их риг, а затем с помощью утилиты сконвертировать FBX-файл под стандарты движка. В интерфейсе программы есть скриншоты, где указаны настройки, которые нужно задать при загрузке файлов в редактор. После успешного импорта скачанные анимации можно перенаправить с манекена на другого персонажа в окне ассета IK Retargeter.

Кроме того, не стоит забывать, что в Unreal Marketplace есть много относительно недорогих ассетов c уникальными анимациями для манекенов, которые можно быстро интегрировать в проект и аналогичным образом перенаправить на Цель.

Примечание

Если говорить об анимациях моделей из Mixamo в целом, а также моделей людей, созданных в MetaHuman, DAZ Studio или Character Creator, то на данный момент перенаправление лучше всего работает в версии 5.4. И если вы планируете постоянно осуществлять ретаргетинг с контентом, созданным в этих приложениях (а это сейчас достаточно актуально), рекомендуем ознакомиться с последней главой, посвящённой ретаргетингу анимаций в обновлении 5.4.

Если что-то пошло не так…

Ниже перечислено несколько распространённых проблем, с которыми может столкнуться начинающий пользователь в процессе ретаргетинга в ранних версиях Unreal Engine 5, и возможные варианты их решения.

  • Меш Источника во вьюпорте парит в воздухе, в отличие от Цели.

Решение. Можно создать цепь кости для Root и в самом IK Retargeter выделить эту цепь в меню Chain Mappings. Откроется панель с настройками, где в разделе FK Adjustments нужно найти параметр Translation Mode и выбрать в нём Globally Scaled. Если в ретаргетинге задействован манекен из UE4, рекомендуем посмотреть руководство по настройке костей root и pelvis и назначению им параметра Animation Scaled. На официальном форуме разработчиков отмечают, что эта техника во многих случаях помогает решить проблему с перенаправлением кости root.

  • Retarget Output Log выдаёт следующие ошибки: IK Retargeter could not find source root bone… IK Retargeter unable to initiate source root «Bone» in Skeletal Mesh.

Решение. Скорее всего, не назначена Set Retarget Root на кости pelvis/hips и движок не распознаёт её в процессе ретаргетинга. Если после появления сообщения об ошибке вы исправили недочёт в IK Rig персонажа, но при этом в IK Retargeter один из мешей сместился по вертикали, следует попробовать один из способов, указанных в первом пункте.

  • Отдельные части меша Цели (чаще всего это пальцы) при ретаргетинге неестественно вытянуты или повёрнуты не в ту сторону.

Решение. Необходимо выставить Цель в более точную позу по отношению к оригиналу.

  • Захват анимаций работает, но не полностью (некоторые части меша остаются неподвижными или двигаются неправильно).

Решение. В какой-то из цепи костей Источника и Цели есть несоответствия. Нужно ещё раз проверить содержания цепей каждого IK Rig.

  • Ретаргетинг работает, но отдельные части меша персонажа неестественно смещаются в процессе анимации.

Решение. Нужно вернуться в программу для 3D-моделирования и правильно распределить вес по модели. Также, если во время ретаргетинга скелет активен, но сам меш или его часть остаются неподвижными, — значит, рисование веса не закончено.

Скриншот: Unreal Editor / Epic Games

Решения многих проблем, связанных с ретаргетингом, можно найти на официальном форуме по Unreal Engine.

Как изменился ретаргетинг в Unreal Engine 5.4

С обновлением 5.4 редактор Unreal Engine 5 стал поддерживать русский язык, так что в этой главе представлены русскоязычные названия функций и их аналоги на английском языке в скобках. Если название какой-то функции в движке ещё не перевели, сохраняется оригинальное название.

В отношении ретаргетинга обновление 5.4 интересно тем, что сводит на нет все нюансы импорта анимаций из Mixamo, о которых упоминалось ранее. Это значит, что пользователю больше не нужно создавать ассет ИК каркаса (IK Rig) для каждой импортированной модели и устанавливать сторонние программы для конвертации рига Mixamo под стандарты движка. Рассмотрим, как это работает на практике.

Заходим на сайт Mixamo, выбираем понравившегося персонажа из раздела Characters и анимацию в Animations. Нажимаем Download. В новом диалоговом окне следим, чтобы в параметре Skin было указано With Skin, и скачиваем FBX-файл.

Скриншот: сайт Mixamo

На первом этапе наша основная цель — получить Скелетную сетку (Skeletal Mesh). При скачивании сервис присваивает файлу название выбранной анимации. Если вы планируете загрузить больше анимаций, перед импортом можно переименовать файл, присвоив ему название модели, а уже потом скачивать и загружать в редактор другие анимации с названиями движений. Перетаскиваем файл в заранее подготовленную папку Каталога ресурсов (Content Browser). При импорте оставляем все настройки по умолчанию. Главное — убедиться, что напротив пункта Skeletal Mesh проставлена галочка.

Скриншот: Unreal Editor / Epic Games

В журнале сообщений редактор может оповестить о том, что в «сцене FBX не найдены группы сглаживания»‎. Игнорируем это. В Каталоге ресурсов (Content Browser) появились статическая и скелетная сетки (меши) модели, ассет с физикой, материалы и, наконец, сама анимация (значок ассета с зелёной линией). Её можно просмотреть в отдельном окне, дважды щёлкнув по ней ЛКМ.

Теперь, чтобы перенаправить анимацию на другого персонажа, кликаем ПКМ по значку с анимацией и в открывшемся меню выбираем пункт Перенаправить анимации (Retarget Animations).

Скриншот: Unreal Editor / Epic Games

После этого откроется окно, где нужно назначить Скелетную сетку-источник (Source Skeletal Mesh) и Скелетную сетку-цель (Target Skeletal Mesh). В данном случае Источником станет анимация, которую мы скачали, а Целью — скелетная сетка, на которую мы перенесём эту анимацию. В качестве примера выберем скелетную сетку уже знакомого нам манекена SKM_Quinn. Процесс перенаправления костей происходит автоматически. Посмотреть, как анимация выглядит на новом‎ персонаже, можно, нажав на её название в окне, расположенном в правом нижнем углу.

Полученную анимацию можно сохранить, выделив её и нажав Экспорт анимаций (Export Animations). Процесс напоминает экспорт анимаций по классическому ретаргетингу: выбираем папку для сохранения, по желанию добавляем префиксы и суффиксы. Далее откроется окно с Настройками пакетного экспорта (Batch Export Options), в них можно оставить всё как есть.

Новый подход в версии 5.4 поможет перенаправить анимации не только из Mixamo, но и из приложений, поддерживающих захват движений, в частности MetaHuman, Character Creator, Daz 3D, Move AI, MotionBuilder и Xsens MVN Animate. При этом движения можно перенаправить на любого персонажа, у которого есть скелетная сетка, созданная по подобию человека. Весь процесс занимает буквально пару минут и не требует предварительного переназначения костей в ИК каркасе (IK Rig), как это было раньше.

* * *

Резюмируя, можно отметить, что система ретаргетинга в Unreal Engine значительно ускоряет процесс разработки игр и визуализации. Но если ваш проект содержит много уникальных анимаций, рекомендуется работать с ними в последних сборках движка, в частности 5.4.

Профессия 3D-дженералист

Вы станете универсальным специалистом, который умеет в 3D всё: создавать объекты и окружение, настраивать текстуры и цвет, анимировать модели и внедрять их в 3D-сцену.Освоите Houdini, Autodesk Maya, Blender, Photoshop, ZBrush, Marmoset 3D, Substance Painter, Marvelous Designer, Arnold и Rizom UV. Сможете претендовать на работу в рекламе, играх или кино.На иллюстрации: работа участника курса Евгения Кузнецова

Узнать подробнее