十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

《原神》USM过场动画提取实战指南:用GI-cutscenes把游戏动画变成可收藏的MKV

《原神》USM过场动画提取实战指南:用GI-cutscenes把游戏动画变成可收藏的MKV 《原神》USM过场动画提取实战指南用GI-cutscenes把游戏动画变成可收藏的MKV【免费下载链接】GI-cutscenesA command line program playing with the cutscenes files (USM) from Genshin Impact.项目地址: https://gitcode.com/gh_mirrors/gi/GI-cutscenes很多《原神》玩家都有过这样的遗憾游戏里那些精美绝伦的过场动画明明想反复回看、收藏甚至分享却发现它们在游戏目录里是一堆看不懂的.usm文件直接用播放器根本打不开。GI-cutscenes 就是为解决这个问题而生的命令行工具——它能把《原神》的 USM 过场动画文件解密、提取、转换最终合并成一部带字幕的完整 MKV 电影让你在任何设备上都能流畅播放。今天这篇文章我会以一个新手的视角带你从零跑通整个流程。为什么直接用播放器打不开先弄懂 USM 是什么在你动手之前先花一分钟搞清楚问题出在哪后面会少踩很多坑。.usm是日本 CRIRender/Criware 公司开发的一种专有媒体容器格式原神使用它来封装过场动画。它和.mp4这类开放格式最大的区别是里面的视频轨和音频轨都被加密了而且音频用的 HCA 编码也是封闭标准普通播放器根本无从下手。换句话说你拿到的是一本加了锁、还用特殊方言写的书。而 GI-cutscenes 干的事情就是三件解密用游戏版本对应的密钥解开 USM 里的加密数据转换把加密的 HCA 音频解码成通用的 WAV把视频还原成 IVF内部是 VP9 编码合并把视频、音频、字幕、字体打包进一个标准 MKV 文件。全程不需要你懂任何底层原理一条命令就能搞定。工具支持解密 1.0 到 6.3 版本的所有过场动画覆盖面相当广。第一步拿到工具装好环境获取项目项目基于 .NET 6.0 开发你可以直接下载官方发布的预编译版本Windows、Linux、macOS 都有还分独立版和框架依赖版前者免安装 .NET 直接跑后者体积小但要装运行时。如果你更喜欢从源码构建可以这样git clone https://gitcode.com/gh_mirrors/gi/GI-cutscenes cd GI-cutscenes dotnet publish -c Release -r win-x64 # 平台可换成 linux-x64 / osx-x64小贴士如果本地装了 Visual Studio 2022直接打开GICutscenes.sln解决方案文件点构建也行。准备字幕数据想要字幕的必看默认情况下字幕是从游戏数据仓库里读取的路径配置在appsettings.json的SubsFolder字段默认是./GenshinData/Subtitle。你需要把字幕数据放到这个位置git clone --depth 1 --filterblob:none --sparse [字幕仓库URL] cd GenshinData git sparse-checkout set Subtitle准备字体文件仓库本身不带字体但 MKV 里要内嵌字体才能让字幕正确显示。去游戏安装目录里复制这两个文件不要改名放到工具目录下[游戏目录]\Genshin Impact game\GenshinImpact_Data\StreamingAssets\MiHoYoSDKRes\HttpServerResources\font里面是ja-jp.ttf日文字体和zh-cn.ttf中文字体。第二步跑通最小示例先成功一次环境就绪后我们先拿一个过场动画文件练手。找到游戏目录下的 VideoAssets 文件夹里面全是.usm文件挑一个GICutscenes demuxUsm Cs_MDAQ019_DragonInCity_Boy.usm --output ./output --merge --subs拆开看这条命令做了什么参数作用demuxUsm提取单个 USM 文件--output ./output输出到 output 目录--merge合并成 MKV不写的话只提取原始素材--subs把字幕也塞进 MKV运行后你会在 output 目录里得到一个同名.mkv文件用 VLC 或 PotPlayer 打开——恭喜你已经把游戏动画变成一部可收藏的电影了字幕的样式、字体、颜色都是按游戏内的风格还原的看起来就像在游戏里播放一样。小贴士命令没指定密钥程序会自动根据文件名在versions.json里查找匹配的版本密钥。所以请保持versions.json是最新的这点后面会细说。第三步进阶玩法从够用到好用跑通一次之后你肯定会遇到新的需求动画太多一个个提取太慢、想要特定语言的音轨、想控制输出格式……这些 GI-cutscenes 都想到了。批量提取整个文件夹 游戏里几十个过场动画一条命令全部处理GICutscenes batchDemux [游戏目录]\GenshinImpact_Data\StreamingAssets\VideoAssets\StandaloneWindows64 --output ./output --merge --subs --no-cleanup--no-cleanup的意思是合并完成后保留提取出来的中间文件视频、音频、字幕方便你调试或二次加工。不加这个参数程序会在合并成功后自动清理省硬盘空间。多语言音轨自由选择 过场动画通常内置四国配音中、英、日、韩你可以在合并时指定要保留哪些GICutscenes demuxUsm file.usm --merge --subs --audio-lang chi,jpn这条命令只保留中文和日文音轨做多语言对比学习特别方便。切换合并引擎与编解码器 ⚙️从 0.4.0 版本开始内置的 MKV 合并引擎已经足够强大不依赖任何外部软件。但你也可以指定用 mkvmerge 或 FFMPEG# 用 mkvmerge 合并需安装 MKVToolNix GICutscenes demuxUsm file.usm --merge --mkv-engine mkvmerge # 自定义音视频编码此时引擎会自动切换为 ffmpeg GICutscenes demuxUsm file.usm --merge --audio-format aac --video-format h264默认输出的是原始画质VP9 视频 PCM 无损音频。想压缩体积再指定编码格式。单独转换 HCA 音频文件 如果只想处理音频convertHca命令更轻量GICutscenes convertHca audio_0.hca它会将 HCA 解码成标准 WAV 文件音频质量无损。最容易踩的三个坑帮你提前排掉 ⚠️坑一提示找不到解密密钥游戏更新后新的过场动画密钥可能还没收录。症状是命令行提示类似Unable to find the second key in versions.json for xxx。解决办法更新versions.json文件GICutscenes update这条命令会自动拉取最新的版本密钥文件并顺带检查工具本身有没有新版本。如果网络环境特殊还可以走代理GICutscenes update --proxy http://proxy.example.com:8080如果versions.json里依然没有你需要的密钥不妨去项目的 Pull Requests 看看——社区玩家往往第一时间就提交了新密钥。你如果手上有新版本密钥也欢迎提交 PR 回馈项目这正是开源项目能持续跟进游戏更新的原因。坑二字幕显示为方框或乱码九成是字体问题。请确认ja-jp.ttf和zh-cn.ttf已经从游戏目录复制到工具目录且没有改名appsettings.json里的SubsStyle配置没被破坏。如果你觉得字幕太小或位置不对可以直接改SubsStyle这个配置项它遵循 SubStation AlphaASS字幕格式的样式规范像12是字号、H00FFFFFF是字体颜色按需调整即可。改坏了也不怕运行GICutscenes reset一键恢复默认配置。坑三字幕和音频不同步有些玩家发现字幕时间轴对不上。其实游戏原文件本身就存在这个现象个别过场动画在游戏内播放时字幕就是延迟的这不是工具的 bug。遇到这种情况只能靠字幕编辑工具手动微调偏移量。原理速览它内部是怎么工作的作为技术爱好者你可能会好奇背后的实现。整个项目是清晰的模块化结构src/ ├── FileTypes/ # 文件格式核心USM 解析、HCA 解密、MKV/ASS 处理 ├── Mergers/ # 三种合并引擎内置 GIMKV、FFMPEG、Mkvmerge ├── Utils/ # 版本更新、工具函数 ├── Demuxer.cs # 解密密钥的查找与拆分逻辑 └── Program.cs # 命令行入口与参数解析核心处理链路是USM 解析 → 分离音视频轨 → HCA 解密转 WAV → SRT 字幕转 ASS → 多轨合并为 MKV。其中解密这块挺有意思src/FileTypes/USM.cs里实现了掩码mask算法用key1、key2两个密钥生成 32 字节的掩码数组分别对视频和音频数据进行异或解密。而密钥本身有两段来源一段由文件名通过哈希算法算出来Demuxer.cs里的EncryptionKeyInFilename另一段则查versions.json。所以哪怕文件名变了程序也能推导出对应密钥。内置合并引擎src/Mergers/GIMKV/更是一个完整的 MKV 容器构建器它会解析 IVF 视频流、WAV 音频流和 ASS 字幕流把每一帧数据写入 Cluster 块同时生成 Cues索引和 Tags元数据最后拼装成符合规范的 MKV 文件。多语言音轨的合并还支持多线程音频解码处理速度相当可观。一些让你用得更好的小技巧 保留中间文件做创作素材想用提取的素材做视频剪辑加--no-cleanup你会拿到.ivf视频文件和.wav音频文件直接用剪辑软件导入即可。批量处理的性能优化batchDemux内部会并行处理只要硬盘读写跟得上几十个文件也能较快跑完。遇到看不懂的报错加上--stack-trace参数终端会打印完整错误堆栈方便排查问题。配置被改乱了任何时候运行GICutscenes resetappsettings.json会恢复默认。结语让精彩不再只存在于游戏里从今天起那些让你反复回味的《原神》过场动画不再只是游戏里转瞬即逝的片段。用 GI-cutscenes 提取、合并成 MKV 后你可以把它们放进 Plex、Jellyfin 这样的媒体服务器随时随地在大屏上重温也可以提取多语言音轨和字幕做语言学习素材还可以把无字幕的原片素材用于二次创作。工具的价值在于怎么用它。提取内容请遵守游戏的使用条款合理使用、分享快乐。现在就去找到你的第一个.usm文件跑通那行命令然后享受收藏了整部《原神》电影的成就感吧【免费下载链接】GI-cutscenesA command line program playing with the cutscenes files (USM) from Genshin Impact.项目地址: https://gitcode.com/gh_mirrors/gi/GI-cutscenes创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表