Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

少女前线2 提取模型失败 #33

Closed
Ekloe opened this issue Jan 11, 2025 · 8 comments
Closed

少女前线2 提取模型失败 #33

Ekloe opened this issue Jan 11, 2025 · 8 comments

Comments

@Ekloe
Copy link

Ekloe commented Jan 11, 2025

分别使用两台不同的win10电脑,1.1.2.7 DBMT + 管理人员模式启动,两台皆无法透过DBMT从Dump后的FrameAnalysis资料夹提取 <少女前线2:追放> 模型。皆无法确定是产生的 FrameAnalysis 失败,还是提取模型功能失败 :

第一台:
提取模型 Error Log:
image
d3dx.ini相同,且 FrameAnalysis 包括 .buf 文件,但 DBMT 似乎无法检测到它们
output內仅有.json (单一行注解且没内容)
第一台电脑也使用过C++旧版 DBMT,相同情况

第二台:
未知错误:
image
提取模型 Error Log:
image
output內有部分空资料夹产生,但没有档案产生
image

@Ekloe Ekloe changed the title 提取模型失败 少女前线2 提取模型失败 Jan 11, 2025
@StarBobis
Copy link
Owner

好的,经过你的描述我给出了以下解决方案:

image
这个图里的报错,是因为DBMT的模型提取需要依赖于.buf文件,如果你没有使用DBMT自带的3Dmigoto,而是使用了类似GIMI、XXMI这样的3Dmigoto,它们的配置文件中可能不会含有dump_vb buf,重点在于这个buf是否存在,如果不存在的话,对于IndexBuffer和VertexBuffer都只能Dump出它们的txt格式描述,其中的内容是不精确的,所以DBMT采用从buf文件中读取的方法。
所以只要你打开你的d3dx.ini,并按照提示设置analyse_options,回到游戏中F10重新加载后,F8重新Dump即可提取。

分别使用两台不同的win10电脑,1.1.2.7 DBMT + 管理人员模式启动,两台皆无法透过DBMT从Dump后的FrameAnalysis资料夹提取 <少女前线2:追放> 模型。皆无法确定是产生的 FrameAnalysis 失败,还是提取模型功能失败 :

不论是在任何时候,都不建议以管理员模式运行DBMT,否则可能会产生意料之外的BUG。

image

DBMT的d3d11.dll拥有额外的dump选项:dump_on_map和dump_on_unmap,这些文件dump出来也是buf格式且排在FrameAnalysis文件夹中靠前的位置,但是这不代表你的analyse_options设置正确,否则DBMT检测到需要的buf文件,就不会产生这个错误了。

image
对于此错误,我希望你能提供F8 dump出来的FrameAnalysis文件夹,以及提取所使用的IB的Hash值,以便于我能够进行本地测试来解决它们,这似乎是一个意料之外的错误/BUG(另外,确保你选中的是IB而不是VB的hash值)。

@Ekloe
Copy link
Author

Ekloe commented Jan 11, 2025

您好,感谢回覆:

我使用的3Dmigoto都是在以下路径开启的:
DBMT\Games\Unity-CPU-PreSkinning\3Dmigoto3Dmigoto Loader.exe
我该如何确认我使用的3Dmigoto是DBMT自带的?
原本以为在 DBMT\Games\ 底下的都算是自带的,只是用在不同游戏上
有确认在DBMT执行时选择 Unity-CPU-PreSkinning 运行
image
image

第一台电脑使用的 analyse_options 與 Error Log 上的完全相同

第二台电脑使用未更改的预设 analyse_options :
analyse_options = mono dump_on_unmap dump_on_map dump_rt dump_tex dump_cb dump_vb dump_ib buf txt

第二台电脑测试用的 IB = a30d75eb,使用数字键 7 8 9 取得。换过几个IB,结果似乎一样

FrameAnalysis 资料夹容量为 14.6 GB 一大包,压缩后 4.2 GB:
https://drive.google.com/file/d/1NXiVYa0NAdCWTuulkc89EE4Yhl_d1bV3/view?usp=sharing

