Пользовательская сборка

На этой странице мы пройдем процесс установки Dash на пользовательскую сборку UE5. Несколько моментов, которые стоит учитывать:

  • Dash совместим только с UE5.1 и выше.

  • В большинстве случаев процесс должен быть довольно простым, но если ваша пользовательская сборка UE5 значительно отличается от исходного движка, могут возникнуть некоторые трудности, и мы рекомендуем связаться по адресу [email protected]

  • Обычно мы приглашаем компании в общий канал Slack, в котором можем предоставлять им живую помощь и напрямую общаться с их художниками для запросов обратной связи. Пожалуйста, свяжитесь с нами!

  • Чтобы отключить отчеты о сбоях, аналитику, функции ИИ и т. п., вы можете установить определенные переменные окружения. Более подробная информация по этой теме ниже.

С этим разобрались, приступим.

Существует два метода сборки: первый — сборка как плагина (Plugin Build), второй — сборка из исходников (Source Build). Файлы для обоих находятся в этой папке Google Drive: polygonflow.io/latest-source-buildarrow-up-right, и вы можете выбрать предпочитаемый метод сборки, ознакомившись с различными инструкциями ниже.

Методы сборки:

chevron-rightВариант 1: Инструкции по сборке плагинаhashtag

Это самый простой режим развертывания, так как это обычная структура плагина Unreal Engine. руководство по плагинам Epic Gamesarrow-up-right можно применять в обычном порядке.

Начните с открытия папки Plugin Build в Google Drivearrow-up-right а затем откройте папку, соответствующую версии Dash, которую вы хотите установить. Здесь вы найдете по одному zip-файлу для каждой версии UE, которую мы поддерживаем, поэтому вам нужно только скачать zip для вашей конкретной версии UE.

После того как zip будет скачан и распакован, папку Dash можно поместить в PROJECT_ROOT/Plugins или ENGINE_ROOT/Engine/Plugins как описано в руководстве по плагинамarrow-up-right.

Установка зависимостей 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++ проекте, или с использованием скриптов автоматизации Unrealarrow-up-right, или с помощью кнопки «Package» из Tools→Plugins меню. Это позволяет пользователям собирать Dash для пользовательских движков

Удаление

Просто удалите папку GraphNUnrealPlugin из Engine/Plugins или PROJECT_ROOT/Plugins

Также удалите Documents/Polygonflow папку

chevron-rightВариант 2: Инструкции по сборке из исходниковhashtag

Для этого варианта сборки начните с открытия папки Source Build в Google Drivearrow-up-right а затем скачайте zip для версии Dash, которую хотите установить.

Этот ZIP-файл, который содержит:

  • Dash: Эта папка содержит файлы, скопированные из установщика. Она позволяет распространять плагин без установки, через систему контроля версий или общую папку.

  • GraphNUnrealPlugin: Этот каталог содержит C++ код, необходимый для интеграции Dash в вашу пользовательскую сборку движка.

  • init_unreal.py: Если вы решите не устанавливать Dash на каждую машину художника, этот файл для разработчика служит точкой входа для запуска Python-части плагина.

Итак, пора собирать!

  1. Создайте новый Unreal C++ проект

  2. Поместите плагин в папку Plugins проекта (создайте папку Plugin, если ее еще нет). Результат должен быть Plugins\\GraphNUnrealPlugin

  3. Скопируйте init_unreal.py поставляемый в ZIP внутри вашего проекта Plugins/GraphNUnrealPlugin/Content/Python чтобы позволить плагину видеть Dash и его библиотеки, иначе вы получите ошибки типа ModuleNotFoundError: No module named 'GN'

  4. Отредактируйте путь в конце файлаinit_unreal.py , указав местоположение, куда вы поместили папку Dash, если вы хотите распространять плагин, или каталог установки, если вы используете установщик.

  5. Сгенерируйте проект Visual Studio, щелкнув правой кнопкой по файлу .uproject в проводнике и выбрав «Generate Visual Studio project files»

