歌姬计划游戏模型修改:从入门到弃坑

您所在的位置:网站首页 初音3d模型复制码 歌姬计划游戏模型修改:从入门到弃坑

歌姬计划游戏模型修改:从入门到弃坑

2024-07-12 07:41| 来源: 网络整理| 查看: 265

    一个人自闭瞎捣鼓出来的,多半不是最简洁方便的方法。总之随便写写,权当抛砖引玉。

软件需求:

    PDAFT游戏本体:我怎么会知道这东西要去哪儿下,莫名其妙就出现在我电脑上了我能怎么办嘛。

    diva-loader:用来启动游戏,本来在github能找到,不过它被sega的律师含了。RIP

    MikuMikuModel:导入导出模型,也在github。

    随便什么三维软件:当然是用来编辑模型,我用的是C4D。

    foobar2000:在干这些蠢事儿时听听歌,对心理卫生有好处。

    我写的神秘小程序:用来减少无聊的重复劳动,获得方法讲究一个缘分,你可以选择自己写一个。

    搞好软件,接下来就以这个雪miku为例说说该怎么整吧,我所做的改动只是把倆miku拼在了一起,导入外部模型理论上差别不大,不过骨骼可能会很麻烦。

    

Fig.1 记得指定一下这几个文件路径

   

Fig.2

    首先去mdata下新建图2中那几文件夹(编号随意),info.txt文件内容如下:

        #mdata_info

        depend.length=0

        version=20161030

    把mikitm177.farc(18雪miku的身体)复制一份到objset文件夹下。可以理解为新建了个包含这个模型的DLC,这个方法会替换原本模型,添加模型也是做得到的,不过我还没看该怎么添加。

    用MMM(MikuMikuModel)打开这个farc文件,然后在mikitm177_obj.bin上右键导出,保存为.dae文件,再导出一份.bin文件。

    然后删掉不要的部分,袜子鞋那一小节腿什么的,如果你喜欢删个胖次也不是不行。然后就是从别的miku身上借条腿过来。mikitm061有比较完整的身体(没有臀部),而mikitm114有一个完整的屁股。(如果你喜欢一些奇妙的羞耻play,可以用这两拼出一个完整的没穿胖次的下半身。)

    我这里直接把mikitm061的两条腿复制了过来,因为身体删掉的部分形状不一样,所以这两条腿边缘和胖次对不齐,不过也只是个小缝隙,反正看不到,不管它。

    接下来,骨骼。穿了鞋的miku的脚部骨骼位置和裸足的骨骼位置是不同的,如果不做修改的话会直接给裸足套用穿了鞋的数据,脚腕会有奇妙的扭曲。不幸的是我没搞明白该怎么修改这个位置数据,只有一个不完美的解决方法:先把n_nude_asi_l(r)_wj_ex,n_nude_toe_l(r)_wj_ex这四个骨骼(即刚复制来的两条腿的足部骨骼)移动到与对应骨骼(不带nude字样的原本模型的足部骨骼)重合,然后选中腿和脚趾甲的weight tag执行set bind pose,这样处理完之后因为骨骼位置变动脚部动作会出一点偏差,好在不是很明显,上面那个视频发出来到目前为止还没人指出脚好像不是很对劲。

    接下来就可以把用不到的骨骼删掉了(比如原本的腿部骨,已经没有腿给它们玩了),顺便给足部骨骼改个名,和原本的骨骼保持一致。删完后你会发现还有一些重名的骨骼,给其中一部分改名加个方便你识别的后缀。然后导出为.fbx。

Fig.3 处理完应该类似这个感觉(只是示意图 别照着这个删骨骼啥的)

    回到MMM,在mikitm177_obj.bin上右键replace,替换为刚刚导出的那个.fbx。然后点点旁边的小+号展开找到bones,找到刚加了后缀的那一堆骨骼,把他们后缀删了变回原样。注意一下n_asi_l(r)_wj_ex,n_toe_l(r)_wj_ex这四个属性中Belongs in ex data应该是true,不是的话打开mikitm177原模型把这几个骨骼的Id复制过来。有一些模型的足部骨骼是kl_asi_r_wj_co这种样子的 它们属性中Belongs in ex data是false 不需要复制骨骼ID那一步 总之向原模型看齐就是了。然后保存一下进游戏看看动作正常不。不正常的话自己去找找原因,我大概救不了你。

    更新:下面这一段描述的方法过时了,可以弃了。

    确认骨骼没啥问题的话开搞材质。texture set和mikitm177_tex.bin右键replace为很久以前导出的mikitm177_tex.bin文件,然后保存一下。再开一个MMM摆旁边打开原本的模型,展开Material,看见里面那么多项了么,一个个点开,下面窗口里有一堆堆的值,都给复制过来。(Texture ID这一项似乎是和贴图名称相关连的,照着原模型修改一下贴图名称,然后保存一下,Texture ID就会自动填好了。)这个修改后的模型比原模型多了一个脚趾甲的材质,miku的脚趾甲和手指甲其实用的是同样的贴图,所以用MMM导出这个miku的手(mikitm477 如果你不知道怎么找对应的身体部件,应该能从这个编号看出点啥吧)贴图。然后去texture set和mikitm177_tex.bin上右键import手指甲的贴图,材质就直接复制手指甲的。

    上面这个一点点复制材质的方法还是挺耗时的,你也可以用二进制编辑器打开bin文件直接复制材质对应的部分,具体过程见下面这个视频。

    当然一直盯着二进制编辑器改来改去会给眼睛和心灵带来折磨,于是我写了个程序来自动替换,b站专栏并没有办法上传附件,那么想要获得这个程序就看缘分了,这里讲一讲大致思路,你自己写一个吧。

Fig4 注释?那是啥?

    在.bin文件中,每个材质占1200字节,第9个字节开始是shader name,只有CLOTHES、SKIN等固定的几种,可以根据这个来确定每个材质所在的位置,第1073个字节开始是material name,这样我们就知道这是读到个什么材质了,从原本的.bin读出材质,然后替换进新的.bin对应的位置。这样就完成了。

    所以基本过程就是:把改好的.fbx替换进.farc,然后导出为.bin,运行程序或者自己一点点复制粘贴,把这个.bin的材质改对,复制一个原模型的.farc把.bin导入进去(刚刚那个.farc在导入.fbx时贴图已经消失了,所以搞来一个有贴图的原.farc)。

    保存,开游戏,玩。

    最后说说歌姬计划的材质和贴图供想改贴图或者导入外部模型或者随便什么骚操作的人参考,我只是个弱的不行的业余菜鸡,不对以下内容正确性做任何保证。

    贴图方面,都是常见的那些种类,比较特殊的是glossness map放在specular map的alpha通道了。

Fig5 ミク的奇妙材质

    Diffuse color:试着改了改这一项的值,并没在游戏里观察到什么变化,具体作用待探索。

    Ambient color:环境光颜色,四个值分别是rgba,然而改变a时没有观察到什么变化。

    Specular color:前三个值控制Specular的rgb强度,第四个值控制Reflection强度,虽然是叫做Reflection,但实际是环境贴图模拟的假反射。

    Emission color:比较迷,应该是前三个rgb值和Diffuse map共同影响了发光的颜色,第四个值作用成谜。

    Enable alpha:如果你需要alpha通道作镂空就打开它。

    Shininess:控制Reflection的粗糙度,取值范围0-128,值越大越光滑。(specular map的alpha通道里那玩意儿控制的是specular的粗糙度,alpha通道越亮越光滑。)

    祝大家玩的开心:)

    



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3