自定义构建

在此页面中,我们将介绍在自定义 UE5 构建上安装 Dash 的过程。需要注意的几点:

  • Dash 仅兼容 UE5.1 及更高版本。

  • 在大多数情况下,过程应该相当简单,但如果您的自定义 UE5 构建与基础引擎源代码有很大改动,可能会出现一些问题,我们建议您联系 [email protected]

  • 我们通常会邀请公司加入一个共享的 Slack 频道,在那里我们可以提供实时指导并直接与他们的艺术家沟通以获取反馈。请与我们联系!

  • 为了关闭崩溃报告、分析、AI 功能等,您可以设置某些环境变量。关于此主题的更多信息在下文中。

说完这些,我们开始吧。

有两种构建方法,第一种是插件构建(Plugin Build),另一种是源码构建(Source Build)。两者的文件均位于此 Google Drive: polygonflow.io/latest-source-buildarrow-up-right,您可以通过查看下面的不同说明来选择首选的构建方法。

构建方法:

chevron-right选项 1:插件构建说明hashtag

这是最直接的部署模式,因为它是一个标准的 Unreal Engine 插件结构。 Epic Games 插件指南arrow-up-right 可以照常应用。

首先在 Google Drivearrow-up-right 中打开 Plugin Build 文件夹,然后打开与您要安装的 Dash 版本对应的文件夹。这里为我们支持的每个 UE 版本提供一个 zip,因此您只需下载与您特定 UE 版本对应的 zip 即可。

zip 下载并解压后,Dash 文件夹可以放置在 PROJECT_ROOT/PluginsENGINE_ROOT/Engine/Plugins插件指南arrow-up-right.

中所述。

Python 依赖项安装 Dash 的 Python 代码位于 PLUGIN_ROOT/Content/Python 该路径会自动对 Unreal 的 Python 可用。 init_unreal.py

不需要任何修改,始终对所有用户有效。 在安装 Dash 插件后首次启动 Unreal Engine 时,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++ 项目中编译,或arrow-up-right使用 unreal automation scripts ,或使用“Package”按钮在 Tools→Plugins

菜单中进行打包。这允许用户为自定义引擎构建 Dash。

卸载 此操作每个项目执行一次(如果 Dash 是按项目安装)。或者每个引擎版本执行一次(如果 Dash 安装到引擎)。为节省磁盘空间,建议将 Dash 安装在PROJECT_ROOT/Plugins

只需从 中移除 GraphNUnrealPlugin 文件夹 同时删除

chevron-rightDocuments/Polygonflowhashtag

文件夹 Google Drivearrow-up-right 选项 2:源码构建说明

对于此构建选项,请先在

  • Source Build 文件夹中打开,然后下载您希望安装的 Dash 版本的 zip。

  • 该 ZIP 文件包含:Dash

  • 该路径会自动对 Unreal 的 Python 可用。:此文件夹保存从安装程序复制的文件。它允许您在不进行安装的情况下通过版本控制或共享文件夹分发插件。

GraphNUnrealPlugin

  1. :此目录包含将 Dash 集成到您自定义引擎构建所需的 C++ 代码。

  2. :如果您选择不在每位艺术家机器上安装 Dash,此开发者文件可作为启动插件 Python 部分的入口点。 然后就可以开始构建了! 创建一个新的 Unreal C++ 项目 将插件放入项目的

  3. Plugins 该路径会自动对 Unreal 的 Python 可用。 文件夹(如果尚不存在则创建 Plugin 文件夹)。结果应为 Plugins\\GraphNUnrealPlugin 复制 ZIP 中随附的 Source Build 文件夹 到您项目中的 Plugins/GraphNUnrealPlugin/Content/Python

  4. 以使插件能够看到该路径会自动对 Unreal 的 Python 可用。 及其库,否则您会遇到类似的错误,例如

  5. ModuleNotFoundError: No module named 'GN'

编辑文件末尾的路径(
  1. 文件),将其设置为您放置 Dash 文件夹的位置(如果您想分发该插件),或设置为安装目录(如果您使用安装程序)。 在资源管理器中右键单击 .uproject 文件并选择“Generate Visual Studio project files”来生成 Visual Studio 项目arrow-up-right.

右键单击以生成项目文件

在 Visual Studio 或 Rider 中打开解决方案并从那里构建。更多信息请参见

  1. 官方文档 从 Python 使用 该插件向 Python 解释器公开了一些功能,您可以让 Unreal 为您生成 Python 存根,以便在我们的 IDE 中加载它们。 打开 Unreal Engine 并激活该插件。它会激活 Python Script Plugin

Editor scripting utilities
  1. 插件

  2. 转到项目设置并启用开发者模式 开发者模式将为自动完成生成 Python 存根

  3. 重启编辑器。

检查

chevron-rightPROJECT_ROOT/Intermediate/PythonStub/unreal.pyhashtag
  • 将此文件添加到您的 IDE 以便获得导出函数的自动补全 版本控制排除项

  • 两种构建类型中可能需要从版本/源代码控制中排除的文件: Plugins/UnrealEngineContext/Imports/thirdparty (约 2 GB)- 此文件夹将在每台用户机器上创建并填充,包含 Python 包 Modules/GN/ContentLibrary/Backends/IESLibrary/IesLibraryContents

  • (约 28 MB)- 此文件夹将从 IesLibraryContents.zip

  • 中解压出来,位于相同文件夹中 ThirdPartyLicenses

  • - 这不会影响功能,可选 ThirdPartyLicenses

  • __pycache__ - 由 Python 生成

  • *.pyc *.pdf

- 像 EULA 这样的法律文档,可选

chevron-right*.mdhashtag

- 法律文档和内部文档,可选 Dash 环境变量.

