DD2编辑器 - 用户文件编辑器

DD2编辑器 - 用户文件编辑器

用于编辑游戏资源中各类用户数据文件的工具。

[center][size=6][b][u]这不是存档编辑器[/u][/b][/size]
(我希望我能把字弄得更显眼。)[/center]

这是一个用于编辑从游戏资源(pak 文件)中提取的用户文件的工具。

如果你需要更多帮助,请自行搜索 "RE Engine" 和 "RETool" 以及其他任何 RE Engine 教程,因为我这里只会简要概述如何提取和使用文件。
我会解释本游戏中模组文件等工作背后的原理,但如何动脑、批判性思考、搜索以及填补其余空白,就看你自己的了。

[b][size=4]切勿在 ZIP 压缩包内直接运行!请先解压内容![/size][/b]

如果某些功能不起作用,[u]请尽可能提供详细信息![/u]
[list]
[]文件路径与名称。
[
]错误信息。
[]你做了什么操作导致该问题。
[
]任何其他你能想到的信息。我没有水晶球;[b]我无法读取你的心思或看到你的屏幕。[/b]请像向盲人解释那样,说明你的操作流程/错误。
[]请不要只让我去追问,因为如果你只说"某某功能不行",我可能会直接无视你。
[/list]

[size=4]当前功能:[/size]
[list]
[
]可以读取/写入约 80% 的《龙之信条2》用户文件。
[]按下 Ctrl+I 在网格视图底部添加一行并滚动到该行。
[list]
[
]新行应包含默认/空数据,所以别忘了修改你需要的内容。
[]能添加行并不意味着应该添加行。有时游戏有硬编码的数组大小。
[/list][
]按下 Ctrl+R 删除所有/选中行或单元格。
[]如果你从正确的 natives 目录结构中打开文件,编辑器会警告你打开的文件是否受支持。
[
]数据网格最右侧的 Index 列是你可以通过 RE_RSZ 看到的对象索引。这不是你能编辑的东西,所以忽略它,除非你同时使用 RSE_RSZ。
[]许多文件中的 'Name' 列仅供参考!99% 的文件中不包含名称。这些是从 msg 文件中预提取的数据。
[/list]
[size=4]已知问题:[/size]
[list]
[
]没有批量编辑或粘贴功能。将来可能也不会有。
[]枚举标志(位标志)字段仅显示并允许选择单个枚举项。如果你想启用多个标志,请使用 RE_RSZ 编辑文件。
[list]
[
]这意味着在交换数据库文件中更改枚举字段时会有问题。
[/list][]某些枚举下拉列表很长且未排序,难以筛选。
[/list]
[size=4]文件提取:[/size]
[list=1]
[
]下载 [url=https://residentevilmodding.boards.net/thread/10567/pak-tex-editing-tool]RETool[/url]。
[]为《龙之信条2》下载这份[url=https://raw.githubusercontent.com/gibbed/DragonsDogma2-File-Lists/main/combined_for_REtool.list]文件列表[/url]。
[
]编辑 extract-pak.bat,注意列表文件参数。你可以:
[list]
[]将下载的列表文件重命名以匹配参数。
[
]或者修改参数以匹配列表文件。
[/list][]将你想提取的 pak 文件拖到 extract-pak.bat 上。[b][u]不是 EXE 文件![/u][/b]
[list]
[
]再次强调,使用 bat 文件,而不是 exe 文件!
[]pak 文件之间并不互相排斥,它们是按时间顺序排列的。pak 编号越高 = 优先级越高。
虽然较晚的 pak 文件包含较新的文件,但它可能不包含某个内容
所有的文件,你可能需要在前面的 pak 文件中寻找那些文件。[/list][]列表文件只是一个包含路径列表的文本文件。仅此而已。如果你只想要少量文件,可以编辑或创建一个只包含所需路径的列表文件并使用它来提取。否则你将提取整个 100GB 的内容。
[/list]
[size=4]常见问题:[/size]
[list]
[]如果你在 RETool 的输出中看到 "Failed to read {list file}",说明你没有执行第 3 步。
[
]如果提取出的文件(如 108373695-472378171.tex.760230703)没有任何 natives 文件夹结构,说明你没有执行第 4 步。
[]"Extraction cancelled: There are invalidated entries in the PAK file. Try again with a non-modified PAK archive." 表示你安装了模组。关于存档失效(archive invalidation)的工作原理,请参阅下文。
[
]文件上的双重扩展名,尤其是列表文件,是由于隐藏的文件扩展名导致的。
[]支持列表中的某个文件在打开时出错:请重新阅读'文件提取'部分。你提取的是较早 pak 文件中的过时版本文件。
[/list]
[size=4]制作 Pak 文件:[/size]
[list]
[
]将所有需要修改的文件(模组要包含的文件)放到某个地方,并保持 natives 文件夹结构!
[]将包含 natives 文件夹的[ i]上级目录[/i]拖到 create-DD2-pak.bat 上。[b][u]不是 create-pak.bat![/u][/b]
[/list]
[size=4]FMM 和文件加载的工作原理:[/size]
[list]
[
]目前有三种方式:[list]
[]pak 文件:
[list]
[
]这是游戏原生加载 pak 文件的方式,无需外部工具支持。
[]只需将一个 pak 文件放入游戏文件夹,并遵循 pak/patch 命名规则,游戏就会加载文件,编号越高的文件优先级越高。
[
]FMM 会自动重命名并管理模组 pak,所以请使用它。
[/list][]存档失效(Archive invalidation):
[list]
[
]FMM 可以将散装文件([i]未[/i]打包在 pak 中的文件)安装到游戏目录的 natives 文件夹中。
[]执行此操作时,FMM 会显示 "altered {n} paths in game archives",这是 FMM 正在使 pak 条目失效。
[
]游戏会[i]始终[/i]优先从 pak 文件中加载文件,所以 FMM 会将这些 pak 文件中的条目标记为失效,使游戏无法在那里找到它们,从而需要转向 natives 文件夹查找。
[]此方法意味着直接修改 pak 文件。这意味着游戏更新会重置这些修改,但会留下 natives 文件夹中的文件,造成混乱。
[
]如果你选择这种方式,游戏更新时务必进行干净卸载/安装模组。(停用所有模组,确认游戏目录中无模组残留,更新游戏,然后重新启用模组。)
[][b]需要 REF![/b]游戏代码会检测 natives 文件夹是否存在,如果存在则会崩溃。REF([i]不带[/i]散装文件加载选项的版本)会修补此检测以避免崩溃。(此操作没有性能开销。)
[/list][
]REF 中的 "Loose File Loader"(散装文件加载器):
[list]
[]这只是将文件放入 natives 文件夹,而不通过 FMM 安装任何东西。
[
]这会带来性能损耗,因为每加载一个文件都需要额外逻辑来检查它是否在 natives 中,并忽略 pak 文件。
[]声称需要此功能的游戏实际上并不需要,可以通过上面的存档失效方法来实现。(例如:Mesh Mod Enabler)
[
]本质上,这只会让游戏优先检查 natives 文件夹,而无需使 pak 文件中的路径失效。
[]由于没有修改 pak 文件,游戏更新后此功能仍然有效。
[/list][
]FirstNatives:
[list]
[]实际上,这与 REF 中的 "Loose File Loader" 功能相同。
[
]并非所有游戏版本都提供此选项,例如《龙之信条2》因反篡改问题需要将其直接内置于 REF 中。
[*]更新版本的 REF(如 build 700 及更高版本)如果需要,可以直接使用 "Loose File Loader" 替代此功能。
[/list][/list]
[/list]
本工具目前针对并支持游戏版本 v1.0.6.0(更新 2,2024-04-08)。大多数小更新不会使其失效或改变其功能。
如果游戏添加了更多内容,或更改了结构体大小,本工具需要针对新物品名称等进行更新。

源代码:[url=https://github.com/Synthlight/MHR-Editor]https://github.com/Synthlight/MHR-Editor[/url]