Экспорт в UE4 с помощью аддона Send to Unreal для Blender.

24. августа 2020 Blender, Unreal Engine 4 0

Send to Unreal — это официальный аддон от Epic Games, позволяющий производить корректный экспорт объектов из Blender в движок Unreal Engine 4. Можно экспортировать статичную и скелетную геометрию (включая морфы), а так же анимации. Аддон хорошо работает с Linux-версией Blender и Unreal Engine.

Официальный репозиторий: https://github.com/EpicGames/BlenderTools

Примечание: Репозиторий приватный, поэтому потребуется аккаунт на GitHub и его подключение к профилю на официальном сайте движка: https://www.unrealengine.com/en-US/ue4-on-github

Официальные уроки по Send to Unreal:

https://www.youtube.com/playlist?list=PLZlv_N0_O1gZfQaN9qXynWllL7bzX8H3t

Подготовка к работе.

Настройка движка.

Аддон устанавливается в Blender так же, как и прочие аддоны, но для дальнейшей работы потребуется довольно нетривиальная настройка. Как бы не было удивительно, начать придётся с настройки Unreal Engine и проекта, в который планируется производить экспорт.

В движке в Edit / Plugins необходимо активировать плагины Python Editor Script Plugin и Editor Scripting Utilities.

В Edit / Project Settings включить дистанционную активацию Python-скриптов:

Python Remote Execution / Enable Remote Execution

В Edit / Editor Preferences отключить Use Less CPU when in Background. Это нужно, чтобы редактор не замедлялся в свёрнутом состоянии, и экспорт из Blender в движок происходил корректно.

Перезапустить движок.

Настройка сетевого экрана (брандмауэр).

Сигнал от аддона к движку о том, что нужно произвести импорт экспортируемого объекта, передаётся по сети посредством Python API. По умолчанию в сетевом экране такая возможность заблокирована. Необходимо разрешить доступ к адресу 239.0.0.1:6766 с адреса компьютера в локальной сети. Иначе аддон не сможет взаимодействовать с движком и будет показана ошибка «Could not find an open Unreal Editor instance». К примеру, адрес компьютера в локальной сети 192.168.1.5, то разрешение будет выглядеть так:

Настройка аддона в Blender.

Примечание: Настройки аддона сбрасываются выключением-включением.

Вкладка Paths.

Always use Unreal scene scale — если активировано, то при открытии новой сцены будет автоматически настроен Unit Scale на 0,01 и в соответствии с этим будут настроены размер ячеек сетки «пола» и дальнее расстояние отсечения 3D-вида (Clip End). Для удобства стоит активировать.

Выбор режима экспорта. Есть три режима экспорта:

Send to Unreal — напрямую отправляет экспортируемый объект на импорт движок через временно создаваемый FBX-файл.

Export to Disk — сохраняет FBX в указанный каталог.

Both — две опции одновременно.

Примечание: Опции FBX настраиваются в панели аддона в разделе Export.

Настройка путей экспорта.

Mesh Folder (Unreal) — указать путь для экспорта статичной геометрии. Под /Game подразумевается каталог Content (корневой каталог для контента в проекте) открытого в движке проекта. Далее подразумевается путь до конкретного подкаталога внутри Content. Если не поменять путь, то автоматически будут созданы каталоги untitled_category/untitled_asset.

Для Animation Folder (Unreal) и Skeleton Asset (Unreal) — всё аналогично. Здесь стоит упомянуть, что для скелета не требуется указывать путь в том случае, если устраивает, что он будет сохранён в тот же каталог, что и skeletal mesh.

Вкладка Export.

Export all actions — экспортировать все Action из сцены. Удобнее указывать конкретные каналы в NLA, поэтому лучше отключить.

Auto stash active action — позволяет в NLA не создавать каналы для каждого Action вручную. При экспорте это будет сделано автоматически. Лучше создавать самостоятельно — отключить.

Auto sync control NLA strips to source — при использовании «UE to Rigify» при активации «Send to Unreal» синхронизирует NLA каналы из source rig с каналами в control rig.

Use object origin — объекты будут экспортированы со своим origin, а не с world origin. Для экспорта одиночных объектов оптимально включить.

Настройки FBX в аддоне.

Тот самый промежуточный FBX, который так же можно сохранить на накопитель с опциями Export to Disk и Both.

Настройки скрыты в выпадающем списке:

Стандартные настройки выглядят так:

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

По вкладкам Import и Validations всё очевидно из описания пунктов, можно легко разобраться самостоятельно.

