有任何上古卷轴的问题,请直接到MOD社区发帖求助

MOD冲突介绍与解决办法

经常会遇到别人提问:XXX 与 YYY 是否兼容? XXX 是否可与 YYY 一起使用?
为了更好地说明mod兼容性的问题,避免此类问题再不断出现,这边特意写了这边帖子,希望能解决大部分人的问题,
此部分大部分内容来源于LAME作者bg2408的 Compatibility and you,同时加上了少量个人经验与一些例子(其实原帖写得很详细了)。

“唯一性”原则

是的,“唯一”。因为一个入口仅能由一个插件来编辑。
什么是“入口”?一个NPC是一个入口,一套铠甲是一个入口,一个容器是一个入口,一个种族是一个入口,你在游戏中看得到的物品都是一个入口。
现在开始考虑排序的问题:当许多插件修改了同一个入口,排序最后获得入口的所有权。
举个例子:如下图
唯一性原则
Oscuro’s_Oblivion_Overhaul.esp编辑DroNahrah的Health为180
Sensual Walks.esp编辑DroNahrah的动作为0FemaleVariableWalk_Soldier.kf
tes4-CHS-main.esp编辑DroNahrah的名字为卓娜拉
现在按下面的顺序排序

Oblivion.esm
Oscuro's_Oblivion_Overhaul.esm
…
Oscuro's_Oblivion_Overhaul.esp
…
Sensual Walks.esp
…
tes4-CHS-main.esp

现在根据“当许多插件修改了同一个入口,排序最后获得入口的所有权。”请猜测游戏内DroNahrah的属性,她的Health是多少?她有没有猫步?她的名字为?

Show the Content

游戏中,DroNahrah 的Health为166,无猫步,名字为卓娜拉。

你猜对了吗?
这便是“唯一性”:DroNahrah是一个入口,现在有三个插件正在编辑此入口,但游戏中只有排序最后的插件(即tes4-CHS-main.esp)才有入口的所有权,所以从tes4-CHS-main.esp我们知道DroNahrah只是变化了名字,因为排序最后的tes4-CHS-main.esp只对她做了这么一件事。现在该有人明白为什么Sensual Walks与内核汉化一起使用没法同时实现汉化又实现猫步了吧?

不过,关于“唯一性”,存在一个特例,场景(Cells)支持多个插件同时编辑。举个例子:Clocks of Cyrodiil在科洛尔添加了一个时钟,Cats and Rats则添加了一些猫的刷新点,现在会出现什么情况?

Show the Content

时钟与猫都会出现!因为两个插件都产生了效果

冲突的类型

覆盖

最常见的冲突类型。也是“唯一性”原则的最直接体现。

以Spell Tomes与OOO为例。
Spell Tomes 与 OOO 冲突
从上图我们看出两者都修改了 Leveled List,其中 Spell Tomes 添加了 LL0DLCSpellTomes1Novice100 ,而 OOO 则添加了 ScrollDrainHealth1Kill “Kill (weak)” 。

如果你把 Spell Tomes 放在 OOO 后面,则OOO部分功能将失效,因为被覆盖了;
如果你把 OOO 放在 Spell Tomes 后面,则游戏中你便不能看到魔法卷轴(Spell Tomes),因为他们不会再出现在 leveled list 中。
所以,任何物品都是一个入口,甚至包括leveled list。

这类冲突通常很容易解决:两个mod是否修改了同一样东西?如果没有的话,那便不存在冲突。就是有的话,通常也不是大问题。

再举个例子:你安装 Blood&Mud 和 Robert’s Male Body 。两个插件都修改了种族,如果你把 Robert身形 放后面,你将无法使用 Blood&Mud 添加的新发型,除了这个问题,游戏中你不会再看到什么问题。所以,只要要紧的地方没有被覆盖,这类冲突都很好解决。

但如果我要把这类冲突给解决掉,我该怎么办了?

你可以有两种解决方案,一个简单的,还有一个复杂的。

先说简单的,也就是使用 Wrye Bash 的Rebuild Patch 。Wrye Bash 是一个很强大的工具,它支持把所有的修改整合进 Bashed Patch 。以上面的OOO、猫步与内核汉化的冲突为例,如果你使用 Wrye Bash 的话,在最后 Bashed Patch 内便能同时实现 Health为180,又猫步又汉化。或者你想要 WarCry 的NPC等级与全美的NPC美化?没有 Wrye Bash 两者之间会相互冲突,但有了 Wrye Bash 之后,两种共存便没有任何问题。猫步与全美共存?Wrye Bash 可以实现!OOO 与 Spell Tomes 同时实现?Wrye Bash 也可以……是的,这边我想说的便是 Wrye Bas h能解决大部分的冲突问题,甚至包括独眼问题。所以如果你想要降低冲突的话,你绝对不可以忘了 Wrye Bash。

为什么Wrye Bash能解决这么多冲突呢?Rebuild Patch 的作用便是整合其他mod对某个入口的编辑到 Bashed Patch 内,然后把 Bashed Patch 放在列表最后,这样对该入口的修改便是 Bashed Patch,而 Wrye Bash 又把其他mod对入口的编辑整合了,所以 Bashed Patch 便实现了其他mod对入口的全部编辑。

从上面我们可以看出,Wrye Bash 只能整合对多个入口的编辑,而不是真正意义上的整合,真正的整合应该靠 Tes4Gecko。这便是解决方案中比较复杂的一个。以 Spell Tomes 与 OOO为 例,使用 Wrye Bash,解决冲突后你剩下三个插件(Spell Tomes、OOO、Bashed Patch),而使用 Tes4Gecko后,你只需要你整合的那一个插件。看起来是不是很诱人?虽然使用 Tes4Gecko 的整合功能能够解决冲突,但是你需要一定的mod基础,简单地说,整合后的mod有很大的几率存在问题,这时候需要靠你的mod经验来解决。而这已经不是普通玩家的水平,而是介于普通玩家与mod制作者之间的水平了。而且胡乱的整合mod,可能会导致声音失效,脚本失效。

其实还有另外一个方法:自己动手解决。你可以使用 CS/CK 或者 TES4Edit/TES5Edit 打开两个插件编辑。不过这种情况较少人会这么做:一来经验不足怕出错;二来工作量可能很大,比如内核汉化与猫步的冲突,Wrye Bash 只需要几秒就能解决,而手动修改的话,每个NPC都要编辑,然而游戏内有几个NPC?

相互影响

该死的冲突,这种冲突如果没到游戏内你一般是不会发现的,而且即使进了游戏没有认真观察你也看不出来。

比如说你同时使用 WarCry 与 Francesco’s ,两者都修改了相同的 Leveled List,当然这个你可以通过 Wrye Bash 解决。但现在另一个问题出现了:WarCry 添加了哥布林,Francesco’s 也添加了哥布林,然后这两种来自于不同mod的哥布林便相互打起来了……

这便是“相互影响”:两个mod在游戏中添加了不同的东西,然后这些东西在游戏中又相互影响。幸运的是,这类问题比较少见,不过一旦遇到就很难处理就是了。除了手动自己制作补丁,否则没有其他的解决方案,比如上面提到的 WarCry 与 Francesco’s 的冲突,你必须使用FCOM来实现兼容。

另一个关于相互影响冲突的例子:WarCry 给NPC统一的静态的等级,OOO 给于较小的等级,而 Fran’s 则不限制他们的等级。三个mod一起使用,便会导致来自每个插件的NPC都无法与世界很好的融合。当然,FCOM又是你的选择,因为FCOM便是为了让几个兼容,但这不是这边的重点,我们主要要讲的是冲突,而不是给FCOM做广告。

平时如何找出这样的冲突?刚才说过了,这类冲突是很少见的,所以你不需要太担心。但还是存在查找冲突的方法的。只要你认真思考“它们是不是以不同的方式处理相同的事物”?你便能很快地找出冲突。个人经验:当mod修改了 AIPackage、Faction 你便要注意了。

资源的相互冲突

