stonstad 发表于 2022-10-8 13:12

UE4中UGS 故障排除

基本故障排除

在向 Epic 或您的 IT 部门提问时收集有关您的设置的基本信息将有助于您获得更好、更有效的帮助。像这样的一些项目包括:

[*]确定您是否可以在不使用 UGS 的情况下重现该问题。通常,看似与 UGS 相关的问题并非如此。例如:

[*]如果发生崩溃,请尝试在不使用 UGS 的情况下打开编辑器。
[*]如果存在 Perforce 同步问题,请尝试仅使用 Perforce 而不是通过 UGS 使用它。

如果您在没有涉及 UGS 的情况下仍然看到问题,则需要联系负责实际发生问题的团队或部门以获得更好的帮助。

[*]确定您是否使用最新版本的 UGS。版本信息可以通过诊断菜单(主页、选项 → 诊断...)访问,也可以在 UnrealGameSync.log 中的 C:\Users<user>\AppData\Local\UnrealGameSync\ 中找到。这通常可能是涉及元数据和 UGS 更新问题的原因。
[*]如果您确定这是 UGS 特有的问题,请先参考下面的常见问题。
大量的编译错误可以通过简单的故障排除步骤来解决:

[*]确认编译中哪一步失败

[*]例如:UnrealHeaderTool、ShaderCompileWorker 等。

[*]通过 UnrealGameSync 清理工作区,在项目概览区域中选择“更多 → 清理工作区”,然后尝试再次同步/编译
[*]删除 UE4.sln,手动运行 GenerateProjectFiles.bat (Windows)、GenerateProjectFiles.command (Mac),然后再次尝试同步/编译
[*]尝试使用 Visual Studio / XCode 手动编译
[*]尝试同步/编译标记为良好的变更列表(绿球)

[*]如果失败仍然存在,请选择 Options > “Use Incremental Builds” = False
[*]尝试重新编译

[*]确保禁用“同步预编译编辑器”(注意:仅在某些流中可用)
[*]确认 Perforce 中的工作区已正确配置
[*]警告:这在很多情况下都会有所帮助,但它不包括您的工作区中是否有额外的文件。如果您的工作区变得过于复杂而无法管理,您可能需要联系您的 IT 部门寻求帮助,或者重新制作您的工作区并为其重新同步数据。
看不到预编译的二进制文件

检测 PCB 可能需要很长时间。UGS 将首先加载所有 CL,然后交叉引用它们以查看可用的 PCB。在较慢的连接上,这可能需要几分钟,所以如果它可能很慢,请不要放弃!否则,这可能是由于存储它们的流的权限问题,或者由于构建健康问题而没有正确创建/上传它们。请联系您的 P4 管理员并确认您的构建已成功上传预编译的二进制文件,并且您有权访问。
将鼠标悬停在“同步预编译的二进制文件”上时的工具提示也将提供更多有助于调试此问题的信息:


无法连接

这通常是 Perforce 或本地网络问题。我们已经看到版本 2019.2 存在问题,值得从该版本开始更改。有时使用 P4V 重新登录到您的 Perforce 服务器也可以帮助解决这个问题。
如果这是在第一次设置期间,您会收到错误消息:Failed to sync application
您的日志包含:Couldn’t find last changelist
确保您的“仓库路径”设置为 Perforce 管理员提供给您的正确 Perforce 位置,并且路径格式正确,例如:
//仓库/路径/到/UnrealGameSync/bin
带有两个前导斜杠,表示 Perforce 库,并且没有终止正斜杠。然后再次单击“连接”。
如果这一切设置正确,并且您的 Perforce 版本不是 2019.2,您应该联系您的 Perforce 管理员以确认您对您的 depot 路径具有权限。
由于路径太长,同步或构建失败

UGS 无法绕过的大多数 Windows 版本都有 260 个字符的路径限制。事实上,如果 UGS 检测到超过 260 个字符的路径,它将完全阻止同步项目。目前没有办法在 UGS 中禁用此检查。
为了解决这个问题,您可能需要在更靠近根目录的文件夹中设置工作区(IE:D:/prj/workspace/)。此外,尝试强制使用尽可能缩短文件名的文件命名结构。
如果您决定使用 .uprojectdirs 文件而不是 .uproject 文件同步项目,这种情况也可能在极少数情况下发生。这可以通过使用 .uproject 文件在 UGS 中设置项目来解决。
选择“设置”


为您正在使用的工作区的“名称”和“路径”选择“浏览”
示例名称:




示例路径:


然后,无需像设置教程中那样选择 uprojectdirs 文件,只需在该流中选择一个 uproject 文件


然后尝试再次同步
GS 不会自动更新

