fdk引擎模型mod教学系列(二)提取模型和简单的编辑操作
galaxy17
2025年10月10日 18:43

注意:本文默认您已经看完并熟悉了教学(一)里介绍的内容。相信经过教学(一)各位已经学会如何定位到想要修改的模型文件及确认过简单的替换可以生效了。接下来需要用到blender来进行基本的解包模型及编辑操作。

本文只是转述,老外github上的教学比较详细,还有配图,如果有需要或者疑惑可以参考那一篇的内容。

————

首先将想要修改的mdl文件复制到KuroMDLTools目录。

将其拖动到kuro_mdl_export_meshes.py上解包。

如果解包顺利,解包完毕将会生成一个与mdl文件同名的文件夹。请不要解包完顺手删除mdl文件,重新打包需要它。

如果已经存在同名文件夹,建议先改名或删除之再解包,虽然解包的时候其实会询问你要不要替换,但如果替换的话可能会有一些残留文件产生干扰,因此建议先直接改名或删除该文件夹。

如果解包不成功,请改用cmd运行kuro_mdl_export_meshes.py 文件名的方式,根据报错内容,检查python是否正确安装、相关模块是否成功安装、如果是中文版黎轨1/2,可能需要先拖动到cle_decrypt_decompress.py上进行解压缩解密再解包、是否用了动画文件或脸部文件而非模型文件进行提取、或者是否报了其他错误。

注意,提取出来的模型是不包含贴图的,需要根据image_list.json自行去image文件夹找对应的贴图,不过对于编辑网格操作本身来说没贴图其实也不影响。

和改名一样,建议这里先不作修改,直接原样导入来测试导入导出是否正常工作,再去进行进一步操作。导入的时候,可以从以下三种选一种你喜欢的:

——

懒鬼模式(看不到错误报告,出错自己想办法):

将mdl文件拖动到kuro_mdl_import_meshes.py上

正常模式(比较麻烦):

用cmd运行kuro_mdl_import_meshes.py mdl 文件名。

运行过一次之后可以按“上”方向键来重复上一次的指令减少输入的麻烦。

一劳永逸极致懒鬼模式(第一次比较麻烦):

新建空白文本文件,输入

kuro_mdl_import_meshes.py %~nx1

pause

然后保存,将其改名为任意.bat,将mdl文件拖动到上面。

如果你没开默认显示扩展名,无法把文件改成.bat,那么要么去开,

要么文件-另存为-文件类型选*.*然后手动输入任意名字.bat。

——

如果顺利,没有报错,将会生成一个.mdl.bak,这是原始版本的文件,以及新的mdl文件。

请替换游戏资源文件,启动游戏测试是否一切正常。

注意:中文版黎2需要先用cle_compress.py进行压缩才能替换,其他各版本和游戏目前不用这样操作。

下文不再重复。

————

如果上一步能够顺利完成,那么接下来我们将尝试简单的编辑操作。

将文件夹里的网格全选,导入blender(注意检查是否已经安装了3dmigoto插件;然后用文件-导入-vb+ib导入网格)

你将会在blender中看到网格对应的模型部位。

记下想删除的部位对应的文件名,然后到文件夹删除对应的vb文件,然后导入。

如果顺利,启动游戏,会看到模型缺少了某个部位。

————

当然,我们做mod不可能整块整块的挪,只删除一部分也很简单。

方法是在blender中选中对应部位,然后左上进入编辑模式。

选中想删除的面,然后删除就可以。(如果您不知道怎么操作,请自行另行寻找blender操作教学。)

编辑完毕之后,左上角回到物体模式。

按文件-导出-vb+ib,覆盖对应的vb文件。

注意,某些版本的插件导出时扩展名会从vb变成vb0,这是正常的,不用对其进行重命名。

编辑完之后导入即可。

————

接下来是替换纹理。方法是先用blender确认vb的名字,

然后打开mesh_info.json,

用name和id_referenceonly的组合找到对应的material

(注:vb名字构造:在mesh_info.json中的序列_名字(name)_在primitives中的“id_referenceonly”)

然后打开material_info.json。

在material_info.json中找到material名字,

编辑其中"texture_slot": 0对应的texture_image_name字段的值即可更改贴图。

编辑完之后导入即可。

如果您想换成新的贴图,需要注意:

对于ysx和空re,需要另外解包image文件夹,把新贴图放进去;

对于中文黎2,贴图文件一样需要经过cle_compress.py进行压缩才会生效,

并且新的贴图文件名必须和旧的长度相同,否则可能会报错。

————

那么这次就到这里,下一次讲什么暂时还没想好,如果有需要,可以先去往下看老外教学。