英雄联盟音频文件整理计划 —— 12.17
书接上文, 去年疫情在家萌生出一个想法, 整理英雄台词文件. 但后续因人工校对工程量大、更新频繁等问题一直进度缓慢. 所以将其分割为两个计划, 一、文件整理计划, 二、音频"转写" 计划. 计划一已经差不多了, 后续按时更新即可, 计划二需要小伙伴们一起协助完成.
当前进度
由于游戏每半个月更新一次, 虽然对一整年来说只更新24次, 但每次都需要手动更新还是挺麻烦的. 涉及到游戏文件两次解包, 还有音频文件与触发事件对应哈希要处理.
所以编写了一系列的脚本用来处理相关事件:
py-bnk-extract
这是一个音频文件解包的程序, 英雄联盟使用Wwise来处理音频的, 其打包后的文件就有wpk和bnk两种文件. 当前模块就是用来处理这些事件, 提供事件文件还可以按照事件文件夹来解包. 整个模块编写参考 https://github.com/Morilli/bnk-extract, 这里特别感谢原作者Morilli.
简单梳理一下逻辑, 英雄对应皮肤配置相关文件
data/characters/{champion}/skins/skin0.bin
其文件中包含音频触发事件, 就是什么时候播放这个音频. 比如: 有些英雄放个技能说一句话, 看见谁说什么话. 从中提取出发事件以及其哈希值, 也就是对应ID.
再从wpk或bnk中获取音频相关信息, 根据上一步获取的哈希值对应分类解包. 不提供事件的话就直接解包不分类罢了.
lol_extract_voice
这个就是批量操作了, 正常我们提取语音, 是需要解包wad, 找到bnk、wpk再进行解包. 如果需要时事件, 还需要处理皮肤bin文件. 这个包就是将所有带有音频文件wad, 将其中bnk、wpk文件以及皮肤bin文件解包, 再使用上述包处理成wav或是其他格式文件.
当前这个代码也有些许问题, 只能解包本地游戏文件、没有对旧版本游戏进行支持. 旧版文件这个因为目前没有这个需求, 所以没动力去做这件事. 而前者早就优化了, 但是并没有在这个仓库中体现. 因为设计一些接口怕被滥用, 所以单独私有仓库更新. 前段时间写的安卓Termux介绍的文章, 这个脚本就在手机上跑.
整个逻辑就是先根据拳头的cdn获取新版游戏文件, 完成后再进行上述操作. 对于获取新版文件这部分很繁琐, 有兴趣可以去GitHub上开源仓库https://github.com/CommunityDragon/CDTB, wad解包部分也参考了不少这个仓库.
Gitvoice(暂定)
这是我和点木发起的一个"组织", 这个仓库用来存放英雄音频文件, 这些文件用于网站试听. 点木之前也一直在做类似的网站: https://lol.modty.top/, 现在也在更新. 但目前所有资源均存放在服务器中, 这种资源如果没有限制被打网站就挂了. 所以为后续考虑将资源暂定放在GitHub用jsdelivr进行cdn加速.
虽然这么做违反了jsdelivr规定(做这类资源cdn), 先试试. 不行再考虑其他, 例如onedrive啥的. 在GitHub中有一点好处就是, 可以单独管理指定英雄, 如果以后组织人多, 可以1个人处理几个甚至一个仓库进行更新. 可以单独管理英雄仓库进行更新, 后续发展可能更好吧(理想状态).
目前该仓库已经上传了一版音频文件, 考虑到后续如果有小伙伴想和我们一起玩, 使用国内的仓库(coding.net)进行管理资源, 然后使用GitHub Action或是coding的持续集成进行仓库同步, 这样在本地管理时不会出现同步仓库时GitHub无法访问的问题.
试听网站
根据Gitvoice整理的文件, 做出了第一版的试听站. 事件用关键词替换成中文了, 大部分语法顺序都是不对的, 但是可以看懂. 因为是用脚本批量替换, 所以肯定有和原事件不符的. 这部分还没有一个完善的反馈计划, 还在打磨中.
资源
下载说明
Onedrive是利用其网盘搭建的一个分享站,但是是有访问频率限制的。如果打开出现xxx限制字样,说明访问量已经到达官方限制,次天会完全恢复,如果遇到相关问题,可以等待或使用其他方法下载。
解压密码请关注B站ID:Virace,https://space.bilibili.com/12353537。并私信“英雄联盟音频”即可获取。
更新日志
- 2022年08月29日 —— 12.17
- 2022年06月09日 —— 12.11
- 2022年03月06日 —— 12.6
- 2021年06月13日 —— 11.20
下载地址
- 阿里云盘:https://www.aliyundrive.com/s/8q7KKdH3JpR 提取码: f68b (阿里云盘无法下载英雄音效)
- Onedrive:https://one.x-item.com/League%20of%20legends?hash=w2zAVJED
- 备份站:https://alist.x-item.com/League%20of%20legends 密码: x-item
后续会选择性更新, 可能是目前最全的合集了, 除游戏大厅那些按钮音效等, 其余游戏所有音频全部包含. 游戏内的音效也是用事件文件夹分好类了.
但是文件名还是以ID形式存在, 并不是实际台词. 那就是之前那个计划了: 英雄联盟英雄台词语音音频文件整理
处理几个仓库, 以及编写更新脚本花了大量的时间. 希望因为这个更多视频作者可以获益吧~
文章评论
太牛了,大佬
是ZIP提取,需要密码
@z 解压密码请关注B站ID:Virace,https://space.bilibili.com/12353537。并私信“英雄联盟音频”即可获取。
@管理员 我想找台词,但是太多了找不到咋办
@z 可以关注一下: https://modty.top/ ,但是站长因为一些原因已经是暂停更新了。如果说仅对于某个英雄是很好找的,多不超过100多个文件,简单试听一下就可以找到。碍于全部音频文件过多,网站无法承载等原因,在线的试听以及台词整理一直在搁置,可以后续关注一下。
@管理员 抱歉 抱歉,萌新是真的不知道哇
作者 作者 ,这个提取密码是多少啊
之前我偷懒只下了一个文件,原来是要把所有文件都下载才好解压。请原谅我这个小白。感谢,辛苦了。中秋快乐~
@Jojo 已经考虑到这个问题了,前些天已经着手修改更新方案了。最快今晚用新的方案更新,每个英雄单独分开处理。
用阿里云下载完成,解压文件的时候说 压缩文件格式未知或已损坏 ,这个怎么解决啊
@寒霜 提供了压缩包的校验信息,可以看下。另外分卷需要放在一起才可以解压。