Экспорт в UE5 из Blender с помощью аддона Send to Unreal.
Базовая информация.
Официальный репозиторий (требуется регистрация): https://github.com/EpicGames/BlenderTools
Официальная документация: https://epicgames.github.io/BlenderTools/send2ue/
Актуальная версия аддона на начало 2023 года для Blender 3.3 и новее:
Заметка по устаревшей версии Send to Unreal: https://noostyche.ru/blog/2020/08/24/eksport-v-ue4-s-pomoshchyu-addona-send-to-unreal-dlya-blender/
Send to Unreal (Send2Unreal) — это официальный аддон от Epic Games, позволяющий производить корректный экспорт объектов из Blender в Unreal Engine 4 и 5. Доступен экспорт статичной и скелетной геометрии, уровней детализации (LoD), коллизии, анимации, морфов, геометрического кэша и groom (волосяного покрова) на основе Alembic. Аддон хорошо работает с Linux-версией Blender и Unreal Engine 5.
Подготовка к работе.
Установка аддона.
Пример установки для Blender 3.3:
- Распаковать загруженный архив, чтобы содержащийся в нём каталог send2ue был помещён в ./Blender/3.3/scripts/addons/
- Пример полного пути до извлечённого каталога: /home/$USER/.local/share/Steam/steamapps/common/Blender/3.3/scripts/addons/send2ue/
- Активировать аддон в Blender: Edit / Preferences / Add-ons / Pipeline: Send to Unreal
Настройка движка.
Для правильной работы аддона с движком требуется подключить плагин Python Editor Script Plugin.
Для этого в движке перейти в Edit / Plugins, с помощью поиска найти плагин и активировать:
Для работы Python-плагина с Send to Unreal требуется настройка проекта.
Для этого перейти в Edit / Project Settings и с использованием строки поиска найти Plugins — Python, где необходимо активировать разрешение на дистанционное выполнение Python-скриптов — Enable Remote Execution:
Разрешение выполнения позволяет Send to Unreal установить связь с движком через локальное соединение, осуществляемое по адресу: 239.0.0.1:6766
Так же рекомендуется отключить опцию «Use Less CPU when in Background», которая активирует снижение активности движка в свёрнутом состоянии. Отключение позволит обновлять окно движка в фоне, что полезно при использовании прямого импорта из Blender. Чтобы отключить опцию, нужно перейти в Edit / Editor Preferences , затем с использованием поиска найти «Use Less CPU when in Background» и снять отметку:
Настройка сетевого экрана (брандмауэр).
При прямом экспорте из Blender (через Send to Unreal ) сигнал от аддона к движку передаётся по сети посредством Python API. По умолчанию в сетевом экране подобные пакеты отбрасываются, поэтому необходимо разрешить получение пакетов с адреса 239.0.0.1 (от запущенного Unreal Engine) и порта 6766 на адрес компьютера в локальной сети. В противном случае аддон не сможет взаимодействовать с движком и будет показана портянка Python-ошибки.
К примеру, адрес компьютера в локальной сети 192.168.1.5, тогда разрешающее правило будет выглядеть подобным образом:
На этом подготовительная часть вне Blender заканчивается, остаётся настроить аддон под нужды применения.
Настройка и описание основных опций Send to Unreal.
Кнопки управления аддоном находятся в верхней панели:
Для настройки необходимо перейти в Pipeline / Export / Settings Dialog.
Примечание: Настройки аддона сохраняются только для конкретной сцены (.blend), при этом предоставляется возможность сохранить настройки во внешний файл, чтобы их можно было быстро применить в новой сцене.
Вкладка Paths.
Во вкладке представлены режимы экспорта.
Send to Project — экспорт напрямую в движок без необходимости подтверждать импорт в окне импорта в движке. Настройки из этого окна доступны для редактирования в Send to Unreal во вкладке Import (подробности далее по статье).
- Движок должен быть запущен и должен быть открыт проект, в который будет вестись импорт ассетов.
- В строках Mesh Folder, Animation Folder, Groom Folder, Skeleton Asset и Physics Asset указываются пути, отсчёт которых начинается от каталога Content (Game), расположенного в проекте.
- Если указанная иерархия каталогов не была создана заранее, то при экспорте она будет создана автоматически.
Send to Disk — экспорт в FBX.
- Файлы будут сохраняться в указанный каталог.
- Можно указать одинаковый каталог для всех типов ассетов (mesh, animation и groom).
- Опции FBX настраиваются в панели аддона в разделе Export.
- Это довольно удобный вариант, так как облегчает реимпорт и использование в системе контроля версий.
Send to Disk then Project — экспортирует в движок и в FBX одновременно.
Вкладка Export.
Во вкладке представлены различные настройки экспорта.
Animation Settings — настройки экспорта анимаций: Action и NLA-дорожек.
- Automatically scale bones — для Armature автоматически подстраивает значение Unit System под требования Unreal Engine (0,01).
- Auto stash active action — из активного Action автоматически создаёт дорожку NLA.
- На деле это больше мешает, чем помогает. Оптимально отключить, что позволит создавать дорожки только для желаемых Action.
- Опция особенно мешает, когда новые Action создаются через дублирование ранее созданных. В этом случае дублирование автоматически порождает дорожку NLA, что создаёт путаницу и нагромождение, так же время от времени проявлялись ошибки, приводящие к замораживанию NLA-дорожки.
- Export all action — экспортирует в отдельный ассет анимации из всех NLA-дорожек (для всех имеющихся Action).
- Оптимально отключить, так как необходимость экспортировать всё и сразу возникает очень редко, не говоря уже о затруднениях при наличии «вспомогательных» Action.
- Export object name as root bone — если объект Armature не был переименован, то при экспорте в движок он автоматически станет root-костью с именем root.
- Export custom property fcurves — будут экспортированы все пользовательские свойства объекта, которые управляются F-curves.
FBX Export Settings — настройки влияют на экспорт не только в отдельный FBX-файл, но и на прямой экспорт в движок. На момент Send to Unreal версии 2.2 настройки являются оптимальными и подходят для большинства сценариев экспорта.
ABC Export Settings — экспорт в Alembic (геометрический кэш). Представленные настройки оптимальны.
Вкладка Import.
Здесь перечислены настройки импорта ассета в движок при задействовании прямого экспорта (Send to Project). То есть, если при обычном импорте FBX-файла в движок появляется окно настроек импорта, то при прямом экспорте все эти настройки можно отрегулировать заранее во вкладке Import, что избавляет от настроек импорта ассета в движке.
Предлагаемые параметры более-менее оптимальны и их переопределение стоит осуществлять только под специфику того или иного ассета.
Вкладка Validations.
Позволяет управлять «проверками»: отладочными сообщениями и запретом экспорта для тех или иных случаев, которые будут признаны «проверкой» недопустимыми.
- Check scene scale — проверять соответствие того, что Unit System равен 1. Если обнаружится несоответствие, то будет выведено предупреждение, а экспорт — прерван.
- Check scene frame rate — проверять значение частоты кадров анимации (frame rate), настраиваемой в Output Properties. По умолчанию проверка отключена. С тем учётом, что для Unreal Engine оптимально 30 и 60 FPS, когда как по умолчанию в Blender предлагается 24 FPS, то можно включить проверку для подстраховки.
- Check armatures for un-applied transforms — проверять объекты Armature на предмет не сброшенных трансформаций. Такие трансформации могут создавать довольно причудливые искажения скелетных сеток и анимаций, поэтому не стоит забывать делать сброс на Ctrl + A (Apply). Причём сброс безопаснее делать до записи анимаций и прикрепления сетки (процесса развесовки).
- Check if asset has unused materials — проверять наличие в объекте материалов, которые не применены ни к одной грани.
- Check texture references — если текстура, прикреплённая к blend-файлу, не может быть обнаружена для использования в материале, то проверка будет провалена.
Кратко о процессе экспорта.
- Первым делом стоит настроить аддон для blend-сцены, из которой будет вестись экспорт ассетов.
- Теперь настройка сцены минимальна.
- Не нужно изменять Unit System на 0,01. Значение должно быть равно 1.
- Переключить Frame rate анимаций с 24 FPS на 30 (или 60).
- Объекты для экспорта поместить в специальную коллекцию Export.
- За раз можно экспортировать множество объектов, причём всех типов (статичные и скелетные сетки, анимации, геометрический кэш).
- Скрытые объекты не будут экспортированы.
- При экспорте анимаций требуется добавить в экспорт ранее привязанную к скелету сетку, а не только скелет, иначе будет выведена ошибка и экспорт не пройдёт.
- При нажатии кнопки Pipeline / Export / Send to Unreal будет осуществлён экспорт в зависимости от выбранного режима (Send to Project, Send to Disk, Send to Disk then Project).
- Для режима Send to Project должен быть запущен движок и открыт проект, в который требуется произвести импорт.
- Не забыть, что для сетевого экрана требуется разрешающее правило на получение пакетов с адреса 239.0.0.1 и порта 6766.
- Для Send to Disk (на момент версии Send to Unreal 2.2) запущенный движок не требуется.
- Для режима Send to Project должен быть запущен движок и открыт проект, в который требуется произвести импорт.
Подробнее о нюанса экспорта можно ознакомиться в официальной документации:
эмм, Настройка сетевого экрана (брандмауэр) это где вообще?
Если не используется сетевой экран, можно сделать обычное правило для nftables.
Знаешь статья офигенная, всё хорошо объяснил, но у меня дилемма в том что я не могу подключить этот аддон, ну он подключается, а вкладки pipeline нет, не смотря на то что я откатывал на 3.4 и 3.3. Не знаешь в чём причина?
Странно. Так и не получилось? Мы используем Blender 3.3 с длительным сроком поддержки (LTS) и Send to Unreal версии 2.2.0.
я не совсем понимаю, как правильно настроить брандмауэр наверное
Правила вроде созданы, но выдает ошибку когда пробую отправить в анрил всё
Python: Traceback (most recent call last):
File «C:\Users\sl\AppData\Roaming\Blender Foundation\Blender\3.5\scripts\addons\send2ue\operators.py», line 288, in execute
unreal.bootstrap_unreal_with_rpc_server()
File «C:\Users\sl\AppData\Roaming\Blender Foundation\Blender\3.5\scripts\addons\send2ue\dependencies\unreal.py», line 190, in bootstrap_unreal_with_rpc_server
result = run_commands(
File «C:\Users\sl\AppData\Roaming\Blender Foundation\Blender\3.5\scripts\addons\send2ue\dependencies\unreal.py», line 160, in run_commands
remote_exec.start()
File «C:\Users\sl\AppData\Roaming\Blender Foundation\Blender\3.5\scripts\addons\send2ue\dependencies\remote_execution.py», line 73, in start
self._broadcast_connection.open()
File «C:\Users\sl\AppData\Roaming\Blender Foundation\Blender\3.5\scripts\addons\send2ue\dependencies\remote_execution.py», line 239, in open
self._init_broadcast_socket()
File «C:\Users\sl\AppData\Roaming\Blender Foundation\Blender\3.5\scripts\addons\send2ue\dependencies\remote_execution.py», line 267, in _init_broadcast_socket
self._broadcast_socket.setsockopt(_socket.IPPROTO_IP, _socket.IP_ADD_MEMBERSHIP, _socket.inet_aton(self._config.multicast_group_endpoint[0]) + _socket.inet_aton(self._config.multicast_bind_address))
OSError: [WinError 10065] Сделана попытка выполнить операцию на сокете для недоступного хоста
По Windows не могу подсказать, не представляю зачем использовать эту ОС. В ней проблема может быть в чём угодно, включая антивирус.
при попытке экспорта на диск вылетает ошибка 9998, что это может быть?
Если верить справке, скорее всего, проблема в закрытом порте:
https://joshquake.github.io/BlenderTools/send2ue/trouble-shooting/faq.html