
插件使用ModsListAPI作为入口,同时注册了热键(可关闭或修改,默认为F10),你也可以通过快捷键随时随地打开菜单,开启自由视角时除外,就是旁边那个叫Free Cam的插件。

•取消了万恶的保存按钮,你做的任何操作操作都将立即反馈,并持久化到对应的配置文件中(事件试听列表、快捷消息文本列表所选项以及滚动条位置除外)。长按主菜单圆形图标可以进行拖拽,每次拖拽保存归一化坐标,以便适应不同窗口分辨率。注:菜单将无法完全拖拽出屏幕。

•UI支持改色与改背景图,首次运行插件后,你会在配置文件夹内找到📂icons和📂bgimgs,可以修改与替换同名文件,作为默认样式。📂bgimgs中还有一个文件panel.png我没有使用,它是菜单向下伸出的直角面板的背景图。更详细的内容你可以在帮助页和工具提示(Tooltip)中找到,帮助页、语音包信息页和工具提示中都内置了隐藏滚动条。
•UI支持本地化,依据当前客户端语言进行选择,目前支持简中和机翻繁中、机翻英文。UI界面的语言你可以随时修改,但是内置语音包列表是读取客户端i18n译文生成的,这个插件改不了。你可以手动打开gameSoundModes.json自行修改。

按下热键 / Esc / ModsList入口按钮,均可隐藏主菜单。
语音包也将支持随包附带背景方案和颜色方案,你可以选择让主题跟随语音包,或使用固定主题。
这个引擎看着就跟少战字幕引擎不一样,实际二者也完全没关系,这也意味着你可以两个插件都安装,互不影响。得益于山口丁底层有专门针对音频标记(Marker)的C++回调方法,通过注册监听器便可捕获并处理带标记的音频,为其渲染字幕。官方少战字幕多半就是这个路子,如果隔壁战雷也有这样API,那理论上也能搓出字幕系统。
•首先,字幕系统将支持字幕组件独立拖拽,你可以将字幕放在任意喜欢的位置。若当前语音包支持字幕,那么“字幕”导航按钮将可见,启用编辑后,将激活对应组件的拖拽(如黄色边框所示)。

注意:字幕动画效果的运动范围与字幕尺寸有关,字幕尺寸由头像和背景共同外接矩形决定。
•字幕将有三种状态可以切换。标准:就是上面示例中的样子;简洁:仅显示文本框的极简模式,标题也将转化为文本,字幕不再播放额外动画;不显示:不是我喜欢的字幕,直接关闭。简洁模式下仅正文文本框可拖拽,与标准模式的组件坐标互相独立保存。

•字幕演出将有两种机制。字幕内容可更新:开启后,若字幕前后说话人不变,则字幕内容原地更新;字幕可堆叠:开启后,屏幕中可同时存在多条语音的字幕,关闭后,新字幕出现时将打断旧字幕。基于上述机制衍生出了4种不同字幕排队策略,具体效果可自行体验。
•字幕将可包含额外演出动画。在入场动画(0.3秒)结束后,字幕可以播放额外动画,就是视觉小说(如Galgame)中常见运动动画,左右平移上下平移,一共6个,运动幅度和时长不尽相同。我制作的语音包动画效果都是以开启“字幕内容更新”状态下编排的时序,如果关闭的话,字幕每次都将重新出场,动画可能会有0.3秒延迟,如果看着不舒服可以关闭额外动画。目前没有想到比较好的解决办法。
•字幕将可在车库试听语音时播放。
•字幕文本可使用打字机效果逐个出字,你可以调节出字间隔为0~0.1秒,步长为0.01秒,0秒代表不使用出字效果(立即出字)。
•字幕组件中,头像、标题、背景这三处,均可使用图片。字幕背景可以不用又大又丑的色块了,所以你实际可以做出女神异闻录风格的字幕。

备注:旧的打包格式的语音包(以voiceover_开头)将不支持字幕等功能,仅保留语音包注册与切换功能,一键打包盒子语音包用的妙妙小工具依然很好用(见作者@APTXPC )。面向语音包作者的《字幕引擎使用指南》将在之后发布,绝对比官方少战字幕引擎用起来简单,如果对DIY语音字幕感兴趣,可以留意一下动态。
在语音包作者群有群友提过,想让语音能区分装填状态播放,但是WoT的语音事件没有分得那么细,这个功能单靠调教WWISE是做不到的。现在这个功能实现了,声音绑定功能可以让你在指令触发或大部分声音事件播放后,选择你自己的声音事件进行播放,绑定功能的辐射范围涵盖了全部的轮盘指令。
做上面那个功能的时候顺带做了,拦截并替换客户端渲染的快捷消息文本,辐射范围覆盖全部的轮盘指令。因为不走消息广播,这个文本只会在本地渲染,别人看不到,单纯提供情绪价值。清空文本框可还原消息文本;如果有输不进去的字符,可以直接打开personal_settings.json手动编辑,然后重启。要注意一些字符不在游戏字库内,会变成方块。


既然都有消息替换了,这个不顺手做一下?见上上一个图,可以使用指定占位符作为当前小地图坐标添加进消息中,我也不知道哪些坐标组合会被和谐,给部分字母做了近似字符映射。
日志有“ERROR”、“WARN及以上”、“INFO及以上”、“DEBUGE及以上”四个等级,默认INFO级别,调试字幕时可以临时开到DEBUG。

现在安装插件后,通过游戏菜单切换语音包的操作将放行,你可以勾选语音包显示在菜单,然后通过游戏菜单切换。战斗中,若使用普通车长,也可以通过游戏菜单切换,但是特殊成员除外。需要注意的是,上述切换属于“临时切换”,不会持久化保存进配置文件,并且在通过插件事件播放试听时,将立即拉回当前所选语音。
之前的声音重映射功能有一个小缺点,替换灯泡音效后,在游戏设置菜单里试听时,播放第二遍会因抛错导致无法播放。现在将跳过这个抛错,你可以点按任意次试听。
旧的语音包打包格式(以voiceover_开头的wotmod文件)不能通过游戏虚拟文件系统读取基础信息,必须通过直接访问磁盘打开压缩包的方式读取。现在更换了新的解析方式,旧格式打包的语音包将仅保留注册与切换功能,字幕将不可用。不过受影响的应该也就我做的字幕语音包了,毕竟少战的字幕语音包你可以下载了,现在两个插件不会冲突,想用的时候去内置语音列表里找到然后选中就可以。
新的语音包打包格式规范已先行发布在GitHub仓库,之后会再投文章教程。
语音屏蔽与开启插件也已更新并上传至两个网盘,现在能够自动识别活动地图,并解除语音屏蔽。
关于我怎么突然学会AS3和Flex,突然会用DAAPI了,诶🤓👆这就不得不提我与Claude code和大鲸鱼DeepSeek的故事了。
🤗我要一套独立的UI和组件,一整个完整的字幕系统,再重构原有的代码,再加上新的功能
DeepSeek:好的,现在我是Claude了。
DeepSeek:🤨这得花不少Token,先生
🥴我知道,另外再来一套本地化