Lua 脚本系统平台、C++ Modding API、SDK 生成器、蓝图 mod 加载器、实时属性编辑器和其他适用于 UE4/5 游戏的转储实用程序。
Lua Scripting API : 基于 UE 对象系统编写 lua mods
蓝图模块加载:无需编辑/替换游戏文件即可自动生成蓝图模块
C++ Modding API:基于 UE 对象系统编写 C++ 模组
实时属性查看器和编辑器:搜索、查看、编辑和观察每个加载对象的属性,非常适合调试模块或弄清楚运行时值是如何变化的
UHT Dumper:生成与 Unreal Header Tool 兼容的 C++ 头文件,用于为您的游戏创建镜像 .uproject
C++ Header Dumper:从反射类和蓝图生成标准 C++ 头文件,带有偏移量
通用 UE 模组:解锁游戏机和其他通用模组
文件解析转储器:为未版本化的属性生成.usmap
映射文件
UMAP 娱乐转储器.umaps
:将所有加载的演员转储到文件以在编辑器中生成
其他功能,有时包括实验性功能
UE4SS 的目标并非打造一个适用于所有游戏的即插即用解决方案。我们的目标是打造一个适用于大多数游戏的底层系统。您可能需要自行更新 AOB,下方提供了相关指南。
最简单的安装方法是从Releases下载最新非实验版本的非开发版本,并将 zip 内容提取到{game directory}/GameName/Binaries/Win64/
。
如果您的游戏在自定义配置列表中,请从相关文件夹中提取内容Win64
。
如果您计划使用 UE4SS 进行 mod 开发,您可以执行与上述相同的操作,但下载 zDEV 版本。
运行 Windows 的计算机。
Linux 支持可能会在某个时候出现,但不会很快出现。
支持 C++23 的 MSVC 版本:
MSVC 工具集版本 >= 14.39.0
MSVC 版本 >= 19.39.0
Visual Studio 版本 >= 17.9
希望将来能够支持更多的编译器。
克隆 repo。
执行此命令:git submodule update --init --recursive
确保您的 Github 帐户已关联到您的 Epic Games 帐户,以便访问 UE 源代码。请勿使用该--remote
选项,因为这会强制第三方依赖项更新到最新提交,这可能会造成问题。您需要将您的 Github 帐户关联到 Epic Games 帐户才能提取虚幻伪代码子模块。
您可以通过多种不同的方式构建 UE4SS。
xmake
允许您灵活配置一些构建选项以满足您的特定需求。以下是一些您可能会觉得有用的配置设置的非完整列表。
重要的
所有配置更改均通过该命令进行xmake config
。您也可以将其用作configxmake f
的别名。
使用以下任意选项进行配置后,您可以使用或xmake
构建项目。xmake
xmake build
构建模式的结构如下:<Target>__<Config>__<Platform>
目前支持的选项有:
Target
Game
- 适用于高于 UE 4.21 版本的常规游戏
LessEqual421
- 适用于低于或等于 UE 4.21 版本的常规游戏
CasePreserving
- 适用于启用保留大小写功能的游戏
Config
Dev
- 开发构建
Debug
- 调试构建
Shipping
- 发货(发布)构建
Test
- 为测试而构建
Platform
Win64
- 64 位 Windows
提示
使用此命令配置项目:xmake f -m "<BuildMode>"
。是--mode =<BuildMode>-m
的别名。
默认情况下,patternsleuth 工具会以 xmake 包的形式自行安装。如果您不打算修改 patternsleuth 源代码,则无需进行任何特殊配置。如果您希望能够修改 patternsleuth 源代码,则必须提供选项--patternsleuth=local
,xmake config
以便将 patternsleuth 作为 UE4SS 构建的一部分重新编译。
默认情况下,UE4SS 根据 生成代理C:\Windows\System32\dwmapi.dll
。如果您出于任何原因想要更改此设置,可以将 添加到命令--ue4ssProxyPath=<path proxy dll>
中xmake config
。
默认情况下,UE4SS 使用 Tracy 进行性能分析。您可以传递--profilerFlavor=<profiler>
给该xmake config
命令来设置性能分析器风格。目前支持的风格包括Tracy
、Superluminal
和None
。
默认情况下,xmake 会检查你是否安装了最低要求的 Rust 或 MSVC 版本(如果你使用了 MSVC 工具链)。如果没有,则会在 configure 步骤抛出错误。如果你想忽略此检查,可以将其传递--versionCheck=n
给xmake config
命令。
一旦设置了标志,选项值就会被设置,直到您另行指定为止。
因此,为了在运行时不检查版本xmake project -k vsxmake2022
,必须先运行该xmake config --versionCheck=n
命令,然后再运行该xmake project -k vsxmake2022
命令。
您可能会遇到一些更高级的xmake
命令。下面列出了一些有用的命令(非完整列表)。
句法 | 别名 | 用途 |
---|---|---|
xmake <command> --yes | xmake <command> -y | 自动确认任何用户提示。 |
xmake --verbose <command> | xmake -v <command> | 启用详细级别日志记录。 |
xmake --Diagnostic <command> | xmake -D <command> | 启用诊断级别日志记录。 |
xmake --verbose --Diagnostic --yes <command> | xmake -vDy <command> | 您可以将大多数标志组合成一个-flagCombo 。 |
xmake config | xmake f | 使用以下任意选项配置 xmake 。 |
xmake clean --all | xmake c --all | 清理所有目标的二进制文件和中间输出。 |
xmake clean <target> | xmake c <target> | 清除特定目标的二进制文件和中间体。 |
xmake build | xmake b | 使用输入文件检测逐步构建 UE4SS。 |
xmake build --rebuild | xmake b -r | 强制完全重建 UE4SS。 |
xmake build <target> | xmake b <target> | 逐步构建特定目标。 |
xmake show | 显示 xmake 信息和当前项目信息。 | |
xmake show --target=<target> | xmake show -t <target> | 打印大量关于目标的信息。可用于调试脚本、编译器标志、依赖关系树等。 |
xmake require --clean | xmake q -c | 清除所有包缓存并卸载所有未引用的包。 |
xmake require --force | xmake q -f | 强制重新安装所有依赖包。 |
xmake require --list | xmake q -l | 列出项目所需的所有包。 |
xmake project --kind=vsxmake2022 --modes="Game__Shipping__Win64" | xmake project -k vsxmake2022 -m "Game__Shipping__Win64" | 根据您当前的设置生成Visual Studio 项目xmake config 。您可以通过提供 来指定要生成的多种模式-m "Comma,Separated,Modes" 。如果您不提供任何模式,VS 项目将生成所有模式的排列。 |
要生成 Visual Studio 项目文件,请运行该xmake project -k vsxmake2022 -m "Game__Shipping__Win64"
命令。
然后打开目录.sln
中生成的文件vsxmake2022
请注意,如果您更新的原因不是因为其他人推送了更新,而您只是在追赶它,那么您还应该提交并推送您已更新的子模块。
警告
vs.build 插件通过直接在 vs 下调用 xmake 命令来执行编译操作,并且支持智能感知和定义跳转,以及断点调试。这意味着在 Visual Studio 中修改项目属性不会影响 VS 执行构建时传递给构建的标志xmake
。XMake 提供了一些可配置的项目设置,可以在 VS 的Project Properties -> Configuration Properties -> Xmake
菜单下找到。
警告
如果您安装了多个 Visual Studio 版本,请运行xmake f --vs=2022
,否则您可能会遇到项目生成问题。
提示
运行即可生成附加模式xmake project -k vsxmake2022 -m "Game__Shipping__Win64,Game__Debug__Win64"
。 更多解释请参阅xmake
命令表。
警告
如果您使用 更改了配置xmake config
,则可能需要重新生成 Visual Studio 解决方案才能使其生效。您只需重新运行该xmake project -k vsxmake2022 -m "<modes>"
命令即可重新生成解决方案。
我们仅正式支持使用msvc-wine进行交叉编译。
请确保您已安装 winbind(Arch 上支持 libwbclient 和 samba)。
警告
你必须使用xmake v2.9.7 或更高版本,并且截至 2024 年 12 月初,此版本尚未发布,这意味着你必须安装 xmake 的 dev 版本。
您需要使用rustup安装x86_64-pc-windows-msvc
目标(而非目标)。 调用 时,必须设置、和。 您还必须使用、 和 禁用版本检查。 以下项目在交叉编译时不受支持,并会自动禁用:windows-gnu
xmake f
--plat
--arch
--sdk
--ue4ssCross=msvc-wine
proxy proxy_generator UVTD
调用xmake
build 命令时,patternsleuth 将自动构建,无需 xmake。
二进制文件位于 中deps/first/patternsleuth_bind/target/x86_64-pc-windows-msvc
。当设置为
时,xmake 会自动使用它们。 以下是在 Linux 机器上构建 Windows 二进制文件的完整命令示例:--ue4ssCross
msvc-wine
xmake f -m "Game__Shipping__Win64" -p windows -a x64 --sdk=/home/<username>/my_msvc/opt/msvc --versionCheck=n --ue4ssCross=msvc-wine
可以使用 进行调试winedbg
。
您还可以调试小型转储:
winedbg crash_2024_12_26_07_39_15.dmp
请记住,调试符号不会存储在 dmp 文件中,您必须拥有与构建 UE4SS.dll 时完全相同的符号文件 (PDB)。
确保符号正确的最简单方法是构建生成 dmp 文件的同一提交。
如果你想更新 git 子模块,你可以使用以下三种方式之一:
您可以执行git submodule update --init --recursive
来更新所有子模块。
您也可以选择通过执行 来逐个更新子模块。除非您确实想更新到最新的提交,否则git submodule update --init --recursive deps/<first-or-third>/<Repo>
请不要使用该选项。--remote
如果您宁愿选择一个特定的提交或分支来更新子模块,然后cd
进入该依赖项的子模块目录并执行git checkout <branch name or commit>
。您可能想要不时更新的主要依赖项是deps/first/Unreal
。