自定义构建

在本页中,我们将讲解如何在自定义 UE5 构建上安装 Dash。需要注意几件事:

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

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

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

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

说完这些,我们开始吧。

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

构建方法:

选项 1:插件构建说明

这是最直接的部署模式,因为它是一个正常的 Unreal Engine 插件结构。 Epic games 插件指南 可以正常应用。

首先在 Google Drive 中打开 Plugin Build 文件夹,然后打开与您要安装的 Dash 版本对应的文件夹。这里会为我们支持的每个 UE 版本提供一个压缩包,因此您只需下载针对您特定 UE 版本的压缩包。

压缩包下载并解压后,Dash 文件夹可以放置在 PROJECT_ROOT/PluginsENGINE_ROOT/Engine/Plugins 正如 插件指南.

所描述的那样。

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++ 项目中编译,或者 使用 unreal automation scripts ,或使用“工具→插件”中的“打包(Package)”按钮。

这允许用户为自定义引擎构建 Dash

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

只需从以下位置移除 GraphNUnrealPlugin 文件夹: 同时移除 Documents/Polygonflow

文件夹

选项 2:源码构建说明 Google Drive 对于此构建选项,首先在

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

  • 该 ZIP 文件包含:Dash

  • :此文件夹保存从安装程序复制的文件。它允许您在不通过安装的情况下,通过版本控制或共享文件夹分发插件。GraphNUnrealPlugin

  • 该路径会自动对 Unreal 的 Python 可用。:此目录包含将 Dash 集成到您的自定义引擎构建中所需的 C++ 代码。

:如果您选择不在每台美术人员的机器上安装 Dash,此开发者文件可作为启动插件 Python 部分的入口点。

  1. 然后就可以开始构建了!

  2. 创建一个新的 Unreal C++ 项目 将插件放入项目的 Plugins 文件夹(如果尚不存在则创建 Plugin 文件夹)。结果目录应为

  3. Plugins\\GraphNUnrealPlugin 该路径会自动对 Unreal 的 Python 可用。 将 ZIP 中随带的 复制到您项目内的 Plugins/GraphNUnrealPlugin/Content/Python 该 ZIP 文件包含: 以便插件可以看到 及其库,否则您将收到类似的错误:

  4. ModuleNotFoundError: No module named 'GN'该路径会自动对 Unreal 的 Python 可用。 编辑文件末尾的路径

  5. ,用您放置 Dash 文件夹的位置(如果您想分发该插件),或用安装目录(如果您使用安装程序)。

在资源管理器中右键单击 .uproject 文件并选择“生成 Visual Studio 项目文件”以生成 Visual Studio 项目

官方文档

从 Python 使用

  1. 该插件向 Python 解释器暴露了一些功能,您可以让 unreal 为您生成 Python 存根,从而在我们的 IDE 中加载它们。 打开 Unreal Engine 并激活插件。它将激活 Python Script Plugin Editor scripting utilities

  2. 插件

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

  2. 重启编辑器。 检查

  3. PROJECT_ROOT/Intermediate/PythonStub/unreal.py

将此文件添加到您的 IDE 以获得导出函数的自动补全

版本控制排除项
  • 两种构建类型中可能需要从版本/源码控制中排除的文件: Plugins/UnrealEngineContext/Imports/thirdparty

  • (约 2 GB)- 该文件夹将在每台用户机器上创建并填充,包含 Python 包 Modules/GN/ContentLibrary/Backends/IESLibrary/IesLibraryContents (约 28 MB)- 该文件夹将从 IesLibraryContents.zip

  • 中解压出来,该压缩包位于同一文件夹中 ThirdPartyLicenses

  • - 这不影响功能, 可选 __pycache__

  • - 由 Python 生成 __pycache__

  • *.pyc *.pdf

  • - 法律文件如 EULA,可选 *.md

- 法律文件和内部文档,可选

Dash 环境变量

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

true

DASH_CRASH_REPORT_ENABLED 启用或禁用可能包含文件路径的崩溃报告。 默认值 =.

enabled

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

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

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

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

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

如果启用,将在 Dash 偏好设置界面中添加用于控制分析选项的切换项。 默认值 -

DASH_OPEN_AI_ENABLED 通过我们的 OpenAI Enterprise API 帐户启用或禁用 AI 助手和 AI 资产标记。默认值 -

enable

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

如果启用,将在 Dash 偏好设置界面中添加用于启用使用 OpenAI Enterprise API 的 AI 功能的切换选项。 默认值 -

常见问题解答

权限被拒绝 / 只读 / 文件写保护 - 修订控制问题

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

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

您可以通过 Perforce 等将 metadata.json 或任何其他受修订控制的 Dash 文件标记为始终可写,然后从头重新执行安装过程。

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

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

我们需要在每台美术人员的机器上安装插件吗?

  • 运行 Dash 需要两个组件:

  • Unreal C++ 插件

Dash Python 插件

您可以在每台美术人员的机器上安装该插件,或通过版本控制直接分发它,连同自定义构建的 C++ 插件一起。

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

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

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

mimalloc.lib

  • Dash 依赖项(内部)

  • IndexMeshSymbols.lib

  • _math.lib

  • _array.lib

  • 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

  • shiboken6

torch_redstone

有些是纯 Python 模块,有些是我们在 Python 模块中使用的 C++ 库。

每次新版本发布我都需要重新编译插件吗?

是的。如果您使用自定义的 Unreal 版本,您需要负责重新编译 C++ 插件并随之分发匹配的 Dash Python 插件。 一旦结构到位,通常只需重新生成项目并构建即可。 请确保同时更新 init_unreal.py,因为它可能在各个版本间发生变化。 当有新版本的 Dash 可用时,您会在 Dash 中直接收到通知,一旦收到,您总能在此处找到要下载的最新 ZIP:

https://www.polygonflow.io/download-latest-source-build

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

Dash 持续在发展,我们的首要任务是为艺术家和工作室提供持续更新和改进他们工作流程的新工具。 这种快速的发展节奏有时会留下我们已知但并非关键的编译警告。 它们可能在后续修复,但如果您采用零警告策略,您可能需要自行处理您遇到的警告。

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

您只需要为那些希望使用工具并调整参数的美术人员购买席位。构建机器也不需要许可证。

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

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

  2. 如果您使用的是 Dash 1.9.2 或更高版本,请跳到步骤 5

  3. 关闭 UE,

  4. 在您的电脑文件浏览器中打开此路径:DASH_INSTALL_ROOT\Plugins\UnrealEngineContext\Imports\GN, 然后将此 ContentUtils.py 文件替换为此处可用的文件:

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

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

  7. 然后,通过主 Dash 菜单打开 Dash 偏好设置,并在内容设置部分勾选新出现的“跳过资源获取(Skip Resource Acquisition)”设置

  8. 这样下次打开 Dash 时您就不应该再收到更新弹出窗口了

    1. 稍后,当有 Dash 更新时,需要某个人(设置项目和插件的人,或其他人)执行以下步骤以获取新的资源数据并通过 Perforce 与所有人共享:

    2. 安装新的 Dash 版本

    3. 通过 Perforce 解锁项目中 Content 文件夹下的 Polygonflow 文件夹,使其可写。

    4. 在 Dash 偏好设置中再次开启资源获取

    5. 打开项目和 Dash,并通过弹出窗口运行更新

最后更新于

这有帮助吗?