59

Как изменить персонажа в Blender + UE4

Когда мне нужно было работать в связке Blender + Unreal Engine 4, я столкнулся с рядом проблем, решение которых мало где освещается. Я их перечислю:

1) Создание собственных мешей (внешность персонажа) для стандартного скелета в UE4.

2) Создание собственного персонажа для UE4 и применение к нему стандартных анимаций.

3) Создание собственных анимаций для стандартного скелета в UE4.

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

Терминология:

ЭпикСкелет - скелет, который по дефолту присутствует в UE4.

БлендерСкелет - скелет, который мы создали в Blender.

Ретаргетинг - функция в UE4, с помощью которой переносятся анимации между скелетами.

Привязать к скелету - сделать развесовку меша

Первое, с чего стоит начать - сделать собственный скелет в Blender.
Для удобного ретаргетинга его нужно сделать идентичным ЭпикСкелету. Названия костей, расположение костей, иерархия костей.
Для того, чтобы было удобно создавать такой скелет, можно скачать бленд файл с вики по UE4 (гуглить character from Blender to UE4). Я заскринил его и поставил изображения на фон.

Как изменить персонажа в Blender + UE4 Длиннопост, Gamedev, Разработка, Blender, Unreal Engine 4

Правила, которые нужно соблюдать при создании БлендерСкелета:

1) Слева - иерархия костей и их названия у ЭпикСкелета. Именно такая иерархия и названия должны быть у нашего БлендерСкелета.

2) Сам риг должен называться “root”. Насколько я понял, отдельной кости с таким названием не нужно. В блендере первая кость называется metarig, а в UE я ее в принципе не видел. Она просто пропадает.

3) Желтым я выделил те кости которые не важны. Я так понял они отвечают за скручивание. Вообще вроде могут отсутствовать все пальцы (включая на ногах). Остальные кости обязательны.

4) Важно помнить: IK кости, которые привязаны к костям скелета изменяют иерархию. Перед экспортом нужно восстановить иерархию.

5) Часто видел, что оси костей должны быть направлены так же, как и у ЭпикСкелета. Я не заметил где бы это приводило к какой-то ошибке.

Проблема 1.
Создание собственных мешей (внешность персонажа) для стандартного скелета в UE4.

Если мы хотим изменить внешний вид персонажа в движке, не меняя его скелет, мы можем экспортировать ЭпикСкелет из движка и в Блендере привязать наш меш к этому скелету. Но это не удобно, потому что импортированный в Блендер скелет имеет ужасную форму. Я покажу как сделать это легче. Нам понадобится созданный нами БлендерСкелет.

Как изменить персонажа в Blender + UE4 Длиннопост, Gamedev, Разработка, Blender, Unreal Engine 4

1) Экспортируем из UE скелет, к которому хотим привязать наш меш.

2) Импортируем его в блендер. В Блендере у нас уже есть меш, который был привязан к БлендерСкелету. Удаляем БлендерСкелет, если нужно масштабируем меш до размеров ЭпикСкелета и привязываем наш меш к ЭпикСкелету с пустыми группами.

3) Экспортируем с дефолтными настройками, за исключением конечный костей (выделил желтым).

4) В UE импортируем, выбирая наш целевой ЭпикСкелет, обратите внимание на масштаб, ставим 1.
Важно помнить: ЭпикСкелет нельзя трогать вообще. Меш хранит вертекс группы, которые привязаны к опреденным названиям костей. А так как у нас названия идентичны, все веса переносятся на ЭпикСкелет.

И готово. Наш меш может быть выбран для ЭпикСкелета.

Проблема 2.
Создание собственного персонажа для UE4 и применение к нему стандартных анимаций.

Иногда анимации легче скачать из Маркетплэйса или воспользоваться бесплатным паком. А что, если наш персонаж имеет нестандартные пропорции. (большая голова, длинные руки или ноги) Для этого:

Иерархия и имена костей его БлендерСкелета все еще должны быть как у ЭпикСкелета. Лучше, если он будет иметь позу “А”, как у меня на скринах.

Как изменить персонажа в Blender + UE4 Длиннопост, Gamedev, Разработка, Blender, Unreal Engine 4

1) Экспортируем его с кастомными настройками.

2) Импортируем его в UE, не забыв про масштаб.

3) Кликаем два раза по нашему скелету и в Retarget Manager указываем Humanoid. Справа нажимаем Apply to asset и сохраняем.

4) На нужной нам анимации - duplicat and retarget.

5) Выбираем наш скелет и нажимаем retarget.


Любая анимация дублируется и применяется к нашему персонажу.

Проблема 3.
Создание собственных анимаций для стандартного скелета в UE4

Мы имеем стандартный скелет, у нас есть внешность для этого скелета, но не хватает анимации. Что же делать? Нужно использовать БлендерСкелет, идентичный ЭпикСкелету, который мы создали в самом начале. (тут уже важны пропорции, чтобы не было сюрпризов при ретаргет)

Как изменить персонажа в Blender + UE4 Длиннопост, Gamedev, Разработка, Blender, Unreal Engine 4

1) Создаем анимацию на БлендерСкелете, экспортируем все вместе с кастомными настройками, добавляя экспорт анимаций.

2) Импортируем в UE. Не забываем проверять скэйл и галочку импорта анимации.

3) Кликаем два раза по нашему скелету и в Retarget Manager указываем Humanoid. Справа нажимаем Apply to asset и сохраняем.

4) И уже на нами созданной анимации делаем ретаргет.

5) Выбираем наш целевой ЭпикСкелет.


Снова создался дубликат нашей анимации, но который уже будет применен к ЭпикСкелету.

Еще раз повторюсь, что возможно мои методы не идеальны. Если вы можете как-то дополнить или исправить меня, пожалуйста, делайте это)
Если у вас есть вопросы, я оставлю ссылку на свою группу, я постараюсь помочь по мере своих знаний.
Моя группа в вк: https://vk.com/monti_blog

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

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


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"