第二台提取过程中会出现这样的档案路径并包含许多 FrameAnalysis 档案
似乎为执行到一半的暂存档?
image

@StarBobis
Copy link
Owner

我使用的3Dmigoto都是在以下路径开启的:
DBMT\Games\Unity-CPU-PreSkinning\3Dmigoto3Dmigoto Loader.exe
我该如何确认我使用的3Dmigoto是DBMT自带的?
原本以为在 DBMT\Games\ 底下的都算是自带的,只是用在不同游戏上
有确认在DBMT执行时选择 Unity-CPU-PreSkinning 运行

如果是这样的话,那么应该是用的自带的3Dmigoto没错了。
image
产生这些文件的原因是因为你勾选了这个选项:
image

这个选项产生的这些文件仅用于不同电脑之间发送测试文件使用,提取模型时可以不考虑这个,具体文档可以参考:
https://www.yuque.com/airde/lx53p6/ks1hi8la4snhye51?singleDoc# 《★移动DrawIB相关文件用于测试》

对于你提供的FrameAnalysis文件压缩包,已测试完成,我手动搜索a30d75eb,以及在log.txt中搜索a30d75eb,均为找到任何相关内容,猜测如下:
1.你可能提供了错误的IndexBuffer的Hash值。
2.你小键盘7和8选中IB值后,并未按小键盘+号还原Hunting界面就直接F8 dump,导致此IB在隐藏状态下并未dump到文件中。

建议按照标准流程重试,大概率是粗心问题。

@Ekloe
Copy link
Author

Ekloe commented Jan 12, 2025

原来如此,看来是我对于dump功能的理解错误
原本以为 F8 dump 是会将整个游戏的一起包入 FrameAnalysis
所以我取得对应 IB 后换了其他角色又按过 + 才按 F8,使得 FrameAnalysis 不包含我需要的 IB 档
看来我低估这些资源档的大小了,以为 10 多 GB 就是全部游戏,原来是当前画面

至于第一台电脑我晚上再将 3Dmigoto 整个删除重新下载后试试好了,目前还不确定是什么问题

感谢您提供了这么牛的工具并解答了我的问题!

@StarBobis
Copy link
Owner

好的,解决了就好,加油。

@Ekloe
Copy link
Author

Ekloe commented Jan 12, 2025

您好:
在第一台电脑重新下载 DBMT 后,还是会遇到相同的问题,确定 d3dx.ini 的 analyse_options 如下:
analyse_options = dump_rt dump_tex dump_cb dump_vb dump_ib buf txt
操作步骤与早上第二台的相同,提取模型时也不会卡一下才报错,而是按下按钮直接跳出来
两台电脑皆为 win10 + NVIDIA 显卡
确认安装别人制作的MOD能运作

analyse_options 比较:
image

尝试第二次的完整错误信息:
image

确认 FrameAnalysis 中有以此 IB 命名的档案:
image

FrameAnalysis 压缩档:
https://drive.google.com/file/d/1070EK6348GSjqJvZVSkMukIn8wJMHfiK/view?usp=sharing

@StarBobis
Copy link
Owner

如图所示:
image

DBMT无法找到.buf文件的原因是,你Dump出来的东西全是快捷方式,而不是真正的二进制文件档案。
导致这个问题可能的原因是:
1.DBMT安装在可拆卸的移动硬盘中
2.DBMT安装在U盘中

这个问题的出现是由于3Dmigoto源码中固定的机制导致的。
建议将DBMT安装在本机固定的磁盘中使用,以避免Dump出的文件全是快捷方式的问题。

@Ekloe
Copy link
Author

Ekloe commented Jan 12, 2025

成功了 感谢您!
您一说我才想到我这台电脑的磁碟有区分
原本是放在非系统碟上运行,换位置之后重新 F8 Dump 并提取模型就不再出现错误信息了
非常感谢您花费时间为我解答!
image

@Ekloe Ekloe closed this as completed Jan 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants