因为群里大伙最近都去玩王国之泪去了,翻翻最近的派生MOD,不能说没有,只能说已经快灭绝了。因此制作此教程,进一步帮助圈友们学习制作lua形式的MOD。
这是第一篇教程——基础认知
本教程参考了很多站内的lua教程,排名不按顺序:Orca'x, 乐小乐 ,玄耀 等等。
叠甲:本人小白出身,本篇不是教别人写代码的,只是告诉怎么做MOD。不准打卡。
一切的开始前,需要准备以下的工具(蓝色字体为超链接):
- 游戏以及Nightly版的最新Reframework前置。
- BHVT:笼统的说是用于显示节点的工具。选择下面一个版本一个下载。
主版本:https://github.com/praydog/RE-BHVT-Editor
Ling大佬改进版本:https://github.com/lingsamuel/RE-BHVT-Editor
- Motion查询工具:改进自O佬贴子下的显示工具,在本帖的附件里。
- 新人制作MOD使用的lua模板(玄耀佬的模板,在这个帖子的附件里有,另外玄佬的教程也很适合新人)。
- 以及最重要的:Orca'x佬的Toolkits。(不管什么版本,我魔改过的1314版本也行)
- 还有写代码的地方,例如Visual Studio Code,里面的插件会提示你报错什么的,也很养眼。
安装方式除了前置是放游戏根目录,其他都是和正常Lua的MOD安装一样。(MOD都不知道怎么装?那先去搜怎么装MOD的教程再说)
除了工具外,你还要有基础的lua认知:lua菜鸟教程。或者自己视频网站搜lua零基础什么的。这个是必需的。到会用if条件判断,for循环就差不多能算入门(大概)。
别伸手要什么整合,如果说网址贴脸上都懒得下,我建议别学MOD了。GitHub进不去这种壁画也别说。
下载好BHVT安装后,进入游戏训练场。
直接引用玄佬的话:
“进入游戏,先把BHVT的View里的除了第一个对勾全部取消掉,不然很卡,想要追踪当前动作节点,再勾选follow active node,BHVT界面默认鼠标中键按下可以拖拽画面,左右下角可调整大小。”
Ling佬版BHVT设置:
注:BHVT和REF显示开关方式都为ins按键。
我们用Search功能搜索想要的节点:
在这里我们在Node Search输入5.(这是NodeIndex,后面会说)(如果没有弹下面的浮窗,删了重新输入就可以了)
点击第一个的Goto后,看到下面界面:(示例为斩斧的收刀翻滚节点)
【5】是NodeIndex,理解为Node(节点)的学号,它不同版本都不太一样,不同武器也不太一样,但是收刀翻滚节点很靠前,基本不受版本和武器影响,所以先拿它做教学。
esc_front_cmb是Node的名字,这里是向前翻滚的意思。
parent,children是类似族谱一样的东西,在复杂点的连续节点里头,它可以链接不同的节点,来直观的告诉你谁和谁是一伙的。一般来说parent只有一个,而children可以有好几个,如下图。
Go To:前往本节点
Run:运行本节点
右△ 5:esc_front_cmn:可以点击展开该节点的更加详细的内容:如下:
选择其中主要使用的进行解释:
Change Name:改变节点名字(实际不能改变,当做显示的名字就行)
Address:地址。不了解也用不到。
Node ID:节点的ID。理解成身份证号码,大部分的NodeID在不同版本里和不同的Node Index对应,前面我们说过Node Index可以理解学号的意思,在这里再次联系起来——一个人可以有很多个学号,但是只有一个身份证号码。
前面的Search功能里既能搜索NodeIndex(5),也可以搜索NodeID(1505041940),或者搜索Name(esc_front_cmn)来得到纳刀翻滚节点。
所以为什么要用Node Inde,是因为学号用起来方便,简洁好找。
之后看下面的可以展开的目录条子,比较常用的几个条子为下面的截图里的:
这里面前三个最常用,因此重点讲解。
Actions[]:包括动作,效果等相关的东西。可以理解成小组。
在上图里我们看到有10个节点在这里,小组序号由0开始,9结束,每个小组序号对应一个Action,每个Action都在各司其职,共同让这个节点具备了翻滚的动画,闪避无敌时间,消耗耐力,触发闪避判断等功能。
Erase:删除
Null和Dupe通常不用。
ON:这个Action的开关,关闭就不生效,开启就生效。
我们以这个Action为例展开看看它里面还有什么。(要展开两次)它是控制动作动画的。
可以看到下面有一些东西,我们只需要看TDB Field,这里面的东西才是我们需要的。继续展开TDB Field:
得到下面的这些属性可以修改。例如——_weaponBankID,_weaponMotID这两个。如果你拆过其他MOD,或许看到过action_id、其实他指得就是_weaponMotion.改了这个MotID,这个动作动画就会变成其他动作的动画。
这个Action实际上还有很多属性可以查看修改。我们点击最下方的via.motion.Fsm2ActionPlayerMotion:
点击这里的TDB Methods。你可以得到一大串东西——不要怕,暂时你只需要知道它这里有这么些东西。
如果你用得是Ling佬的版本,它内置了对这里面一些Method的调用:
你可以很快的修改MotionID,BankID(人物纳刀通常其为0或者50。人物持刀通常为100或者其它,BankID对应的为玩家的不同情况),Speed这些属性。
再以下图Action为例进行分析:这是控制翻滚耐力的。
_staminaValue是耐力消耗值,我们在这里可以直接改动它,比如改成0,这样就不会消耗耐力。但是这只是一次修改,下次重启游戏后它就会回归原样,这也是我们做MOD的原因——我们需要在每次运行游戏后都进行一次修改。
_frame是启动帧数,意思是耐力消耗什么时候进行,这里是0,也就是说在翻滚开始的时候就扣除耐力了。
还有一个_FrameCheckType不知道干什么的,建议不管。
这里的via.什么什么的同样可以点,不过在这个ACTION里没有用得多的Method。
这两个为相互对应的关系,上面的State有几个,下面condition就有几个。他们的对应关系也是如此,绿色的字体提示它与谁对应。State小组序号0对应condition小组序号0,State里面的是派生的节点(你把State直接替换为Node就方便理解了),condition是派生的条件。
小组序号为1的组合 112.XAR与[33]snow.palyer.fasm.PlayerFsm2Command对应。(这里的33是ConditionId,也是ConditionIndex,在condition里面它俩是一样的东西。可以理解为座位的序号,也就是在这个班级里,它这把椅子的学号是33,上面坐着112节点。)
112这里为为拔刀攻击的NodeIndex,33为左键的ConditionID/Index。两者组合在一起。你获得了翻滚后按左键可以派生拔刀攻击的能力。
点开翻滚的Transition events[]得到下图:
通常我们不怎么用它,用得最多的是控制转向的相关event。也就是下图里的第一个Event。(它的30为EventID/Index,理解为座位配件?。转向event相当于给座位加了个轮子)
展开它可以修改它的转向限制角度(_LimitAngle)和转向方式(_AngleSetType)。
同时我们也可以发现很多派生对并没有Event,我们为它们增加转向Event就可以增加派生转向了。
- 本篇主要阐述准备哪些工作,并且对BHVT里大部分的东西进行了简单的介绍,目的为新人建立通俗的观念,并不指望新人可以直接运用。
- 本篇内容建议反复翻看,至少留有正确印象,不要连NodeIndex和NodeID都分不清。
- 本篇尚有一篇续篇。下一篇为使用Toolkits正式制作MOD。如果你对本篇足够熟悉,下一篇内容上手的时间不会超过10分钟,并且之后你就可以制作类似《红龙之箭》级别的MOD了。
- 如果本篇以及第二篇达不到预期打赏,未来第三篇之后的教程内容大概会死掉。
第二篇教程将在这几天内出。

