十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

虚幻引擎存档编辑器 uesave 教程:3 条命令把 .sav 存档转成 JSON 随意改

虚幻引擎存档编辑器 uesave 教程:3 条命令把 .sav 存档转成 JSON 随意改 虚幻引擎存档编辑器 uesave 教程3 条命令把 .sav 存档转成 JSON 随意改【免费下载链接】uesaveRust library and CLI to read and write Unreal Engine save files项目地址: https://gitcode.com/gh_mirrors/ue/uesaveuesave 是一个用 Rust 编写的免费开源虚幻引擎存档编辑器专门读写 UE 游戏的存档文件GVAS 格式。它能将二进制 .sav 存档完整解析成人类可读的 JSON让你用文本编辑器直接改数值再回写成游戏能识别的存档文件。适合存档备份、调整进度与资源、以及摸清游戏内部的数据结构。.sav 存档为什么打不开先搞懂对象你双击 .sav 看到一堆乱码不是文件坏了。UE 存档是一种叫 GVASGame Archive的二进制格式属性名、类型标签、长度前缀全部以字节流形式存储序列化就是把结构化数据压成这种字节流的过程。用十六进制编辑器硬改当然可以但你得先懂格式细节写错一个字节整个存档就废了。uesave 把序列化这层脏活接过去读取时按属性逐项还原成 JSON写出时再按原格式落回字节你只在可读层操作。核心解析逻辑在 uesave/src/archive.rs属性的序列化实现在 uesave/src/serialization.rs排错时可以对照源码看。三步装好 uesave 存档编辑工具装完后你会得到一个uesave命令Windows、macOS、Linux 上行为一致。先确认系统里有 Rust 工具链需要 1.60.0 及以上rustc --version然后从仓库安装cargo install --git https://gitcode.com/gh_mirrors/ue/uesave最后验证uesave --version有个容易踩的命名点可执行包的源码目录叫 uesave_cli但装出来的命令是uesave。跑uesave --help能看到全部四个子命令其中三个是你日常会用到的。三条命令覆盖全部工作流to-json把二进制存档导出为 JSONfrom-json把 JSON 回写成二进制存档edit一步完成导出 → 打开编辑器 → 回写另有一个test-resave后面排错时会用到。UE 存档转 JSONto-json 与 from-json 怎么配合导出存档输入输出默认走标准输入输出也可以显式指定文件uesave to-json -i SaveGame.sav -o SaveGame.json得到的是一份缩进整齐的 JSON字段名就是游戏内部属性名。改完数值后回写uesave from-json -i SaveGame.json -o NewSaveGame.sav注意回写时输出到新文件名别直接覆盖原档。想要最省事的方式用edit一步到位uesave edit SaveGame.sav它会按$EDITOR环境变量指定的编辑器打开临时 JSON你保存退出后自动回写原文件如果内容没改动它会提示 File unchanged 并跳过写入。游戏存档修改教程以深岩银河为例的完整实录这一节用《深岩银河》Deep Rock Galactic官方明确测试过其存档走一遍完整流程节奏是操作 → 验证 → 收尾。仓库根目录附带了一个 drg-save-test.sav 示例存档建议第一次先拿它练手别直接动真存档。操作备份、导出、改数先找到存档目录。Windows 在C:\Users\用户名\AppData\Local\FSD\Saved\SaveGames\Linux 在~/.local/share/DeepRockGalactic/FSD/Saved/SaveGames/。动手前复制一份原档原则是新存档验证可用之前原档一个字节都不动cp SaveGame.sav SaveGame.bak.sav导出为 JSONuesave to-json -i SaveGame.sav -o SaveGame.json打开 JSON找到想改的字段。深岩银河存档里常见的是信用点Credits和资源类数值。修改边界建议收紧一点数字、字符串、布尔值可以直接改数组长度、对象层级保持原样增删元素风险高看不懂的字段原封不动改完回写到新文件uesave from-json -i SaveGame.json -o SaveGame_modified.sav验证回写前和加载后各查一次回写前你可以顺手确认 JSON 结构没有被动坏用编辑器的折叠和搜索功能重点扫一眼改动过的区域附近是否还有括号、逗号问题。回写后把新存档文件名改回原存档名原档仍有 .bak 备份启动游戏加载核对信用点、资源等数值是否生效同时确认游戏没有报存档错误。收尾替换原档并留后路游戏确认能正常读档后这套修改才算落地。备份文件先留着过几天确认没有连锁问题再删。如果加载失败直接用SaveGame.bak.sav回滚再回来查排错手册。排错手册转换报错的常见修复遇到报错先别怀疑自己多数情况工具已经提示了原因。下面按出现频率列MapProperty / SetProperty 解析失败存档里这类字段的内部结构缺少类型上下文uesave 会先尝试猜测猜错就会报解析错误。解决办法是用-t参数手动指定类型例如uesave to-json -i SaveGame.sav -o SaveGame.json -t .UnlockedItemSkins.SkinsGuidedit和test-resave同样支持-t参数格式都是字段路径类型。文件读不了或明显异常确认 .sav 完整大小正常、传输没被截断并确认用的是最新版 uesave。回写后游戏拒绝读档最常见原因是 JSON 结构被改动——数组长度变了、字段被增删。值随便改结构尽量不动。改动大存档时容易出错的流程问题JSON 可能很大用支持折叠的代码编辑器只展开要改的节点改重要存档前先在一份无关紧要的存档上试同样的修改。解析时有非致命告警如果告警刷屏干扰阅读加--no-warn静默。想确认工具对某个存档是否完全可靠跑一次回环测试uesave test-resave SaveGame.sav它会把存档重新序列化一遍并逐字节比对输出 Resave successful 说明该存档可以完整往返改动风险最低。进阶用法批量转换与 Rust 库扩展批量转换不需要脚本语言一个 shell 循环就够for f in *.sav; do uesave to-json -i $f -o ${f%.sav}.json; doneuesave 本身是一个 crateRust 库CLI 只是它的外壳。想在自己的程序里读存档字段可以直接依赖这个库uesave/examples/read-save/main.rs 演示了如何打开存档并读取已游玩局数字段另一个示例 uesave/examples/space-rig-decorator/ 则展示了完整读写一份带复杂结构的存档。仓库里还有一个浏览器版本uesave_wasm/把核心库编译成 WebAssemblyweb/目录下是 Svelte 前端转换在浏览器里完成适合不方便装 Rust 环境的场景。基于库 API 你还能自定义序列化规则、扩展支持的游戏类型把它嵌进自己的工具链。本文基于 uesave 0.7.1 编写官方完整验证对象是《深岩银河》存档兼容 UE4.26 与 UE5.0–5.2 的存档换其他游戏前建议先跑一次test-resave确认往返可靠再动手。【免费下载链接】uesaveRust library and CLI to read and write Unreal Engine save files项目地址: https://gitcode.com/gh_mirrors/ue/uesave创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表