tack
2026 年6 月 12 日 13:43
1
一款名为"DotAbyss"的游戏已在"Fanza"平台上线。
URL: Now loading...
我正在尝试分析这款游戏,希望得到您的帮助。
我已经获取了"catalog.bin"文件。
URL:https://drive.google.com/file/d/1ddwwZHRoSUW5arGlYMLSANmYo4gMl0ZX/view?usp=sharing
我还创建了一个解密工具,可以批量下载。
工具:
问题在于,这款游戏在场景回放中使用的"Live2D"文件(我认为它们不是"Spine"格式,但如果我错了请指正)并没有分组,导致很难找到它们。
我使用 ASGui 时无法提取语音文件。我不确定这是采集方式的问题,还是 acb 文件提取不正确。
我需要您的帮助。以下是我的需求:
请确认所需文件已下载。
提取文件时,我希望重命名场景回放文本文件和 Live2D 文件,并将它们整理到各自的文件夹中。
我也不确定语音回放方式(是从"acb"文件提取的,还是从其他格式提取的)。
请问您能帮我解决这个问题吗?
r'^.*(l2d_\d{4}\d{2}\d{3}\d{2}\.asset.*bundle)' 这个 pattern 得到的就是包含 moc3 资产的 bundle 。
用 UnityPy
import UnityPy
from pathlib import Path
env = UnityPy.load(bundle)
assert env.objects[1].type.name == 'MonoBehaviour'
tree = env.objects[1].parse_as_dict()
assert '_bytes' in tree
data = tree['_bytes']
assert data[:4] == list(b'MOC3')
Path(filename).write_bytes( bytearray(data) )
语音在 r'^.*hmr_\d{4}\d{2}\d{3}\d{2}\.acb.*bundle'
env = UnityPy.load(bundle)
assert env.objects[1].type.name == 'MonoBehaviour'
tree = env.objects[1].parse_as_dict()
data = tree['references']['RefIds'][0]['data']['data']
assert data[:4] == list( b'@UTF' ) # acb magic
Path(f'{name}.acb').write_bytes( bytearray(data) )
得到 .acb 格式的文件。一个 acb 文件解压出来会得到多个语音文件,解压出来的文件是 .bin 后缀改 .wav 即可。
acb用楼上说的unitypy导出比较方便,要用ASGUI导出也行,加载名称带有acb的bundle后对monobehavior 导出形式为export raw 也行,但是需要额外去@UTF之前的文件头,所以没有那个必要那么麻烦。然后扔进vgmtoolbox里面解压acb然后批量改wav后缀就能使用。或者也可以简化一点不用软件用acb-py ,直接相当于把vgmtoolbox这部分功能塞进脚本处理流程里面实现从bundle开始进行一键式处理。
tack
2026 年6 月 13 日 02:53
4
谢谢。
得知 moc3 是正确的方向,我松了一口气!
不过我有个问题。我以为除了 moc3 和 texture00、texture01 之外,还需要 model3.json 等文件。我可以假设这个游戏里也有这些文件吗?
我没找到。
我现在要去试用一下ACB。
model3 自己重建也行,以下是 l2d 官方 sdk 的示例,有 moc3 跟 texture 就已经可以让画面显示出来
{
"Version": 3,
"FileReferences": {
"Moc": "Koharu.moc3",
"Textures": [
"Koharu.2048/texture_00.png"
],
"Motions": {
"": [
{
"File": "Animation/body.motion3.json"
},
{
"File": "Animation/face01.motion3.json"
},
{
"File": "Animation/face02.motion3.json"
}
]
}
},
"Groups": [
{
"Target": "Parameter",
"Name": "EyeBlink",
"Ids": [
"PARAM_EYE_L_OPEN",
"PARAM_EYE_R_OPEN"
]
}
],
"HitAreas": []
}
motion3 我还没有研究但应该也是同理,数据在 AnimationClip 里可以还原。
l2d 动画只需调节 Parameter 就可以让画面动起来,掌握细节之后你甚至可以自定义一些你特别中意的动作
tack
2026 年6 月 13 日 07:19
6
感谢您的回复。
我不是在寻找示例;我想知道如何才能让它正常运行。
因为我是从资源文件中获取的,所以我认为它运行所需的必要文件应该已经存在。
*我在其他游戏中也只创建过 moc3 文件。
我想要获取这些文件。
tack
2026 年6 月 14 日 09:55
9
谢谢您的回复!
图片可以显示,但动画无法播放。
我以为会有一个类似".anim"的文件,但我找不到…
游戏保存文件时,文件名是"r18-only-novel_assets_assets_project_lazyassets_r18-only_novel_mainchara_hmr_10120100012_l2d_10120100012_addanimations_blush00.fade.asset_72519a55f133b51e4130384938cd030b.bundle",这是个重复的文件名,所以需要重命名。我遇到了问题。
虽然我已经将包含"acb"和"l2d"的文件分离并保存,但我仍然遇到以下问题:
下载后重命名
"L2D"的文件结构
运行"L2D"
这些是我目前遇到的问题。我真的束手无策…
如果有人可以更新我上传的、支持下载的py文件,并添加重命名和文件排序功能,请告诉我!文件名需要更改,因为它使用了重复的文件名,例如"only_novel_mainchara_hmr_10120100012_l2d_10120100012_addanimations_blush00.fade.asset_72519a55f133b51e4130384938cd030b.bundle"。
包含"acb"和"l2d"的文件已经分离并保存,但仍然存在以下问题。
下载后重命名文件
“L2D” 文件的结构
运行"L2D"
我目前遇到了这些问题,完全不知所措。
如果有人可以更新我上传的 Python 文件,添加下载、文件重命名和排序功能,请与我联系。
haocan
2026 年6 月 14 日 11:49
10
动画当然可以播放 MP4
选中 scene 开头的动画, 我用的是官方的 Cubism Viewer
AnimationClip 在 r'^.*l2d_\d{4}\d{2}\d{3}\d{2}\.prefab.*bundle'
不过我不打算继续下去了。既然资源没有鉴权我觉得破解客户端解锁全资源比较方便(虽然我还没有这种技能)。
从 AnimationClip 重建 motion3.json 难度相当不低,如果你连 python 都还不熟悉我建议你放弃。
anim2motion3.zip (2.5 KB) 代码
import anim2motion3
import os
in_folder = ''
out_folder = ''
anim_files = [
os.path.join(in_folder, anim_file) for anim_file in os.listdir(in_folder)
]
anim2motion3.batch( anim_files, out_folder )
1 个赞
haocan
2026 年6 月 14 日 11:52
11
奇迹出现了,我随手一拉的这段动画 居然刚好可以完美循环,完美循环!!!
是录屏不是导出!
你好。
我一直尝试对catalog.bin进行解析,但能力不足。
刚刚我发现了您的这个帖子,看起来需要"AddressablesTools"。
而我对这方面了解极浅,可否为我指点一下?
在此打扰,抱歉万分。
我这边写了个程序用来自动导出texture,moc3,animationClip并自动创建对应的moc3.json和AnimationClip的motion3.json发现有的角色资源bundle文件只有1kb,里面没有内容,你那边下载也是一样的情况吗
tack
2026 年6 月 18 日 12:07
15
我已经确认整个文件集中有好几个文件的大小都在 0kb 或 1kb 左右。
我觉得我的情况也一样。
这有点让人担心。
我想知道有没有人能正常保存文件?
我这边确认过了,那些0kb或1kb的应该都是游戏里还没放出来的角色或者皮肤,不过今天出的两个新角对应的寝10090100012,1009010002,10090100032和10100100012,10100100022,10100100032这六个寝用你上面的catalog下下来也还是空的,可能bundle文件位置变动了,得重新拿catalog资源文件了
我写的这个小程序就是在你原本的工具上加工的,下载的部分是一样的,应该就是catalog的问题了 可能新出的要重新刷新的log文件
嗯…是的,在使用了您的工具后,因为No module named 'AddressablesTools’才会有关于其的疑问。
最新版应该是4014吧,问了私底下问了大佬因为这个游戏的live2d的组件名字还是被索引替代了要dump出dll还原所以问问到底咋使用
tack
2026 年6 月 19 日 11:15
21
很高兴您在使用这个工具,但您是否查看过它的内容?
如果您遇到类似"找不到名为’AddressablesTools’的模块"的错误信息,它应该还会提示"请使用以下命令安装:pip install addressablestools"。
如果您仍然不明白,可以咨询AI。