真正让人痛苦的事。这边我们遇到真正的冲突,而且是无法解决的。这便是“资源的相互冲突”。
比如你不能同时在一个性别上使用两种身体材质;
你不能在同一种族上使用两个不相同的眼睛模型而不出现独眼现象。
通常这类冲突可以在游戏中从视觉上看出来,就像扭曲的身体材质、独眼或者其他类似的问题。
除了多选一,否则你无法解决这类冲突。通常的,这类冲突出现在身形模组与眼睛模型上。
PS:显然的,mod制作者很强大,他们只做了SetBody实现多种身形的选择,制作了XEORC实现MBP与XEO的兼容。

如何找出并解决冲突

Wrye Bash

最重要的工具。如果你的mod数超过25个此工具也能当作是必备工具了。Wrye Bash 内置的 rebuild patch 是解决冲突的简单工具,它除了能解决大部分常见的冲突,如Leveled List冲突、独眼问题,还能设置无限负重、无限戒指,甚至能解决一些常见的bug,如UOP吸血鬼修复以及Nvidia黑屏修复。除了Mod安装与解决冲突,Wrye Bash还能实现一些存档修复/脸型转换的功能。说句直白的,就算你现在不使用Wrye Bash,很快的,当你遇到各式各样的问题后你便会选择使用Wrye Bash的。

关于 Wrye Bash 使用 rebuild patch 解决冲突的教程,可以参考 Wrye Bash 教程第十堂——Rebuild PatchWrye Bash 教程第十堂——Rebuild Patch (2)

xEdit

如果说Wrye Bash是mod玩家最实用的工具,那么 TES4Edit/TES5Edit 可以说是mod制作者最使用的工具,它能够快速的显示mod的所有信息,以及编辑mod,同时还避免官方编辑器 CS/CK 本身存在的关于Dirty Edit的bug。

TES4Edit/TES5Edit 主要用来查看mod冲突,还在使用OBMM的冲突检测工具的玩家应该改使用此工具,因为 TES4Edit/TES5Edit 能更实际地表现冲突:你只需要在TES4Edit/TES5Edit打开需要检查冲突的两个mod,然后一个个查看,便能很快的找到冲突。TES4Edit/TES5Edit还使用不同的颜色表示冲突的类型,比如底色为绿,表示该数据完全相同,字体颜色为绿,表示小冲突,字体颜色为红则表示大冲突。
TES4Edit 查看冲突
PS:TES4Edit/TES5Edit的部分新手可以不掌握。不过,TES4Edit/TES5Edit刚使用的话确实会觉得很难,但实际上当你使用次数多了,也就熟练了,所以这边附上使用TES4Edit/TES5Edit清理mod的教程,也是建议掌握的。

icedream

About icedream

其实我知道的东西很少,只是翻译了一些东西,悲催的是翻译过后很快就忘了。

, ,

6 Responses to MOD冲突介绍与解决办法

  1. vivi 2013 年 6 月 11 日 at 下午 10:12 #

    多谢,想玩得有趣儿,冲突避免不了啦。

  2. @ice 2013 年 10 月 21 日 at 下午 5:03 #

    冰大,BOSS提示的这种问题可以自己清理解决吗
    警告: This file contains 1 deleted NavMesh record(s) that TES5Edit cannot repair automatically and it may cause problems with your game. NavMesh deletions should be reported to the mod author. A guide to repairing NavMesh deletions with TES5Edit is located here.

    • icedream 2013 年 10 月 27 日 at 下午 12:15 #

      可以。

      • @ice 2013 年 10 月 27 日 at 下午 11:28 #

        也像ITM和UDR的清理步骤一样吗??还是需要什么特殊的步骤?上面这句 TES5Edit cannot repair automatically 不是说不能自动清理吗,辛苦大大回复了

        • @ice 2013 年 10 月 29 日 at 下午 10:44 #

          也像ITM和UDR的清理步骤一样吗??还是需要什么特殊的步骤?上面这句 TES5Edit cannot repair automatically 不是说不能自动清理吗

  3. (>_ 2013 年 11 月 11 日 at 下午 7:25 #

    妥妥的所有mod相关文章都撸一边。。