Пользовательская сборка
На этой странице мы пройдем процесс установки Dash на пользовательскую сборку UE5. Несколько моментов, которые стоит учитывать:
Dash совместим только с UE5.1 и выше.
В большинстве случаев процесс должен быть довольно простым, но если ваша пользовательская сборка UE5 значительно отличается от исходного движка, могут возникнуть некоторые трудности, и мы рекомендуем связаться по адресу [email protected]
Обычно мы приглашаем компании в общий канал Slack, в котором можем предоставлять им живую помощь и напрямую общаться с их художниками для запросов обратной связи. Пожалуйста, свяжитесь с нами!
Чтобы отключить отчеты о сбоях, аналитику, функции ИИ и т. п., вы можете установить определенные переменные окружения. Более подробная информация по этой теме ниже.
С этим разобрались, приступим.
Существует два метода сборки: первый — сборка как плагина (Plugin Build), второй — сборка из исходников (Source Build). Файлы для обоих находятся в этой папке Google Drive: polygonflow.io/latest-source-build, и вы можете выбрать предпочитаемый метод сборки, ознакомившись с различными инструкциями ниже.
Методы сборки:
Вариант 1: Инструкции по сборке плагина
Это самый простой режим развертывания, так как это обычная структура плагина Unreal Engine. руководство по плагинам Epic Games можно применять в обычном порядке.
Начните с открытия папки Plugin Build в Google Drive а затем откройте папку, соответствующую версии Dash, которую вы хотите установить. Здесь вы найдете по одному zip-файлу для каждой версии UE, которую мы поддерживаем, поэтому вам нужно только скачать zip для вашей конкретной версии UE.
После того как zip будет скачан и распакован, папку Dash можно поместить в PROJECT_ROOT/Plugins или ENGINE_ROOT/Engine/Plugins как описано в руководстве по плагинам.
Установка зависимостей Python
Python-код Dash находится в PLUGIN_ROOT/Content/Python Который автоматически доступен для Python в Unreal. init_unreal.py не требует никаких изменений и всегда действителен для всех пользователей.
Когда Unreal Engine запускается впервые после установки плагина Dash, Dash установит Python-зависимости в PLUGIN_ROOT/Content/Python/Plugins/UnrealEngineContext/Imports/311/ для Unreal Engine 5.4+ и в PLUGIN_ROOT/Content/Python/Plugins/UnrealEngineContext/Imports/39/ для Unreal Engine 5.1-5.3
Это происходит один раз для проекта (если Dash установлен в проекте) ИЛИ один раз для версии движка (если Dash установлен в движке). Чтобы сэкономить место на диске, рекомендуется устанавливать Dash в Engine/Plugins. Примеры путей движка: ENGINE_ROOT/Engine/Plugins/GraphNUnrealPlugin, ENGINE_ROOT/Engine/Plugins/Polygonflow/GraphNUnrealPlugin, ENGINE_ROOT/Engine/Plugins/Whatever/GraphNUnrealPlugin.
Потребление дискового пространства
Размер плагина Dash составляет ~1GB сразу после установки. После установки Python-зависимостей общий размер составляет ~3GB. Кроме того, Dash загружает метаданные ассетов, такие как миниатюры изображений, что может добавить еще немного.
Компиляция
Плагин Dash соответствует обычной структуре плагинов кода Unreal Engine и может быть скомпилирован в C++ проекте, или с использованием скриптов автоматизации Unreal, или с помощью кнопки «Package» из Tools→Plugins меню. Это позволяет пользователям собирать Dash для пользовательских движков
Удаление
Просто удалите папку GraphNUnrealPlugin из Engine/Plugins или PROJECT_ROOT/Plugins
Также удалите Documents/Polygonflow папку
Вариант 2: Инструкции по сборке из исходников
Для этого варианта сборки начните с открытия папки Source Build в Google Drive а затем скачайте zip для версии Dash, которую хотите установить.
Этот ZIP-файл, который содержит:
Dash: Эта папка содержит файлы, скопированные из установщика. Она позволяет распространять плагин без установки, через систему контроля версий или общую папку.
GraphNUnrealPlugin: Этот каталог содержит C++ код, необходимый для интеграции Dash в вашу пользовательскую сборку движка.
init_unreal.py: Если вы решите не устанавливать Dash на каждую машину художника, этот файл для разработчика служит точкой входа для запуска Python-части плагина.
Итак, пора собирать!
Создайте новый Unreal C++ проект
Поместите плагин в папку
Pluginsпроекта (создайте папку Plugin, если ее еще нет). Результат должен бытьPlugins\\GraphNUnrealPluginСкопируйте
init_unreal.pyпоставляемый в ZIP внутри вашего проектаPlugins/GraphNUnrealPlugin/Content/Pythonчтобы позволить плагину видетьDashи его библиотеки, иначе вы получите ошибки типаModuleNotFoundError: No module named 'GN'Отредактируйте путь в конце файла
init_unreal.py, указав местоположение, куда вы поместили папку Dash, если вы хотите распространять плагин, или каталог установки, если вы используете установщик.Сгенерируйте проект Visual Studio, щелкнув правой кнопкой по файлу .uproject в проводнике и выбрав «Generate Visual Studio project files»

