欢迎食用『主界面』~,这里是赵苦瓜的看板娘desu~

#
【日常】瞎解包原神文件记录
首页 > 日常    作者:赵苦瓜   2021年2月3日 23:37 星期三   热度:91697°   百度已收录  
时间:2021-2-3 23:37   热度:91697° 

原神3.4_2.jpg


前言:

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

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

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

如果需要寻找官方H5网页活动并从中提取动态live2d立绘、spine动画图片等,请访问我的这个Github仓库:

Zhaokugua/GI-WebActivity-Library: 原神网页H5活动链接收集 | Genshin Impact H5 Web Activity Collection (github.com)


CG动画尝试解包

从3.0妮露的CG开始官方投稿的CG画质也升级到4K60帧了,比游戏里放的1080P30帧强多了呜呜

翻了一下原神的资源目录

在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文件了。


【如果转换原神新版本的视频文件的时候出现错误】

从2.7版本开始,原神的usm文件的key只在游戏中需要播放cg动画的时候才会联网获取,而不是像之前一样可以直接从游戏中解包出来。

如果使用GICutscenes转换原神新版本时出现报错,可能是存放cg动画密码的文件versions.json没有更新,可以去官方仓库下载这个文件然后更新替换一下。

可能版本更新前几天这个文件还没更新,可以耐心等待他们对新版本的cg密码进行抓包更新。



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

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

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



这里也有B站绿菟葵花精灵王」已经转换好的视频,每次更新他都会及时传上去,四国语言都有,无水印的。

可以去b站看到所有的视频,也可以用唧唧Down等软件下载下来直接作为素材使用。