情况 1:这通常是由于机器上的文件争用造成的。这可以通过关闭 UGS、确认没有正在运行的活动 UGS 进程并删除通常包含阻止更新的争用文件的 /Local/UnrealGameSync/Latest/ 来解决。
如果删除该文件夹失败,您应该会看到哪些文件处于争用状态以及哪些进程正在保留它。如果您无法停止该过程,重新启动应该可以解决该问题并允许您删除该文件夹。
之后,您可以使用 UnrealGameSyncLauncher 下载最新更新。
注意:您可能需要在重新启动之前从启动应用程序中删除 UnrealGameSync,删除文件夹,将 UGS 重新添加到启动应用程序,然后根据您设置 UGS 的方式从那里重新启动。
情况 2:如果用户没有正确的连接,或者没有正确的权限来查看 UGS 更新的二进制文件所在的 Perforce 路径,UGS 可能会无限期挂起,不允许用户继续。如果是这种情况,请更新连接设置中的“仓库路径”,或与您的 Perforce 管理员交谈以获得对文件的正确访问权限。
与“找不到文件”相关的随机构建错误

这通常是与 Perforce 相关的错误,不一定与 UGS 相关。如果您的工作区有问题,首先尝试强制同步整个引擎目录,如果一切都失败了,请创建一个新的工作区。
当同步过滤器配置不正确时,也会发生这种情况,无论是对构建重要的东西被过滤掉(IE:Win64 文件夹),还是意外引入了对同步过滤器覆盖的文件的依赖关系。配置同步过滤器的指南在这里:UGS 同步过滤器设置
从编辑器的 UGS 副本烹饪失败

如果您收到类似于以下内容的错误:ERROR: Failed to find command BuildCookRun
当尝试从通过 UGS 分发的引擎的预编译二进制版本进行烹饪或打包时,可能是由于需要此操作的源文件夹。
我们正在寻求改进这一点,但目前即使您实际上并未构建源代码,您也需要通过 UGS 使用的预编译二进制文件进行烹饪和打包的源目录。如果这是您工作流程的一部分,请检查您的同步过滤器以确保您没有排除源目录,即使您没有直接使用它。
编译器限制:达到内部堆限制

如果在编译的时候遇到类似如下的错误:
致命错误 C1060:编译器堆空间不足
致命错误 C1076:编译器限制:达到内部堆限制;使用 /Zm 指定更高的限制
错误 C3859:超出 PCH 的虚拟内存范围;请使用“-Zm123”或更高的命令行选项重新编译

短期解决方法
重新启动您的计算机,因为这会清除缓存的内存并可以暂时解除对编译的阻塞。

长期解决方案
您应该联系您的 IT 部门并说明您的问题。在某些情况下,通过控制面板增加最大页面文件大小可能会有所帮助,但这是大多数工作室需要通过 IT 完成的事情。
(Windows) 启动游戏或编辑器时没有任何反应,或者编辑器立即崩溃并出现奇怪的错误
大多数情况下,这发生在之前未配置为运行 Unreal 的机器上。如果您在一台新机器上,已同步所有内容,并且其他所有内容似乎都正常工作,但启动时没有任何反应,请尝试运行位于以下位置的 UE4PrereqSetup_x64.exe 应用程序:
/Engine/Extras/Redist/en-us。
这应该安装在以前没有安装过的机器上运行 Unreal 所需的先决条件。

UGS 启动时崩溃
UnrealGameSync 使用 P4 命令行工具查询 Perforce 的更新。未安装命令行工具是 Launch 崩溃的最常见原因。

分辨率:


[*]重新运行 Perforce 客户端安装程序
[*]在安装过程中,确保包含命令行工具
检查 P4 命令行工具


[*]打开命令窗口
[*]输入 p4。
[*]按 Enter。
[*]如果安装了 P4 命令行工具,则会打印一系列帮助命令
[*]如果未安装 P4 命令行工具,则会打印错误 File not found
生成项目文件错误
生成项目文件时,如果遇到类似以下的错误:
Setting up Unreal Engine 4 project files...
UnrealBuildTool Exception: System.FormatException: Index (zero based) must be greater than or equal to zero and less than the size of the argument list.
at System.Text.StringBuilder.AppendFormatHelper(IFormatProvider provider, String format, ParamsArray args)
at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args)
at System.String.Format(String format, Object[] args)

ERROR: UnrealBuildTool was unable to generate project files. Press any key to continue . . . Failed to generate project files (exit code 1).这通常是由于缺少 Visual Studio 组件造成的。
确保所有 Visual Studio 组件都按照以下要求安装:https ://docs.unrealengine.com/en-US/ProductionPipelines/DevelopmentSetup/VisualStudioSetup/index.html
如果您遇到类似以下的错误:error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.6.2" were not found.
从Microsoft 网站安装 SDK 和 Developer Pack。
错误:System.ComponentModel.Win32Exception

