(黎之轨迹)3Dmigoto自用学习笔记

您所在的位置:网站首页 blender导出fbx未响应 (黎之轨迹)3Dmigoto自用学习笔记

(黎之轨迹)3Dmigoto自用学习笔记

2024-01-16 13:41| 来源: 网络整理| 查看: 265

其实我自己也是第一次接触注入和3D软件,写这个是本着比我还新的新手不用再踩一次坑的目的,大神可能会觉得“根本就不对!!你根本不会用吧”也请手下留情,因为我确实真的不会用。如果愿意告诉我正确的做法我会很高兴的。

效果视频:https://www.bilibili.com/video/BV1MD4y1z7xH

注意:本文只讲如何用3dmigoto抓取游戏模型进行替换并塞回游戏,如果要对模型进行拉伸调整等等需要自己掌握相关技能

前期准备不知道为什么说我广告,只好截图,令人无奈验证插件是否可用(非必须)

解压3dmigoto,把这些(根据你的系统是32还是64位,可能需要用x32目录的版本)复制到游戏可执行文件(.exe)所在的目录。

3dmigoto

启动游戏,按F12、进入hunting mode,界面上下出现绿色文字就表示可用。当然也可以直接下载别人做好的mod包,有效果就表示可以用…不如说都有人做mod包了那肯定可以用了啊。

安装blender插件

安装blender并启动,随便新建一个什么 然后安装插件

blender界面blender界面

注意在install之后可能还需要勾选左边的方框才算启用。关闭窗口,如果文件-导入出现以下选项就算成功。

blender_3dmigoto导入导出(dump)人物模型

首先用记事本打开刚才复制到游戏目录的d3dx.ini,搜索找到;analyse_options =或者analyse_options =这一句。如果开头有分号,删除分号,将这句改成:

analyse_options = dump_vb dump_ib txt dump_tex dds

同样找到hunting=,将其改为

hunting=2

保存并启动游戏,或者如果你刚才没关游戏,就按F10刷新设置,然后读档或进行剧情,直到你想要修改的模型出现在场景里。

此时我们需要分别获取原服装的哈希值(理解成游戏内部代号就行)和目标服装的模型(根据情况,你可能不需要新服装的模型)。对于原服装的哈希,这里有点迷惑性,因为主角一般都有好几套外观,如果你通过改文件,比如用泳装文件重命名替换初始衣服的方式“换衣服”,那么这里获得的其实还是初始衣服的哈希,视觉上是“泳装被替换了”,但如果你把文件名还原会发现,实际上替换的还是初始衣服。(补充:我发现换初始衣服之后换色版也会被换,不过我对这个也不是特别了解,不知道什么原理…总之就是提醒一下会有这种现象。)

目标服装则不需要在意这么多,只要场景里能看见就行了,甚至可能根本不需要抓取目标衣服只要导入现成的模型就行,不过我还没试过,不知道是否可行。

按F12启用hunting,此时屏幕上会出现绿色文字。如果F12无效,就查看toggle_hunting =这句是否是toggle_hunting = no_modifiers VK_F12,如果不是,修改并保存并F10。再按一次F12会关闭hunting模式。因为老外说一直开着容易卡,所以推荐先进入所需场景再进入hunting模式。

屏幕上显示绿色字的状态下,按F8抓取,游戏会卡一会儿(如果没有卡,就查看analyse_frame =这句是否是analyse_frame = no_modifiers VK_F8,如果不是,修改并保存并F10)等待一会儿会出现绿色提示字表示抓取完毕,回到游戏目录,会看到类似这样的文件夹:

FrameAnalysis

这步的文件不能直接用,需要用脚本合并顶点,方法为:复制kuro_vb_merge.py到该frameanalysis文件夹,双击运行。如果顺利,会获得output文件夹。

获取哈希

以下两种方式选一个就行,根据实际情况可能需要结合使用

游戏内方式:先寻找所需文件,再导入blender

先回到游戏,在hunting模式下按小键盘的7和8寻找角色模型的哈希(被选中时会被隐藏,恐秃头白眼也…忍忍)选中你需要的部件时按小键盘9复制之,然后到output文件夹搜索刚才复制的哈希,复制得到的文件名。这里建议开个记事本,每行加个简单的注释,方便后面用。

像这样

对于目标衣服可以这么搞,也可以直接乱枪打鸟导入blender,看你喜欢:)

使用blender方式:先导入blender确定所需模型文件,再得到哈希值

按下文方式将你认为有关的文件全部导入blender,删除不需要的模型,用编号搜索output文件夹,找到对应的-ib-文件,分别复制名称即可。

模型导入blender

从output目录下选择成对的vb与ib导入blender。注意你的文件只是txt,不要选成下面那个。

import

此步骤由于未知原因可能会报错,原因可能是合并工具合并之后的vb0文件里出现了控制符或换行,如图

可能是merge工具的问题同上,这个是控制符,但是…还是会影响识别

将这种神秘空行删除(像POSITION那段那样不空行就好了)就能成功导入。导入成功会变成这样。

导入

模型预处理(主要是转移权重)

注意:因为我并不会用blender,以下内容都属于啃老外教学大力出奇迹,有条件还是建议正经学用blender之后自己操作…

首先按上面步骤导入你准备改成的目标模型。

在左边视图选中多余的部件,按Delete删除。然后在右边视图框选所有部件,拖入collection,双击collection改名为C00。这一步是为了免去删错改错之后还需要重新导入的麻烦。

右键,复制C00并隐藏C00。把复制的改名为C01_(ctrl+J),删除你不需要的东西(头发,眼睛,脸部等;但是最好保留脖子和手,因为可能会穿模,需要删除它们的一部分面)。然后参考frameanalysis中dump得到的贴图文件,合并使用相同贴图的部件,方法是点击其中一个,按住shift点击另一个,然后按Ctrl+J。合并顺序不重要。

例如按这张图的情况,23和24是可以合并的,22就单独留着吧

合并完毕后可以双击给部件取你认为好记的名字,这里我们假设衣服叫cloth,身体叫skin,复制一份C01并隐藏C01,把复制的改名为C03。然后再复制一份C00,改名C99,合并所有部分,点击选中合并后的最终模型,按下图方式修改locationX为-1.5作为转移权重的参考。我个人会在这一步把合并的最终结果改名成我使用的衣服模型的文件名方便记忆。

平移

按以上步骤导入你准备修改的原模型,对于原模型可以不用这么小心,只要合并、复制、最后得到这几样东西一般就行:

原模型的头、头发、眼睛(不一定有)部分合并起来;(002)原模型的身体部分;(003)原模型的全部服装部件合并起来;(004)复制以上3部分,全部合并。(001)

复制一份001放入C99,将它平移到X 1.5;新建collectionC02,把002、003、004塞进去,隐藏C02。

如果顺利,会得到这样的效果:

排排坐

虽然我也不是很懂,总之似乎是由于不同模型的顶点组权重有所差异,如果直接合并会变成克苏鲁效果,我们需要先检查顶点组。

方法是先点击左边的chr0116_c00,然后点击左上菜单,切换到权重编辑模式

右边切换到顶点组并拉到最上面选中0

然后不用管他,再用右边的窗口选中右边的模型001,切换模式。拉到最上面选中0

中间cloth和skin可以不切不过我觉得切一下也没关系,同样拉到最上面选中0。

按Alt+Z,方便查看被高亮的部分。

接下来就是体力活了:为左边的部件找到在右边对应的名称,改名。方法是先选择chr0116_c00,查看哪个部位被点亮了,再点击001,查看同名部位是否对应。

例如,下图情况中,由于001多了一个组,导致chr0116_c00的组6实际上是001的组7部位,这时候就需要修改cloth和skin,双击组6重命名为组7。由于已经存在了组7会发生名字被自动修改成7.001的情况,此时可以暂时命名为组a7,等全部对照完毕之后再改;同时,由于skin实际上是没有这么多顶点的,所以也可以在确认点击组7之后没有出现高亮的情况下直接点击右边减号将skin的组7直接删除掉。

另外(chr0116_c00没有这种情况,稍后讲),可能会出现在001上找不到chr0116_c00上选中的组对应的组的情况,这时候需要先把它们命名为xx1,稍后再处理。

chr0116_c00chr0000chr0000

