Как изменить персонажа в 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). Я заскринил его и поставил изображения на фон.
Правила, которые нужно соблюдать при создании БлендерСкелета:
1) Слева - иерархия костей и их названия у ЭпикСкелета. Именно такая иерархия и названия должны быть у нашего БлендерСкелета.
2) Сам риг должен называться “root”. Насколько я понял, отдельной кости с таким названием не нужно. В блендере первая кость называется metarig, а в UE я ее в принципе не видел. Она просто пропадает.
3) Желтым я выделил те кости которые не важны. Я так понял они отвечают за скручивание. Вообще вроде могут отсутствовать все пальцы (включая на ногах). Остальные кости обязательны.
4) Важно помнить: IK кости, которые привязаны к костям скелета изменяют иерархию. Перед экспортом нужно восстановить иерархию.
5) Часто видел, что оси костей должны быть направлены так же, как и у ЭпикСкелета. Я не заметил где бы это приводило к какой-то ошибке.
Проблема 1.
Создание собственных мешей (внешность персонажа) для стандартного скелета в UE4.
Если мы хотим изменить внешний вид персонажа в движке, не меняя его скелет, мы можем экспортировать ЭпикСкелет из движка и в Блендере привязать наш меш к этому скелету. Но это не удобно, потому что импортированный в Блендер скелет имеет ужасную форму. Я покажу как сделать это легче. Нам понадобится созданный нами БлендерСкелет.
1) Экспортируем из UE скелет, к которому хотим привязать наш меш.
2) Импортируем его в блендер. В Блендере у нас уже есть меш, который был привязан к БлендерСкелету. Удаляем БлендерСкелет, если нужно масштабируем меш до размеров ЭпикСкелета и привязываем наш меш к ЭпикСкелету с пустыми группами.
3) Экспортируем с дефолтными настройками, за исключением конечный костей (выделил желтым).
4) В UE импортируем, выбирая наш целевой ЭпикСкелет, обратите внимание на масштаб, ставим 1.
Важно помнить: ЭпикСкелет нельзя трогать вообще. Меш хранит вертекс группы, которые привязаны к опреденным названиям костей. А так как у нас названия идентичны, все веса переносятся на ЭпикСкелет.
И готово. Наш меш может быть выбран для ЭпикСкелета.
Проблема 2.
Создание собственного персонажа для UE4 и применение к нему стандартных анимаций.
Иногда анимации легче скачать из Маркетплэйса или воспользоваться бесплатным паком. А что, если наш персонаж имеет нестандартные пропорции. (большая голова, длинные руки или ноги) Для этого:
Иерархия и имена костей его БлендерСкелета все еще должны быть как у ЭпикСкелета. Лучше, если он будет иметь позу “А”, как у меня на скринах.
1) Экспортируем его с кастомными настройками.
2) Импортируем его в UE, не забыв про масштаб.
3) Кликаем два раза по нашему скелету и в Retarget Manager указываем Humanoid. Справа нажимаем Apply to asset и сохраняем.
4) На нужной нам анимации - duplicat and retarget.
5) Выбираем наш скелет и нажимаем retarget.
Любая анимация дублируется и применяется к нашему персонажу.
Проблема 3.
Создание собственных анимаций для стандартного скелета в UE4
Мы имеем стандартный скелет, у нас есть внешность для этого скелета, но не хватает анимации. Что же делать? Нужно использовать БлендерСкелет, идентичный ЭпикСкелету, который мы создали в самом начале. (тут уже важны пропорции, чтобы не было сюрпризов при ретаргет)
1) Создаем анимацию на БлендерСкелете, экспортируем все вместе с кастомными настройками, добавляя экспорт анимаций.
2) Импортируем в UE. Не забываем проверять скэйл и галочку импорта анимации.
3) Кликаем два раза по нашему скелету и в Retarget Manager указываем Humanoid. Справа нажимаем Apply to asset и сохраняем.
4) И уже на нами созданной анимации делаем ретаргет.
5) Выбираем наш целевой ЭпикСкелет.
Снова создался дубликат нашей анимации, но который уже будет применен к ЭпикСкелету.
Еще раз повторюсь, что возможно мои методы не идеальны. Если вы можете как-то дополнить или исправить меня, пожалуйста, делайте это)
Если у вас есть вопросы, я оставлю ссылку на свою группу, я постараюсь помочь по мере своих знаний.
Моя группа в вк: https://vk.com/monti_blog
Лига Разработчиков Видеоигр
8.5K поста23.1K подписчика
Правила сообщества
ОБЩИЕ ПРАВИЛА:
- Уважайте чужой труд и используйте конструктивную критику
- Не занимайтесь саморекламой, пишите качественные и интересные посты
- Никакой политики
СТОИТ ПУБЛИКОВАТЬ:
- Посты о Вашей игре с историей её разработки и описанием полученного опыта
- Обучающие материалы, туториалы
- Интервью с опытными разработчиками
- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе
НЕ СТОИТ ПУБЛИКОВАТЬ:
- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры
- Посты, единственная цель которых - набор команды для разработки игры
- Посты, не относящиеся к тематике сообщества
Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.
ЗАПРЕЩЕНО:
- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции
- Выдавать чужой труд за свой
Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.
О РАЗМЕЩЕНИИ ССЫЛОК:
Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:
- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества
- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз
- Cсылка размещается в формате: "Страница игры в Steam: URL"