守望先锋 1.14 版本后更改了底层数据格式
参考老文章: Overwatch Toolchain 解包方式考察,OW 音频小站一直以来使用原始文件 hash 的办法,便每次更新以后,都能区分旧数据和新增数据,使得每次更新的条目数量都在合理范围。但从版本 1.14 开始,暴雪更新了内部数据格式,这个是由蓝帖明确提到的,目的是减少之后的每次客户端更新时的下载。
但这对本小站来说不亚于一次冲击。这意味着,直到 1.13 版为止的条目,和从 1.17 版开始的所有条目,无法从数据角度建立『新』与『旧』的联系。
也就是说,明明从用户角度来说是同一句台词,音频波形也一致,但由于 OW 内部格式的变化,导致 hash 计算的结果变化,使得从数据角度来说,它们变成了两个不同的条目。
比如: 【D.Va】D.Va 一分,坏蛋零分。(1.17 版本) 的 hash 计算结果是 5908654fbc3965232689836abb249c57,而
【D.Va】D.Va 一分,坏蛋零分。(1.16 或更早版本) 的 hash 计算结果是 1d99c1739f5b0844f57f3a1a5fbb4580。
我做了很多尝试,试图恢复一些信息,把这些本质相同的音频重新联系起来,有些成功了,有些失败了。最后我把匹配成功部分更新到原有条目上,匹配失败的部分按『新增音频』对待,添加到数据库里。
- 尝试使用音频分析软件批量比较,如果成功,理论上这是最好的办法。
- 这是本质的解决办法,如果两个音频文件的波形完全一致,则两个音频当然是一样的。
- 尝试了 Audacity 和 Similarity,前者缺乏批量功能,后者无法对这种只有一两秒的音频进行比较,均告失败。
- 尝试使用新版本拆解工具拆解旧客户端,失败,但得到了启发。
- 因为拆解所用的 Toolchain 工具链(简称 TC)本身有自己的文件名系统,而我亦保留了过去所有版本的原始拆解数据,理论上能通过新旧版本文件的相同路径名等信息恢复联系。
- 测试以上两条 D.VA 音频的 TC 路径分别为:
- 旧(1.13):cn\heroes\D.Va\Sound Dump Full\_Base\000300000057\000000020231.wem
- 新(1.18):cn\HeroVoice\D.Va\00000000059F.078\000000020231.wem
- 测试成功。
- 进入实操,发现由于旧版本拆解工具的不完全,数据存在错误,依然有许多坑要填:
- 一,多个不同的 TC 文件名对应同一个 hash,即多个 1.18 新文件条目对应同一个 1.13 旧条目 hash,错误在旧版拆解工具自带的文件名系统有 bug。
- 解决办法是视为多个条目,并将旧条目的听写内容更新到各个新条目上。
- 对于网站用户来说,同一个关键词可能会搜索出几条内容,但其中应该至少有一条是对得上的
- 二,同一个 TC 文件名对应多个一个 hash,即同一个 1.18 新文件条目对应多条旧的 1.13 旧条目,显然错误还是旧版折解工具的不完善
- 一,多个不同的 TC 文件名对应同一个 hash,即多个 1.18 新文件条目对应同一个 1.13 旧条目 hash,错误在旧版拆解工具自带的文件名系统有 bug。
这次更新正常应当在 1.14 新版数据格式更新,1.17 新版拆解软件开发成熟以后更新,但这数据处理是真 TM 麻烦啊,烦死了。
ow.thnuclub.com 更新与计划更新
小站因为忙停更了一段时间,结果被各种催更。值此国庆佳节加之周末免费,趁势也更新一下,再开些空头支票。
- Done:更新末日铁拳、地平线月球基地及其它英雄新增语音。(1.13 版客户端拆解)
- Done:去掉了早期开发的赞与踩功能。
- Done:调整了下界面,加了圆角、阴影,js 代码的报错部分也处理了。
- Done:加了打赏按钮。
- Done:更新 36729 条音频的 MP3,音质略有提升。
- Done:当条目文字很长时改用换行式,取代当前的隐藏式。
- Done:编辑条目时按 Ctrl+Enter 直接提交当前条目并自动打开下一条的编辑界面并同时播放音频。
时间有限,只处理了增量更新部分。旧数据的疏漏错误更新后依然存在。他日有空再逐步更新旧数据。
在去年小站刚出来时,曾指望让热心用户通过 vote / devote 功能,把『有内容的音频』也就是台词、音乐等条目上浮到前几页,让意义不大的嘈杂环境音下沉。但事实看来结果不好,一来是用户并没有很好地理解该功能。后台数据显示,被踩得最多的是源氏的龙神拔刀,其次是麦爹的午时已到。想必是冤魂太多,多少发泄一下吧╮( ̄▽ ̄”)╭。二来呢,我看到这个数据以后也就懒病发作,没有继续考虑改进该功能了。后来还短暂地改成『倒放音频』,也就是猎奇一番,甚不实用。今日该功能彻底取消,就当是当年那几千投票,终于修正成果了吧。
主要新增数据会用黄色标签显示在上方。条目按钮加了细微的圆角和渐变阴影,整体会更柔和一些。同时每页条目数从 200 条减少到 100 条,相应的显然页码数量也加了一倍。因为网页背景本身是守望的全屏截图,故整体风格不会有大的变化,没有前后对比,不仔细看的话应该看不出来。修正 JS 报错这事其实也可做可不做,只要不搞死页面,能正常执行功能,jQuery 也就这样了。
这个没啥说的,目前平均也就每周一罐可乐,但听见叮咚声时的好心情很值钱。摊开算收益的话应该现在就把小站关掉,每年能省千儿块服务器钱。
音频文件的处理路径是游戏客户端→.wem格式→.ogg格式→.mp3格式,理论上每一步都会有损耗。为了能在网页上直接播放必须使用 MP3,但之前在把 OGG 转为 MP3 时我选的是 LameXP 里的质量等级 2(一共 10 级),现在我想通了,把质量等级改成了最高的 0。当然,质量越高,mp3 的体积也越大,从质量 2 到质量 0 体积平均会增大 50%,也就是大概每个文件 20KB 会增加到 30KB。
这对视频制作者会有所帮助,下载的音频在嵌入视频后的音效会有略微的提升。对 Lame 编码而言,质量 2 到质量 0,新增的数据主要集中在轻微的、高频的或者低频音域。这些音域的补足会让音频的回声、立体感和通透性更好一点点点点,就当是信则有吧。
缺点是,对于使用手机流量访问的用户流量的消耗会增加。目前统计的平均每条数据大概是 28KB,请量力而行。至于对网页响应速度则是几乎没影响的,你的主要延迟是来自于与 Github.io 这个网站(我拿来存音频源)之间的通讯延迟,至于下载的数据是 20KB 还是 30KB,差的不过是 0.0x 秒而已。 这个功能和上一条类似,不难,但是会比较烦。换行以后会涉及到每行高度的变化,于是打开编辑面板时的对齐代码就需要调整。同时变化的高度也意味着右侧的齿轮按钮也要相应变化,现在它的高度是写死的。 Input 框暂时先不修改了,太麻烦要查资料,一时搞不定。条目本身现在是换行式的了。 我自己,目前还是小站音频条目听写的第一贡献者,我觉得我在编辑条目时遇到的麻烦,你们肯定也遇到了。这个 Ctrl+Enter 的连续编辑提交功能应该会对热心的贡献者比较有帮助。当然伸手党是永远不会遇到这种麻烦的,但谁管你们那么多呢。 我还没写过根据键盘组合键执行功能的代码,不过想必 Google 一下很容易就能得到答案。这功能不难,但是会比较烦。更麻烦的是 Input 框的高度自适应我没做过,可能要换用 contenteditable 的 div,要调整不少代码。好处当然也是显而易见的,长句子台词可以一次看完整了。
- Todo:编辑界面的标签钩选稍微改进一点。
- Todo:逐步修正音频标签数据。
打算把现在的钩选换成和顶部筛选框类似的变色选中,顺便加上和英雄主题色相同的背景色。估计也挺麻烦的,tag 数据都是根据数据库生成的,现在数据库里没有英雄颜色,于是得改后端代码了。
这个没啥说的,其实主要依靠的是拆解软件的更新。之所以写在这里,是因为现有拆解结果,在数据处理上还能有少许改进,只是要花不少时间。
你看,写完这个,又快天亮了。
4.1 守望先锋平衡性补丁更新
安娜
站姿:
- 现在安娜站得更直一些了。
摔杯为号(生物手雷被动)
- 生物手雷技能添加了一个被动效果:摔杯为号。其技能音效可以被大范围的队友听到,并短暂地让队友可以穿墙看到自己。
设计师评论:
- 安娜一直都是最出色的守望先锋战士之一,但毕竟是老太太了,蹲马步太久实在太累了。
- 设计师从从削弱生物手雷遭到的巨大争议中获得启发,安娜迫切需要防绕后能力,而最好的办法就是呼叫队友。
死神
幽灵形态
- 幽灵形态添加了新的台词:”死神走了”。
换弹
- 现在死神扔在地上的枪可以对踩在上面的敌人造成 5 点伤害并轻微地减速敌人一秒。
死亡绽放
- 死亡绽放现在除原有伤害外同时还会扔下若干把枪,这些枪落地后,同样可以对踩中的敌人造成 5 点伤害并轻微地减速敌人一秒。
设计师评论:
- 死神的暗影步伴随有台词”死神来了”,使得这个技能的收益伴随风险。我们觉得高风险高收益很 Cool。所以给幽灵形态也添加了台词。
- 死神特殊的换弹技巧给我们提升死神上场率提供了新的思路。
黑百合
卧倒
- 黑百合新增了一个卧倒状态,你可以在设置界面为其绑定额外的按键,或者打开蹲下一秒后自动卧倒的选项。
- 卧倒时的移动速度极其缓慢,并有专门的匍匐移动动作。
- 卧倒时的受弹面积大幅减小,但被暴头率因形体原因自然增大到几乎 100%。
- 卧倒时,黑百合视野会受到一定限制。转身若超过 90 度,继续往该方向的转身速度将有一个上限,不能随鼠标实时地移动到目的方向。
- 卧倒时黑百合的换弹速度减慢 50%,但开镜及充能速度不变。
- 卧倒时黑百合还会随机地翘起小腿,此动作不受黑百合玩家控制。
剧毒诡雷(感谢 SamBool 回帖)
- 为了和动画逻辑一致,剧毒诡雷现在将会造成摔倒效果。
组队
- 现在黑影、死神无法与黑百合同处一队,以确保黑百合的胜率。已选此二英雄的玩家会自动回到英雄选择界面。
设计师评论:
- 我们认为玩家对重建帝国组合的抱怨本质上来源于自己的愉悦感不够,因此希望通过让队友及敌人更好地观赏黑百合的屁股获得愉悦,以此减少玩家对重建帝国组合的反感。毕竟半藏已裸左胸,应当会获得一些朋友的亲睐。
- 考虑到黑爪组织迄今的战绩,我们认为让黑百合单飞,胜率会有所提高,这也能提升队友的愉悦感。
源氏
自责
- 源氏添加了新的被动技能:自责。
- 每当源氏说出台词:Ahoga 后,机械心脏会在血液内注入微量毒素,5 秒内降低源氏 50% 移动速度并持续造成每秒 10 点伤害。
闪
- 现在闪无法反弹坦克模式堡垒的攻击和莱因哈特的火箭重锤和烈焰打击,但可以通过闪亮的刀刃反射查莉娅的粒子枪了。但源鬼等刀刃黑色的特定皮肤除外。
影、二段跳
- 现在源氏使用影、二段跳等技能在空中改变位移状态时,会有明显的喷气声,该音效有助于敌人更好的应对源氏,同时也使源氏的技能更逻辑自洽。
设计师评论:
- 天使小姐姐多次在战场上被源氏切来切去后,趁着某次维护时给源氏添加了该功能。”既然他师傅没法教他礼貌,那就我来教吧。”天使纯真无邪地微笑着说道。设计师不
敢予更多点评。
温斯顿
特斯拉炮
- 现在特斯拉炮对源氏、半藏、黑百合造成的伤害会被计作治疗量。
屏障发生器
- 为与动画保持一致,现在屏障发生器会在屏障碎裂或消失后爆炸,对死神造成 50 点伤害,对其它英雄无影响。
原始暴怒
- 现在温斯顿的眼镜拥有了独立的命中判定,命中眼镜不会对温斯顿造成双倍伤害,但直接触发原始暴怒技能。眼镜不会被范围性攻击技能命中。
设计师评论:
- 温斯顿的特斯拉炮并非杀伤性武器,他是希望通过科学让世界更美好的守望先锋一员。尽管如此,可不要惹怒它!
麦克雷
被动音效
- 由于长期抽烟,麦克雷现在有很大的喘息声以及不时的咳嗽声,周围 15 码内的友方和敌方均可听到该声音。
战术翻滚
- 由于长期抽烟,麦克雷现在在战术翻滚后需要双手撑膝大口喘气三秒,期间无法移动和攻击。
午时已到
- 由于长期抽烟,麦克雷现在喊完午时以到后会咳嗽不止,且无法击中任何目标。
皮肤
- 现在麦克雷的所有皮肤中的香烟均改成了棒棒糖。
设计师评论:
- 我们添加该功能是为了保护地球环境和大家的身心健康,正如我们一直以来都规定大家应该怎么玩一样,这很 Cool,不是么。
士兵:76
表情
- 现在士兵:76 在发你好表情时,有机率触发战术目镜,如果战术目镜已经准备就绪则直接激活,如果尚未充能完毕,则损失所有已经积攒的能量。
设计师评论:
- 现在我们都是 Hello 了。
法老之鹰
推进背包
- 现在法老之鹰在遭受爆炸伤害,例如火箭发射器(法老之鹰)、粒子炮(查莉雅)、坦克模式(堡垒)、螺旋飞弹(士兵:76)等时,会额外削减一部分推进背包能量。
- 现在法老之鹰在使用推进背包后的上升阶段接触天花板后会遭受少量伤害。
设计师评论:
- 我们之前忘了漏油这个设计了,现在补上。这对平衡性几乎没有影响,毕竟其它英雄几乎没有对空中目标的爆炸伤害能力,但会让法老之鹰的内战更具戏剧性。
堡垒
被动减伤
- 现在哨卫模式下和坦克模式下的血条添加了一个护盾边框,以明确地表现其减伤特性。
哨卫模式
- 如果堡垒在户外保持哨卫模式超过 10 秒没有任何动作,妮妮将会从天空飞下来停在堡垒的头或肩上,在堡垒有任何动作或周围有任何敌人发出的声音时飞走。
侦查模式
- 现在堡垒在原地转身时,仅通过腰部转身,双腿不会再移动了。
- 在堡垒攻击某个目标时,妮妮会同时不断盘旋在该目标眼前,并啄击该目标,造成 1 点伤害。妮妮不可被击中。
设计师评论:
- 堡垒没有语言能力,缺乏和其它英雄的互动,因此我们添加了更多和妮妮的互动。
莱因哈特
冲锋
- 如果冲锋未能撞到敌人而直接冲撞到墙壁等障碍物,则莱因哈特将获得头晕效果,在玩家的鼠标正常移动基础上,会随机加入若干左右方向的飘移。其效果类似于魔兽世界角色在醉酒时的鼠标效果,但幅度更大。持续 3 秒。
- 如果被冲锋撞飞的敌人再次碰到墙壁,则会另外受到 30 点伤害并根据方向原地转一圈,操作该敌人的玩家屏幕上也会表现该效果。若击飞的敌人碰到天花板则受到 60 点伤害。
烈焰打击
- 烈焰打击不能再被源氏反弹。
- 烈焰打击对小美的冰墙造成 100% 的额外伤害。另外还可以解除队友的被冰冻状态(小美的冰霜冲击枪和暴雪技能效果),但不造成伤害也无法获得充能。
火箭重锤
- 火箭重锤在撞到墙壁后会立刻结束此次挥动,且不改变下一次挥动的前摇时间。这使得在小巷、通道等狭窄地形中,莱茵哈特可以获得更快的挥锤频率,提高伤害,但同时也限制了范围。
裂地猛击
- 现在裂地猛击的伤害降低为 30 点,但猛击后的地面会持续对倒地或站立于上面的敌人造成每秒 5 点的伤害,持续 5 秒。对方英雄可以通过跳跃取消该伤害,站立状态的禅雅塔、托比昂不受此效果影响,温斯顿受到该效果双倍伤害。
设计师评论:
- 莱因哈特现在更重视地形因素对战斗造成的影响,作为终级碾压机器,莱因哈特必需要有相应的优势。另外,通过解冻队友,我们给莱因哈特玩家提供了更多的战斗策略供选择。
猎空
闪现
- 如果猎空的闪现因为地形因素没有完整地移动 7 码距离,即撞到墙、电线杆等地形物,则猎空会短暂地眩晕 0.5 秒。在玩家的鼠标正常移动基础上,会随机加入若干左右方向的飘移。
- 如果猎空的在眩晕状态下再次闪现撞墙,则眩晕状态会延长 2 秒,该状态可叠加。
- 猎空使用闪现经过向上斜坡,会使猎空的闪现也变为向上移动,角度与斜坡一致,这使得猎空有机会更丰富地利用地形因素。
- 猎空在闪现经过敌人时会撞上敌人而非穿过,同时对敌人造成 30 点伤害。
闪回
- 现在使用闪回会严格地回复到 3 秒前的状态,包括位置、动量、生命值、子弹数量与增减益。但时空稳定器的能量依然会被消耗,因此闪现和闪回不会恢复。
英雄难度评级
- 现在猎空的英雄难度改为三颗星。
设计师评论:
- 你上你也晕。
D.Va
近战攻击
- 现在 Meka 机甲的近战攻击统一造成 50 点伤害,而宋哈娜的近战攻击则造成 10 点伤害。如果对方有黄甲,则额外对哈娜自己造成 10 点伤害。
推进器
- 现在 Meka 机甲在使用推进器的同时可以使用聚变机炮。
设计师评论:
- 有感于鱼塘双飞太强,同时为了增加 D.Va 上场率,继让 D.Va 能用右键保被路霸钩走的队友后,我们又给 D.Va 增加了一项新的华而不实的英雄反制设计:D.Va 可以对抗双飞!D.Va 更加万能了,这很 Cool,不是么?
黑影
黑客入侵、电磁脉冲
- 现在路霸、安娜、死神的所有技能都不会被黑客入侵和电磁脉冲打断制或禁用。尽管如此,视觉上的红色效果依然保留。
黑客入侵
- 猎空玩家在被黑客入侵后会回到英雄选择界面,猎空直接在你和你所有队友的英雄选择界面上消失。
- 士兵 76 的战术目镜现在会被黑客入侵打断或禁用,如果被打断时士兵:76正在释放战术目镜,则黑影获得剩余的战术目镜技能与持续时间,此时间内黑影的自动手枪带有自动瞄准功能。
- 堡垒、禅雅塔被黑客入侵后会开始随机做一系列表情,持续 3 秒,即使你尚未购买该表情。由于 Meka 的一部分功能是通过机械传动的
宋哈娜在机甲里拼命踩脚蹬子类内燃机结构,因此不会自动做表情,但此时 D.Va 玩不了《失落的维京》飞机游戏。
- 美被黑客入侵后,其小机器人会开始随机堆雪人,持续 5 秒,其间小美无法释放暴雪技能,但其它技能不受影响。
- 以下技能将不会再被黑客入侵打断、限制或禁用。尽管如此,视觉上的红色效果依然保留。
- 狂鼠的捕兽夹和炸弹轮胎。
- 黑百合的抓钩。
- 士兵:76 的疾跑。
- 半藏的竜。
- 温斯顿的原始暴怒。
- D.Va 的机甲自毁。
- 黑客入侵现在可以直接打开部分地图的大门并控制其开关。例如观测站:直布罗陀AB点、多拉多B点、66号公路AB点、国王大道A点车库门等。
电磁脉冲
- 士兵 76 的战术目镜现在会被电磁脉冲打断或禁用。
- 堡垒、禅雅塔被电磁脉冲击中后会瘫痪 3 秒,禅雅塔的所有护盾将会消失。由于 Meka 的一部分功能是通过机械传动的
宋哈娜在机甲里拼命踩脚蹬子类内燃机结构,因此不会瘫痪,但此时 D.Va 玩不了《失落的维京》飞机游戏。 - 美被被电磁脉冲击中后,无法释放暴雪技能,但其它技能不受影响。
- 以下技能将不会再被电磁脉冲打断、限制或禁用。尽管如此,视觉上的红色效果依然保留。
- 狂鼠的捕兽夹和炸弹轮胎。
- 黑百合的抓钩。
- 士兵:76 的疾跑。
- 半藏的竜。
- 温斯顿的原始暴怒。
- D.Va 的机甲自毁。
设计师评论:
- 我们重做了整个黑影,现在她的技能更符合逻辑了,同时也会成为影响双方阵容的重要角色。
Overwatch Toolchain 解包方式考察
理想的英雄语音音频源文件,大概是这样的:
有一个比较标准的文件名(Filename),以英雄名字起头,文件名自己就包含了一些有用的分类信息。
有一个配套的文本文件(Dictionary),里面写好了每个音频对应的台词(Text),我们直接可以查找替换复制粘贴。
有一套分类详尽的标签(Tags)列表,里面详细地给每个音频分好了类,我们可以方便地根据这些标签进行筛选、处理、归档。
这些理论上 Blizzard 应该已经做好了放在客户端里,我们只要解压了就能拿来用。
但事实上并不是这样的,CASC 是 BLZ 私有的加密格式,目前并没有很好的手段可以完美解压,实际解出来的结果大概是这样的:
这种 32 个数字英文组成的字符串称之为 filehash,可以简单理解为一种特殊的文件名。这种名字没有实际意义,仅仅表示『这个文件和那个文件是不同的』。
所以,比『什么都没有』稍微好点,我们有了『不知道是什么的一堆文件』,稍后我们又通过文件格式识别软件,找出了其中的音频部分,并转换成了可以播放的 mp3。于是我们得到了『不知道是什么的一堆音频』:
情况没有本质变化,但我们有了一大包知道是 mp3 的文件以后,我们就可以 手-动-听-写-打-标-签 了。
于是情况变成了这样:
这就是 http://ow.thnuclub.com 这个小站现在正在做的事情。全世界想的办法都一样——先解出来能播放的,再人工一个一个挑。幸运的是,吃瓜群众撸袖自己上,一不小心撸出了全世界最好的守望音频网站。
昨天 nga 有网友(青龙圣者@ngacn.cc)推荐了 toolchain 系列解压软件。这个软件在小站建站之初是没有的。现在看来,它有优点也有缺点,但前景似乎不错。
toolchain 使用的还是 zezula 的 CASCLib 开源库,但库版本更新了不少。因此比 cascview 能多解出一些信息,具体地来说是有了目录和文件类型,有目录就意味着可以自动完成一部分标签。但缺点是引入了另一套也没啥意义的文件名系统。于是情况变成了这样:
小站的旧数据有 Text 内容,而 toolchain 有相对比较准确的标签分类。但因为两边的文件名对不上,所以不知道哪个对应哪个。
再仔细验证以后,发现 toolchain 解压的文件是可以计算得到 filehash 的,于是又变成了:
这是目前所能获得的最大的成果了。
进一步分析发现,toolchain 解压出的音频总数较少,也就是:
原因可能是 toolchain 的作者的关注重点并不在音频上,因而把原始数据中暂时未分析的部分直接抛弃了。而 CascView 则以解压优先,并未抛弃数据。
总结:
- toolchain 通过目录结构间接提供了较为准确的英雄分类 tag,可以补充修正现有小站全靠人工听写的标签数据。
- toolchain 目前仍然没有解出音频对应的文本,而目前音频文本(Text 数据)依然是最宝贵的劳动成果,也是 ow.thnuclub.com 小站存在的最大价值。暂时还没办法由 toolchain 自动化解决,期待未来某天可以彻底解决。那时小站大概就可以关闭了。
- toolchain 引入了另一套文件名,但可以通过计算得到 hash 值与旧数据对应起来。
- toolchain 的数据分类更细致,但总量较少,新的文件名系统无甚作用,且构成规则不明。因此也没有必要跟随 toolchain 的命名方式。
- toolchain 可解压出 *.mdl、*.dds 等文件,对视频制作者、签名档、头像等很有作用,但对于既有的音频内容,所助仅限于标签分类数据。
- 对于一些特殊的标签数据,例如莱因哈特的台词『Many of my comerads fell in battle here, may they rest in peace.(我的许多同伴在此牺牲,愿他们安息)』只会在艾兴瓦尔德这张地图出现,因此较完美的 tag 应当是『莱因哈特,英雄,艾兴瓦尔德,地图,入场』,这个是 toolchain 也无法提供的,只能依靠人工标注。
因此,在现阶段 toolchain 还不成熟的情况下,暂时还没有必要修改小站现有的数据结构和使用方式,只需要把 toolchain 提供的目录结构,转化成较为准确的 tag 数据补充到小站上即可。相比于 toolchain 构成规则不明的文件名系统,可以通过计算得到的 filehash 系统通用性也更好一些。
接下来的工作:
- 计算 toolchain 获得的所有音频文件的 hash 值,如果有软件可以直接带子目录列表输出 csv 就好了。
- 通过目录路径给 toolchain 所有音频文件打上英雄分类/地图分类 tag。
- 合并到现有小站数据上,需要解决英雄标签冲突,并尽可能保留有效信息。
- 但合并 tag 也可能导致形如『【天使】I feel unstoppable.』这类音频中的安娜标签丢失。具体处理办法还需要考虑。
更新完成。