使用UGS构建时,如果出现如下错误:
ubt> Using Visual Studio 2017 14.16.27023 toolchain (C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023) and Windows 10.0.17763.0 SDK (C:\Program Files (x86)\Windows Kits\10).

ubt> ERROR: System.ComponentModel.Win32Exception (0x80004005): The system cannot find the file specified这是我们在安装 .NET Framework 和其他开发者包,并在重启电脑前尝试同步时造成的。
要修复,请重新启动计算机,再次生成项目文件,然后重新构建。
错误:System.UnauthorizedAccessException

这通常发生在一段时间未更新的 UGS 版本中,如下所示:
UnrealGameSync has crashed.
System.UnauthorizedAccessException: Access to the path <path> is denied.分辨率:

[*]导航到 C:<用户>\AppData\Local\UnrealGameSync
[*]删除 UnrealGameSync.ini

[*]警告 - 删除此文件将删除用户数据,包括

[*]保存的构建配置
[*]编辑器命令行参数
[*]收藏的开放项目
[*]预编译编辑器和增量构建选举


找不到任何包含…/.uproject 的 Perforce 工作区。检查您的连接设置。
如果您是第一次设置 UGS 并使用本地文件对话框添加项目,但仍然出现上述错误:


[*]尝试通过 Open Project → Workspace → New... 对话框添加相同的文件。
[*]如果您不能这样做,这是 Perforce 权限问题,您需要与您的 Perforce 管理员合作,以确保您对工作区所针对的流和文件具有正确的访问权限。
连接到服务器失败
尝试使用无法识别的端口号连接到您的 Perforce 服务器将返回以下错误:Perforce client error: Connect to server failed; check $P4PORT
要解决这个问题:

[*]打开命令/终端窗口
[*]输入 p4 设置 P4PORT=
[*]按回车
[*]关闭并重新启动 UGS
同样,与未知用户连接会产生错误:Access for user 'USERNAME' has not been enabled by 'p4 protect'
要解决此问题,请打开命令窗口并:

[*]输入 p4 set P4USER=<perforce.username>
[*]按回车
[*]关闭并重新启动 UGS
System.Io.FileNotFoundException: Ionic.Zip.Reduced

[*]验证 C:\Users[ User.name ]\AppData\Local\UnrealGameSync\Latest 是否包含 Ionic.Zip.Reduced.dll

[*]如果确实存在,您可能会丢失工作区中的文件,并且应该强制同步工作区中的 Engine\Binaries 文件夹

[*]否则,请检查您的防病毒软件是否将其隔离。按照防病毒软件的步骤“信任”文件
[*]如果您不确定如何执行此操作,请从任务管理器中终止 UGS
[*]删除 C:\Users[ User.name ]\AppData\Local\UnrealGameSync\Latest的内容
[*]重启UGS
[*]在 UGS 打开后确认该文件现在存在。
UGS 未使用正确的代理服务器
如果在打开“诊断”菜单(主窗口右下角,列表底部的“选项”→“诊断”)后,诊断菜单显示您正在使用代理服务器,但同步仍然失败:

[*]在 UGS 中打开一个新项目
[*]查找“使用默认 Perforce 服务器设置”
[*]点击“更改”[见截图项目 3]
[*]取消选中“使用默认连接设置”复选框 [参见屏幕截图项目 4]
[*]在提供的字段中输入您的代理服务器和用户名 [参见屏幕截图项目 5]
[*]点击确定
[*]现在打开 UGS 诊断应该会显示正确的服务器设置。

重要提示:

Unreal虚幻引擎电脑配置的要求是比较高,特别是实时渲染,前期的硬件成本是比较高,这里有一个简单的节省硬件成本的方法,使用赞奇超高清云工作站,即使本地普通的电脑也能运行UE5软件,且普通电脑也能享受行业最高端的CPU和GPU,极大提高制作效率和使用体验,且使用方便快捷,全面支持3D应用软件插件运行,随时调用百余款软件插件,高效作业。

赞奇超高清云工作站可以利用云计算、虚拟化技术,为企业提供的云上虚拟Windows桌面及应用服务,提供VDI的云桌面交付方式,满足不同场景的需求,多终端接入,企业员工可随时随地访问桌面,提高企业办公效率,提升企业信息安全,保护企业数据资产,降低运维、设备成本。

页: [1]
查看完整版本: UE4中UGS 故障排除