十六进制编辑
十六进制编辑在现今已经相当少见,因为我们可以使用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
。
常见问题
问:如果值不是唯一的怎么办?
答:尝试查找目标变量周围的一系列值。
如果目标值后面跟着/被其他值包围,请检查它是否按相应顺序出现。