Щелкните правой кнопкой, чтобы сгенерировать файлы проекта
  1. Откройте решение в Visual Studio или Rider и соберите его оттуда. Дополнительную информацию можно найти в официальной документацииarrow-up-right.

Использование из Python

Плагин предоставляет некоторые функции интерпретатору Python, и вы можете заставить Unreal сгенерировать для вас заглушки (stubs) Python, чтобы вы могли загрузить их в нашей IDE.

  1. Откройте Unreal Engine и активируйте плагин. Он активирует Python Script Plugin и Editor scripting utilities плагины

  2. Перейдите в настройки проекта и включите режим разработчика

Режим разработчика сгенерирует Python-заглушки для автозаполнения
  1. Перезапустите редактор.

  2. Проверьте PROJECT_ROOT/Intermediate/PythonStub/unreal.py

  3. Добавьте этот файл в вашу IDE, чтобы получить автозаполнение с экспортированными функциями

Исключения из контроля версий

chevron-rightВозможные файлы для исключения из системы контроля версий/исходного контроля для обоих типов сборки:hashtag
  • Plugins/UnrealEngineContext/Imports/thirdparty (~2 GB) - Эта папка будет создана и заполнена на каждой машине пользователя и будет содержать пакеты Python

  • Modules/GN/ContentLibrary/Backends/IESLibrary/IesLibraryContents (~28 MB) - Эта папка будет извлечена из IesLibraryContents.zip расположенного в той же папке

  • ThirdPartyLicenses - Это не влияет на функциональность, необязательно

  • __pycache__ - Сгенерировано Python

  • *.pyc - Сгенерировано Python

  • *.pdf - Юридические документы, такие как EULA, необязательно

  • *.md - Юридические документы и внутренние документы, необязательно

Переменные окружения Dash

chevron-rightИнструкции по переменным окружения Dashhashtag

Установив определенные переменные окружения, вы можете контролировать, доступны ли определенные функции и параметры в 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

Часто задаваемые вопросы

chevron-rightОтказано в доступе / только для чтения / файл защищен от записи - проблема с системой контроля версийhashtag

Если вы видите ошибку, связанную с отказом в доступе или чтением/записью, например, касающуюся файла metadata.json, вы можете попробовать два варианта:

  1. Отключите автоматическую защиту от записи папки Documents, которую добавляет Windows Defender в Windows 11. Это «Защищенная папка»

  2. Вы можете пометить metadata.json или любые другие файлы Dash под контролем версий как всегда доступные для записи через Perforce и т. п., а затем повторить процесс установки с самого начала.

chevron-rightНужно ли компилировать плагин на каждой машине?hashtag

Нет. Вы можете распространять предварительно собранный C++ плагин на каждой машине, использующей ту же версию движка, против которой он был собран.

chevron-rightНужно ли устанавливать плагин на каждой машине художника?hashtag

Для работы Dash потребуется 2 компонента:

  • Unreal C++ плагин

  • Dash Python плагин

Вы можете установить плагин на каждую машину художника или распространять его напрямую через систему контроля версий вместе с пользовательским собранным C++ плагином.

chevron-rightКакие зависимости есть у C++ плагина?hashtag

Ниже приведен список зависимостей C++ слоя:

Библиотека памяти от Microsoft (ее также использует Unreal)

  • mimalloc.lib

Зависимости Dash (внутренние)

  • IndexMeshSymbols.lib

  • _math.lib

  • _array.lib

  • meshoptimizer.lib

  • _gnmesh.lib

chevron-rightКакие зависимости у Dash Python плагина?hashtag