Откройте решение в Visual Studio или Rider и соберите его оттуда. Дополнительную информацию можно найти в официальной документации.
Использование из Python
Плагин предоставляет некоторые функции интерпретатору Python, и вы можете заставить Unreal сгенерировать для вас заглушки (stubs) Python, чтобы вы могли загрузить их в нашей IDE.
Откройте Unreal Engine и активируйте плагин. Он активирует Python Script Plugin и Editor scripting utilities плагины
Перейдите в настройки проекта и включите режим разработчика

Перезапустите редактор.
Проверьте
PROJECT_ROOT/Intermediate/PythonStub/unreal.pyДобавьте этот файл в вашу IDE, чтобы получить автозаполнение с экспортированными функциями
Исключения из контроля версий
Возможные файлы для исключения из системы контроля версий/исходного контроля для обоих типов сборки:
Plugins/UnrealEngineContext/Imports/thirdparty(~2 GB) - Эта папка будет создана и заполнена на каждой машине пользователя и будет содержать пакеты PythonModules/GN/ContentLibrary/Backends/IESLibrary/IesLibraryContents(~28 MB) - Эта папка будет извлечена изIesLibraryContents.zipрасположенного в той же папкеThirdPartyLicenses- Это не влияет на функциональность, необязательно__pycache__- Сгенерировано Python*.pyc- Сгенерировано Python*.pdf- Юридические документы, такие как EULA, необязательно*.md- Юридические документы и внутренние документы, необязательно
Переменные окружения Dash
Инструкции по переменным окружения Dash
Установив определенные переменные окружения, вы можете контролировать, доступны ли определенные функции и параметры в Dash. Использование "1", "yes" или "true" все воспринимается как true.

