制作派生和数值类MOD新手向教程
获取解包后的PAK游戏文件

分章节介绍,带你从零开始制作自己的曙光MOD

不论你是PC版的MHR还是NS版,都无法直接对游戏进行文件修改,卡表将所有文件打包,要想对其中的某个文件进行修改,必须将游戏进行解包

PC版本的好像不需要解包,安装目录下可以直接找到PAK文件,因为我没有游戏暂且不表。另外因为我本身只有NS版,教程中的图片和测试数据包括我自己修改的LOG都是基于NS版13.0.0,本人菜鸟太刀侠其他武器一窍不通,为避免误导,所展示案例均以太刀为例,PC版或其他武器略有不同但是道理相通。

NS版游戏,需要将XCI包解包,这里可以参考下列教程使用相应工具解包游戏。

dtlnor大佬发布在B站的龙神模拟器解包教程https://www.bilibili.com/read/cv11670696

某个mh萌新大佬发布在踩蘑菇的龙神模拟器解包教程https://www.caimogu.cc/post/62018.html

石鹏亮大佬的手动解包教程https://shipengliang.com/games/switch-%e8%a7%a3%e5%8c%85-%e5%9b%be%e6%96%87%e6%95%99%e7%a8%8b.html

推荐使用龙神模拟器进行解包,简单很多对新手很友好,龙神模拟器需要简单配置,下载和配置百度一下就有很多,这里不再说。

配置好龙神模拟器并将XCI游戏安装到模拟器里后,对着游戏右键选单,在Extract Data下面选RomFS,开始解包游戏。解包后可以得到下图中的文件,重点在于PAK文件

NS版解包后能得到11个pak文件

re_chunk_000.pak对应崛起版本

001.pak对应曙光10.0.0版本

.........

010.pak对应曙光13.0.0版本

PAK补丁的简单运作原理及解包PAK的方法

一、PAK补丁的运作原理以及NS版MOD安装需要注意的事项

Steam版崛起曙光将每次更新的内容封入re_chunk_000.pak文件中(现在有001pak了),每次更新这个文件都会重写,因为只有一个PAK,因此PC玩家只要解包re_chunk_000.pak就可以得到当前最新版本的所有文件。

NS版怪猎崛起自发布曙光后,每次更新都将更新的游戏内容单独打包一个新的PAK,比如本体是000,曙光大型DL,10.0.0版是001,10.0.1版是002,10.0.2版是003.pak

PAK序号顺序增加1,则新PAK会被认为是游戏的更新补丁。因此所有的MOD在制作完成后都要打包成PAK并且PAK序号要比官方补丁序号大1

比如PC因为只有000和001,因此PC版第一个MOD的序号为2,第二个MOD为3

NS版13.0.0版官方补丁的序号为10,因此第一个MOD的序号为11,第二个为12以此类推

假设下版本更新后,官方补丁的序号应该是11,那么第一个MOD的序号应该是12,第二个为13,以此类推

二、使用工具解包PAK文件及注意事项

使用以下链接的Unpacker工具,可以解包PAK文件

https://www.caimogu.cc/post/212503.html

由于NS版本的特殊更新机制,要想得到最新最全的游戏文件,需要解包所有PAK,并用新补丁的解包文件覆盖老版本。

关于这样做的原因,举个例子,众所周知,崛起本体中是没有刚气刃斩和神威居合这两个动作的,所以如果我们直接解包最老的010.pak无法得到上述两个动作的相关数据;曙光发布后大幅削弱了居登太刀,这个修改大概是在10.0.0至10.0.3版本之间发生的,经历过至少两次修改,之后好像再没有对动作值进行调整,因此如果我们解包最新的010.pak,因为13.0.0版没有针对太刀动作值的修改,因此这个补丁里面不会有相关文件。

因此如果为了找文件方便,我们最好得到最新最全的所有文件,将所有PAK解包后,用010的解包文件覆盖009,再覆盖008····直至覆盖到本体000,至此所有游戏文件准备完毕。

派生类MOD制作,FSM文件修改的准备工作

要制作招式派生MOD则必定涉及到motfsm文件,游戏追加后缀为.43

MOTFSM文件简述:

这个文件里面规定了动作的属性效果和招式派生相关内容,比如是否带有无敌判定,虫技生成铁虫丝,触发动作的按键或特殊条件,虫技的冷却时间,招式派生顺序和规则等

首先引用几个大佬的教程,强烈建议配合食用,效果更佳。

云雾敛的派生修改教学https://www.caimogu.cc/post/76859.html

这篇教程里介绍了修改见切判定的案例

玄耀的FSM文件修改心得https://www.caimogu.cc/post/239601.html