Dash опирается на ряд внутренних и сторонних библиотек. Следующий список может измениться, но на момент написания это сторонние библиотеки, используемые:

  • abseil

  • eigen

  • embree

  • OpenSubdiv

  • Physix

  • tbb

  • robin-hood-hasing

  • tinyspline

  • FastNoise2

  • fast_obj

  • unordered_dense

  • blinker

  • boto3

  • botocore

  • certifi

  • dateutil

  • jmespath

  • orjson

  • pytz

  • semver

  • s3transfer

  • sentry_sdk

  • urllib3

  • numpy

  • PIL

  • PySide6

  • scipy

  • sklearn

  • shiboken6

  • torch_redstone

Некоторые из них чисто Python-модули, некоторые — C++ библиотеки, которые мы используем внутри наших Python-модулей.

chevron-rightНужно ли мне перекомпилировать плагин при каждом новом релизе?hashtag

Да. Если вы используете пользовательскую версию Unreal, вы будете отвечать за перекомпиляцию C++ плагина и повторное распространение соответствующего Python-плагина Dash вместе с ним. Как только у вас уже будет настроенная структура, это должно быть так же просто, как регенерировать проект и собрать его. Убедитесь также, что обновили init_unreal.py, так как он может меняться между релизами.

Когда доступна новая версия Dash, вы получите уведомление непосредственно в Dash, и после этого вы всегда сможете найти последний ZIP для скачивания здесь: https://www.polygonflow.io/download-latest-source-buildarrow-up-right

chevron-rightПри компиляции C++ плагина я получаю некоторые предупреждения, как их можно решить?hashtag

Dash постоянно развивается, и нашим главным приоритетом является предоставление художникам и студиям постоянных обновлений и новых инструментов для улучшения их рабочего процесса. Этот быстрый темп разработки иногда оставляет после себя некоторые предупреждения компиляции, о которых мы знаем и которые не являются критическими. Они могут быть исправлены в дальнейшем, но если у вас политика нулевых предупреждений, к сожалению, вам, возможно, придется самостоятельно устранить те, которые вы получаете.

chevron-rightСколько корпоративных мест (Enterprise Seats) мне нужно?hashtag

Места нужны только тем художникам, которые хотят иметь доступ к инструментам и возможность изменять параметры. Лицензии для билд-машин также не требуются.

chevron-rightОшибка ресурса - невозможно скопировать файлы в ваш проектhashtag

Если вы используете Perforce или другое ПО для контроля версий и при открытии Dash видите наше всплывающее окно обновления ресурсов, а оно завершается ошибкой Resource Error, вот что вам нужно сделать:

  1. Если у вас Dash 1.9.2 или выше, переходите к шагу 5

  2. Закройте UE,

  3. Откройте этот путь в проводнике на вашем ПК: DASH_INSTALL_ROOT\Plugins\UnrealEngineContext\Imports\GN,

  4. А затем замените файл ContentUtils.py на тот, который доступен здесь: https://drive.google.com/drive/folders/129GZoD6borfOGJ4-sGD_VTAdVMtMgbKr?usp=sharingarrow-up-right

  5. Затем откройте UE и проигнорируйте всплывающее окно обновления, т. е. закройте его вместо нажатия на обновление

  6. Затем откройте настройки Dash через главное меню Dash и установите новый параметр "Skip Resource Acquisition", доступный в разделе Content Settings

  7. После этого вы не должны увидеть всплывающее окно обновления при следующем открытии Dash

  8. Позже, когда выйдет обновление Dash, один человек (тот, кто настроил проект и плагины, возможно) должен выполнить эти шаги, чтобы получить новые данные ресурсов и поделиться ими со всеми через Perforce:

    1. Установите новую версию Dash

    2. Разблокируйте папку Polygonflow в папке Content проекта через Perforce, чтобы она была доступна для записи.

    3. Включите повторно получение ресурсов в настройках Dash

    4. Откройте проект и Dash и выполните обновление через всплывающее окно

    5. Теперь новые файлы обновления были добавлены в Perforce и готовы к использованию всей командой.

Последнее обновление

Это было полезно?