一般来说不会出现001缺少特别重要的部件(比如小腿啥的)的情况…真的出现我也不大清楚怎么办哈哈。注意有些东西在cloth和skin上都有,不要改漏了。对于001的头发什么的,如果你在chr0116_c00上选中同名的组没有高亮,可以删掉它们为重命名腾位置。

全部完成之后需要把刚才改成a7之类的组改回7,如果名字还是有冲突,可以把影响改名的空组删掉。

对于目标模型上多余的部件,我们换个模型来讲。(我建议搞下面这一步之前先备个份,因为这个应该是不能撤销的。)

xx1

chr5118_c01这件有两个这种东西是原模型没有的,如果置之不理会变成很怪异的效果,老外的建议是合并到邻近组当它们是一起的。方法是:

先找到适合合并的临近组。这个临近不是数字临近,是部位临近,比如我觉得合并到1这组就挺合适的:

就是你了!

点击这个扳手图标,选这个。

分别点击GroupA和GroupB,改成1和xx1。之后

这里改成Add

这里改成AorB

效果如图:

关于谁是A谁是B我也不太懂,总之如果反了的话会是这个效果,这时候颠倒顺序试试就行。

不要急着合并,按右上的copy

把xx1改成xx2将xx2也合并进去,其他不用改

按两次apply,回到顶点组,选中1会看到已经变成了这个效果

这时候就可以删除xx1和xx2了。如果你不知道怎么的最后合并到了xx1里,也不要紧,只要删除1和xx2,把xx1改成1就行了。总之过程不重要,最终结果是谁就保留谁然后改成对应的名字就可以了。

全部改好之后,隐藏C99。复制一份C03,改名为C04,隐藏C03。复制刚才C02中的001,粘贴到C04中。类似这样的效果:

不要管这里的名字…我也是慢慢优化的

接下来的动作我也没摸清门道,有撞大运成分:

一种方法是先点击001(此图是_chr0000),按上面菜单的Modeling,此时会看到模型变为橙色;按下Delete,选择faces(我也不太确定,撞大运,反正效果能行)

然后按layout(modeling旁边的),按住shift选中cloth,按Ctrl+J。

…但是这个方法有时候不行,界面最下面会提示错误:

这时候就只能用另一种我更不确定的方法了。

做法还是一样先点击001,按modeling。看到全部被选中。然后按layout。然后点击cloth,也按modeling,然后按Alt+A,即取消选择。

按这个也行

然后按layout,点击001,按住shift点击cloth,注意颜色。如果颜色不对就反过来点击cloth再按住shift点击001…我也不懂啥原理…

这样的颜色就行这种颜色就不行

按Ctrl+J,它们就合体了。此时顶点组内应该是001的顺序和数量,如果反了就反过来操作…

再按modeling,应该会看到这样的情况,反正老外说按上面那样选就有这个效果…如果没有,自己折腾一下吧…总之这样的状态下按Delete,删除原始模型。

虽然这时候人物的身体比例明显很有问题,但需要先停一下,回到游戏测试权重是否正确,否则就得回到上面重新重命名和合并,后续的调整就全都浮云了。

注入游戏

点击合并后的cloth(根据刚才的合并情况它可能现在叫001,那就改名)用这个选项生成vb+ib文件。建议是直接在游戏目录里找Mods文件夹,如果没有,就新建一个,然后新建文件夹,建议用英文名,然后导出到那里。

vb+ib

将刚才下载的kuro_vb_split.py复制到为vb、ib新建的文件夹,双击运行。如果顺利,你将会得到一些这种东西:

van是男主的名字 不要想歪

这里的文件名是根据你的vb、ib文件生成的。双击自动生成的ini文件,来到TextureOverride部分,将你想替换掉的原模型部位的哈希填入hash = 并删除分号,类似这样:

TextureOverride

不过这样并没完,你还需要设置ShaderOverride部分,用TextureOverride的哈希寻找ShaderOverride的哈希,例如000013-ib=dc2e0172-vs=a7d743c63f06933d-ps=109b6dbbe9c3783d.txt需要把第二段哈希填入hash =并删除分号,类似这样:

ShaderOverride

注意如果不设置ShaderOverride好像就没有效果如果你觉得不用改,也可以直接用原部件的Shader,大概这么个效果

填写完成之后就可以在游戏里F10看看效果了。

