【教程】MOD的排序原理

更新时间:2023-05-13 13:33:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

MOD基础知识之排序

大家好,我是零杀。

这次教程,主要讲一下关于排序的知识。排序,分为3类。

1.esm和esp的排序 2.nmm的mod安装顺序(文件覆盖顺序) 3.MO左列表的排序(分为开启档案管理和关闭档案管理两种)

================================================================

在讲这三类排序之前,首先要讲的就是mod基础原理,也就是为什么要排序。

1.脚本的引用,继承,传递关系。

这里的关系很广泛,比如Bmod的脚本继承Amod的脚本,也就是说B是A的子脚本,那么B排在前面的话,触发脚本的时候会ctd。

2.master关系。

理论上,只有esm能做master,但是实际上esp也能。对于modder来说,esm和esp没有本质区别。如果Amod是Bmod的master,那么B必须排在A后,否则游戏都进不去,因为游戏载入内存的时候要建立esp内入口的索引表。先读取到Bmod的入口,但是这个入口引用到了没有定义的东西,游戏不知道如何做了,也就崩了。

3.入口的覆盖关系。

什么叫入口呢?这个词我是在幻冰的教程里看到的,我也不知道为什么叫入口。我只能告诉你入口是啥。用edit打开esp,随便找一个入口集合,比如NPC,里面每一个npc,例如莱迪亚,就是一个入口。入口之下会有这个npc的一些参数和设定。

举个例子,如果Amod给莱迪亚修改了默认装备(一般来说uskp之类大修mod会这样做),Bmod给莱迪亚做了美化(一些美化mod,例如sogs,静逗你要不要感谢我,每次举例子都用你的美化,吼吼),那么排序是AB的话,Amod对莱迪亚的修改不会有任何效果。这是什么意思呢?就是说,如果N个mod同时修改一个入口,那么谁排在最后,谁就会起作用。

做mod离不开CK(其实也能,做个动作mod就不用ck,但我希望大家不要挑刺,我每次写教程都要反复看几遍,就怕被挑刺....),modder对游戏内的入口进行修改,封包成esp,就做出了mod,但是呢,不同作者修改的东西可能会有覆盖。比如说,薇莉亚虽然是个随从,但是它修改的入口非常多,你给它排序的时候不能只把它当成一个随从。

========================================================================

下面开始讲前面说的三类排序,

1.esm和esp

通常来说,esm文件要排在esp之前,why?因为上古卷轴就这样设定的。but,这句话正确的说法是,内部标记是esm的文件要排在内部标记是esp文件之前。因为你会看到uskp,smpc都是esp文件,但是它们都排在esm之前了。

前面说过了,esp和esm本质没有区别。所以以后我把esm和esp统称为esp。

esp如何排序呢?原理就是上面说的三点。总结一下,mod排序规则:master文件必须存在且在上面。修改同入口的mod排序靠你自己的选择。修改不同入口的mod分为两类。

第一类,脚本没啥关系的,随便排。第二类,脚本有关系的。父系脚本的mod要排在前面。就这样。

我来让你们看看什么叫误导。

不知道你们能不能看得见...我这网络有点问题。图片就是无心整合里那个mod排序规则。

动动脑子想一想,如果一堆mod,都只是单独的美化,单独的房屋,单独的武器,本身都没有任何覆盖关系,那排序干啥?既然有覆盖关系,那么排序为什么是那样的?

我在视频里说过这个排序表很不对。这里再说一遍。第一点,esp和esm前面说了,有穿插 的情况。然后是美化排在最前。如果美化在最前,装备在后,那么IA这个mod一定在SOGS之后了。IA修改了很多npc的默认装备,它会把SOGS的很多npc入口覆盖掉,那么sogs会损失很多效果。多的例子也不举了。我相信你们的智商,知道我在说什么。

那esp如何排序呢?最正确的办法就是用edit看入口修改和脚本关系,以及master关系,手动排序,对于细节部分,可以做补丁来修改。但是,这样对于普通玩家来说太浪费时间,我都做不到给100多个esp做手动排序,太浪费时间了。那么怎么办呢?我是使用boss的,首先用boss自动排序,关注未识别的mod,对未识别的mod用我前面说的办法进行排序(一定要写在boss用户规则里,否则以后你用boss,就会把那些未识别放最后。你给boss写用户规则,要用机器的思维),这样可以省下很多时间。我为什么不用loot?第一,排序很乱。第二,loot是靠入口修改分析mod序列的,我不信任程序的识别能力。 关于如何做mod补丁,以及相关知识,去看我的视频教程,虽然讲的烂,但是你总能学到点东西。欣赏一个作品,要找它的优点,而不是对着缺点一顿喷,那样你只会浪费时间和暴露素质。

2.NMM的mod安装顺序

这个非常好理解。如果你理解了入口的覆盖关系,那么文件的覆盖关系就随便理解了。 比如说吧,Amod修改了天空材质,Bmod也修改了天空材质,那么先安装A,后安装B,B会把相同的文件给覆盖了,那么A就没有效果了。

你想想以下的情景。A是个大型mod,修改了水体材质dds,同时esp修改了水体入口,对水体的参数进行修改。Bmod只是一个水体材质dds,没有入口。安装顺序为AB,那么你的水体会很不正常。为什么?因为A的入口和其dds是配套的,Bmod的dds和原版入口是配套的,混搭之后必然不正常。当然也可能更好看了- -

说起来,MO对文件覆盖关系的处理会比nmm好很多,但是记住我这句话,新手老老实实用你的nmm,mo使用有一定难度。

3.MO的左列表

分为两类,第一是关闭档案管理。

如果关闭档案管理,那么mo的左列表就是nmm的安装顺序。如果你会前两点了,那么这个你就会了。

什么叫档案管理呢?如果关闭档案管理,bsa就是bsa,优先级就是比散文件低。而你打开档案管理之后,mo会虚拟解压所有的bsa,bsa内部文件会和散文件一起参与冲突。 举个例子吧。Amod是一个散文件mod,一个esp叫A.esp,散文件叫A.nif。Bmod是一个bsamod,一个esp叫B.esp,一个bsa叫B.bsa,内部有一个nif叫A.nif。排序AB的话。开启档案管理,最终起作用的是Bbsa下的Anif。关闭,起作用的是散文件Anif。这就是虚拟解压bsa。

老滚本身的文件优先级永远是散文件>靠后的esp对应的bsa>靠前的esp对应的bsa。本体的bsa优先级最低。

既然我已经说了档案管理的原理,你应该就明白如何处理左列表排序了。

如果开启了档案管理,一切mod文件都可以看成散文件。这个时候,保证你的左列表排序和你右列表排序相同即可。细节问题,用mo的虚拟 隐藏功能即可。把不想要的文件隐藏掉,就能让前面的散文件起作用。

========================================================================================

最后,排序的意义在哪里?你以为只是解决ctd?那就大错特错。

排序确实能解决ctd,但更大的意义在于解决覆盖关系。没有人希望自己的mod装了和白装一样。

大家游戏愉快~

本文来源:https://www.bwwdw.com/article/4ege.html

Top