Dash 环境变量说明

通过设置某些环境变量,您可以控制 Dash 中是否启用某些功能和选项。使用 "1"、"yes" 或 "true" 都会被视为 真(true).

DASH_CRASH_REPORT_ENABLED

启用或禁用可能包含文件路径的崩溃报告。 默认值 = 真(true)

已启用

DASH_UPDATE_CHECK_ENABLED 真(true)

启用或禁用启动时的更新检查。当 Dash 首次在某个 Unreal 编辑器会话中出现时会进行更新检查。Dash 会向我们的 Cloudflare 服务器请求以获取最新版本信息。 默认值 -

DASH_ANALYTICS_ENABLED 真(true)

启用或禁用 Dash 使用情况遥测。Dash 会定期将使用数据发送到我们的 MongoDB 集群。默认值 -

DASH_REGISTER_PREFERENCES_FOR_ANALYTICS 如果启用,控制分析选项的开关将被添加到 Dash 偏好设置 UI 中。 默认值 -

DASH_OPEN_AI_ENABLED

启用或禁用通过我们的 OpenAI 企业 API 帐户提供的 AI 助手和 AI 资产标记。默认值 - 真(true)

已启用

chevron-rightDASH_REGISTER_PREFERENCES_FOR_OPEN_AIhashtag

如果启用,启用使用 OpenAI 企业 API 的 AI 功能的切换选项将被添加到 Dash 偏好设置 UI 中。 默认值 -

  1. 常见问题

  2. 权限被拒绝 / 只读 / 文件受写保护 - 版本控制问题

chevron-right如果您看到与权限被拒绝或读/写有关的错误,例如与 metadata.json 文件有关,您可以尝试两件事:hashtag

关闭 Windows 11 中 Windows Defender 在 Documents 文件夹上添加的自动写保护。它是一个“受保护的文件夹”。

chevron-right您可以通过 Perforce 等将 metadata.json 或任何其他 Dash 文件在版本控制下标记为始终可写,然后从头重新进行安装过程。hashtag

我们需要在每台机器上编译插件吗?

  • 不需要。您可以在每台使用与您构建时相同引擎版本的机器上分发预编译的 C++ 插件。

  • 我们需要在每位艺术家机器上安装该插件吗?

要运行 Dash,您需要两个组件:

chevron-rightUnreal C++ 插件hashtag

Dash Python 插件

您可以在每台艺术家机器上安装该插件,或将其与自定义构建的 C++ 插件一起通过版本控制直接分发。

  • C++ 插件的依赖项有哪些?

以下是 C++ 层的依赖项列表:

  • 来自微软的内存库(unreal 也使用它)

  • mimalloc.lib

  • Dash 依赖项(内部)

  • IndexMeshSymbols.lib

  • _math.lib

chevron-right_array.libhashtag

meshoptimizer.lib

  • _gnmesh.lib

  • Dash Python 插件的依赖项有哪些?

  • 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

chevron-rightshiboken6hashtag

torch_redstone

有些是纯 Python 模块,有些是我们在 Python 模块中使用的 C++ 库。 每次新版本我都需要重新编译插件吗?arrow-up-right

chevron-right是的。如果您使用的是自定义的 Unreal 版本,您需要负责重新编译 C++ 插件并随同分发匹配的 Dash Python 插件。 一旦结构就绪,通常只需重新生成项目并进行构建即可。 请确保也更新 init_unreal.py,因为它可能会在版本之间发生变化。hashtag

当有新版本的 Dash 可用时,您将在 Dash 中直接收到通知,一旦收到通知,您总是可以在此处找到最新的 ZIP 下载:

chevron-righthttps://www.polygonflow.io/download-latest-source-buildhashtag

在编译 C++ 插件时我收到一些警告,如何解决?

chevron-rightDash 在不断发展,我们的首要任务是为艺术家和工作室提供持续的更新和新的工具以改进他们的工作流程。 这种快速的发展步伐有时会留下我们已知但非关键的编译警告。 它们可能会在后续修复,但如果您有零警告策略,不幸的是您可能需要自行处理出现的警告。hashtag

我需要多少企业座位(Enterprise Seats)?

  1. 您只需要为那些想要访问工具并能够调整参数的艺术家购买座位。构建服务器也不需要许可证。

  2. 资源错误 - 无法在您的项目中复制文件

  3. 如果您正在使用 Perforce 或其他版本控制软件,并且在打开 Dash 时看到我们的资源更新弹窗但它失败并显示资源错误,您需要执行以下操作:

  4. 如果您使用的是 Dash 1.9.2 或更高版本,请跳到步骤 5 关闭 UE,arrow-up-right

  5. 在文件资源管理器中打开此路径:DASH_INSTALL_ROOT\Plugins\UnrealEngineContext\Imports\GN,

  6. 然后用此处提供的 ContentUtils.py 文件替换该文件:

  7. https://drive.google.com/drive/folders/129GZoD6borfOGJ4-sGD_VTAdVMtMgbKr?usp=sharing

  8. 然后打开 UE 并忽略更新弹窗,即关闭它而不是点击更新

    1. 接着通过主 Dash 菜单打开 Dash 偏好设置,并在 Content Settings 部分中勾选新的“Skip Resource Acquisition”设置

    2. 这样下次打开 Dash 时您就不会收到更新弹窗了

    3. 以后当有 Dash 更新时,一个人(可能是设置项目和插件的人)需要执行这些步骤以获取新的资源数据并通过 Perforce 与所有人共享:

    4. 安装新版本的 Dash

    5. 通过 Perforce 解锁项目中 Content 文件夹下的 Polygonflow 文件夹,使其可写入(writable)。

最后更新于

这有帮助吗?