0 added
0 removed
Original
2026-01-01
Modified
2026-02-21
1
<p><a>#статьи</a></p>
1
<p><a>#статьи</a></p>
2
<ul><li>18 ноя 2024</li>
2
<ul><li>18 ноя 2024</li>
3
<li>0</li>
3
<li>0</li>
4
</ul><p>Поэтапное описание процесса и разбор основных проблем, которые могут возникнуть у начинающего специалиста.</p>
4
</ul><p>Поэтапное описание процесса и разбор основных проблем, которые могут возникнуть у начинающего специалиста.</p>
5
<p>Иллюстрация: Катя Павловская для Skillbox Media</p>
5
<p>Иллюстрация: Катя Павловская для Skillbox Media</p>
6
<p>Считает игры произведениями искусства и старается донести эту идею до широких масс. В свободное время стримит, рисует и часами зависает в фоторежимах.</p>
6
<p>Считает игры произведениями искусства и старается донести эту идею до широких масс. В свободное время стримит, рисует и часами зависает в фоторежимах.</p>
7
<p>Создание анимации вручную - довольно кропотливая работа. Чтобы движения персонажа выглядели органично, разработчику нужно постоянно проверять расположение костей в скелетной анимации и их перемещение во время ключевых кадров. Как ускорить процесс, если технология мокапа недоступна, а на создание уникальной анимации просто нет ресурсов? В этой ситуации может помочь ретаргетинг.</p>
7
<p>Создание анимации вручную - довольно кропотливая работа. Чтобы движения персонажа выглядели органично, разработчику нужно постоянно проверять расположение костей в скелетной анимации и их перемещение во время ключевых кадров. Как ускорить процесс, если технология мокапа недоступна, а на создание уникальной анимации просто нет ресурсов? В этой ситуации может помочь ретаргетинг.</p>
8
<p><strong>Из этого материала вы узнаете:</strong></p>
8
<p><strong>Из этого материала вы узнаете:</strong></p>
9
<ul><li>как<a>работает</a>перенаправление анимации с одного скелета на другой;</li>
9
<ul><li>как<a>работает</a>перенаправление анимации с одного скелета на другой;</li>
10
<li>в чём специфика<a>экспорта</a>моделей со скелетом из Blender в Unreal Engine 5 без использования дополнительных аддонов;</li>
10
<li>в чём специфика<a>экспорта</a>моделей со скелетом из Blender в Unreal Engine 5 без использования дополнительных аддонов;</li>
11
<li>как<a>перенаправить</a>анимации с манекена Unreal Engine на другую модель;</li>
11
<li>как<a>перенаправить</a>анимации с манекена Unreal Engine на другую модель;</li>
12
<li>в чём<a>специфика</a>работы сервиса Mixamo;</li>
12
<li>в чём<a>специфика</a>работы сервиса Mixamo;</li>
13
<li>с какими<a>проблемами</a>чаще всего сталкиваются при ретаргетинге и как их можно решить;</li>
13
<li>с какими<a>проблемами</a>чаще всего сталкиваются при ретаргетинге и как их можно решить;</li>
14
<li>как<a>изменился</a>ретаргетинг в Unreal Engine 5.4 (если кратко: теперь весь процесс занимает всего несколько минут).</li>
14
<li>как<a>изменился</a>ретаргетинг в Unreal Engine 5.4 (если кратко: теперь весь процесс занимает всего несколько минут).</li>
15
</ul><p>Ретаргетинг анимации - это процесс перенаправления готовых анимаций на объект с идентичным ригом, но другим мешем, или на объект, скелет которого отличается от оригинала иерархией костей, но имеет с ним сходства в строении. В результате такого переноса риг модели полностью копирует движения рига-источника.</p>
15
</ul><p>Ретаргетинг анимации - это процесс перенаправления готовых анимаций на объект с идентичным ригом, но другим мешем, или на объект, скелет которого отличается от оригинала иерархией костей, но имеет с ним сходства в строении. В результате такого переноса риг модели полностью копирует движения рига-источника.</p>
16
<p>Этот метод ускоряет производство, так как избавляет от необходимости создавать уникальные скелеты для персонажей с разным телосложением. Техника также станет хорошим подспорьем для начинающих пользователей: не нужно будет тратить время на создание анимаций с помощью ключевых кадров, рискуя ошибиться с расположением и поворотом костей скелета.</p>
16
<p>Этот метод ускоряет производство, так как избавляет от необходимости создавать уникальные скелеты для персонажей с разным телосложением. Техника также станет хорошим подспорьем для начинающих пользователей: не нужно будет тратить время на создание анимаций с помощью ключевых кадров, рискуя ошибиться с расположением и поворотом костей скелета.</p>
17
<p>Например, если в визуализации нужно продемонстрировать стандартные действия персонажа (ходьбу, бег, прыжок и так далее), не обязательно делать их вручную. Можно зайти в бесплатный сервис<a>Mixamo</a>, загрузить FBX-файл с моделью персонажа, выбрать подходящую анимацию из каталога, скачать её, а затем импортировать в программу для 3D-моделирования или в игровой движок.</p>
17
<p>Например, если в визуализации нужно продемонстрировать стандартные действия персонажа (ходьбу, бег, прыжок и так далее), не обязательно делать их вручную. Можно зайти в бесплатный сервис<a>Mixamo</a>, загрузить FBX-файл с моделью персонажа, выбрать подходящую анимацию из каталога, скачать её, а затем импортировать в программу для 3D-моделирования или в игровой движок.</p>
18
<p>Процесс ретаргетинга во многом зависит от специфики программы или редактора, но перенос анимации происходит по общему принципу.</p>
18
<p>Процесс ретаргетинга во многом зависит от специфики программы или редактора, но перенос анимации происходит по общему принципу.</p>
19
<p>Каждый риг содержит набор данных: наименования костей, их расположение и исходные пропорции при перемещении. Для моделей с другим ростом, толщиной и длиной конечностей простой привязки исходного скелета недостаточно: необходимо перенаправить<strong>данные</strong>костей. В противном случае во время анимации появятся различные дефекты - например, растяжки или исчезновение определённых частей меша.</p>
19
<p>Каждый риг содержит набор данных: наименования костей, их расположение и исходные пропорции при перемещении. Для моделей с другим ростом, толщиной и длиной конечностей простой привязки исходного скелета недостаточно: необходимо перенаправить<strong>данные</strong>костей. В противном случае во время анимации появятся различные дефекты - например, растяжки или исчезновение определённых частей меша.</p>
20
<p>На иллюстрации ниже слева изображён персонаж со скелетом, созданным под его пропорции во время воспроизведения анимации бега с оружием. На остальных двух кадрах запечатлены персонажи в этой же позе, но внешне они отличаются от первого объекта, и оригинальный скелет привязан к их мешу без ретаргетинга.</p>
20
<p>На иллюстрации ниже слева изображён персонаж со скелетом, созданным под его пропорции во время воспроизведения анимации бега с оружием. На остальных двух кадрах запечатлены персонажи в этой же позе, но внешне они отличаются от первого объекта, и оригинальный скелет привязан к их мешу без ретаргетинга.</p>
21
<em>Изображение:<a>Unreal Engine</a></em><p>После перенаправления скелетной анимации видимые дефекты исчезают, так как теперь расположение костей соответствует влиянию на определённые участки меша при движении.</p>
21
<em>Изображение:<a>Unreal Engine</a></em><p>После перенаправления скелетной анимации видимые дефекты исчезают, так как теперь расположение костей соответствует влиянию на определённые участки меша при движении.</p>
22
Оригинальный риг и два разных персонажа с этим же ригом после ретаргетинга. Зелёным цветом показано положение оригинального скелета<em>Изображение:<a>Unreal Engine</a></em><p>По этому же принципу можно перенаправить данные на скелет с другими группами костей, но похожий по строению.</p>
22
Оригинальный риг и два разных персонажа с этим же ригом после ретаргетинга. Зелёным цветом показано положение оригинального скелета<em>Изображение:<a>Unreal Engine</a></em><p>По этому же принципу можно перенаправить данные на скелет с другими группами костей, но похожий по строению.</p>
23
Исполнение одной анимации разными персонажами<em>Изображение:<a>NVIDIA Omniverse</a></em><p><strong>Примечание</strong></p>
23
Исполнение одной анимации разными персонажами<em>Изображение:<a>NVIDIA Omniverse</a></em><p><strong>Примечание</strong></p>
24
<p>Система ретаргетинга не переносит данные о вращении костей - они зависят от исходных значений в анимациях.</p>
24
<p>Система ретаргетинга не переносит данные о вращении костей - они зависят от исходных значений в анимациях.</p>
25
<p>С релизом версии Unreal Engine 5.1 ретаргетинг стал проще благодаря связке нового ассета<a>IK Rig</a>с <a>IK Retargeter</a>. Эта связка позволяет легко перенести данные костей с одного скелета на другой.</p>
25
<p>С релизом версии Unreal Engine 5.1 ретаргетинг стал проще благодаря связке нового ассета<a>IK Rig</a>с <a>IK Retargeter</a>. Эта связка позволяет легко перенести данные костей с одного скелета на другой.</p>
26
<p>Теперь рассмотрим процесс подробно - и попробуем перенаправить анимацию со скелета стандартного манекена Unreal Engine на скелет другой человекоподобной модели. В качестве цели ретаргетинга мы используем низкополигонального персонажа, скелет для которого создавали в Blender<a>в одном из предыдущих материалов</a>. Для задачи подойдёт любая модель с готовой арматурой, созданной по принципу человеческого скелета, за исключением моделей MetaHuman - их арматура сложнее и потребует дополнительных манипуляций.</p>
26
<p>Теперь рассмотрим процесс подробно - и попробуем перенаправить анимацию со скелета стандартного манекена Unreal Engine на скелет другой человекоподобной модели. В качестве цели ретаргетинга мы используем низкополигонального персонажа, скелет для которого создавали в Blender<a>в одном из предыдущих материалов</a>. Для задачи подойдёт любая модель с готовой арматурой, созданной по принципу человеческого скелета, за исключением моделей MetaHuman - их арматура сложнее и потребует дополнительных манипуляций.</p>
27
<p>Если вы не используете конвертеры, например<a>Send to Unreal</a>или<a>Auto-Rig Pro</a>, при переносе модели из Blender в Unreal Engine стоит учитывать несколько нюансов.</p>
27
<p>Если вы не используете конвертеры, например<a>Send to Unreal</a>или<a>Auto-Rig Pro</a>, при переносе модели из Blender в Unreal Engine стоит учитывать несколько нюансов.</p>
28
<ul><li>Убедитесь, что меш и скелет расположены ровно в центре, то есть в нулевых координатах по всем осям. Иначе при экспорте возникнут проблемы с позиционированием ассета в сцене.</li>
28
<ul><li>Убедитесь, что меш и скелет расположены ровно в центре, то есть в нулевых координатах по всем осям. Иначе при экспорте возникнут проблемы с позиционированием ассета в сцене.</li>
29
<li>В Blender и Unreal Engine разные единицы измерения. По умолчанию в Blender одна единица - это один метр, а в UE такая же единица - один сантиметр. Из-за этого возможны проблемы с отображением костей в движке.<p>Например, пользователи часто сталкиваются с тем, что джойнты импортированного скелета в Unreal Engine<a>выглядят</a>слишком большими и вьюпорт превращается в сетку из огромных сфер. Чтобы этого не произошло, перед экспортом переходим в настройки сцены (значок капли) и проверяем, что<strong>Система единиц</strong>(</p>
29
<li>В Blender и Unreal Engine разные единицы измерения. По умолчанию в Blender одна единица - это один метр, а в UE такая же единица - один сантиметр. Из-за этого возможны проблемы с отображением костей в движке.<p>Например, пользователи часто сталкиваются с тем, что джойнты импортированного скелета в Unreal Engine<a>выглядят</a>слишком большими и вьюпорт превращается в сетку из огромных сфер. Чтобы этого не произошло, перед экспортом переходим в настройки сцены (значок капли) и проверяем, что<strong>Система единиц</strong>(</p>
30
Unit System) выбрана<strong>Метрическая</strong>(Metric), а затем изменяем<strong>Масштаб единиц</strong>(Unit Scale) на 0.01. После этого меш и скелет уменьшатся в размерах. Переходим в ортогональный режим и масштабируем оба объекта до нужного значения: нажимаем<strong>S</strong>и набираем 100, тем самым увеличивая объект в 100 раз. Чтобы было удобно видеть объект во вьюпорте после этой операции, открываем на боковой панели<strong>Вид</strong>(View) и изменяем<strong>Начало от</strong>(Clip Start) на 0.1, а <strong>Конец</strong>(End) на 100.<p>После этого в настройках объекта можно увидеть, что размер меша по всем осям равен 1, а размер арматуры - 100, и нужно привести этот параметр к общему знаменателю. Нажимаем<strong>Ctrl + A</strong>→<strong>Применить</strong>(</p>
30
Unit System) выбрана<strong>Метрическая</strong>(Metric), а затем изменяем<strong>Масштаб единиц</strong>(Unit Scale) на 0.01. После этого меш и скелет уменьшатся в размерах. Переходим в ортогональный режим и масштабируем оба объекта до нужного значения: нажимаем<strong>S</strong>и набираем 100, тем самым увеличивая объект в 100 раз. Чтобы было удобно видеть объект во вьюпорте после этой операции, открываем на боковой панели<strong>Вид</strong>(View) и изменяем<strong>Начало от</strong>(Clip Start) на 0.1, а <strong>Конец</strong>(End) на 100.<p>После этого в настройках объекта можно увидеть, что размер меша по всем осям равен 1, а размер арматуры - 100, и нужно привести этот параметр к общему знаменателю. Нажимаем<strong>Ctrl + A</strong>→<strong>Применить</strong>(</p>
31
Apply) →<strong>Масштаб</strong>(Scale), после чего проделываем аналогичную операцию с мешем. Если всё сделано правильно, после импорта в Unreal Engine размер костей будет отображаться корректно.</li>
31
Apply) →<strong>Масштаб</strong>(Scale), после чего проделываем аналогичную операцию с мешем. Если всё сделано правильно, после импорта в Unreal Engine размер костей будет отображаться корректно.</li>
32
<li>Перед тем как выбрать экспорт в FBX, сначала выделяется меш модели, а затем - сама арматура (с удержанием<strong>Shift</strong>). В противном случае движок<a>распознает</a>меш как часть арматуры и сделает её главной в иерархии костей.</li>
32
<li>Перед тем как выбрать экспорт в FBX, сначала выделяется меш модели, а затем - сама арматура (с удержанием<strong>Shift</strong>). В противном случае движок<a>распознает</a>меш как часть арматуры и сделает её главной в иерархии костей.</li>
33
<li>Название арматуры движок считает названием отдельной кости. Например, если ваша арматура называется root (что характерно для моделей, перенесённых из Unreal Engine), при импорте движок сообщит, что из-за двух одинаковых названий он заменит кость root на root_1. Но, если перед экспортом дать скелету название armature, иерархия костей будет выстроена от изначальной кости root.</li>
33
<li>Название арматуры движок считает названием отдельной кости. Например, если ваша арматура называется root (что характерно для моделей, перенесённых из Unreal Engine), при импорте движок сообщит, что из-за двух одинаковых названий он заменит кость root на root_1. Но, если перед экспортом дать скелету название armature, иерархия костей будет выстроена от изначальной кости root.</li>
34
<li>При экспорте в FBX переносятся только меш и арматура, без сторонних объектов (света, камеры и так далее). В <strong>Типах объектов</strong>(Types of Objects) убираем всё, кроме<strong>Меша</strong>(Mesh) и <strong>Арматуры</strong>(Armature), либо в разделе<strong>Limit to</strong>отмечаем галочкой<strong>Выделенные объекты</strong>(Selected Objects), предварительно убедившись, что другие объекты в сцене при этом не выделены.</li>
34
<li>При экспорте в FBX переносятся только меш и арматура, без сторонних объектов (света, камеры и так далее). В <strong>Типах объектов</strong>(Types of Objects) убираем всё, кроме<strong>Меша</strong>(Mesh) и <strong>Арматуры</strong>(Armature), либо в разделе<strong>Limit to</strong>отмечаем галочкой<strong>Выделенные объекты</strong>(Selected Objects), предварительно убедившись, что другие объекты в сцене при этом не выделены.</li>
35
<li>В разделе<strong>Трансформация</strong>(Transform) оставляем настройки по умолчанию. Далее в секции<strong>Геометрия</strong>(Geometry), в пункте<strong>Сглаживание</strong>(Smoothing), выбираем<strong>Грани</strong>(Face) или<strong>Рёбра</strong>(Edges) и чуть ниже в <strong>Арматуре</strong>(Armature) снимаем отметку с <strong>Добавить листовые кости</strong>(Add Leaf Bones). Галочку напротив<strong>Запечь анимацию</strong>(Bake Animation) не ставим, так как сейчас задача состоит в том, чтобы перенести сам скелет и модель, а не анимации, созданные в Blender. Впрочем, если таковые есть, их можно отдельно перенести в движок позже.</li>
35
<li>В разделе<strong>Трансформация</strong>(Transform) оставляем настройки по умолчанию. Далее в секции<strong>Геометрия</strong>(Geometry), в пункте<strong>Сглаживание</strong>(Smoothing), выбираем<strong>Грани</strong>(Face) или<strong>Рёбра</strong>(Edges) и чуть ниже в <strong>Арматуре</strong>(Armature) снимаем отметку с <strong>Добавить листовые кости</strong>(Add Leaf Bones). Галочку напротив<strong>Запечь анимацию</strong>(Bake Animation) не ставим, так как сейчас задача состоит в том, чтобы перенести сам скелет и модель, а не анимации, созданные в Blender. Впрочем, если таковые есть, их можно отдельно перенести в движок позже.</li>
36
</ul><p>Если все условия экспорта были соблюдены, вероятность того, что Unreal Engine выдаст ошибку при загрузке модели, будет минимальной.</p>
36
</ul><p>Если все условия экспорта были соблюдены, вероятность того, что Unreal Engine выдаст ошибку при загрузке модели, будет минимальной.</p>
37
Общие настройки при экспорте в FBX для Unreal Engine<em>Скриншот: Blender / Blender Foundation</em><p>Запускаем Unreal Editor и открываем шаблон<strong>Third Person</strong> - или добавляем контент<strong>Third Person</strong>в существующий проект. Создаём отдельную папку в разделе<strong>Characters</strong>и перемещаем в неё модель FBX, созданную в Blender. При импорте появится диалоговое окно. Указываем следующие настройки:</p>
37
Общие настройки при экспорте в FBX для Unreal Engine<em>Скриншот: Blender / Blender Foundation</em><p>Запускаем Unreal Editor и открываем шаблон<strong>Third Person</strong> - или добавляем контент<strong>Third Person</strong>в существующий проект. Создаём отдельную папку в разделе<strong>Characters</strong>и перемещаем в неё модель FBX, созданную в Blender. При импорте появится диалоговое окно. Указываем следующие настройки:</p>
38
Рекомендованные настройки для первого импорта модели со скелетом в Unreal Engine 5<em>Скриншот: Unreal Editor / Epic Games</em>Рекомендованные настройки для первого импорта модели со скелетом в Unreal Engine 5<em>Скриншот: Unreal Editor / Epic Games</em><p>После этого в папке появятся<strong>Static Mesh</strong>,<strong>Skeletal Mesh</strong>,<strong>Physics Asset</strong>и все материалы, которые задействованы в данной модели. В Unreal Engine при работе с анимациями используют Skeletal Mesh. В отличие от Static Mesh, этот тип меша<a>содержит</a>данные арматуры. Именно его используют в проекте для создания игровых персонажей и NPC. Например, аватар в шаблоне<strong>Third Person</strong> - это Skeletal Mesh манекена Unreal Engine 5.</p>
38
Рекомендованные настройки для первого импорта модели со скелетом в Unreal Engine 5<em>Скриншот: Unreal Editor / Epic Games</em>Рекомендованные настройки для первого импорта модели со скелетом в Unreal Engine 5<em>Скриншот: Unreal Editor / Epic Games</em><p>После этого в папке появятся<strong>Static Mesh</strong>,<strong>Skeletal Mesh</strong>,<strong>Physics Asset</strong>и все материалы, которые задействованы в данной модели. В Unreal Engine при работе с анимациями используют Skeletal Mesh. В отличие от Static Mesh, этот тип меша<a>содержит</a>данные арматуры. Именно его используют в проекте для создания игровых персонажей и NPC. Например, аватар в шаблоне<strong>Third Person</strong> - это Skeletal Mesh манекена Unreal Engine 5.</p>
39
<p>Наша задача - перенести данные костей со стандартного рига манекена на риг импортированного персонажа. Чтобы избежать путаницы, для обозначения ригов во время процесса ретаргетинга мы будем использовать термины движка:</p>
39
<p>Наша задача - перенести данные костей со стандартного рига манекена на риг импортированного персонажа. Чтобы избежать путаницы, для обозначения ригов во время процесса ретаргетинга мы будем использовать термины движка:</p>
40
<ul><li>Источник - Skeletal Mesh актора, с которого будут перенаправлены анимации (в данном случае - манекен Unreal Engine);</li>
40
<ul><li>Источник - Skeletal Mesh актора, с которого будут перенаправлены анимации (в данном случае - манекен Unreal Engine);</li>
41
<li>Цель - Skeletal Mesh актора, на который нужно перенаправить анимации (в данном случае - импортированная модель).</li>
41
<li>Цель - Skeletal Mesh актора, на который нужно перенаправить анимации (в данном случае - импортированная модель).</li>
42
</ul><p>Нажимаем<strong>ПКМ</strong>в области<strong>Content Browser</strong>, чтобы вызвать меню создания ассетов, и в разделе<strong>Create Advanced Asset</strong>находим вкладку<strong>Animation</strong>, далее -<strong>IK Rig</strong>→<strong>IK Rig</strong>. В диалоговом окне выбираем Цель, то есть Skeletal Mesh загруженной модели. Даём созданному ассету название и открываем его. В новом окне будем работать с вкладкой<strong>IK Retargeting</strong>, расположенной в правом нижнем углу. В ней создаются так называемые цепи (<strong>Chain</strong>) - объединённые группы костей, которые в дальнейшем можно сопоставить с арматурой другого скелета.</p>
42
</ul><p>Нажимаем<strong>ПКМ</strong>в области<strong>Content Browser</strong>, чтобы вызвать меню создания ассетов, и в разделе<strong>Create Advanced Asset</strong>находим вкладку<strong>Animation</strong>, далее -<strong>IK Rig</strong>→<strong>IK Rig</strong>. В диалоговом окне выбираем Цель, то есть Skeletal Mesh загруженной модели. Даём созданному ассету название и открываем его. В новом окне будем работать с вкладкой<strong>IK Retargeting</strong>, расположенной в правом нижнем углу. В ней создаются так называемые цепи (<strong>Chain</strong>) - объединённые группы костей, которые в дальнейшем можно сопоставить с арматурой другого скелета.</p>
43
<p>В окне слева выделяем группу костей позвоночника (с пометкой spine) и нажимаем<strong>Add New Chain</strong>. По умолчанию движок предлагает объединить их в цепь<strong>Spine</strong>. Подтверждаем. Далее следует уточнение, нужно ли добавить<a>IK Goals</a> - точки для изменения положения конкретного сегмента (работают по принципу IK-костей в Blender, которые мы разбирали в материале по <a>риггингу</a>). Выбираем<strong>No Goal</strong>.</p>
43
<p>В окне слева выделяем группу костей позвоночника (с пометкой spine) и нажимаем<strong>Add New Chain</strong>. По умолчанию движок предлагает объединить их в цепь<strong>Spine</strong>. Подтверждаем. Далее следует уточнение, нужно ли добавить<a>IK Goals</a> - точки для изменения положения конкретного сегмента (работают по принципу IK-костей в Blender, которые мы разбирали в материале по <a>риггингу</a>). Выбираем<strong>No Goal</strong>.</p>
44
Пошаговое создание цепочки костей для будущего ретаргетинга<em>Скриншот: Unreal Editor / Epic Games</em><p><strong>Примечание</strong></p>
44
Пошаговое создание цепочки костей для будущего ретаргетинга<em>Скриншот: Unreal Editor / Epic Games</em><p><strong>Примечание</strong></p>
45
<p>Редактор автоматически предлагает подходящее имя цепи, исходя из списка костей. Если он не распознает кость, то выставит название по умолчанию -<strong>NewRetargetChain</strong>. В любом случае эти данные можно изменить при подтверждении операции или позже при редактировании.</p>
45
<p>Редактор автоматически предлагает подходящее имя цепи, исходя из списка костей. Если он не распознает кость, то выставит название по умолчанию -<strong>NewRetargetChain</strong>. В любом случае эти данные можно изменить при подтверждении операции или позже при редактировании.</p>
46
<p>Первая цепь готова. По этому же принципу создаём остальные группы, стараясь объединять их в логические сегменты. Например, в текущем риге кость шеи (neck) можно объединить с костью головы (head) и создать цепь<strong>Head</strong>. А в группу<strong>LeftArm</strong>добавить все кости руки, включая ключицу (clavicle). Аналогичные связки создаём для цепи костей ног и правой руки.</p>
46
<p>Первая цепь готова. По этому же принципу создаём остальные группы, стараясь объединять их в логические сегменты. Например, в текущем риге кость шеи (neck) можно объединить с костью головы (head) и создать цепь<strong>Head</strong>. А в группу<strong>LeftArm</strong>добавить все кости руки, включая ключицу (clavicle). Аналогичные связки создаём для цепи костей ног и правой руки.</p>
47
Выделение сегмента костей руки для формирования цепи LeftArm<em>Скриншот: Unreal Editor / Epic Games</em><p><strong>Примечание</strong></p>
47
Выделение сегмента костей руки для формирования цепи LeftArm<em>Скриншот: Unreal Editor / Epic Games</em><p><strong>Примечание</strong></p>
48
<p>В цепи добавляют только те группы костей, которые будут задействованы при переносе анимаций. Например, совсем не обязательно создавать цепи для костяшек пальцев, если они не будут сгибаться во время движения.</p>
48
<p>В цепи добавляют только те группы костей, которые будут задействованы при переносе анимаций. Например, совсем не обязательно создавать цепи для костяшек пальцев, если они не будут сгибаться во время движения.</p>
49
<p>В Unreal Engine есть своя специфика в отношении root bone. В качестве root bone обычно задействуют бедренную кость (pelvis или hips). Выделяем её в списке<strong>ПКМ</strong>и выбираем<strong>Set Retarget Root</strong>. При этом вносить root в список цепей костей для будущего перенаправления не нужно.</p>
49
<p>В Unreal Engine есть своя специфика в отношении root bone. В качестве root bone обычно задействуют бедренную кость (pelvis или hips). Выделяем её в списке<strong>ПКМ</strong>и выбираем<strong>Set Retarget Root</strong>. При этом вносить root в список цепей костей для будущего перенаправления не нужно.</p>
50
Выделение бедренной кости (pelvis) и действие Set Retarget Root<em>Скриншот: Unreal Editor / Epic Games</em><p>Создав все необходимые цепи, сохраняем ассет и сворачиваем окно. Далее нужно проделать аналогичную операцию с Источником.</p>
50
Выделение бедренной кости (pelvis) и действие Set Retarget Root<em>Скриншот: Unreal Editor / Epic Games</em><p>Создав все необходимые цепи, сохраняем ассет и сворачиваем окно. Далее нужно проделать аналогичную операцию с Источником.</p>
51
<p>Создаём новый<strong>IK Rig</strong>и выбираем подходящий Skeletal Mesh. В UE5 доступно несколько видов манекенов, которые различаются как анимациями, так и иерархией костей. И в целом выбор зависит от скелета, на который будут перенаправлены анимации. Нет смысла брать стандартный риг, если скелет Цели простой, так как в состав цепей войдут лишь основные кости. В случае с низкополигональными моделями можно ограничиться классическим манекеном из UE4 (68 костей) или выбрать<strong>Manny_Simple</strong>или<strong>Quinn_Simple</strong>. Костей в арматуре последних почти в два раза меньше, чем в стандартном манекене (89 вместо 161). В текущем примере выбран Skeletal Mesh Quinn_Simple.</p>
51
<p>Создаём новый<strong>IK Rig</strong>и выбираем подходящий Skeletal Mesh. В UE5 доступно несколько видов манекенов, которые различаются как анимациями, так и иерархией костей. И в целом выбор зависит от скелета, на который будут перенаправлены анимации. Нет смысла брать стандартный риг, если скелет Цели простой, так как в состав цепей войдут лишь основные кости. В случае с низкополигональными моделями можно ограничиться классическим манекеном из UE4 (68 костей) или выбрать<strong>Manny_Simple</strong>или<strong>Quinn_Simple</strong>. Костей в арматуре последних почти в два раза меньше, чем в стандартном манекене (89 вместо 161). В текущем примере выбран Skeletal Mesh Quinn_Simple.</p>
52
<p>Теперь наша задача - создать в <strong>IK Rig</strong>Источника такие же цепи костей, как и у Цели. Возможно, даже в скелете Simple-манекена окажется гораздо больше костей, чем в импортированном, но всё содержимое можно также разделить на логические сегменты. Главное, чтобы общее содержание цепей совпадало у обоих ригов. Придерживаться одинаковых наименований цепей при этом не обязательно. В текущем примере у Цели есть цепь<strong>Head</strong>(кость шеи и головы), а у Источника - цепь<strong>Neck</strong>(две кости шеи и кость головы). Если сопоставить их между собой на следующей стадии, редактор всё равно поймёт, что кости в этих группах выполняют одинаковую задачу.</p>
52
<p>Теперь наша задача - создать в <strong>IK Rig</strong>Источника такие же цепи костей, как и у Цели. Возможно, даже в скелете Simple-манекена окажется гораздо больше костей, чем в импортированном, но всё содержимое можно также разделить на логические сегменты. Главное, чтобы общее содержание цепей совпадало у обоих ригов. Придерживаться одинаковых наименований цепей при этом не обязательно. В текущем примере у Цели есть цепь<strong>Head</strong>(кость шеи и головы), а у Источника - цепь<strong>Neck</strong>(две кости шеи и кость головы). Если сопоставить их между собой на следующей стадии, редактор всё равно поймёт, что кости в этих группах выполняют одинаковую задачу.</p>
53
<p>При массовом выделении костей в списке слева редактор создаёт несколько дополнительных цепей. Поскольку при выборе затронута одна или несколько подгрупп, он автоматически разбивает одну цепь на несколько дополнительных в соответствии с иерархией.</p>
53
<p>При массовом выделении костей в списке слева редактор создаёт несколько дополнительных цепей. Поскольку при выборе затронута одна или несколько подгрупп, он автоматически разбивает одну цепь на несколько дополнительных в соответствии с иерархией.</p>
54
Результат массового выделения нескольких подгрупп<em>Скриншот: Unreal Editor / Epic Games</em><p>Если это произошло, выделяем необходимую кость, которую не получилось автоматически вписать в основную цепь, и в окне<strong>IK Retargeting</strong>указываем её как конечную (<strong>End Bone</strong>), а остальные сгенерированные цепи удаляем. Также можно изначально выделить только те кости, которые требуются для определённой цепи.</p>
54
Результат массового выделения нескольких подгрупп<em>Скриншот: Unreal Editor / Epic Games</em><p>Если это произошло, выделяем необходимую кость, которую не получилось автоматически вписать в основную цепь, и в окне<strong>IK Retargeting</strong>указываем её как конечную (<strong>End Bone</strong>), а остальные сгенерированные цепи удаляем. Также можно изначально выделить только те кости, которые требуются для определённой цепи.</p>
55
Первый способ добавления в цепь кости, которая относится к другой группе<em>Скриншот: Unreal Editor / Epic Games</em>Второй способ добавления в цепь кости, которая относится к другой группе<em>Скриншот: Unreal Editor / Epic Games</em><p>Далее переносим точку root на бедренную кость, как ранее в <strong>IK Rig</strong>Цели: нажимаем<strong>ПКМ</strong>на кость pelvis и выбираем<strong>Set Retarget Root</strong>.</p>
55
Первый способ добавления в цепь кости, которая относится к другой группе<em>Скриншот: Unreal Editor / Epic Games</em>Второй способ добавления в цепь кости, которая относится к другой группе<em>Скриншот: Unreal Editor / Epic Games</em><p>Далее переносим точку root на бедренную кость, как ранее в <strong>IK Rig</strong>Цели: нажимаем<strong>ПКМ</strong>на кость pelvis и выбираем<strong>Set Retarget Root</strong>.</p>
56
Финальный IK Rig манекена Quinn с простой арматурой<em>Скриншот: Unreal Editor / Epic Games</em><p>Закончив сборку цепей, сохраняем ассет, сворачиваем окно и в <strong>Content Browser</strong>создаём новый ассет -<strong>IK Retargeter</strong>. Он расположен в той же вкладке, что и <strong>IK Rig</strong>. В диалоговом окне нужно выбрать, какой<strong>IK Rig</strong>будет Источником. В данном примере мы переносим анимации с Quinn, поэтому выбираем этот<strong>IK Rig</strong>.</p>
56
Финальный IK Rig манекена Quinn с простой арматурой<em>Скриншот: Unreal Editor / Epic Games</em><p>Закончив сборку цепей, сохраняем ассет, сворачиваем окно и в <strong>Content Browser</strong>создаём новый ассет -<strong>IK Retargeter</strong>. Он расположен в той же вкладке, что и <strong>IK Rig</strong>. В диалоговом окне нужно выбрать, какой<strong>IK Rig</strong>будет Источником. В данном примере мы переносим анимации с Quinn, поэтому выбираем этот<strong>IK Rig</strong>.</p>
57
Меню при создании IK Retargeter. Красным выделен IK Rig Источника<em>Скриншот: Unreal Editor / Epic Games</em><p>Созданный ассет переименовываем на своё усмотрение и открываем. В новом окне отдаляем камеру во вьюпорте колёсиком мыши, чтобы лучше видеть модель. В настройках справа указано, что данный риг -<strong>Source</strong>(т.е. Источник), и теперь нужно назначить Цель. В разделе<strong>Target</strong>указываем<strong>IK Rig</strong>, который мы создавали в самом начале. После этого Цель появится в той же точке, где находится Источник.</p>
57
Меню при создании IK Retargeter. Красным выделен IK Rig Источника<em>Скриншот: Unreal Editor / Epic Games</em><p>Созданный ассет переименовываем на своё усмотрение и открываем. В новом окне отдаляем камеру во вьюпорте колёсиком мыши, чтобы лучше видеть модель. В настройках справа указано, что данный риг -<strong>Source</strong>(т.е. Источник), и теперь нужно назначить Цель. В разделе<strong>Target</strong>указываем<strong>IK Rig</strong>, который мы создавали в самом начале. После этого Цель появится в той же точке, где находится Источник.</p>
58
Источник и Цель во вьюпорте IK Retargeter<em>Скриншот: Unreal Editor / Epic Games</em><p>Во время ретаргетинга анимации учитывается изначальное положение скелета, то есть<a>A- или Т-поза</a>. Манекены в UE по умолчанию находятся в A-позе. Поэтому, если Цель изначально была в Т-позе, положение рук необходимо изменить, иначе при дальнейшем ретаргетинге меш импортированной модели будет деформирован. Аналогичные манипуляции потребуются и в случае, если Источником окажется модель в T-позе - тогда Цель в A-позе (например, тот же манекен) также нужно привести в Т-позу.</p>
58
Источник и Цель во вьюпорте IK Retargeter<em>Скриншот: Unreal Editor / Epic Games</em><p>Во время ретаргетинга анимации учитывается изначальное положение скелета, то есть<a>A- или Т-поза</a>. Манекены в UE по умолчанию находятся в A-позе. Поэтому, если Цель изначально была в Т-позе, положение рук необходимо изменить, иначе при дальнейшем ретаргетинге меш импортированной модели будет деформирован. Аналогичные манипуляции потребуются и в случае, если Источником окажется модель в T-позе - тогда Цель в A-позе (например, тот же манекен) также нужно привести в Т-позу.</p>
59
<p>Чтобы придать Skeletal Mesh A-позу, нужно убедиться, что в меню слева отмечена Цель, и перейти в режим<strong>Edit Mode</strong>. Из списка выбираем кость плеча, которая отвечает за подъём руки (обычно это upper arm или shoulder) и перемещаем её в положение, максимально близкое к плечу Источника. Если размер меша Цели отличается от Источника, в настройках справа его можно увеличить или уменьшить (параметр<strong>Target Mesh Scale</strong>) и так добиться более аккуратного позиционирования.</p>
59
<p>Чтобы придать Skeletal Mesh A-позу, нужно убедиться, что в меню слева отмечена Цель, и перейти в режим<strong>Edit Mode</strong>. Из списка выбираем кость плеча, которая отвечает за подъём руки (обычно это upper arm или shoulder) и перемещаем её в положение, максимально близкое к плечу Источника. Если размер меша Цели отличается от Источника, в настройках справа его можно увеличить или уменьшить (параметр<strong>Target Mesh Scale</strong>) и так добиться более аккуратного позиционирования.</p>
60
<p>В данном примере плечи Цели находятся на одном уровне с плечами Источника, и необходимо лишь немного сместить предплечье и кисть руки вперёд. Выбираем левую кость предплечья из списка, поворачиваем её относительно осей, запоминаем координаты в настройках справа и по ним сверяем правую руку.</p>
60
<p>В данном примере плечи Цели находятся на одном уровне с плечами Источника, и необходимо лишь немного сместить предплечье и кисть руки вперёд. Выбираем левую кость предплечья из списка, поворачиваем её относительно осей, запоминаем координаты в настройках справа и по ним сверяем правую руку.</p>
61
Настройка позы Цели в соответствии с позой Источника<em>GIF: Unreal Editor / Epic Games</em><p>Закончив правки, отодвинем Цель в сторону. Для этого нужно изменить первое значение (ось X) в параметре<strong>Target Mesh Offset</strong>. Напоследок проверяем, соответствуют ли цепи костей обоих ригов друг другу. Особенно важно проверить цепи с разными названиями, как в случае со связкой<strong>Neck</strong>и <strong>Head</strong>, которая упоминалась ранее. Убедившись, что всё верно, переходим во вкладку<strong>Asset Browser</strong>со списком поз и проверяем результат.</p>
61
Настройка позы Цели в соответствии с позой Источника<em>GIF: Unreal Editor / Epic Games</em><p>Закончив правки, отодвинем Цель в сторону. Для этого нужно изменить первое значение (ось X) в параметре<strong>Target Mesh Offset</strong>. Напоследок проверяем, соответствуют ли цепи костей обоих ригов друг другу. Особенно важно проверить цепи с разными названиями, как в случае со связкой<strong>Neck</strong>и <strong>Head</strong>, которая упоминалась ранее. Убедившись, что всё верно, переходим во вкладку<strong>Asset Browser</strong>со списком поз и проверяем результат.</p>
62
Проверка цепей костей и просмотр анимаций Источника и их перенаправление на Цель в реальном времени<p>Понравившиеся анимации можно экспортировать, нажав на <strong>Export Selected Animations</strong>(кнопка с зелёной дискетой). В настройках экспорта по желанию можно добавить к названию префикс или суффикс: они помогут быстрее отыскать ассет в строке поиска. Полученные анимации уже будут относиться к Skeletal Mesh Цели, и их можно использовать в дальнейшей работе.</p>
62
Проверка цепей костей и просмотр анимаций Источника и их перенаправление на Цель в реальном времени<p>Понравившиеся анимации можно экспортировать, нажав на <strong>Export Selected Animations</strong>(кнопка с зелёной дискетой). В настройках экспорта по желанию можно добавить к названию префикс или суффикс: они помогут быстрее отыскать ассет в строке поиска. Полученные анимации уже будут относиться к Skeletal Mesh Цели, и их можно использовать в дальнейшей работе.</p>
63
Кат-сцена с предварительно загруженной анимацией, перенесённой на персонажа через ретаргетинг<em>GIF: Unreal Editor / Epic Games</em><p><a>Видеоурок</a>по ретаргетингу анимаций в ранних версиях Unreal Engine 5 можно найти на YouTube-канале Druid Mechanics.</p>
63
Кат-сцена с предварительно загруженной анимацией, перенесённой на персонажа через ретаргетинг<em>GIF: Unreal Editor / Epic Games</em><p><a>Видеоурок</a>по ретаргетингу анимаций в ранних версиях Unreal Engine 5 можно найти на YouTube-канале Druid Mechanics.</p>
64
<p>Со стороны может показаться, что описанный выше подход выглядит запутанно, ведь в теории можно просто загрузить модель в Mixamo, подобрать подходящие анимации из каталога и скачать их. Но в этом случае есть риск столкнуться с дополнительными сложностями.</p>
64
<p>Со стороны может показаться, что описанный выше подход выглядит запутанно, ведь в теории можно просто загрузить модель в Mixamo, подобрать подходящие анимации из каталога и скачать их. Но в этом случае есть риск столкнуться с дополнительными сложностями.</p>
65
<p>Во-первых, сервис Adobe может загружать напрямую не любые модели. По опыту пользователей, Mixamo часто выдаёт<a>ошибки</a>при воспроизведении высокополигональных моделей, требует<a>переконвертации</a>, а также<a>не отображает</a>текстуры, если они состоят из нескольких карт. Это значит, что работа с более детальными моделями потребует дополнительных манипуляций. Надёжным способом считается<a>ретаргетинг</a>анимации с помощью аддона Rokoko Mixamo в Blender. На сайте Mixamo из каталога подбирают модель, схожую по комплекции с оригинальной, сохраняют необходимые анимации, загружают в Blender и с помощью аддона перенаправляют данные костей. Полученную анимацию можно использовать в рамках программы или экспортировать в движок.</p>
65
<p>Во-первых, сервис Adobe может загружать напрямую не любые модели. По опыту пользователей, Mixamo часто выдаёт<a>ошибки</a>при воспроизведении высокополигональных моделей, требует<a>переконвертации</a>, а также<a>не отображает</a>текстуры, если они состоят из нескольких карт. Это значит, что работа с более детальными моделями потребует дополнительных манипуляций. Надёжным способом считается<a>ретаргетинг</a>анимации с помощью аддона Rokoko Mixamo в Blender. На сайте Mixamo из каталога подбирают модель, схожую по комплекции с оригинальной, сохраняют необходимые анимации, загружают в Blender и с помощью аддона перенаправляют данные костей. Полученную анимацию можно использовать в рамках программы или экспортировать в движок.</p>
66
<p>Во-вторых, прямая загрузка анимаций из Mixamo в Unreal Engine часто<a>сопровождается</a>ошибками. Самая распространённая из них -<strong>Mesh contains root bone as root but animation doesn’t content root track</strong>, из-за которой импорт невозможен. Это происходит, потому что Mixamo генерирует свой риг без кости root. Из-за этого придётся импортировать персонажа из сервиса, в котором есть арматура Mixamo по умолчанию, а затем перенаправлять анимацию на нужную Цель. Эту проблему также можно решить с помощью дополнительных плагинов типа<a>Mixamo Animation Retargeting 2</a>и других похожих инструментов, но процесс также потребует дополнительного времени и финансовых затрат.</p>
66
<p>Во-вторых, прямая загрузка анимаций из Mixamo в Unreal Engine часто<a>сопровождается</a>ошибками. Самая распространённая из них -<strong>Mesh contains root bone as root but animation doesn’t content root track</strong>, из-за которой импорт невозможен. Это происходит, потому что Mixamo генерирует свой риг без кости root. Из-за этого придётся импортировать персонажа из сервиса, в котором есть арматура Mixamo по умолчанию, а затем перенаправлять анимацию на нужную Цель. Эту проблему также можно решить с помощью дополнительных плагинов типа<a>Mixamo Animation Retargeting 2</a>и других похожих инструментов, но процесс также потребует дополнительного времени и финансовых затрат.</p>
67
<p>Способ ретаргетинга, описанный в этом материале, позволяет легко переносить анимации из Mixamo с помощью бесплатной утилиты<a>Mixamo Converter</a>. В комплекте с программой идут адаптированные FBX-файлы манекенов из четвёртой и пятой версий Unreal Engine - их можно загрузить в сервис Mixamo без ошибок, выбрать понравившиеся анимации из каталога, скачать их риг, а затем с помощью утилиты сконвертировать FBX-файл под стандарты движка. В интерфейсе программы есть скриншоты, где указаны настройки, которые нужно задать при загрузке файлов в редактор. После успешного импорта скачанные анимации можно перенаправить с манекена на другого персонажа в окне ассета IK Retargeter.</p>
67
<p>Способ ретаргетинга, описанный в этом материале, позволяет легко переносить анимации из Mixamo с помощью бесплатной утилиты<a>Mixamo Converter</a>. В комплекте с программой идут адаптированные FBX-файлы манекенов из четвёртой и пятой версий Unreal Engine - их можно загрузить в сервис Mixamo без ошибок, выбрать понравившиеся анимации из каталога, скачать их риг, а затем с помощью утилиты сконвертировать FBX-файл под стандарты движка. В интерфейсе программы есть скриншоты, где указаны настройки, которые нужно задать при загрузке файлов в редактор. После успешного импорта скачанные анимации можно перенаправить с манекена на другого персонажа в окне ассета IK Retargeter.</p>
68
<p>Кроме того, не стоит забывать, что в <a>Unreal Marketplace</a>есть много относительно недорогих ассетов c уникальными анимациями для манекенов, которые можно быстро интегрировать в проект и аналогичным образом перенаправить на Цель.</p>
68
<p>Кроме того, не стоит забывать, что в <a>Unreal Marketplace</a>есть много относительно недорогих ассетов c уникальными анимациями для манекенов, которые можно быстро интегрировать в проект и аналогичным образом перенаправить на Цель.</p>
69
<p><strong>Примечание</strong></p>
69
<p><strong>Примечание</strong></p>
70
<p>Если говорить об анимациях моделей из Mixamo в целом, а также моделей людей, созданных в MetaHuman, DAZ Studio или Character Creator, то на данный момент перенаправление лучше всего работает в версии 5.4. И если вы планируете постоянно осуществлять ретаргетинг с контентом, созданным в этих приложениях (а это сейчас достаточно актуально), рекомендуем ознакомиться с последней главой, посвящённой ретаргетингу анимаций в обновлении 5.4.</p>
70
<p>Если говорить об анимациях моделей из Mixamo в целом, а также моделей людей, созданных в MetaHuman, DAZ Studio или Character Creator, то на данный момент перенаправление лучше всего работает в версии 5.4. И если вы планируете постоянно осуществлять ретаргетинг с контентом, созданным в этих приложениях (а это сейчас достаточно актуально), рекомендуем ознакомиться с последней главой, посвящённой ретаргетингу анимаций в обновлении 5.4.</p>
71
<p>Ниже перечислено несколько распространённых проблем, с которыми может столкнуться начинающий пользователь в процессе ретаргетинга в ранних версиях Unreal Engine 5, и возможные варианты их решения.</p>
71
<p>Ниже перечислено несколько распространённых проблем, с которыми может столкнуться начинающий пользователь в процессе ретаргетинга в ранних версиях Unreal Engine 5, и возможные варианты их решения.</p>
72
<ul><li>Меш Источника во вьюпорте парит в воздухе, в отличие от Цели.</li>
72
<ul><li>Меш Источника во вьюпорте парит в воздухе, в отличие от Цели.</li>
73
</ul><p>Решение. Можно создать цепь кости для<strong>Root</strong>и в самом<strong>IK Retargeter</strong>выделить эту цепь в меню<strong>Chain Mappings</strong>. Откроется панель с настройками, где в разделе<strong>FK Adjustments</strong>нужно найти параметр<strong>Translation Mode</strong>и выбрать в нём<strong>Globally Scaled</strong>. Если в ретаргетинге задействован манекен из <strong>UE4</strong>, рекомендуем посмотреть<a>руководство</a>по настройке костей root и pelvis и назначению им параметра<strong>Animation Scaled</strong>. На официальном форуме разработчиков отмечают, что эта техника во многих случаях помогает решить проблему с перенаправлением кости root.</p>
73
</ul><p>Решение. Можно создать цепь кости для<strong>Root</strong>и в самом<strong>IK Retargeter</strong>выделить эту цепь в меню<strong>Chain Mappings</strong>. Откроется панель с настройками, где в разделе<strong>FK Adjustments</strong>нужно найти параметр<strong>Translation Mode</strong>и выбрать в нём<strong>Globally Scaled</strong>. Если в ретаргетинге задействован манекен из <strong>UE4</strong>, рекомендуем посмотреть<a>руководство</a>по настройке костей root и pelvis и назначению им параметра<strong>Animation Scaled</strong>. На официальном форуме разработчиков отмечают, что эта техника во многих случаях помогает решить проблему с перенаправлением кости root.</p>
74
<ul><li><strong>Retarget Output Log</strong>выдаёт следующие ошибки:<strong>IK Retargeter could not find source root bone… IK Retargeter unable to initiate source root "Bone" in Skeletal Mesh</strong>.<strong></strong></li>
74
<ul><li><strong>Retarget Output Log</strong>выдаёт следующие ошибки:<strong>IK Retargeter could not find source root bone… IK Retargeter unable to initiate source root "Bone" in Skeletal Mesh</strong>.<strong></strong></li>
75
</ul><p>Решение.<strong></strong>Скорее всего, не назначена<strong>Set Retarget Root</strong>на кости pelvis/hips и движок не распознаёт её в процессе ретаргетинга. Если после появления сообщения об ошибке вы исправили недочёт в IK Rig персонажа, но при этом в IK Retargeter один из мешей сместился по вертикали, следует попробовать один из способов, указанных в первом пункте.</p>
75
</ul><p>Решение.<strong></strong>Скорее всего, не назначена<strong>Set Retarget Root</strong>на кости pelvis/hips и движок не распознаёт её в процессе ретаргетинга. Если после появления сообщения об ошибке вы исправили недочёт в IK Rig персонажа, но при этом в IK Retargeter один из мешей сместился по вертикали, следует попробовать один из способов, указанных в первом пункте.</p>
76
<ul><li>Отдельные части меша Цели (чаще всего это пальцы) при ретаргетинге неестественно вытянуты или повёрнуты не в ту сторону.</li>
76
<ul><li>Отдельные части меша Цели (чаще всего это пальцы) при ретаргетинге неестественно вытянуты или повёрнуты не в ту сторону.</li>
77
</ul><p>Решение. Необходимо выставить Цель в более точную позу по отношению к оригиналу.</p>
77
</ul><p>Решение. Необходимо выставить Цель в более точную позу по отношению к оригиналу.</p>
78
<ul><li>Захват анимаций работает, но не полностью (некоторые части меша остаются неподвижными или двигаются неправильно).</li>
78
<ul><li>Захват анимаций работает, но не полностью (некоторые части меша остаются неподвижными или двигаются неправильно).</li>
79
</ul><p>Решение. В какой-то из цепи костей Источника и Цели есть несоответствия. Нужно ещё раз проверить содержания цепей каждого<strong>IK Rig</strong>.</p>
79
</ul><p>Решение. В какой-то из цепи костей Источника и Цели есть несоответствия. Нужно ещё раз проверить содержания цепей каждого<strong>IK Rig</strong>.</p>
80
<ul><li>Ретаргетинг работает, но отдельные части меша персонажа неестественно смещаются в процессе анимации.</li>
80
<ul><li>Ретаргетинг работает, но отдельные части меша персонажа неестественно смещаются в процессе анимации.</li>
81
</ul><p>Решение.<strong></strong>Нужно вернуться в программу для 3D-моделирования и правильно распределить вес по модели. Также, если во время ретаргетинга скелет активен, но сам меш или его часть остаются неподвижными, - значит, рисование веса не закончено.</p>
81
</ul><p>Решение.<strong></strong>Нужно вернуться в программу для 3D-моделирования и правильно распределить вес по модели. Также, если во время ретаргетинга скелет активен, но сам меш или его часть остаются неподвижными, - значит, рисование веса не закончено.</p>
82
<em>Скриншот: Unreal Editor / Epic Games</em><p>Решения многих проблем, связанных с ретаргетингом, можно найти на <a>официальном форуме</a>по Unreal Engine.</p>
82
<em>Скриншот: Unreal Editor / Epic Games</em><p>Решения многих проблем, связанных с ретаргетингом, можно найти на <a>официальном форуме</a>по Unreal Engine.</p>
83
<p>С обновлением 5.4 редактор Unreal Engine 5 стал поддерживать русский язык, так что в этой главе представлены русскоязычные названия функций и их аналоги на английском языке в скобках. Если название какой-то функции в движке ещё не перевели, сохраняется оригинальное название.</p>
83
<p>С обновлением 5.4 редактор Unreal Engine 5 стал поддерживать русский язык, так что в этой главе представлены русскоязычные названия функций и их аналоги на английском языке в скобках. Если название какой-то функции в движке ещё не перевели, сохраняется оригинальное название.</p>
84
<p>В отношении ретаргетинга обновление 5.4 интересно тем, что сводит на нет все нюансы импорта анимаций из Mixamo, о которых упоминалось ранее. Это значит, что пользователю больше не нужно создавать ассет<strong>ИК каркаса</strong>(IK Rig) для каждой импортированной модели и устанавливать сторонние программы для конвертации рига Mixamo под стандарты движка. Рассмотрим, как это работает на практике.</p>
84
<p>В отношении ретаргетинга обновление 5.4 интересно тем, что сводит на нет все нюансы импорта анимаций из Mixamo, о которых упоминалось ранее. Это значит, что пользователю больше не нужно создавать ассет<strong>ИК каркаса</strong>(IK Rig) для каждой импортированной модели и устанавливать сторонние программы для конвертации рига Mixamo под стандарты движка. Рассмотрим, как это работает на практике.</p>
85
<p>Заходим на сайт Mixamo, выбираем понравившегося персонажа из раздела<strong>Characters</strong>и анимацию в <strong>Animations</strong>. Нажимаем<strong>Download</strong>. В новом диалоговом окне следим, чтобы в параметре<strong>Skin</strong>было указано<strong>With Skin</strong>, и скачиваем FBX-файл.</p>
85
<p>Заходим на сайт Mixamo, выбираем понравившегося персонажа из раздела<strong>Characters</strong>и анимацию в <strong>Animations</strong>. Нажимаем<strong>Download</strong>. В новом диалоговом окне следим, чтобы в параметре<strong>Skin</strong>было указано<strong>With Skin</strong>, и скачиваем FBX-файл.</p>
86
<em>Скриншот: сайт Mixamo</em><p>На первом этапе наша основная цель - получить<strong>Скелетную сетку</strong>(Skeletal Mesh). При скачивании сервис присваивает файлу название выбранной анимации. Если вы планируете загрузить больше анимаций, перед импортом можно переименовать файл, присвоив ему название модели, а уже потом скачивать и загружать в редактор другие анимации с названиями движений. Перетаскиваем файл в заранее подготовленную папку<strong>Каталога ресурсов</strong>(Content Browser). При импорте оставляем все настройки по умолчанию. Главное - убедиться, что напротив пункта<strong>Skeletal Mesh</strong>проставлена галочка.</p>
86
<em>Скриншот: сайт Mixamo</em><p>На первом этапе наша основная цель - получить<strong>Скелетную сетку</strong>(Skeletal Mesh). При скачивании сервис присваивает файлу название выбранной анимации. Если вы планируете загрузить больше анимаций, перед импортом можно переименовать файл, присвоив ему название модели, а уже потом скачивать и загружать в редактор другие анимации с названиями движений. Перетаскиваем файл в заранее подготовленную папку<strong>Каталога ресурсов</strong>(Content Browser). При импорте оставляем все настройки по умолчанию. Главное - убедиться, что напротив пункта<strong>Skeletal Mesh</strong>проставлена галочка.</p>
87
<em>Скриншот: Unreal Editor / Epic Games</em><p>В журнале сообщений редактор может оповестить о том, что в "сцене FBX не найдены группы сглаживания". Игнорируем это. В <strong>Каталоге ресурсов</strong>(Content Browser) появились статическая и скелетная сетки (меши) модели, ассет с физикой, материалы и, наконец, сама анимация (значок ассета с зелёной линией). Её можно просмотреть в отдельном окне, дважды щёлкнув по ней<strong>ЛКМ</strong>.</p>
87
<em>Скриншот: Unreal Editor / Epic Games</em><p>В журнале сообщений редактор может оповестить о том, что в "сцене FBX не найдены группы сглаживания". Игнорируем это. В <strong>Каталоге ресурсов</strong>(Content Browser) появились статическая и скелетная сетки (меши) модели, ассет с физикой, материалы и, наконец, сама анимация (значок ассета с зелёной линией). Её можно просмотреть в отдельном окне, дважды щёлкнув по ней<strong>ЛКМ</strong>.</p>
88
<p>Теперь, чтобы перенаправить анимацию на другого персонажа, кликаем<strong>ПКМ</strong>по значку с анимацией и в открывшемся меню выбираем пункт<strong>Перенаправить анимации</strong>(Retarget Animations).</p>
88
<p>Теперь, чтобы перенаправить анимацию на другого персонажа, кликаем<strong>ПКМ</strong>по значку с анимацией и в открывшемся меню выбираем пункт<strong>Перенаправить анимации</strong>(Retarget Animations).</p>
89
<em>Скриншот: Unreal Editor / Epic Games</em><p>После этого откроется окно, где нужно назначить<strong>Скелетную сетку-источник</strong>(Source Skeletal Mesh) и <strong>Скелетную сетку-цель</strong>(Target Skeletal Mesh). В данном случае Источником станет анимация, которую мы скачали, а Целью - скелетная сетка, на которую мы перенесём эту анимацию. В качестве примера выберем скелетную сетку уже знакомого нам манекена<strong>SKM_Quinn</strong>. Процесс перенаправления костей происходит автоматически. Посмотреть, как анимация выглядит на новом персонаже, можно, нажав на её название в окне, расположенном в правом нижнем углу.</p>
89
<em>Скриншот: Unreal Editor / Epic Games</em><p>После этого откроется окно, где нужно назначить<strong>Скелетную сетку-источник</strong>(Source Skeletal Mesh) и <strong>Скелетную сетку-цель</strong>(Target Skeletal Mesh). В данном случае Источником станет анимация, которую мы скачали, а Целью - скелетная сетка, на которую мы перенесём эту анимацию. В качестве примера выберем скелетную сетку уже знакомого нам манекена<strong>SKM_Quinn</strong>. Процесс перенаправления костей происходит автоматически. Посмотреть, как анимация выглядит на новом персонаже, можно, нажав на её название в окне, расположенном в правом нижнем углу.</p>
90
На видео можно оценить, насколько корректно выполнен автоматизированный перенос, включая движения пальцев<p>Полученную анимацию можно сохранить, выделив её и нажав<strong>Экспорт анимаций</strong>(Export Animations). Процесс напоминает экспорт анимаций по классическому ретаргетингу: выбираем папку для сохранения, по желанию добавляем префиксы и суффиксы. Далее откроется окно с <strong>Настройками пакетного экспорта</strong>(Batch Export Options), в них можно оставить всё как есть.</p>
90
На видео можно оценить, насколько корректно выполнен автоматизированный перенос, включая движения пальцев<p>Полученную анимацию можно сохранить, выделив её и нажав<strong>Экспорт анимаций</strong>(Export Animations). Процесс напоминает экспорт анимаций по классическому ретаргетингу: выбираем папку для сохранения, по желанию добавляем префиксы и суффиксы. Далее откроется окно с <strong>Настройками пакетного экспорта</strong>(Batch Export Options), в них можно оставить всё как есть.</p>
91
<p>Новый подход в версии 5.4 поможет перенаправить анимации не только из Mixamo, но и из приложений, поддерживающих захват движений, в частности<a>MetaHuman</a>,<a>Character Creator</a>,<a>Daz 3D</a>,<a>Move AI</a>,<a>MotionBuilder</a>и <a>Xsens MVN Animate</a>. При этом движения можно перенаправить на <strong>любого</strong>персонажа, у которого есть скелетная сетка, созданная по подобию человека. Весь процесс занимает буквально пару минут и не требует предварительного переназначения костей в <strong>ИК каркасе</strong>(IK Rig), как это было раньше.</p>
91
<p>Новый подход в версии 5.4 поможет перенаправить анимации не только из Mixamo, но и из приложений, поддерживающих захват движений, в частности<a>MetaHuman</a>,<a>Character Creator</a>,<a>Daz 3D</a>,<a>Move AI</a>,<a>MotionBuilder</a>и <a>Xsens MVN Animate</a>. При этом движения можно перенаправить на <strong>любого</strong>персонажа, у которого есть скелетная сетка, созданная по подобию человека. Весь процесс занимает буквально пару минут и не требует предварительного переназначения костей в <strong>ИК каркасе</strong>(IK Rig), как это было раньше.</p>
92
Перенос той же самой анимации, но уже на знакомую нам низкополигональную модель<p>* * *</p>
92
Перенос той же самой анимации, но уже на знакомую нам низкополигональную модель<p>* * *</p>
93
<p>Резюмируя, можно отметить, что система ретаргетинга в Unreal Engine значительно ускоряет процесс разработки игр и визуализации. Но если ваш проект содержит много уникальных анимаций, рекомендуется работать с ними в последних сборках движка, в частности 5.4.</p>
93
<p>Резюмируя, можно отметить, что система ретаргетинга в Unreal Engine значительно ускоряет процесс разработки игр и визуализации. Но если ваш проект содержит много уникальных анимаций, рекомендуется работать с ними в последних сборках движка, в частности 5.4.</p>
94
<a><p>Профессия 3D-дженералист</p>
94
<a><p>Профессия 3D-дженералист</p>
95
<p>Вы станете универсальным специалистом, который умеет в 3D всё: создавать объекты и окружение, настраивать текстуры и цвет, анимировать модели и внедрять их в 3D-сцену.</p>
95
<p>Вы станете универсальным специалистом, который умеет в 3D всё: создавать объекты и окружение, настраивать текстуры и цвет, анимировать модели и внедрять их в 3D-сцену.</p>
96
<p>Освоите Houdini, Autodesk Maya, Blender, Photoshop, ZBrush, Marmoset 3D, Substance Painter, Marvelous Designer, Arnold и Rizom UV. Сможете претендовать на работу в рекламе, играх или кино.</p>
96
<p>Освоите Houdini, Autodesk Maya, Blender, Photoshop, ZBrush, Marmoset 3D, Substance Painter, Marvelous Designer, Arnold и Rizom UV. Сможете претендовать на работу в рекламе, играх или кино.</p>
97
<p><em>На иллюстрации: работа участника курса Евгения Кузнецова</em></p>
97
<p><em>На иллюстрации: работа участника курса Евгения Кузнецова</em></p>
98
<p>Узнать про курс</p>
98
<p>Узнать про курс</p>
99
</a><a>Научитесь: Профессия 3D-дженералист Узнать больше</a>
99
</a><a>Научитесь: Профессия 3D-дженералист Узнать больше</a>