GICutscenes原神过场动画提取 内嵌字幕多音轨
GICutscenes原神过场动画提取 内嵌字幕多音轨
FrozenSky自4.6版本开始,原神部分过场动画是游戏内实时渲染的,无法通过本文方法提取。
简要说明
使用到的工具:
- 原神PC客户端
- GI-cutscenes https://github.com/ToaHartor/GI-cutscenes
- ffmpeg https://ffmpeg.org
- AnimeGameData https://gitlab.com/Dimbreath/AnimeGameData
原神PC客户端自不必说,所有动画 usm 文件都要从客户端里找。GI-cutscenes 是用来从 usm 文件中解密、提取、合并音视频的,它依赖 ffmpeg 视频库。我这里不仅要提取出动画,还要内嵌中、日字幕,所以还要下载 AnimeGameData 这个仓库,需要用到里面的字幕文件。还有,为了还原游戏内的字幕样式,还需要原神的字体文件,它们也能在客户端中找到。如果没有添加字幕的需求,就不用下载 AnimeGameData。
准备工具
ffmpeg
很多播放器软件可能已经将 ffmpeg 安装到系统中了,打开 cmd 终端,输入命令:
1 | ffmpeg |
如果正常显示版本号等信息,说明系统中已有 ffmpeg,不用再下载安装了。
否则,通过官网下载 ffmpeg for Windows 可执行文件包:
https://www.gyan.dev/ffmpeg/builds/ffmpeg-git-full.7z
解压并复制 bin 目录下三个 exe 文件到任意文件夹内,如:E:\Environment\ffmpeg
将该文件夹路径添加到系统环境变量,然后重新打开 cmd 终端输入命令验证一下。
GI-cutscenes
注意!如果需要自定义配音语言(使用 --audio-lang
参数),不要从其 GitHub 仓库中直接下载 Release 版本,这些版本编译时间较早,没有自定义语言的功能(详见Issue: #127)。我编译生成了最新的版本,下载地址:https://frozensky.lanzoue.com/iNugd20ije6f
解压 GI-cutscenes 到任意目录,最好是全英文路径且不含空格。
修改 appsettings.json
这是软件的配置文件,我压缩包内是已经配置好的。附上相关注释,可按需修改。
1 | { |
versions.json
要特别注意这个文件,原神过场动画的 usm 文件都是加密的,version.json 是每个动画的密钥,为了防止剧情动画被提前偷跑剧透,miHoYo 只有在游戏播放动画时才在线发送密钥给客户端,所以这个文件要随着游戏版本进行更新,否则无法解密最新的动画。在我编译的压缩包里已经附带了 2024-05-21 前最新的 versions.json。如果后续版本要更新它,可以到作者仓库 pull requests 里面找找,一般都会有大侠提供最新版的文件。
AnimeGameData (可选)
想在动画里内嵌字幕的话才需要下载这个,我们只要其中的字幕文件,不用下载整个仓库,只把 AnimeGameData\Subtitle 目录下载下来即可。解压后将其放到 GI-cutscenes 软件的这个路径下 “GI-cutscenes\GenshinData\Subtitle”。
目录内含多国语言字幕,可以根据需求保留你想要添加到视频里的语言,比如我只要简中、繁中、日文,那么可以保留 CHS, CHT, JP 这三个文件夹,其他皆可删除。注意!CHS文件夹不能删除!
字体 (可选)
字体文件在原神PC客户端这个路径下:
1 | \Genshin Impact Game\GenshinImpact_Data\StreamingAssets\MiHoYoSDKRes\HttpServerResources\font |
将 zh-cn.ttf 和 ja-jp.ttf 复制到 GI-cutscenes 所在目录。
提取动画
原神过场动画存储在:
1 | Genshin Impact\Genshin Impact Game\YuanShen_Data\StreamingAssets\VideoAssets\StandaloneWindows64\ |
操作前还是建议把他们从客户端复制到别的地方,防止误操作损坏文件。
进入 GI-cutscenes 软件目录,打开命令提示符,相关的命令如下:
提取指定动画
1 | # 提取指定的 .usm 文件,合并音视频,添加字幕,音轨选择 |
举个栗子:我想提取 Cs_Fontaine_LQ140091201_SLRC_Girl.usm 文件中的动画,要内嵌字幕,并且添加中日双语配音,则命令如下:
1 | .\GICutscenes.exe demuxUsm "E:\ys_videos\Cs_Fontaine_LQ140091201_SLRC_Girl.usm" --merge --subs --audio-lang "chi,jpn" |
批量提取
1 | # 提取目录下所有动画文件,合并音视频,添加字幕,音轨选择 |
提取出的动画被封装为 mkv 格式,播放时可以自由切换配音和字幕。