如果只是整体偏移但动作没问题,说明权重转移没问题,可以备份C04对其进行进一步调整了;如果有问题,就需要回到前面重命名、合并顶点组的步骤,去找找有没有改错名字的地方。

另外这里我的建议是在第一次试完上面流程之后,每次修改先一次性抓出所有并隐藏只剩下头,具体写法可以参考下面的延伸部分2,避免不需要的部分造成干扰,也可以避免残留一些细小的部件又要再去一个个隐藏很烦人。而且按上面说的导入之后备份、抓完所有需要的哈希值以及存完需要的贴图之后其实就可以把frameanalysis文件夹删掉了,也挺大的,其实没必要都留着。

像我这个就是直接平移导出导致身体部分有点穿模,但是部位动作没问题,所以不用重新改顶点组,要么调整衣服要么把身体部分隐藏掉就好了。

至于怎么调整偏移的模型,因为我其实也不太会!就不多说了。

延伸部分:延伸部分1:关于修改贴图

如果要用到贴图,需要在mod文件夹的ini中作修改。将需要的文件复制到刚才的vb、ib文件夹中,然后在ini文件里添加[Resource_任意名字]这样的段落。文件名其实没必要这么长,不过反正就是复制,我也不会取名,就随他去了。

好像t3是法线还是啥的…不知道,反正都弄进去吧ini文件

然后到对应的TextureOverride部分,添加以下内容:

注意1:=后面的内容是要和你刚才Resource_任意名字中的任意名字部分对应的,你可以当刚才是给它们取了个外号,现在就直接叫外号就行。注意2:顺序好像很重要,必须插在drawindexedinstanced 之前,我也不懂啥原理,反正好像照做就行了注意3:好像其实不止t0和t3,我也不懂啥原理,反正不对的话就把别的也加上吧。

然后保存并F10就可以了。

不过,更进一步的修改比如一个模型用两个贴图之类的我就不会了。可能与其折腾贴图不如直接用绘图软件改图算了。

延伸部分2:关于隐藏不需要的部位

很简单,TextureOverride部分不要中间的一大段就好了。注意ShaderOverride可能还是要有这么多行(存疑,没有验证)不过实际操作直接复制粘贴只改hash部分就好了。

skip延伸部分3:关于在同一个配置文件中修改多个部位

例如你又想隐藏又想替换或者想隐藏多个部件什么的。很简单,TextureOverride_后面用不同的名字就行(需要和ShaderOverride一致)如果这么说你还是不明白,就是说,同一个文件里面像

[TextureOverride_部位1]

hash =dc2e0172

vb0 = Resource_Model_untitled_VB0vb1 = Resource_Model_untitled_VB1vb2 = Resource_Model_untitled_VB2vb3 = Resource_Model_untitled_VB3vb4 = Resource_Model_untitled_VB4vb5 = Resource_Model_untitled_VB5vb6 = Resource_Model_untitled_VB6vb7 = Resource_Model_untitled_VB7ib = Resource_Model_untitled_IBps-t0 = Resource_ps_t0_eedf5e8fps-t3 = Resource_ps-t3=bc5c45a6drawindexedinstanced = autohandling = skip

[ShaderOverride_部位1]

hash = a7d743c63f06933dchecktextureoverride = vb0checktextureoverride = vb1checktextureoverride = vb2checktextureoverride = vb3checktextureoverride = vb4checktextureoverride = vb5checktextureoverride = vb6checktextureoverride = vb7checktextureoverride = iballow_duplicate_hash = true

[TextureOverride_部位2]

[ShaderOverride_部位2]

[TextureOverride_部位3]

[ShaderOverride_部位3]

这样处理就可以了。

关于用快捷键在多个mod间切换

虽然我得到了一个例子,不过里面的东西我自己看着都头疼,而且好像也有插件(虽然看着有点头疼),就不玩这种花的了,大家老老实实改文件名吧…在vb、ib的文件夹名字前面加DISABLED空格,就可以禁用某个mod了。

写这篇是为了方便自己以后忘了的时候参考用的,所以如果有问题我也不一定能解答,只是自己当初摸索的时候各种这也不行那也不行真的很头疼,希望这篇文章能帮到跟我一样的新手就好了。



【本文地址】


今日新闻


推荐新闻


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