这篇教程里介绍了派生修改的相关案例,但是说的比较模糊,后续我将细致展开一个新的案例,以便于新人上手。

所需工具:

010 Editor 16进制编辑器 网上有中文版,可以自行搜索下载

Re-RSZ-13模板文件 对FSM文件中的大量数据进行了变量定义,010Editor通过加载这个模板,在编辑FSM文件时,我们可以明白其中大量数据的定义,下载地址:https://github.com/mhvuze/MonsterHunterRiseModding/wiki/Tool-Collection

根据上一章教程解包PAK得到游戏的解包数据以后,先找到我们需要的派生相关FSM文件。

派生相关FSM文件的路径:

PC版\natives\STM\player\Fsm

NS版\natives\NSW\player\Fsm

打开上述路径,可以看每个文件夹对应游戏中的一件武器。如Bow对应弓箭,ChargeAxe盾斧,Greatsword大剑,Dualblades双刀,Gunlance铳枪,Lance长枪,lightbowgun轻弩,heavybowgun重弩,longsword太刀,shortsword片手,slashaxe斩斧,horn狩猎笛等。

打开对应文件夹后,可以看到所需文件,例如打开longsword可以看到LongSword.motfsm2.43

准备工作:下载好010Editor并安装,下载好最新的Re-RSZ-13模板文件,推荐解压到桌面,路径上不可有中文!路径上不可有中文!路径上不可有中文!

使用010Editor打开上图中的LongSword.motfsm2.43如下图所示

此时还没有加载模板,其中的所有数据均以16进制代码显示,暂时很难对其进行修改。在软件菜单栏找到“模板-打开模板”

根据你解压模板的路径,找到RE_RSZ.bt,并打开,如下图

之后按F5打开运行模板界面,选择RE_RSZ,开始加载模板,电脑配置不高的话,加载三五分钟很正常

这个条要读两遍

内容一栏如上图,右下角读条消失,加载完毕。

至此,进行FSM文件修改的前期准备工作已完成。

派生修改教程-案例:纳刀3常驻

再次强烈建议仔细阅读云雾敛大佬的教程,搞明白FSM文件中的各个字段的含义。

前期准备工作:获悉目标武器各个动作对应的数据子集,也就是Node。

方法1:通过PC版本运行游戏实时查看游戏各个动作的地址,来找到对应Node。

方法2:参考NanahiRie大佬的崛起FSM动作表,本表经常更新,但是有时还是会有些错误在里面且并不包含所有动作的node,但是常用的动作都有包含。非常具有参考价值,但是因为有些错误所以通常需要我们自己进行判断。https://www.caimogu.cc/post/228816.html

派生修改包括派生的改变、新增、删除,大致上原理相通。

以太刀纳刀3常驻为例。

思路:通过查看FSM动作表,我们得知太刀纳刀相关的动作至少有8个。其中atk151[298]特殊纳刀,我们暂且叫它主动作,它会直接或间接派生后面7个动作,我们暂且叫它衍生招式,其中我们需要重点关注特殊纳刀无纳3 atk_151_A [4070]和特殊纳刀(纳3) atk_156_A [4073]

正常情况下不出技能,我们的纳刀应该是无纳3的,它对应的node也就是atk_151_A [4070],出技能的状态下,对应的应该是atk_156_A [4073],那么只要将atk_151_A [4070](无纳3)换成atk_156_A [4073](纳3),即可不出技能也能快速纳刀。

举一反三:

众所周知太刀的正常无双气刃斩是:气刃1—气刃2—一文字—气刃无双斩,我们可以将气刃2的内容直接换成气刃无双斩,实现2招打完气刃体操。

正常空中气刃斩打完落地还需要打气刃3或一文字才能大回旋或无双斩,也可以用这个思路修改空中气刃斩的后续派生,实现操龙后落地快速开刃,很多时候可以多打一个登龙。

实操步骤:

每个版本衍生招式的动作编号都会变化,但是通常主动作的编号不会变。因为通常衍生动作都由主动作派生而来,他们依次相关联。因此我们从主动作:特殊纳刀atk151 [298]着手,依次寻找我们需要的NODE。

1、打开文件加载模板后,点击struct Nodes,展开所有子集,通过查看FSM表我们知道特殊纳刀对应子集atk151 [298],其中151对应这个动作的编号,298对应151这个动作的子集编号,软件左侧的名称一栏中,我们可以看到每个NODE都有一个编号,我们快速翻到NODE298,并将其展开,然后再展开其下的Transitions*(表示该子集的关联项),如下图。

我们可以看到,NODE298,atk151关联了两个NODE,分别是atk.atk151.atk_151_A [4114]和atk.atk151.atk_156_A [4117]这两个动作,其子集编号与FSM表中不一致,是由于游戏版本不同导致的,不影响。

我们现在得到了以下信息:

atk.atk151.atk_151_A [4114] 表示特殊纳刀可以关联至“特殊纳刀——没有纳刀3的慢速纳刀这个动作”

atk.atk151.atk_156_A [4117]表示特殊纳刀可以关联至“特殊纳刀——有纳刀3的快速纳刀这个动作”

2、按照上文所述思路,将atk.atk151.atk_151_A [4114]换成atk.atk151.atk_156_A [4117],首先我们需要定位 快速纳刀 的4117NODE。

点击struct BHVTHash ID,在16进制工作区可以看到这个数据对应的16进制代码(有大佬说这个是动作的Hash值)为a6e3877b,右键点击它,选择复制,如下图。

3、OK我们现在得到了4116快速纳刀的Hash值,现在回到步骤1所示位置,Node (C,G,T) [298]/Transitions/,点击Transition (A,G,S) [0]右侧atk.atk151.atk_151_A [4114],在16进制工作区可以看到目前4114慢速纳刀的hash值为00c7a5d3,右键点击它,选择粘贴,如下图。

可以看到修改后的数据显示红色。并且已经成功替换HASH值了。

按F5刷新模板,然后重新定位到这里。可以看到Transition (A,G,S) [0]已经从atk.atk151.atk_151_A [4114]变成atk.atk151.atk_156_A [4117]了, ,按照我们上文提到的解读思路,此时ATK151无法关联到ATK151A的慢速收刀,只能关联到156A的快速收刀,由此实现纳刀3常驻的修改操作完成。保存文件后准备封包。

关于封包,后续章节再讲。

派生修改教程-案例:气刃1之后直接大回旋

本章带领大家实操上一章中提到气刃1之后直接大回旋的思路的具体实现办法,以展示States派生数据修改的方法。

思路解析:

玩过太刀的都知道气刃斩的正常派生为:气刃斩 I——气刃斩 II——气刃斩 III——气刃大迴旋斩

假设我们把气刃斩 II换成气刃大迴旋斩,那么派生就变成了:气刃斩 I——气刃大迴旋斩——气刃斩 III——气刃大迴旋斩

但是由于大回旋之后会收刀,或者手动派生特殊纳刀、翻滚等其他动作,实际上大回旋就会直接结束气刃派生路线,因此,实际上最终的派生效果应该是:气刃斩 I——气刃大迴旋斩

通过这个派生修改,使得太刀的气刃体操开刃速度极快并且更加灵活。

实操过程:

1、通过查阅FSM动作表得知以下信息:

气刃斩 I 主动作atk106[271]衍生动作3829,

气刃斩II 主动作atk107[272]衍生动作3836,

气刃斩 III 主动作atk108[273]衍生动作3847,

气刃大迴旋斩 主动作atk109[274]衍生动作3849,

上一章我们已经说过,因为版本迭代的原因,衍生动作的编号可能会发生变化,但是我们依然可以通过主动作编号以及关联衍生找到他们

首先,定位气刃斩 I 主动作atk106[271],看看能发现什么。

我们可以看到atk106[271]并不包含派生相关设定数据(如果搞不明白什么是动作属性、派生数据、关联数据、判定数据,建议返回第一章,点开云雾敛大佬的教程进行复习),但是包含关联数据,我们可以在关联的分支里看到它关联了atk.atk_106.atk_106 [3873]这个动作。

这里要解释一下,atk106[271]并不是气刃斩1这个动作本身,它实际上是气刃斩1这个动作所有相关数据的数据集合,既然它是集合,那么这个动作本身自然也与之相关联,也就是atk.atk_106.atk_106 [3873]了。实际上在FSM文件中,目前我所见到的几乎所有动作子集,都以“atk.atk_序号.atk_[序号]”这个规则命名。

点击struct BHVTHash mStartState,展开atk.atk_106.atk_106 [3873]子集的数据,可以看到有一个包含states的Node:Node (C,A,G,S,T) 


在这个Node中可以看到有一个名为States的集合atk.atk151 [298] ~ atk.atk_wait [232],意思是这个父集atk106[271可以派生的范围是atk.atk151 [298] ~ atk.atk_wait [232],点开查看内容如下图,其中包括我们所需修改的气刃2 State (C,A,G,T) [9] atk.atk_107 [272] 他对应的16进制代码EEB5038D 。

我们此时可以查看一下Node (C,A,G,T) [272](atk.atk_107 [272])气刃斩2,可以看到它也是EEB5038D,那么现在可以确定在上面 State (C,A,G,T) [9] atk.atk_107 [272]这个派生,里面的数据是直接引用了整个Node (C,A,G,T) [272](atk.atk_107 [272])的数据,把它替换成Node (C,A,G,T) [274]atk.atk_109 [274]气刃大回旋即可。

上一章我们讲过,Hash的替换可以实现派生修改的效果。那么现在我们找到了气刃斩1派生气刃斩2的节点。在这个节点上把气刃斩2换成气刃大回旋,即可实现我们的派生修改目标。

2、找到Node (C,A,G,T) [274]atk.atk_109 [274]气刃大回旋

得到气刃大回旋的HASH为231B9B51,将16进制代码复制。

3、回到第一步中atk106[271]下面的States集合中,找到State (C,A,G,T) [9],然后粘贴16进制代码。

刷新模板。再回到这个位置查看是否生效。

保存,准备封包即可。

下一章看情况讲一下最近很多人关心的自动居合派生修改过程。

派生新增教程-给特殊纳刀增加判定节以实现自动居合

偷个懒,其实我之前已经po出了自动居合的修改日志,里面详述了修改过程。这里在单独发一遍

这里补充一下修改思路:给特殊纳刀增加动作“seethrouthattack”增加派生“居合成功”,然后给这个派生在动作属性里增加判定条件baseseethrouth,他代表无敌时间,并且在持续时间内被攻击即可成功判定,然后就会触发居合成功这个派生。

注意事项:

1、修改了action或者state的count数之后,必须刷新一下模板,才能让这个修改生效,才能显示空白acition或者state位置进行后续的添加工作。因为要频繁刷新模板,太费时间了··

2、新State除了要copy原state的hash之外,原state下面的transition和condition的值也要copy过去到新state下面。

3、seethroughattack和baseseethrough可以从见切(atk147)里面去找。#Log:V14.0.0版本seethroughattack的Hash是45 16 4A 26,居合成功atk.atk151.atk_155.success [4155]的Hash依然是9F D2 7B 77

虫技CD修改教程-实现虫技不耗虫或减CD

基础操作之前的章节已经说了很多了,之后不再详述基础操作。

本章以无限登龙举例,登龙的实际派生是飞翔踢——气刃兜割,查看FSM动作表

直接去找atk.atk_128 [286]

图中的Float_recastTime就是技能冷却时间。60帧=1秒,改小即可实现减CD,改成0或者1就可以实现无冷却,也就是无限登龙。

省流:Node (C,A,G,T) [286]-Transitions-Transition* (S) -struct BHVTHash mStartState-Node* (S) -States-State (A,G,S) [1]-struct BHVTHash mTransitions-Node (A,G,S) -Actions-Action[2]-struct BHVTHash Action-snow.player.fsm.PlayerFsm2ActionHunterWire[8686]

Float _recastTime[3]原值1920表示原本飞翔踢的冷却时间是32秒,每60帧=1秒,改成自己想要的值即可。

其他武器的其他技能同理。

动作值修改教程

动作值相关文件的相对路径是:natives\NSW\player\hit

使用010打开,加载模板

加载完成后,点击snow.hit.userdata.PlHitAttackRSData Data RawData

之后就比较简单了。找到想要修改的动作,点开。比如樱花的第一击

第14项Int _BaseDamage[14] 就是动作值。可以看到默认是10,只要你想你可以把它改成20,30,40,80,随意喜欢,改完记得保存。

从hit文件夹中的rcol.20文件中可以修改大多数基础招式的动作值。

那么可能有人需要修改一些技能的动作值。这个大家可以去player/shell文件夹里瞅瞅。

动作值这一块,修改操作比较简单,但是需要修改者本身对游戏有较深的理解,才能了解各个动作之间的联系。因为好多动作的名称都很相似,比较容易弄错呢。

MOD封包

MOD制作完毕以后,需要按照你这个文件原本的路径,创建文件夹,举例来说。

假如我们修改了ShortSwordLower.motfsm2.43这个片手的FSM,这个FSM原本的相对路径是natives\NSW\player\Fsm\ShortSword\ShortSwordLower.motfsm2.43,我们也需要按照这个路径给修改好的文件套文件夹。

套好以后,随便建一个文件夹,名字随意英文数字,比如001,然后把刚才套好的natives文件夹丢进去。此时的文件路径应该是001\natives\NSW\player\Fsm\ShortSword\ShortSwordLower.motfsm2.43

把001文件夹丢进解包工具文件夹的根目录。

把001文件夹丢到build-pak-patch这个批处理上

完成后关闭窗口,可以看到打包工具的根目录出现了一个re_chunk_00x.pak.patch_00y.pak文件

把x改成0把y改成你对应的PAk编号,具体参考第一章。

封包完成

by lolimagic 更新于 2023-02-22
若有附件,打赏后可直接下载 赠人玫瑰 手留余香
默认
最新


1