Наконец с настройками покончено. Можно приступить к экспорту.

Кратко об экспорте.

Сначала настраивается сцена, потом объект экспорта добавляется в специальные коллекции. При нажатии кнопки Pipeline / Export / Send to Unreal аддон будет пытаться обнаружить запущенный движок и активный проект, чтобы экспортируемый объект автоматически импортировался в движок. Ниже подготовка и экспорт подробно рассмотрены.

Экспорт статичной геометрии.

Убедиться, что сцена настроена следующим образом:

  • В настройках рендера указать 30 FPS для анимации. Это стандартная частота кадров в секунду для анимации в Unreal Engine.
  • Unit System: Metric
  • Unit Scale: 0,01

Подготовка к экспорту. Базовые коллекции.

Выбор объектов для экспорта завязан на специальные коллекции, которые создаются автоматически после активации аддона. Экспортироваться будут только те объекты, которые находятся в этих коллекциях. Всего три специальные коллекции: Mesh, Rig, Extras.

Mesh — в эту коллекцию добавляется статичная и скелетная геометрия.

Rig — сюда добавляются Armature (скелеты). Стоит отметить, что морфы не требуется добавлять в эти коллекции, достаточно добавить основную геометрию в Mesh, а скелет — в Rig.

Extras — служебная коллекция, обычно не используется.

Подготовка к экспорту. Организация контента.

Объект, материал и текстуры должны иметь адекватные названия, так как они будут импортированы в движок под именами из Blender. Пример:

  • Объект называется SM_Cone. Его префикс указывает на то, что это статичная геометрия — Static Mesh.
  • Сетка имеет такое же имя, но это не обязательно. Важно только название объекта.
  • На сетку назначено два материала: M_Cone_Green и M_Cone_Yellow.
  • Текстуры не используются.

Внешний вид объекта:

Экспорт.

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

Для удобства перемещения между коллекциями стоит использовать горячую клавишу M при выделенном объекте:

Примечание: Объект может быть в нескольких коллекциях, если то требуется для личного удобства.

Необходимо запустить движок и проект, в который будет вестись экспорт. После этого можно нажимать заветную кнопку в верхней панели: Pipeline / Export / Send to Unreal

Примечание: Можно экспортировать несколько отдельных объектов за раз.

Если Unreal Engine запущен, открыт желаемый проект и в сетевом экране разблокирован адрес 239.0.0.1:6766, то должна отобразиться полоска компиляции ассета в движке:

Результат в движке:

Объект будет сохранён внутри запущенного проекта по тому пути, который был указан в настройках аддона во вкладке Paths. По умолчанию и в данном примере это /Game/untitled_category/untitled_asset/. Под /Game подразумевается каталог Content в проекте. Получаем, что в каталоге Content будет создан каталог untitled_category и подкаталог untitled_asset, в котором и будет располагаться экспортируемый объект.

Экспорт скелетной геометрии.

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

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

  • Дать нормальное имя объекту и его элементам. Для скелетной геометрии принято использовать префикс SK — Skeletal Mesh. Пример: SK_Cone.
  • Для скелета (Armature) имя можно не менять. В движок скелет импортируется с именем объекта и постфиксом Skeleton. Пример: SK_Cone_Skeleton.

  • На версии аддона 1.3.7 требуется хотя бы один Action, иначе экспорт скелета и скелетных сеток будет завершаться ошибкой. Можно использовать пустой Action с Fake User.
  • Очень желательно называть Action по имени анимации, которая будет использоваться в движке. Для удобства имеет смысл использовать префикс ANIM. Пример: ANIM_Cone_Rot, то есть анимация вращения (rotation). В данном примере это поворот на 360 градусов по оси Z за 60 кадров (2 секунды при 30 FPS).
  • Обязательно создать канал в NLA (Nonlinear Animation). Для экспорта конкретной анимации необходимо включить соответствующий канал в NLA, а остальные отключить.
    • Длина анимации будет ограничена количеством кадров в канале NLA. Поэтому можно не менять глобальное значение количества кадров для Timeline.

  • Добавить скелетные сетки в коллекцию Mesh.
  • Добавить скелет в коллекцию Rig.

Теперь можно произвести непосредственный экспорт:

Результат в Unreal Engine:

На этом всё.

Процесс экспорта с помощью Send to Unreal звучит сложнее, чем есть на самом деле. Если всё-таки что-то оказалось непонятным, то стоит посмотреть официальные уроки:


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *