【工具mod】网格组管理脚本
前言

这个脚本不会有任何效果除非有模型支持,成品样例见赛马娘 卓芙(带表情)

N网:https://www.nexusmods.com/monsterhunterrise/mods/3051

度盘:https://pan.baidu.com/s/1Sc1qcL_pl--B_5U1quCSYg?pwd=xecv

以下是给modder看的使用方法。结尾有附件,喜欢的可以给点影响力。

启用

在MonsterHunterRise\reframework\data\MeshGroupManager下新建txt文件

,填入一对大括号,保存:

改名为防具编号.json,以女性公会十字头为例:

现在脚本已经开始控制f_helm279了。

一些用了pfb的防具在游戏里的名字会受到pfb的影响,具体以EMV-Engine显示的为准,或者在pfb里把名字改对:

基础功能

现在模型获得了Group与艾露猫FaceType同步显示的功能。

先介绍一下概念,Group指的是模型提取出来后第二列数字的名称:

这个Group在卡普空的代码里称为Part,而到了纳比露(ota232)身上会多出来一个叫FaceType的东西,这三个编号是一样的,Group0 = Part0 = FaceType0。全游戏只有纳比露有FaceType,或者是@诸葛不太亮 制作的【外观mod】诗歌剧外观+迷你诗歌剧艾露猫(带表情),纳比露的Group编号从0开始,最大18。

同步显示就是说猫显示哪个FaceType装备就显示哪个Group。

另外还有两个规则:

  1. 如果自己没带有FaceType的艾露猫,装备显示Group0 + Group1。
  2. 假设艾露猫显示Group18,装备只有Group12,显示Group0 + Group1。

Group的数字要连续递增,中间不能断。

自定义配置

如果要开启一些额外功能,就需要在json文件里编写配置。随便用什么打开之前新建的json文件,记事本也行,我用的Visual Studio Code。

VoiceEvent

使用案例见赛马娘 卓芙(带表情)

这是关联语音的Group切换配置,想要开启该功能,填入:

"VoiceEvent": {

}

这是一个大项,具体的细项是基于文档https://docs.google.com/spreadsheets/d/1r2K97igdGBfjWyFoHlzHB75ECZ6SqfS209V8WWGxy18/edit#gid=514645878制作的,打不开没有关系,因为有修改,看看图就好:

具体的可选项可以在MonsterHunterRise\reframework\autorun\MeshGroupManager\MeshGroupTableList.lua里复制:

比如我要在烤肉开始时切换到Group7,那就这样子加一行:

"VoiceEvent": {

"ItemsCookingMeatStarting": 7

}

我还要在拆陷阱时切换到Group21,就加个逗号,然后再加一行:

"VoiceEvent": {

"ItemsCookingMeatStarting": 7,

"ItemsTrapDisarming": 21

}

最后看起来是这个样子:

细项注意不能重复,最后一行不能加逗号。Visual Studio Code好处在于可以帮你查错,错误都会高亮显示:

重复:

出错:

如果你不想自己整配置,可以找一个你喜欢的配置直接复制,模型里的Group数量对齐就行。

SyncPalico

使用样例见恋活 尘白禁区 安卡希雅(带表情、爆衣效果)

这是停止同步猫FaceType的功能。想要开启该功能,填入:

"SyncPalico": false

这是一个固定写法。没有SyncPalico这一项或者SyncPalico取值不为false都会继续同步。

Visibility

使用样例见恋活 尘白禁区 安卡希雅(带表情、爆衣效果)

这是让Group跟随一些目标消失或出现的功能。想要开启该功能,填入:

"Visibility": {

}

大括号里还有一些参数,先看如下配置:


"Target": "TargetMonsterHP"

这句话代表Group会随着目标怪物的血量减少而消失,增加而出现。

Target的所有取值如下:

TargetMonsterHP:目标怪物的血量

MightSeedTimer:怪力种子剩余时间

DemonPowderTimer:鬼人粉尘剩余时间

DemonDrugAlive:鬼人药、鬼人药G效果发动

GourmetFishTimer:烤鱼剩余时间

鬼人药、鬼人药G只存在发动或不发动的状态,对应Group全出现或全消失。


"ReverseBattle": true

这句话代表Group在战斗中随着目标的减少而出现,增加而消失。

这是一个固定写法。没有ReverseBattle这一项或者ReverseBattle取值不为true就是Target里的默认效果。


"ReverseLobby": true

这句话代表Group在据点中消失。

这是一个固定写法。没有ReverseLobby这一项或者ReverseLobby取值不为true就是出现。


"Rule": [

[]

]

Rule规定了参与消失出现的Group、消失出现的顺序和时机。下文会分开介绍。

Rule由内外两层方括号组成,外层可包含多个内层方括号,内层方括号填入Group,内层方括号之间、Group之间用英文逗号隔开。可以把Rule想象成一张表格。

首先是规定参与消失出现的Group,先看一个简单的Rule:

"Rule": [

[1, 2, 3]

]

假设模型里有4个Group,0,1,2,3,0没出现在Rule里,代表0不参与Visibility,也就是总是出现。

然后是消失出现的顺序,修改一下Rule:

"Rule": [

[1, 2],

[3]

]

我们把Rule看做是一个表格,它有两行两列。脚本每次执行判定时会随机挑选一行,让选中的那一行的第一列消失或出现,如果第一列已经消失或出现,则是第二列,以此类推。

那么全顺序就是只写一行:

"Rule": [

[1, 2, 3]

]

全随机就是只写一列:

"Rule": [

[1],

[2],

[3]

]

我们再回来看这张图:

现在你应该能看懂这个Rule的Group大致出现顺序了。如果你想知道这么复杂的Rule是怎么写出来的,其实它是blender插件自动生成的,那就是另外一个故事了,插件地址

当然你不必非要整这种类似渐变的效果。如果你想整复杂的Rule,那么注意Group的数量的上限是255,换成编号就是[0, 254]

最后是消失出现的时机,来看一个简单的Rule:

"Rule": [

[1, 2]

]

Group消失出现的时机是平均的。这代表Group 1在Target为50%时消失或出现,Group 2在Target为0%时消失或出现,当Target为TargetMonsterHP时则是55%、10%,差不多是捕获血线。

如果你想延后或者提前Group消失出现的时机,则需要在前或后加入永远不会用到的Group,例如:

"Rule": [

[-1, 1, 2]

]

这代表Group 1在Target为33.3%时消失或出现,Group 2在Target为0%时消失或出现,当Target为TargetMonsterHP时则是36.7%、10%。相当于延后了Group消失出现的时机。提前同理。

鸣谢

诸葛不太亮,Narathin,NSA Cloud,alphaZomega,ItsBurpee

附件
度盘
10影响力
by 神戶小鳥 更新于 2024-06-20
若有附件,打赏后可直接下载 赠人玫瑰 手留余香
默认
最新


1