DASH_CRASH_REPORT_ENABLED
Включает или отключает отчетность о сбоях, которая может включать пути к файлам.
Значение по умолчанию = enabled.
DASH_UPDATE_CHECK_ENABLED
Включить или отключить проверку обновлений при запуске. Проверки обновлений происходят один раз за сессию редактора Unreal, когда Dash появляется в первый раз. Dash делает запрос к нашему серверу Cloudflare, чтобы получить информацию о последней версии.
Значение по умолчанию - enabled
DASH_ANALYTICS_ENABLED
Включить или отключить телеметрию использования Dash. Dash периодически отправляет данные об использовании в наш кластер MongoDB. Значение по умолчанию - enabled
DASH_REGISTER_PREFERENCES_FOR_ANALYTICS
Если включено, переключатель для управления опцией аналитики будет добавлен в интерфейс настроек Dash.
Значение по умолчанию - enabled
DASH_OPEN_AI_ENABLED
Включает или отключает помощника ИИ и автоматическую разметку ассетов ИИ через наш аккаунт OpenAI Enterprise API. Значение по умолчанию - enable
DASH_REGISTER_PREFERENCES_FOR_OPEN_AI
Если включено, в интерфейс настроек Dash будет добавлен переключатель для включения функций ИИ с использованием OpenAI Enterprise API.
Значение по умолчанию - enabled
Часто задаваемые вопросы
Отказано в доступе / только для чтения / файл защищен от записи - проблема с системой контроля версий
Если вы видите ошибку, связанную с отказом в доступе или чтением/записью, например, касающуюся файла metadata.json, вы можете попробовать два варианта:
Отключите автоматическую защиту от записи папки Documents, которую добавляет Windows Defender в Windows 11. Это «Защищенная папка»
Вы можете пометить metadata.json или любые другие файлы Dash под контролем версий как всегда доступные для записи через Perforce и т. п., а затем повторить процесс установки с самого начала.
Нужно ли компилировать плагин на каждой машине?
Нет. Вы можете распространять предварительно собранный C++ плагин на каждой машине, использующей ту же версию движка, против которой он был собран.
Нужно ли устанавливать плагин на каждой машине художника?
Для работы Dash потребуется 2 компонента:
Unreal C++ плагин
Dash Python плагин
Вы можете установить плагин на каждую машину художника или распространять его напрямую через систему контроля версий вместе с пользовательским собранным C++ плагином.
Какие зависимости есть у C++ плагина?
Ниже приведен список зависимостей C++ слоя:
Библиотека памяти от Microsoft (ее также использует Unreal)
mimalloc.lib
Зависимости Dash (внутренние)
IndexMeshSymbols.lib_math.lib_array.libmeshoptimizer.lib_gnmesh.lib
Какие зависимости у Dash Python плагина?
Dash опирается на ряд внутренних и сторонних библиотек. Следующий список может измениться, но на момент написания это сторонние библиотеки, используемые:
abseileigenembreeOpenSubdivPhysixtbbrobin-hood-hasingtinysplineFastNoise2fast_obj
unordered_denseblinkerboto3botocorecertifidateutiljmespathorjsonpytzsemvers3transfersentry_sdkurllib3numpyPILPySide6scipysklearnshiboken6torch_redstone
Некоторые из них чисто Python-модули, некоторые — C++ библиотеки, которые мы используем внутри наших Python-модулей.
Нужно ли мне перекомпилировать плагин при каждом новом релизе?
Да. Если вы используете пользовательскую версию Unreal, вы будете отвечать за перекомпиляцию C++ плагина и повторное распространение соответствующего Python-плагина Dash вместе с ним. Как только у вас уже будет настроенная структура, это должно быть так же просто, как регенерировать проект и собрать его. Убедитесь также, что обновили init_unreal.py, так как он может меняться между релизами.
Когда доступна новая версия Dash, вы получите уведомление непосредственно в Dash, и после этого вы всегда сможете найти последний ZIP для скачивания здесь: https://www.polygonflow.io/download-latest-source-build
При компиляции C++ плагина я получаю некоторые предупреждения, как их можно решить?
Dash постоянно развивается, и нашим главным приоритетом является предоставление художникам и студиям постоянных обновлений и новых инструментов для улучшения их рабочего процесса. Этот быстрый темп разработки иногда оставляет после себя некоторые предупреждения компиляции, о которых мы знаем и которые не являются критическими. Они могут быть исправлены в дальнейшем, но если у вас политика нулевых предупреждений, к сожалению, вам, возможно, придется самостоятельно устранить те, которые вы получаете.
Сколько корпоративных мест (Enterprise Seats) мне нужно?
Места нужны только тем художникам, которые хотят иметь доступ к инструментам и возможность изменять параметры. Лицензии для билд-машин также не требуются.
Ошибка ресурса - невозможно скопировать файлы в ваш проект
Если вы используете Perforce или другое ПО для контроля версий и при открытии Dash видите наше всплывающее окно обновления ресурсов, а оно завершается ошибкой Resource Error, вот что вам нужно сделать:
Если у вас Dash 1.9.2 или выше, переходите к шагу 5
Закройте UE,
Откройте этот путь в проводнике на вашем ПК: DASH_INSTALL_ROOT\Plugins\UnrealEngineContext\Imports\GN,
А затем замените файл ContentUtils.py на тот, который доступен здесь: https://drive.google.com/drive/folders/129GZoD6borfOGJ4-sGD_VTAdVMtMgbKr?usp=sharing
Затем откройте UE и проигнорируйте всплывающее окно обновления, т. е. закройте его вместо нажатия на обновление
Затем откройте настройки Dash через главное меню Dash и установите новый параметр "Skip Resource Acquisition", доступный в разделе Content Settings
После этого вы не должны увидеть всплывающее окно обновления при следующем открытии Dash
Позже, когда выйдет обновление Dash, один человек (тот, кто настроил проект и плагины, возможно) должен выполнить эти шаги, чтобы получить новые данные ресурсов и поделиться ими со всеми через Perforce:
Установите новую версию Dash
Разблокируйте папку Polygonflow в папке Content проекта через Perforce, чтобы она была доступна для записи.
Включите повторно получение ресурсов в настройках Dash
Откройте проект и Dash и выполните обновление через всплывающее окно
Теперь новые файлы обновления были добавлены в Perforce и готовы к использованию всей командой.
Последнее обновление
Это было полезно?