这两天帮人改了几个雅的mod,正好最近做雅的人蛮多,抓紧写了个教程分享一下方法。
目前看到的雅mod的跨IB渲染有两种改法(ref so0和copy vb0),这里就只介绍copy vb0的方法,改起来更简单。
首先第一步,找到雅的身体IB部分
因为雅的身体部分原模型没有肤色,所以mod的肤色会渲染异常,就需要把肤色部分的渲染移动到四肢的IB部分去绘制。
目前1.4版本,雅的身体IB的hash值为981c1a1e
在此IB的标题[TextureOverrideXXX]上方和下方分别添加一行代码:
[ResourceBodyVB]
ResourceBodyVB = copy vb0
这里添加的第二行代码我选择添加在了match_first_index行的下方,经测试只要添加在此IB的标题下都可以。
然后第二步,来到雅的四肢IB部分
目前1.4版本,雅的四肢IB的hash值为d8003df3
在此部分的末尾添加下面几行代码:
在添加之前,我先解释一下这几行代码来自哪里。ib行来自身体部分的ib行,vb0行来自我们第一步中添加的代码,vb1行来自身体部分的Texcoord,最后的drawindex也是来自身体IB部分。
因为这几行代码来自原有代码,所以不提供模板,请根据上面的说明找到对应的几行代码后复制粘贴到指定位置。
最后,回到雅的身体IB部分,在drawindex行前添加 英文分号 注释掉此行:
最后再说明一下关于drawindex的问题:
如果你的身体部分做了拆分,有很多个drawindex,那么只改包含素体(皮肤)部分的drawindex就可以,一般就是身体IB部分的第一个drawindex。
艾莲的跨IB渲染修改方法和星见雅相似,只是需要增加一个cb1来修复HairIB的模型偏移问题。
第一步,来到艾莲的Hair部分
添加下面几行代码:
[ResourceEllenHairVB]
[ResourceCaputreCB1]
ResourceEllenHairVB = copy vb0
ResourceCaputreCB1 = copy vs-cb1 unless_null
和星见雅相比,多了两行cb1相关的代码。
第二步,来到艾莲的Body部分
添加下面红框圈出的代码:
和星见雅相比,也是多出几行cb1相关的代码。
最后同样回到Hair部分,注释掉drawindex即可:
最后说一下vs-cb的问题,一旦使用了cb资源,会导致使用了跨IB渲染技术的IB部分的模型影子的渲染出现1帧的延迟问题,目前没找到办法解决。
如果修改后你的模型贴图出现问题,可能是因为你的ini使用的是ps-t槽位指定的方法修改的贴图。
可以在第二步向指定IB添加代码时,把槽位的几行代码也移动过去。
比如下图,把图一的ps-t3456移动到图二对应位置即可。
