此工具基于模型使用drawindexed来进行绘制的原理制作。实现的效果是可以将原本没有切换键的mod,不需要逆向就可以添加切换键。
代码原理是将变量引入drawindexed中,并使用按键来控制变量值的增减,从而快速找到精确的drawindexed值。
将DrawCount.ini放到你的Mods文件夹,然后打开你要拆解的mod的ini,找到对应部位的drawindexed,将索引数改为用$\drawcount\drawcount来调用。
比如这样:
然后回到游戏内F10刷新,再按Ctrl+Alt+\开启查找,然后长按 [ ] 键,观察模型绘制的状态来查找对应的索引值,使用 \ 键还可以切换速度,点按 ; ' 键可以按照三角面为单位精确查找,找到某部位绘制完成的状态后,按F10保存,打开d3dx_user.ini即可看到此时的具体索引数:
找到每个部位的drawindexed之后,就可以配合手写切换键来进行控制了。
首先简单讲解一下使用drawindexed来拆解模型的原理。
随便打开一个mod的ini,搜索drawindexed,会发现类似下面的内容:
模型的各个部分就是依靠drawindexed来绘制的,显示为auto也并不表示没有具体数值,只是没有做拆分,所以使用了自动绘制,可以理解为具体的数值被隐藏了。
drawindexed的三个数字所表示的含义简单来讲就是:
drawindexed = 索引数,索引起始数,顶点偏移量(一般为0)
知道了三个数字的含义,就可以手动测试来找出具体的绘制索引数了。
比如先找到了素体的drawindexed是3000,0,0
那么接下来的下一个就要从0,3000,0开始找
找到了想要的第二个drawindexed之后,比如是3000,3000,0
那么第三个就是从0,6000,0开始
每一个drawindexed的第二个数字(索引起始数)等于上一个drawindexed的第一个数字(索引数)加上第二个数字(索引起始数)。
需要注意的是,第二个数字(索引起始数)必须是3的倍数,因为游戏加载模型是依靠三角面的。
理解了drawindexed的原理,即可使用此工具来快速查找每个部位具体的绘制索引值,并配合手写按键来控制开关了。
使用此工具的最终目的是找到具体的drawindexed数值,只要你理解了drawindexed的原理,慢慢手动试错也可以找到具体的数值,所以此工具只是简化了手动试错的过程。
关于手写切换键,可以查看此篇教程:【教程】手写ini贴图切换
如果你是纯小白,看不懂上述内容,但是对拆解mod并增加切换键感兴趣,可以先尝试了解一下ini的基本语法,下面是一些教程: