ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

原神过场动画提取全攻略:GI-cutscenes 把 USM 转成 MKV 的完整实战指南

2026/8/18 15:07:23 拓冰建站 浏览量
原神过场动画提取全攻略:GI-cutscenes 把 USM 转成 MKV 的完整实战指南 原神过场动画提取全攻略GI-cutscenes 把 USM 转成 MKV 的完整实战指南【免费下载链接】GI-cutscenesA command line program playing with the cutscenes files (USM) from Genshin Impact.项目地址: https://gitcode.com/gh_mirrors/gi/GI-cutscenes玩《原神》时总有几个过场动画让你想反复回味风起地的初见、璃月的群玉阁、枫丹的潮起潮落。可问题来了——游戏里的动画既不能直接导出播放器也打不开游戏目录下那些后缀为.usm的文件。这套文件用的是 CRIWARE 公司的专有封装格式还带着加密普通玩家面对它基本无计可施。GI-cutscenes正是为这件事而生的开源命令行工具它专门读取《原神》的 USM 过场动画文件完成解密、轨道提取、音频转码、字幕装配最后合成一部带字幕、可随时播放的 MKV小电影。从游戏 1.0 版本到 6.3 版本的过场动画都能解密还支持批量处理。本篇文章会从零开始带你把一整条处理链路完整跑通。为什么游戏里的动画不能直接拷出来先理解敌人长什么样后面操作才不会发懵。游戏安装目录的VideoAssets文件夹里躺着大量.usm文件每个对应一段过场。但 USM 不是普通视频它像一只加了锁的保险箱里面同时装着视频、音频和元数据视频轨道VP9 编码被一层密钥加密直接用播放器打不开音频轨道HCA 格式这是 CRIWARE 的加密音频市面上几乎没有通用解码器字幕文件压根不在 USM 里而是存放在游戏数据仓库的Subtitle目录中按语言分文件夹存放。所以要得到能看的视频需要四步拆开 USM 保险箱demux→ 用版本密钥解开视频decrypt→ 把 HCA 音频转成通用 WAV → 把视频、音频、字幕再装进一个 MKV 容器。GI-cutscenes 把这四步全部自动化了这正是它的核心价值。第一步把工具拿到手项目基于 .NET 6.0获取方式有两种按你的习惯二选一。方式一直接拉取源码自行编译git clone https://gitcode.com/gh_mirrors/gi/GI-cutscenes cd GI-cutscenes dotnet publish -c Release -r win-x64-r后面的平台参数按你的系统替换Linux 用linux-x64macOS 用osx-x64。编译产物是独立的单文件可执行程序不需要额外装 .NET 运行时。方式二使用发行版项目为 Windows、Linux、macOS 分别提供两种二进制包一种是自立型自带运行时解压即用一种是框架依赖型体积小但机器上要先装好 .NET 6。普通用户建议直接选自立型开箱即用。拿到程序后同目录下应能看到appsettings.json配置文件和versions.json各版本解密密钥表这两份文件一个都不能少。第二步用一条命令跑通首个 USM 文件先别急着上高级参数我们用最朴素的命令验证整条链路。GICutscenes demuxUsm D:\Game\Genshin Impact\GenshinImpact_Data\StreamingAssets\VideoAssets\StandaloneWindows64\Cs_200211_WanYeXianVideo.usm --output ./output这条命令做了三件事读取指定 USM 文件 → 自动从versions.json里查对应密钥并解密 → 把视频提取为.ivf文件、把 HCA 音频解码为.wav文件全部放进./output目录。跑完后打开输出目录你会看到类似这样的结果output/ ├── Cs_200211_WanYeXianVideo.ivf # 视频轨道VP9 ├── Cs_200211_WanYeXianVideo_0.wav # 日语语音 ├── Cs_200211_WanYeXianVideo_1.wav # 英语语音 ├── Cs_200211_WanYeXianVideo_2.wav # 中文语音 └── Cs_200211_WanYeXianVideo_3.wav # 韩语语音.ivf文件可以直接用 VLC 等播放器预览确认视频没问题后我们进入正题——合并成 MKV。第三步合并成带字幕的 MKV合并之前需要先备好两样食材字幕文件与字体文件。准备字幕数据在工具所在目录执行以下命令稀疏克隆游戏数据仓库里的字幕部分只下载字幕目录不会把整个仓库拖下来git clone --depth 1 --filterblob:none --sparse https://gitcode.com/gh_mirrors/gi/GI-cutscenes注意上面只是演示仓库获取方式实际的字幕数据源是社区维护的AnimeGameData仓库克隆后执行git sparse-checkout set Subtitle把Subtitle目录放到工具目录下的GenshinData/中即可。准备字体文件字幕样式需要字体从游戏目录复制两个 TTF 文件到工具目录且不要改名[游戏目录]\GenshinImpact_Data\StreamingAssets\MiHoYoSDKRes\HttpServerResources\font把其中的ja-jp.ttf日文字体和zh-cn.ttf中文字体复制过来即可。然后执行完整命令GICutscenes demuxUsm Cs_200211_WanYeXianVideo.usm -o ./output -m -s -al jpn,chi参数解释-m合并成 MKV等价--merge-s把字幕也塞进 MKV等价--subs-al jpn,chi只保留日语和中文音轨避免 MKV 里塞满四条语音等价--audio-lang。命令跑完后output目录里会多出一个片名.mkv用任意播放器打开即可看到带游戏内同款样式的字幕。合成完成后工具默认会清理中间产生的.ivf、.hca、.wav临时文件保持目录整洁。小白也能懂它内部到底怎么运作用三个生活化的类比把工具的核心机制讲透。USM 拆解 拆盲盒。工具先读取 USM 文件的头部信息像拆盲盒一样把里面的视频包、音频包按轨道号逐个取出来。加密的视频包需要密钥才能解封密钥由两部分拼成一部分由文件名本身哈希推导另一部分查versions.json密钥表得到。工具会自动完成这个拼装不需要你手动提供。HCA 转 WAV 翻译官。HCA 是 CRIWARE 的私有加密音频普通软件听不懂。GI-cutscenes 里的 HCA 解码模块相当于一位翻译官解密后把采样数据重排成 WAV 这种通用格式全程无损。解码还支持多线程多语言音轨同时翻译速度可观。MKV 合并 装箱打包。把视频、音频、字幕、字体全部码放进一个 MKV快递箱并写好索引信息Cue、标签Tag和附加文件Attachment播放器才能精确跳转、正确渲染字幕。这也是src/Mergers/GIMKV/目录下那一大堆类的职责所在。进阶定制默认能跑调参更好三种合并引擎怎么选0.4.0 版本起工具内置了纯 C# 写的 MKV 合并引擎不依赖任何外部程序。不过它也保留了对传统工具的调用能力用--mkv-engine指定引擎命令值特点适用场景内置引擎internal零依赖开箱即用默认选项绝大多数人够用mkvmergemkvmerge功能最全需装 MKVToolNix对标签、章节有特殊要求FFmpegffmpeg生态成熟支持转码需要改编码格式时如果要用 mkvmerge 或 ffmpeg记得在appsettings.json里填写对应程序路径装在全默认位置或已加入系统 PATH 的可以留空。给视频瘦身指定输出编码想控制文件体积工具支持--video-format和--audio-format指定输出编码。注意一个隐藏规则只要指定了这两者中的任意一个合并引擎会自动切换到 FFmpeg。GICutscenes demuxUsm story.usm -m -s -vf h264 -af aac这条命令会把视频转成 H.264、音频转成 AAC兼容性最好适合导入剪辑软件做二次创作。调字幕样式字幕外观由appsettings.json里的SubsStyle字段控制格式遵循 SubStation Alpha 规范。想改字号、颜色、位置改对应的逗号分隔参数即可{ Settings: { MkvMergePath: , FfmpegPath: , SubsFolder: ./GenshinData/Subtitle, SubsStyle: Style: Default,{fontname},12,H00FFFFFF,H000000FF,H00000000,H00000000,0,0,0,0,100.0,100.0,0.0,0.0,1,0,0.5,2,10,10,14,1 } }比如把字号12改成16字幕就整体变大一号。{fontname}会被自动替换成匹配语言的字体名。三个真实使用场景场景一批量收藏全部过场动画游戏更新后想把整个VideoAssets文件夹里所有过场一次打包GICutscenes batchDemux D:\Game\...\VideoAssets\StandaloneWindows64 -o ./collection -m -s -nc-nc--no-cleanup保留提取的中间文件方便事后排查或复用素材。批量模式支持多线程几十个文件扔进去泡杯茶的功夫就出结果。场景二单独把 HCA 音频转成 WAV有时候你只想要某段语音不需要视频。工具提供了独立的转换命令支持单个文件或整个目录GICutscenes convertHca audio_3.hca -o ./wav_output场景三手动指定解密密钥极少数情况下自动查密钥失败可以用-a和-b分别传入密钥的低 4 字节与高 4 字节十六进制GICutscenes demuxUsm hello.usm -a 00112233 -b 44556677看一眼代码模块是怎么分工的项目结构清晰值得技术读者花几分钟浏览src/ ├── FileTypes/ # 各种格式的解析与转换 │ ├── USM.cs # USM 容器解析、视频解密 │ ├── HCA.cs # HCA 音频解码 │ ├── MKV.cs # MKV 语言/轨道相关常量 │ └── ASS.cs # SRT 转 ASS、字幕样式处理 ├── Mergers/ # 三种合并引擎 │ ├── GIMKV/ # 内置合并器含大量 MKV 元素实现 │ ├── FFMPEG.cs # FFmpeg 封装 │ └── Mkvmerge.cs # mkvmerge 封装 ├── Utils/ # GitHub 更新检查等工具函数 ├── Demuxer.cs # 核心密钥推导 拆流流程 └── Program.cs # 命令行入口与参数定义GIMKV/内部的Elements/目录几乎是 MKV 规范的精读笔记Cluster、SimpleBlock、Cue、SeekHead……对照 doc/mkv spec.txt 这份手工整理的规范笔记可以学到大量 EBML 容器格式的底层知识对想深入研究多媒体容器的人是一份宝藏。高频问题排错指南问题一提示找不到解密密钥症状终端显示Unable to find the second key in versions.json处理新版本过场时常见。原因versions.json里的密钥表落后于游戏版本新版本的密钥尚未收录。解决运行更新命令拉取最新的密钥表GICutscenes update若网络受限可加代理参数GICutscenes update --proxy http://proxy.example.com:8080。如果更新后仍缺密钥说明社区还没收录该版本可以关注项目提交记录或手动从仓库拉取最新的versions.json覆盖本地文件。问题二字幕显示为方框或乱码症状MKV 里字幕文字全是□□□。原因字体文件缺失或者没有放在工具运行目录。解决确认ja-jp.ttf、zh-cn.ttf已从游戏font目录复制到工具同目录且文件名未改动。工具会把字体作为附件封装进 MKV播放器才能正确渲染。问题三想查错却只有一行提示症状报错信息太简略无法定位问题。解决全局追加--stack-trace参数打印完整异常堆栈GICutscenes demuxUsm file.usm -m -s --stack-trace问题四字幕时间轴与音频对不上这多半不是工具的锅——游戏原片本身就存在同步偏差官方动画偶尔也这样。如果确定需要校正可在播放器中手动设置字幕延迟或用字幕编辑软件微调后重新封装。生态与进阶方向这个项目的社区属性很强解密密钥的维护完全靠玩家众筹。每个新版本上线后社区成员会分析出新密钥并提交 Pull Request。如果你恰好具备逆向能力为versions.json补充新版本密钥就是最直接的贡献方式就算不会写代码提交一份 bug 复现报告、补充文档或翻译同样有价值。当前已实现的功能包括音视频提取与视频解密、HCA 转 WAV、多语言字幕与字体封装、纯内置 MKV 合并、多线程音频解码。路线图上图形界面由社区成员开发了配套版本GICutscenesUI更丰富的输出格式与云处理仍在规划中。写在最后技术工具的终极意义是把做不到变成随手做。GI-cutscenes 把游戏公司藏在加密容器里的艺术表达解放了出来——让过场动画不再是通关后就被遗忘的过客而是可以随时重温、对比多语言、甚至进入剪辑软件二次创作的内容资产。现在就去克隆项目从你的游戏目录里挑一段最喜欢的过场动画开始吧。命令行敲下去的那一刻你会发现自己离多媒体世界的底层又近了一步。记住合理使用提取内容、遵守游戏使用条款然后尽情享受这份属于你的收藏。【免费下载链接】GI-cutscenesA command line program playing with the cutscenes files (USM) from Genshin Impact.项目地址: https://gitcode.com/gh_mirrors/gi/GI-cutscenes创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考