在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。
另外还有两个规则:
- 如果自己没带有FaceType的艾露猫,装备显示Group0 + Group1。
- 假设艾露猫显示Group18,装备只有Group12,显示Group0 + Group1。
Group的数字要连续递增,中间不能断。
如果要开启一些额外功能,就需要在json文件里编写配置。随便用什么打开之前新建的json文件,记事本也行,我用的Visual Studio Code。
使用案例见赛马娘 卓芙(带表情)
这是关联语音的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数量对齐就行。
使用样例见恋活 尘白禁区 安卡希雅(带表情、爆衣效果)
这是停止同步猫FaceType的功能。想要开启该功能,填入:
"SyncPalico": false
这是一个固定写法。没有SyncPalico这一项或者SyncPalico取值不为false都会继续同步。
使用样例见恋活 尘白禁区 安卡希雅(带表情、爆衣效果)
这是让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