Skip to content

十六进制编辑

十六进制编辑在现今已经相当少见,因为我们可以使用UAssetGUI进行操作,但有时该工具会失效,所以了解如何手动进行十六进制编辑是很有必要的。

获取默认值

首先找到你想要修改的资产,并使用FModel或UModel导出它。

在这个例子中,我将把《幽灵行者2》中手套的光芒颜色从蓝色改为红色。

使用FModel,我可以获取光芒的精确RGB值,即0.0, 33.0, 55.0, 1.0

使用十六进制替换值(方法1)

导出的文件成对出现,包含.uasset.uexp
值存储在.uexp文件中,所以这是我们需要编辑的文件。

用十六进制编辑器打开.uexp文件(我使用的是Hex Editor Neo)。
按Ctrl+H打开替换窗口(根据你使用的软件,快捷键可能不同)。
确保类型是Float,然后输入原始值和目标值。
注意: 如果你的编辑器没有这个替换功能,请尝试方法2

然后点击"全部替换",如果操作正确,将显示成功窗口。

打包

完成十六进制值替换后,使用UnrealPak将修改后的.uexp文件打包到其pak文件中。

结果




使用十六进制替换值(方法2)

如果你的十六进制编辑器没有替换功能,你可以通过提供十六进制值数组来查找这些值。

对于这个例子,值为0.0, 33.0, 55.0, 1.0,需要将其转换为小端序十六进制表示。

将这些值输入到搜索面板,在文件中查找这些值。

在这个简单的例子中,这个组合是唯一的,所以只找到了一个结果。

现在用所需的十六进制值替换这些十六进制值,在这个例子中,是
55, 0, 0, 1,即00 00 5c 42 00 00 00 00 00 00 00 00 00 00 80 3F
(在这个特定情况下,55是光芒的强度,通常它的值在0.0到1.0之间)

保存文件,然后使用UnrealPak打包修改后的.uexp

常见问题

问:如果值不是唯一的怎么办?
答:尝试查找目标变量周围的一系列值。
如果目标值后面跟着/被其他值包围,请检查它是否按相应顺序出现。