这个项目能做什么
Paramdex是一个资源集合,用于通过SoulsFormats及其衍生工具处理游戏参数(params)。它面向FromSoftware作品的数据模组和工具开发,而非游戏玩法本身。
结构:每个受支持的游戏都有三个文件夹。Defs存放XML格式的paramdef,编辑参数数据时需要;文件名可任意,应根据加载后包含的元数据来应用。Names存放预定义的行名,主要对较新游戏有用(这些游戏的行名已被移除),且并非每个参数都有行名。Tdfs存放paramtdf,为枚举类型提供友好名称;这些仅随恶魔之魂官方发布。对于装甲核心VI,部分参数文件已损坏且缺少参数类型字符串,因此ParamTypes.txt列出了需要正确类型的条目。
覆盖范围:黑暗之魂(DS1)、黑暗之魂:重制版(DS1R)、黑暗之魂II:原罪学者(DS2S)、黑暗之魂III(DS3)、恶魔之魂(DES)、血源(BB)、只狼(SDT)、艾尔登法环(ER)和装甲核心VI(AC6)。
定义来源对贡献者很重要:DeS、DS1和BB的paramdef随游戏发布,只应通过翻译显示名称和描述来修改。SDT、ER和AC6的paramdef大部分是官方的,但因更新略有扩展,原始字段同样受此限制。其余游戏的paramdef是逆向工程得到的,欢迎改进。
README还记录了如何编写paramdef。每个paramdef应包含ParamType(将paramdef链接到其参数)、DataVersion(参数数据结构的修订版本)、BigEndian、Unicode(描述字符串是否为UTF-16)、FormatVersion(paramdef的二进制格式)和Fields。每个Field有一个必需的Def属性,给出类型、内部名称、可选的位大小或数组长度,以及可选的默认值,采用C声明风格编写,例如u16 iconId、u16 iconId = 1000、u8 enableGuard:1表示位域,或dummy8 padding[2]表示数组。
可选元素可自定义编辑器行为:DisplayName、Enum(对应paramtdf)、Description、DisplayFormat(printf格式字符串)、EditFlags(已知标志Wrap和Lock)、Minimum、Maximum、Increment、用于显示排序的SortID,以及用途未知的字符串UnkB8、UnkC0和UnkC8。省略的元素会根据字段类型获得合理的默认值;Default、Minimum、Maximum和Increment始终是浮点数,对数组类型无意义。一个完整加载的示例将Def与DisplayName、Enum、Description、DisplayFormat、EditFlags、Minimum、Maximum、Increment和SortID组合在一起。
支持的字段类型有s8、u8、s16、u16、s32、u32(均支持位大小但不支持数组长度)、b32(四字节布尔值)、f32、angle32、f64、fixstr和fixstrW(固定宽度的Shift-JIS和UTF-16字符串,数组长度必填),以及dummy8(字节或字节数组,通常为填充,需要位大小或数组长度之一,但不能同时需要)。
列出的贡献者包括EvanDeadlySins、GiveMeThePowa、katalash、Pavuk、thefifthmatt、TKGP和Vawser。
评论
0 评分人数达到10人后显示
登录后参与讨论。