欢迎食用『主界面』~,这里是赵苦瓜的看板娘desu~
【日常】瞎解包原神文件记录
首页 > 日常    作者:赵苦瓜   2021年2月3日 23:37 星期三   热度:33934°   百度已收录  
时间:2021-2-3 23:37   热度:33934° 

7D}KQSDSXMC4ZW6Y1Z%PV(9.jpg

前言:

工具没有好坏,重要的是你怎么去使用它!

目前发现了CG动画(usm文件)、角色语音包&背景音乐&各种音效(pck文件)、模型动作贴图等(blk)是可以解包出来的。

如果需要MMD模型,还是建议在文章底部找到官方配布的链接进行下载。


CG动画尝试解包

翻了一下原神的资源目录

在D:\Program Files\Genshin Impact\Genshin Impact Game\YuanShen_Data\StreamingAssets\VideoAssets\StandaloneWindows64里面发现了一些USM文件,应该是视频

根据评论区指点,可以使用ToaHartor/GI-cutscenes: A command line program playing with the cutscenes files (USM) from Genshin Impact. (github.com)

这个项目进行解包。这是个命令行程序。

一、准备工作

①首先去Release页面下载程序,然后解压缩。(一般下载GICutscenes-版本号-win-x64-standalone.zip即可)

②下载并安装MKVToolNix(MKVToolNix Downloads – Matroska tools for Linux/Unix and Windows),用于将USM中的音频、视频和字幕合并为mkv文件。

【注意,v0.4.0 及更新版本不再必须这个东西来合并 mkv ,可以使用 --engine 命令来指定 mkv 视频处理引擎,比如 internal, mkvmerge 和 ffmpeg (默认为internal自带的引擎)】

③从Dimbreath/GenshinData: Repository containing the game data for the game Genshin Impact. (github.com)下载Subtitle字幕(如果需要字幕)。

④打开GICutscenes的appsettings.json文件,修改MkvMergePath为你刚才安装MKVToolNix的mkvmerge.exe的完整路径。

另外,FfmpegPath为ffmpeg的文件夹,留空则使用PATH环境变量里面的。SubsFolder改为Subtitle字幕的文件夹。

我的配置文件如下所示:(Windows环境下路径要有转义字符所以写两个\\

{
  "Settings": {
    "MkvMergePath": "E:\\Program Files\\MKVToolNix\\mkvmerge.exe",
    "FfmpegPath": "",
    "SubsFolder": "./GenshinData/Subtitle"
  }
}


⑤从这里Genshin Impact\Genshin Impact Game\YuanShen_Data\StreamingAssets\MiHoYoSDKRes\HttpServerResources\font拷贝两个ttf字体文件到GICutscenes的文件夹,用于显示和官方一样的字幕的字体。

二、开始转换

根据官方说明,这个有三个转换命令。demuxUsm命令可以转换单个usm文件,batchDemux可以转换一个文件夹里面所有文件,convertHca可以把HCA音频文件转换为WAV音频。

--output可以设置输出文件夹,--merge可以添加合并的步骤,合并成mkv文件,--subs可以添加字幕,--no-cleanup是合并完mkv文件之后不删除转换出来的单个文件。


如果不合并mkv文件的话会输出ivf文件(存放VP9视频编码的一种容器)和wav文件。如果不会播放ivf文件可以把ivf改为m2v然后即可播放。


高级命令:-b 解包单个USM文件时设置key1  -a 解包单个USM文件时设置key2


示例代码:

在GICutscebes文件夹打开命令提示符(cmd)或者Powershell,然后即可执行下面的命令:

转换单个文件:

GICutscenes demuxUsm 【USM文件路径】 --merge表示合并成mkv --subs表示把字幕也添加进去

GICutscenes demuxUsm "E:\\Program Files\\GICutscenes\\Cs_LQ1101505_YunjinOpera_Girl.usm" --merge --subs
然后回车执行,即可看到解包成功,并生成了对应的MKV文件!


解包单个文件.jpg

转换一个文件夹内多个USM文件:

GICutscenes batchDemux 【包含USM文件的文件夹】 --output设置输出路径 【输出路径】 --merge合并成mkv文件 --subs添加字幕

GICutscenes batchDemux "K:\\Genshin\\private\\2.6\\YuanShen_Data\\StreamingAssets\\VideoAssets\\StandaloneWindows64" --output "K:\\Genshin\\Video" --merge --subs

这样就能批量把USM文件转换为mkv文件了。


无UID无水印的CG动画预览:

只是投到B站预览一下,当然是被b站二压之后的版本,所以字幕和多语言的音轨都没了,码率也从1w左右压到了5k(1080P高码率),也就看一看。

想要源文件的话建议根据上方教程自行转换。



之前踩的坑(不适用于2.3及以后版本):

然后下载了vgmtoolbox_bin_r977进行转码,转码为m2v

点击查看原图

然后得到了一个似乎被加密而无法播放的m2v视频(后续经大佬查看确实加密了,但是似乎能看密码)和一堆HCA音频

【注意,大概2.3版本过后,由于hca音频变成了加密的bin文件,此方法已经失效

然后使用这个进行HCA音频转码,转为WAV

https://github.com/OpenCGSS/DereTore/

然后下下载解压,把HCA文件拖到hca2wav.exe上面即可完成转码

这个音频是正常的,我测试了很多CG动画,都可以使用这种方法解包出音频。

后来我又对视频文件进行了分析,发现是采用VP9进行的视频编码。

使用ffmpeg可以强制转换成MP4,但是得到的视频文件是全程花屏的,这并不是我们想要的结果。

目前还不清楚视频如何进行解密,欢迎大佬指点!



角色语音&背景音乐尝试解包

然后翻到一堆pck音频

D:\Program Files\Genshin Impact\Genshin Impact Game\YuanShen_Data\StreamingAssets\Audio\GeneratedSoundBanks\Windows

使用了Extractor2.5进行解包

然后我得到了一堆加密的WAV文件


然后根据评论区老哥还有https://bugxia.com/2377.html这篇博客的指点

我们采用vgmstream进行解密和转码

https://github.com/vgmstream/vgmstream/

下载完release里面的vgmstream-win.zip(windows系统),解压缩之后,把加密的wav文件拖到test.exe上面就可以转换了,转换完成的音频就可以播放了。

批量转换:写一个bat:

@echo off
for /r %%i in (*.wav) do (
	"E:\Program Files\VGMStream\test.exe" "%%~nxi"
	del "%%~nxi"
)
pause


记得把那个test.exe的地方改成你解压完的那个里面的test.exe

如果转换完不想删除的话,把del那一行删掉即可


由于音频都没有命名,所以说只有听了才知道是什么。

比如Music是一些游戏内的背景音乐

Music_1.5_0 00033——若陀龙王战斗曲(其一)

Music_1.5_0 00009——优菈出场曲

Music_1.5_3 00001——若陀龙王战斗曲(其二)

Music_1.5_4 00030——若陀龙王战斗曲(其三)

Minimun是一些窗口交互的音效和登录背景音乐

SFX是一些音效(包括怪物的声音,比如愚人众、深渊法师、史莱姆、公子、纯水精灵等,还有兔兔伯爵爆炸声,元素方碑声,做饭声),Banks里面也是更多的音效,好像有踩沙子的声音,击剑声,掉水声,打破箱子声,留影机照相声,角色界面切换不同元素角色的声音,元素反应的声音,射箭的声音

Stream里面似乎是一些背景音,风声,鸟叫声,狼嚎声,海浪声,嘈杂的集市声,蒙德主题曲片段等

对应语言的文件夹里面的文件是一些角色的语音

这些角色语音不是按顺序排的,很乱,里面既有任务语音,还有角色的那个详情的语音,都是掺杂在一起的。


不过B站有位老哥解包出来之后通过调用腾讯的语音识别,能大致知道一些语音表示的是什么。
原文章:原神语音文本整理 - 哔哩哔哩 (bilibili.com)

对照表的在线文档:[只读]原神1.6 语音asr 6-8 简单修正 - 金山文档 (kdocs.cn)

注意:2.7版本音频结构大改,很多音频位置都有所调整


几个解包出来的语音(为了方便在线播放已转换为MP3):

不太行,这锅盐多了(言笑):

起个难听的绰号(派蒙):

VO_2.4_0 00050耽误太多时间-派蒙版(派蒙):

该电一电了(丽莎):

交给我吧,什么都可以交给我(诺艾尔):

爆炸(兔兔伯爵)SFX_1.6_0 00159:

发现你了~偷窥者(雷莹术士)SFX_1.6_2 00062:

你是~来陪我玩的吗(雷莹术士)SFX_1.6_2 00061




之前的错误示范:


然后使用ww2ogg 0.24进行解密和转码

然而用0.24版本会报错:


ww2ogg "F:\VO_1.3_0 00001.wav" -o test.ogg
Audiokinetic Wwise RIFF/RIFX Vorbis to Ogg Vorbis converter 0.24 by hcs

Input: F:\VO_1.3_0 00001.wav
Parse error: expected 0x42 fmt if vorb missing


于是我又换了ww2ogg019

然后还是报错Parse error: unknown chunk type

我好像明白了什么

或许语音包加密了解不出来



MMD模型

哦,对了,如果你想要原神里面角色的MMD模型的话,原神官方是有在模之屋配布的

戳链接:https://www.aplaybox.com/u/680828836


blk解包

原神虽然也是Unity引擎,但是直接使用AssetStudio会有各种报错。那么如何解包呢?

根据评论区老哥的指点,github上现在有了一个专为原神魔改版的AssetStudio——GenshinStudio。

github地址:Razmoth/GenshinStudio: Modded AssetStudio for Genshin Impact (github.com)

在release下载最新版即可。

然后像使用AssetStudio一样,左上角选择File -> Extract folder,选择原神的YuanShen_Data文件夹,然后等待他载入即可。

载入完成后选择Misc.的build blk map和build cab map,以便加速下次加载的时间。


需要注意的是多出来的黑框框不要关掉。

由于原神文件比较多而且零碎,因此第一次载入可能会非常慢,可能需要十几到几十分钟不等,请耐心等待。

(内存小于16G可能在载入时导致死机重启,尽量使用大内存的机器或者分文件夹载入,防止内存爆了)

原神blk解包.JPG


Property_Prop_GorouBillboard_02_Diffuse.pngStages_Deca_Typeface_01_SMBE.png

关于hdiff拆分更新文件:

大概从2.5版本开始,拆分更新包里面就出现了这种hdiff文件来进行拆分更新。

可以使用下面这个东西,把hdiff拆分更新文件打包进原来的文件里面,然后再进行解包。

https://github.com/sisong/HDiffPatch

本文作者:赵苦瓜      文章标题: 【日常】瞎解包原神文件记录
本文地址:https://blog.jixiaob.cn/?post=49
版权声明:若无注明,本文皆为“赵苦瓜のBlog~”原创,转载请保留文章出处。
sys2022-07-31 08:00
@赵苦瓜 你好,我在提取音乐时注意到,使用quickbms提取出来的wem文件,若使用装载了foo_input_vgmstream.fb2k插件的foobar2000进行完整性排错,大多数文件出现错误,类似“警告: 报告的长度不准确: 1:00.010000 和 1:00.010667 解码”。这样的情况是不是也影响了乐曲的数字正确性?
赵苦瓜2022-07-31 08:49
@sys:[挠头]我也不清楚
chazime2022-07-14 17:59
站长,你的过场CG会出现解码后部分画面花屏吗
赵苦瓜2022-07-15 09:31
@chazime:不会吧,我解完还花了两三个小时全部看了一遍
可能是解码器的问题吧,试试换个播放器,potplayer之类的
sura2022-07-11 21:04
请问大大  怎么提取动作?  那些animation导出来好像不能用
赵苦瓜2022-07-11 21:24
@sura:我也不会qwq
我就是个菜鸡
氪多多2022-08-10 23:45
@sura:好兄弟,我想问一下你后来找到办法提取动作了吗,我也想拿官方的动作去玩重定向
赵苦瓜2022-08-11 01:06
@氪多多:模型替换倒是有教程,提取动作是真不会
三小只2022-07-11 20:21
大佬你好,你知道如何解包原神中的文本吗?(就是世界任务的文案,成就介绍之类的)
赵苦瓜2022-07-11 20:38
@三小只:不知道哇qwq不过我感觉可能都在blk里面,而且有可能加密了
赵苦瓜2022-07-11 20:52
@三小只:哦对了
https://github.com/Dimbreath/GenshinData
这个仓库里有大佬解好的resource资源文件
Readable里面有一些书籍、武器故事什么的
Subtitle是CG动画的字幕文件
TextMap好像是一些文案之类的东西
shun.2022-07-11 14:16
刚刚尝试解了一下预下载2.8里的新cg,结果失败了,在预下载里面竟然还会有2.7的cg,预下载里面的2.7cg的倒是解成功了
Kiki2022-07-11 15:37
@shun.:GICutscenes还没更新key,等更新应该就能解2.8的CG了
赵苦瓜2022-07-11 15:57
@shun.:对的,用这个GI的话原理就是他把key都写在json里面了,然后就能直接解了。根据官方说明现在只有这个cg在播放的时候才会出现key,所以耐心等吧=w=
当然这个软件也提供了自定义ABkey来解密的方法,只不过key需要自行寻找,也可以去试试
Kiki2022-07-10 00:03
请问CG添加字幕改json文件的格式是这样吗?     "SubsFolder": ".C://原神CG//Subtitle"
赵苦瓜2022-07-10 09:14
@Kiki:windows环境下应该换成右斜杠\\吧,我之前用的相对路径
归灵祈昱2022-07-05 11:39
如果一次全加载的话,我的16GB内存也爆掉了{哭}
赵苦瓜2022-07-05 13:36
@归灵祈昱:还是分批一点一点加载吧qwq
aa2022-06-20 12:55
游戏图标库和UI还有CG在哪个文件夹?
赵苦瓜2022-06-20 18:40
@aa:图标猜测可能在blk里面,CG上面有写
aa2022-06-30 12:37
@赵苦瓜:那个玩家名片在哪呀 最近看到了原神和Google联动名片想拆出来
赵苦瓜2022-06-30 15:57
@aa:估计都在blk里面,具体的也不清楚
不过你有3.0的包了?一般没更新的内容不会放在当前版本的客户端里面的
aa2022-06-30 23:06
@赵苦瓜:3.0是怎样啦
aa2022-06-30 23:07
@赵苦瓜:blk在哪个文件夹
赵苦瓜2022-07-01 11:21
@aa:建议再详细看看教程
aaa2022-07-04 11:53
@赵苦瓜:不行,载入就卡死 12g内存根本不够 直接蓝屏
赵苦瓜2022-07-04 12:19
@aaa:建议不要全部载入,一点一点的也行
真不戳2022-06-09 10:00
厉害
zh2022-06-08 18:29
现在有了GIcutscenes的图形化程序,https://github.com/SuperZombi/GICutscenesUI
(能用上这个的不至于不懂命令行吧)
zh2022-06-08 18:30
@zh:还有,原神启动器文件夹里含有hdiffpatch,不用再下载
赵苦瓜2022-06-08 19:21
@zh:确实有hpatchz.exe
zh2022-06-08 18:41
@zh:转换视频建议用ffmpeg,选项比较多
赵苦瓜2022-06-08 19:20
@zh:MKVToolNix是GI-cutscenes自动封装mkv所必需的,没看到GI-cutscenes有写支持用ffmpeg替代
zh2022-06-08 19:56
@赵苦瓜:确实没支持,我是说ffmpeg功能全面,可以自定义
赵苦瓜2022-06-08 19:56
@zh:确实
赵苦瓜2022-07-11 20:39
@赵苦瓜:v0.4.0现在支持ffmpeg了
赵苦瓜2022-06-08 19:18
@zh:这个用Electron写的好像强制要求安装了Chrome,不然会报错运行不了

返回顶部    首页    后花园  
版权所有:赵苦瓜のBlog~    站长: 赵苦瓜    主题寒光唯美式V2.4.1  程序:emlog   鲁ICP备20030743号-1  萌ICP备20222268号    sitemap