之前踩的坑(不适用于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(新版本好像改成vgmstream-cli.exe了)上面就可以转换了,转换完成的音频就可以播放了。

批量转换:写一个bat:

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


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

把这个bat和想要转换的wav文件放在同一个文件夹,运行这个bat即可将文件夹内所有wav文件全部转换并且删除原来的转换之前的文件

如果转换完不想删除的话,把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里面似乎是一些背景音,风声,鸟叫声,狼嚎声,海浪声,嘈杂的集市声,蒙德主题曲片段等

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

*20230816更新 好像四国语音换位置了,在YuanShen_Data\Persistent\AudioAssets里面

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


不过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


字体文件

可以取巧直接用它用在Web的字体

Genshin Impact\Genshin Impact Game\YuanShen_Data\StreamingAssets\MiHoYoSDKRes\HttpServerResources\font这个路径

国服有zh-cn.ttf简中和ja-jp.ttf日语两种字体。


blk解包

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

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

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

在release下载最新版即可。

(仓库好像被DMCA了,用这个试试Tools / Studio · GitLab或者这个RazTools/Studio: Modded AssetStudio with new features (github.com)

然后像使用AssetStudio一样,左上角选择File -> Extract folder,选择Genshin Impact\Genshin Impact Game\YuanShen_Data\StreamingAssets\AssetBundles\blocks文件夹,然后等待他载入即可。

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


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

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

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

原神blk解包.JPG


Property_Prop_GorouBillboard_02_Diffuse.pngStages_Deca_Typeface_01_SMBE.png

如果只是想要找一些贴图,也可以到这个仓库看看

https://github.com/umaichanuwu/GenshinLinks

这里面都是大佬解包好的贴图文件,也都做好了分类,可以直接查看。


关于hdiff拆分更新文件:

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

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

https://github.com/sisong/HDiffPatch


关于网页活动

从网页活动里还可以获得一些别的素材,比如在新版本现行展示页中有版本PV的纯音乐、角色的live2d动态立绘、spine动画等等。

这里收集了所有有关活动页面的链接,可以去看一下:

Zhaokugua/GI-WebActivity-Library: 原神网页H5活动小游戏链接收集 | Genshin Impact H5 Web Activity&MiniGame Collection (github.com)




7D}KQSDSXMC4ZW6Y1Z%PV(9.jpg

本文作者:赵苦瓜      文章标题: 【日常】瞎解包原神文件记录
本文地址:https://blog.jixiaob.cn/?post=49
版权声明:若无注明,本文皆为“赵苦瓜のBlog~”原创,转载请保留文章出处。
月光2022-09-27 19:42
网上找了很多地方都没有成就解包的方法
在回复中看到了大佬们的对话,尝试解包成功了
分享一下自己解包的过程,也感谢大佬们的分享

成就解包的一点经验仅供参考(手动傻瓜式操作)

https://github.com/Dimbreath/GenshinData
先到这个仓库把当前版本的资源文件下载下来,再把上个版本的资源文件下载下来
进行对比版本新增了多少成就

下载好后,不解压直接打开,找到文件直接拖出来
【当前版本资源文件】
ExcelBinOutput文件夹里的两个文件,第4第5个
AchievementExcelConfigData.json(成就配置文件)
AchievementGoalExcelConfigData.json(成就目录配置文件)
TextMap文件夹里的TextMapCHS.json(成就文本就在里面)
【上个版本资源文件】
仅需要成就配置文件拖出来AchievementExcelConfigData.json

准备工作就算完成一半了

接下来把这两个版本的成就配置文件JSON转Excel下载下来
https://wejson.cn/json2excel/

打开两个版本的Excel,用id来对比版本差异
在当前版本id旁插入1列,复制上个版本的id列过来
选中id两列高亮重复值,筛选排序获得成就新增的id

左下角添加新的工作表,然后把这三列数据复制过去
goalId是成就目录(天地万象......)
titleTextMapHash是成就名称
descTextMapHash是成就说明

goalId还需要打开成就目录配置文件AchievementGoalExcelConfigData.json
找到对应的id,空的是天地万象不用找,对应id的nameTextMapHash就是目录名称

以上就获得了当前版本成就新增的数据,通过数据在TextMapCHS.json里查找对应的文本就搞定

手动成就解包速度快一点10分钟左右就能完成,如果有技术能力可以制作一些工具插件加快解包速度
@月光:嗯,其实Dim那个仓库就是已经Dump好了之后的res资源文件
感觉确实可以根据这个写个小工具对比出来新增成就
emiiop2022-09-27 06:29
有大大有以前过场动画的文件吗?
我想重看以前雪山和海灯节的cg,结果没有找到qq
@emiiop:emm如果带宽够的话可以下载之前版本的拆分更新包,原神每个版本的更新包链接一直都是开放下载的。
https://github.com/kyou-nase/GI-Download-Library
这个仓库里有所有版本的下载链接汇总,可以去看一下
@emiiop:另外博客里面附的「绿菟葵花精灵王」的视频应该是收录了所有的CG文件,在他那里应该也能找到
emiiop2022-09-28 02:22
@赵苦瓜:谢谢你,我会试试看
我有看他那个视频,可是他好像也不是全部都有,像是1.x 版本的散兵,冰树等的活动cg好像都没有
@emiiop:也有可能有些CG是实时渲染的,并不是这种usm视频,比如宵宫传说任务放烟花那个就是实时渲染的,还有御前决斗结束后雷电将军终结女士也是实时渲染的
emiiop2022-09-29 03:16
@赵苦瓜:宵宫那个居然是实时的!!
@emiiop:嗯,我第一次知道也很惊讶
Yuee2022-09-18 12:55
HoYoStudio被DMCA关闭了,请问楼主有备份的版本能分享一下吗
@Yuee:没有qwq
lhy2022-09-25 14:29
@Yuee:我有个,你要吗?net5.0的

百度网盘
链接:https://pan.baidu.com/s/1oO2hde48JODHtIckcaJK5w?pwd=HoYo
提取码:HoYo
1145142022-10-26 16:49
@Yuee:https://github.com/TomyJan/HoYoStudio/releases/tag/v0.17.00    第五个 6.0的
Studyrat2022-09-17 16:42
想问一下大佬,地图的素材在哪个文件里
@Studyrat:具体的文件我也没研究过qwq
应该都在那些blk里面
迷城骇兔2022-08-15 18:46
大佬现在8月15日了,会提取动作了吗
@迷城骇兔:为啥都在想要提取动作呀qwq
darie2022-08-15 16:35
大佬请问游戏内场景有没有办法提取呢
@darie:场景都是建模+贴图,需要在blk里面自己找(
darie2022-08-15 21:44
@赵苦瓜:感谢大佬!模型和贴图都有了,但还原场景的话是不是还要unity相关的内容了
@darie:可能吧,我也不太清楚,我不太懂这些qwq
渡子2022-08-26 12:16
@darie:你好,我也在往这方面靠,方便加一个交流下么
rice2022-08-15 00:34
Cs_MD_EQ400650301_IslandFlash_Boy.usm等六个文件转化失败啊,怎么办
@rice:可能是你没更新versions.json,你转化失败的这几个文件应该都是2.8更新的,需要手动到仓库下载versions.json文件然后替换掉原来的,这样就有2.8版本更新的密码了
rice2022-08-16 01:37
@赵苦瓜:好的,我试试啊
rice2022-08-16 01:56
@赵苦瓜:谢谢大佬,亲测有用,不过Cs_Inazuma_LQ1204208_TheSacredTree_Girl.usm这个文件转化出来无法渲染怎么回事呢
@rice:我这没啥问题鸭,你再转一遍试试,这个应该是影种下神桜树的那个CG吧
rice2022-08-16 16:36
@赵苦瓜:是的,转完用mhc完全打不开,用potplayer打开卡顿
rice2022-08-16 20:55
@赵苦瓜:还有大佬,有没有崩坏三cg的解密方法啊
@rice:三蹦子还没试过,之前搜资料的时候说是没加密可以拿vgmstream直接解
失忆了2022-12-08 01:02
@赵苦瓜:需要手动到仓库下载versions.json文件然后替换掉原来的,这样就有2.8版本更新的密码了。大佬这段话我看不懂,想请教一下。仓库下载?仓库在哪里?这个versions.json文件的文件我找遍了原神文件夹都没有找到。这里真正不懂怎么操作了,我有10个文件转换失败。
@失忆了:仓库就是GI-cutscenes的那个github,地址是https://github.com/ToaHartor/GI-cutscenes
进去之后就能看到versions.json文件了
失忆了2022-12-08 16:47
@赵苦瓜:谢谢大佬!弄好了。爱你!
sys2022-07-31 08:00
@赵苦瓜 你好,我在提取音乐时注意到,使用quickbms提取出来的wem文件,若使用装载了foo_input_vgmstream.fb2k插件的foobar2000进行完整性排错,大多数文件出现错误,类似“警告: 报告的长度不准确: 1:00.010000 和 1:00.010667 解码”。这样的情况是不是也影响了乐曲的数字正确性?
@sys:[挠头]我也不清楚
chazime2022-07-14 17:59
站长,你的过场CG会出现解码后部分画面花屏吗
@chazime:不会吧,我解完还花了两三个小时全部看了一遍
可能是解码器的问题吧,试试换个播放器,potplayer之类的
sura2022-07-11 21:04
请问大大  怎么提取动作?  那些animation导出来好像不能用
@sura:我也不会qwq
我就是个菜鸡
氪多多2022-08-10 23:45
@sura:好兄弟,我想问一下你后来找到办法提取动作了吗,我也想拿官方的动作去玩重定向
@氪多多:模型替换倒是有教程,提取动作是真不会
Radium2022-09-03 13:30
@赵苦瓜:可以分享一下模型替换的教程吗?谢谢
@Radium:https://github.com/SilentNightSound/GI-Model-Importer
再多就不方便透露了,可以自己去研究

返回顶部    首页    后花园  
版权所有:赵苦瓜のBlog~    站长: 赵苦瓜    程序:emlog   鲁ICP备20030743号-1   鲁公网安备37048102006726 萌ICP备20222268号    sitemap