发现这个属实是意外之喜,做真纪mod物理的时候发现纳塔的文件里没有clsp文件,于是就推测是不是可以仅靠chain内自定义的碰撞体实现物理碰撞,原本担心会不会是NPC限定(当然从游戏框架来讲不太可能),杏目mod的自定义物理成功后更加确定了上述推测是可行的。
鉴于站内物理教程已经一捞一大把了,所以此文只着重说明chain内自定义碰撞体的生效方式。已经学会编辑clsp文件的作者估计一眼就能明白是怎么回事,可以把这个当作另一个实现物理碰撞的方法。
做猎人装备还是建议修改clsp,因为此方法原本是用来给npc角色产生物理碰撞的
站内的其他物理教程:
MHWs ReChain碰撞flag解析以及碰撞常见问题
【教程】关于贴图易错点、物理Chain2与Clsp的简单操作
blender版本为4.3.2
这次就把原理和制作夹在一起讲了,首先,要知道chain文件内的各种组件里有哪几个参数是会影响物理碰撞生效的,修改后又会产生什么影响,我们这边先从Chain Setting说起。
Chain Setting:

重点光照我框出来的这三个
Collider Filter Info:在下拉列表选择“MH Wilds Character CFIL”即可,应该是Setting文件检测是否开启碰撞的参数。
Setting Attribute Flags:在下拉列表勾选“默认”即可,其他参数我没测试过,但能够确定要碰撞生效需要勾选“默认”。
Group Default Attribute:仅需要在下拉列表勾选“Collision Character”即可,下拉列表里的参数和下面要讲的Group Setting一样,这里面的参数很多教程已经讲过了,我这里不多做赘述
Group Setting:

同上,我们只需要关心着两个参数
Attribute Flags:

我个人喜欢使用这一套通用的设置,能够让组内的物理节点都受到chain内自定义的碰撞体和clsp文件的影响,几乎所有情况都能够使用这套参数并且达到不错的物理效果。
CLSP Flags A:
这个参数已经被研究透了,其他物理教程里都有讲这个。
经测试后我发现chain内自定义的碰撞体也会受到Flags A的影响,经典的就是"-1"代表和所有碰撞体产生碰撞和"0"代表和所有碰撞体不产生碰撞。毕竟本质上chain内自定义的碰撞体和clsp文件内的碰撞体都是一个类型,为方便讲解,先把其他教程里收集的Flags A值给贴上
身体 2 spine_0 > spine_0 2 spine_1 > spine_1 4 spine_2 > spine_2 8
Neck_0 > L_UpperArm 16 Neck_0 > R_UpperArm 32
L_UpperArm > L_Forearm 64 R_UpperArm > R_Forearm 128
L_Forearm > L_Hand 256 R_Forearm > R_Hand 512
SPHERE Spine_2 67108864 注意这里是球形 Spine_2 > Spine_2 67108864
手腕 1 L_UpperArm > L_Forearm 64 R_UpperArm > R_Forearm 128
L_Forearm > L_Hand 256 R_Forearm > R_Hand 512
L_Hand > L_MiddleF1 1024 R_Hand > R_MiddleF1 2048
头部 3 Neck_0 > Head 4096 Head > Head 8192
腿部 4 L_Thigh > L_Knee 16384 R_Thigh > R_Knee 32768
L_Shin > L_Foot 65536 R_Shin > R_Foot 131072
L_Foot > L_Toe 262144 R_Foot > R_Toe 524288
腰部 5 Hip_HJ_00 > Hip_HJ_00 1 Hip_HJ_00 > Hip_HJ_00 8388608
如果你在chain内创建的自定义碰撞体名称和上表中一致,那么它会直接受到Flags A参数的影响,但如果你创建的是卡婊压根没有使用的碰撞体,那么怎么搞这个碰撞体都不会生效,所以还是建议根据上表的名称创建自定义碰撞体。
当然你也可以当懒狗把所有Flags A设置都成“-1”,但是会出现碰撞体相互挤压的奇妙抽搐
Node Setting&Collision Setting:


调整碰撞体大小和位置的参数应该不需要我讲了,没接触过的自己随便动动参数都能理解。
重点是Node Setting和Collision Setting里的Collision Filter Flags参数,两者参数需保持一致,否则不会产生碰撞。clsp文件内的碰撞体我没测试过会不会被这个参数影响到,但能够确定的是chain内自定义的碰撞体会受到这个参数影响。
如果要使用这个方法建议先把clsp文件内的碰撞体全部无效化,因为它们可以同时存在,从而导致物理节点被挤压造成抽搐。
以上就是我目前测试出的chain内自定义的碰撞体的生效方法。因为测试样本太少(因为只用这个方法做了两个mod),所以可能有些地方讲得不对,日后只能靠mod社区补充完善了。
两个使用了此方法的mod已经放附件里了,可以解包拿来参考。