自定义构建

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

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

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

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

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

话不多说,让我们开始吧。

有两种构建方法,第一种为插件构建(Plugin Build),另一种为源码构建(Source Build)。两者的文件位于此 Google 云端硬盘: 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 自动化脚本 ,或使用 “Tools→Plugins” 菜单中的“Package”按钮进行打包。这允许用户为自定义引擎构建 Dash。

卸载

只需从中移除 GraphNUnrealPlugin 文件夹 该操作每个项目发生一次(如果 Dash 按项目安装)。或每个引擎版本发生一次(如果 Dash 安装到引擎)。为节省磁盘空间,建议将 Dash 安装在PROJECT_ROOT/Plugins

还要移除 Documents/Polygonflow 文件夹

chevron-right选项2:源码构建说明hashtag

对于此构建选项,首先在 Google Drivearrow-up-right 打开 Source Build 文件夹,然后下载你希望安装的 Dash 版本的 zip。

该 ZIP 文件包含:

  • Dash: 该文件夹保存了从安装程序复制的文件。它允许你在不进行安装的情况下通过版本控制或共享文件夹分发插件。

  • GraphNUnrealPlugin: 该目录包含将 Dash 集成到自定义引擎构建所需的 C++ 代码。

  • 这会自动对 Unreal 的 Python 可用。: 如果你选择不在每位美术人员的机器上安装 Dash,此开发者文件可作为启动插件 Python 部分的入口点。

然后就该开始构建了!

  1. 创建一个新的 Unreal C++ 项目

  2. 将插件放入项目的 Plugins 文件夹(如果不存在则创建 Plugin 文件夹)。结果路径应为 Plugins\\GraphNUnrealPlugin

  3. 这会自动对 Unreal 的 Python 可用。 ZIP 中随附的文件复制到你的项目中 Plugins/GraphNUnrealPlugin/Content/Python 以便插件可以看到 Dash 及其库,否则你会遇到诸如 ModuleNotFoundError: No module named 'GN'

  4. 之类的错误。这会自动对 Unreal 的 Python 可用。 如果你想分发该插件,请在文件末尾的

  5. 文件中编辑路径,将其替换为你放置 Dash 文件夹的位置;如果你使用安装程序,则填写安装目录。

通过在资源管理器中右键 .uproject 文件并选择“Generate Visual Studio project files”来生成 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,以便导出函数具有自动完成功能。

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

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

  • 中解压,且该 zip 位于同一文件夹中。 ThirdPartyLicenses

  • - 这不会影响功能,属于可选项 __pycache__

  • - 由 Python 生成 __pycache__

  • *.pyc *.pdf

  • - 法律文件如最终用户许可协议(EULA),可选 *.md

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

chevron-rightDash 环境变量hashtag

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 偏好设置 UI。 默认值 -

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

enable

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

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

chevron-right常见问题(FAQ)hashtag

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

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

  2. 关闭 Windows 11 中 Windows Defender 对 Documents 文件夹添加的自动写保护。它被标记为“受保护的文件夹”。

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

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

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

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

  • 运行 Dash 需要两个组件:

  • Unreal C++ 插件

Dash Python 插件

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

C++ 插件依赖哪些内容?

下面列出 C++ 层的依赖项:

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

mimalloc.lib

  • Dash 依赖项(内部)

  • IndexMeshSymbols.lib

  • _math.lib

  • _array.lib

  • meshoptimizer.lib

chevron-right_gnmesh.libhashtag

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

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

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

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

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

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

chevron-rightDash 不断发展,我们的首要任务是为美术人员和工作室持续提供更新和新工具以改进其工作流程。 这种快速的发展节奏有时会留下我们已知但并非致命的编译警告。 它们在未来可能会被修复,但如果你有零警告政策,不幸的是你可能需要处理你遇到的那些警告。hashtag

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

chevron-right你只需为那些希望访问工具并能够调整参数的美术人员准备席位。构建机器也不需要许可。hashtag

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

  1. 如果你使用 Perforce 或其他版本控制软件,并且在打开 Dash 时看到我们的资源更新弹窗且因显示资源错误而失败,下面是你需要做的:

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

  3. 关闭 UE,

  4. 在你的 PC 文件资源管理器中打开此路径:DASH_INSTALL_ROOT\Plugins\UnrealEngineContext\Imports\GN, 然后将此 ContentUtils.py 文件替换为此处提供的文件:arrow-up-right

  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,并通过弹窗运行更新,

最后更新于

这有帮助吗?