提取 usmap 映射文件

提取 usmap 映射文件

本教程介绍使用 UE4SS、Dumper7 或 JMap 为 Unreal Engine 游戏生成 .usmap 映射文件。原文针对使用 IoStore 格式的游戏;实际需求和工具兼容性应以游戏及工具版本为准。

原教程说明,工具使用映射文件解析资源名称;如果游戏的 Paks 目录包含 .ucas 和 .utoc,在解包、检查或修改资源之前通常需要相应映射。三种方法的要求不同:UE4SS 已能在游戏中运行时最容易使用;Dumper7 的导出较为全面,但要编译源码并注入 DLL;JMap 可独立运行,但可能无法成功。

方法一:UE4SS

如果 UE4SS 已经在游戏中正常运行,可以直接从第 5 步开始。

  1. 从 UE4SS 实验版发布页下载版本。
  2. 将文件解压到游戏程序旁的 Binaries\Win64 目录。
  3. 用文本编辑器打开 UE4SS-settings.ini,在 EngineVersionOverride 中填写游戏的引擎版本。例如 UE 5.7 对应 Major 5、Minor 7。

UE4SS 配置文件中的引擎版本设置

  1. 在 Debug 部分启用 ConsoleEnabled、GuiConsoleEnabled 和 GuiConsoleVisible。

UE4SS 配置文件中的调试控制台选项

部分游戏需要额外配置才能运行 UE4SS。

  1. 启动游戏,在 UE4SS 调试工具的 Dumpers 标签页生成 .usmap。

UE4SS 调试工具中的映射导出按钮

  1. 文件输出至 ...\Binaries\Win64\Mappings.usmap。

方法二:Dumper7

Dumper7 可生成 SDK 和映射,但需要从源码编译,还需要工具将 DLL 注入游戏进程。原教程举例使用 Cheat Engine 或 UUU(后者需要更换其使用的 DLL)。

  1. 克隆 Dumper7 仓库,在 Visual Studio 中打开并构建解决方案,生成 DLL。
  2. 打开 Cheat Engine 并选择游戏进程。

在 Cheat Engine 中选择游戏进程

  1. 选择 Memory View → Tools → Inject DLL,选择 Dumper7 DLL。

Cheat Engine 的 Inject DLL 菜单

  1. 完成生成后,在 C:\Dumper-7\<UE_Version>-<GameName>\Mappings 查找映射。

Dumper7 输出目录中的映射文件

方法三:JMap

  1. 从 JMap 发布页下载并解压。
  2. 打开命令提示符,运行 cd "<folder_path>" 进入解压目录。
  3. 按游戏版本设置引擎版本,例如:
set PATTERNSLEUTH_RES_EngineVersion=5.7
  1. 在任务管理器中查找游戏进程并记录 PID。
  2. 运行 jmap_dumper.exe --pid <PID> mappings.usmap。生成的文件位于 JMap 目录中。

命令提示符中使用 JMap 的示例

来源:Dmgvol / UE_Modding:Extracting usmap。