让AI VTuber学会玩Among Us:Neuro-AmongUs插件从安装到训练完整指南
【免费下载链接】neuro-amongusAmong Us Plugin for Neuro-sama项目地址: https://gitcode.com/gh_mirrors/ne/neuro-amongus
凌晨两点,飞船的电灯忽明忽暗。船员们围在餐厅里争论谁偷偷开了紧急会议,人群边缘,一个叫Neuro-sama的AI VTuber正不动声色地记着每个人的位置。对它来说,这局《Among Us》不是游戏,而是一场"生存考试"。Neuro-AmongUs这个开源插件,正是为了把这位AI主播真正送上太空狼人杀的飞船而诞生的。
它到底是个什么项目?一句话看懂Neuro-AmongUs
Neuro-AmongUs是一个专为AI VTuber Neuro-sama开发的Among Us模组(Mod),它的目标很朴素:先让插件在游戏里完整记录战局数据,再用这些数据训练神经网络,最后让AI不仅能"看"懂游戏,还能真的控制角色移动、完成任务、甚至在关键时刻按下报告按钮。它适合三类人:想看AI玩社交推理游戏的围观群众、想研究"游戏数据采集→模型训练→实时决策"全链路的技术爱好者,以及愿意为项目贡献求解器、训练脚本的开源玩家。
三步跑通最小示例:从空仓库到跑起一局
我们不需要一次性打通"AI全自动操控"的终极形态,先跑通最基础的一环——让插件录下一整局游戏。这一步是后面所有训练的原材料。
第一步:摆好舞台
Among Us的模组生态依赖两个框架:BepInEx(负责把代码注入游戏)和Reactor(Among Us社区标准的模组开发库)。好消息是,仓库的Installer/Dependencies目录里已经打包好了这两样东西(包括BepInEx 6.0的IL2CPP版本和Reactor.dll),你不需要再去网上逐个找版本,直接按README的指引从Installer/安装即可。此外还需要安装.NET 6.0 SDK,它是编译C#插件的基础。
第二步:编译插件
克隆仓库(地址:https://gitcode.com/gh_mirrors/ne/neuro-amongus ),用Visual Studio或JetBrains Rider打开Neuro.sln。最关键的一步在Neuro/Neuro.csproj:在PropertyGroup节点里加一行输出路径,把编译产物直接指向Among Us的插件目录,例如<OutputPath>你的游戏路径\Among Us\BepInEx\plugins</OutputPath>。这样编译完,Neuro.dll会自动"落位"。
第三步:跑一局并验收
启动Among Us,随便进一局正常对局。插件会在后台自动开始工作——你不需要做任何操作。对局结束后,去BepInEx\plugins\NeuroRecordings\目录看看,会发现以时间戳命名的.gymbag2文件。这就是插件的"作业本":它用protobuf格式把每一帧的玩家位置、任务状态、尸体位置、地图信息都记了下来。录到文件,说明最小闭环已经打通。
顺便一提,上面这张图是Installer里随附的Neuro-sama立绘——想象一下,等AI真的学会玩之后,被投出飞船时大概就是这个表情了。
拆开看看:AI到底是怎么"看"见游戏的
要让AI玩游戏,本质上要解决三件事:看得见、听得懂、动得了。Neuro-AmongUs用三个模块漂亮地分工。
角色一:勤快的"录音笔"
Neuro/Recording/Recorder.cs是那位从不休息的录音笔。游戏每帧更新时,它把当前状态打包成一份Frame(Neuro/Recording/Frame.cs)——里面装着本机玩家数据、其他玩家、尸体、地图门和管道、任务进度等子记录器分别采集的信息——序列化成二进制流写进.gymbag2文件。它只记录"发生了什么",不判断"该怎么做",就像学生上课只负责记笔记,不负责解题。笔记记得越全,AI复习时能学到的就越多。
角色二:守时的"快递员"
当游戏想实时"指挥"AI时,接力棒就交给Neuro/Communication/AmongUsAI/CommunicationHandler.cs。它开了一条WebSocket通道,像快递员一样来回送件:把游戏帧送到运行在电脑上的Python程序,再把Python算出的NNOutput(想要的移动方向、是否报告尸体、是否刀人、是否钻管道)带回来,最后直接触发游戏里的按钮——按下报告键、点击击杀键,就这么简单粗暴。
角色三:看录像学开车的"新司机"
AI/目录就是这位新司机的"驾校"。data/converter.py负责把protobuf帧翻译成神经网络能吃的数字数组(把枚举、坐标、任务数据统统转成向量);nn/dataset.py把一堆录像打包成训练集;nn/model.py里定义了两套模型——轻量的Model和更强的LSTMModel(LSTM擅长处理时序,记住"刚才发生了什么",这正是游戏决策需要的记忆能力);train_model.py负责监督学习训练,finetune_model.py则在已有模型上做定向微调。整个流程可以理解成:录像是教练示范,网络是学员,损失函数是教练手里的评分表,而WebSocket是教练的耳机。
为什么这样设计?因为"先记录、后训练、再接管"是一条务实的演进路线:如果一开始就让AI上手玩,它连游戏都没见过,只会乱走;先积累大量人类玩家的真实操作录像,再让模型模仿,成功率高得多。这也解释了为什么Recorder.cs里写着"一旦检测到实时连接就停止录制"——录制模式与实时模式共用同一套数据管道,切换成本极低。
玩出花样:三个让AI更有灵性的自定义方向
方向一:给AI加新技能。Neuro/Minigames/Solvers/目录下已经有50多个小游戏求解器(修电线、校准分配器、启动反应堆等),每个都实现IMinigameSolver接口并挂上MinigameSolverAttribute。你可以照着FixWiringSolver.cs的写法,为新增任务写一个自己的求解器,让AI会玩的新玩法又多一个。
方向二:训练一个"专注刀人"的模型。finetune_model.py里藏着一个很聪明的curation策略:只保留"玩家正在击杀"的样本,再混入等量的随机样本,人为提高关键行为在数据集里的比例。这让AI从"什么都学"变成"重点补课",对打磨特定行为非常有效。
方向三:清理自己的数据集。录多了之后,AI/rename_recordings.py可以给录像批量改名,AI/convert_file_test.py等测试脚本能帮你验证转换链路是否正常。数据干净了,训练出的模型才不会"学歪"。
避开新手最常踩的3个坑
坑一:BepInEx版本装错导致插件不加载。项目基于IL2CPP构建,混入Mono版BepInEx会直接失效。解决办法是直接使用仓库Installer/Dependencies里自带的BepInEx 6.0 IL2CPP构建,别去官网下最新版凑合。
坑二:录了半天,文件却被删了。Recorder.cs对小于约100KB的录像会直接删除——这是为了滤掉无效对局。如果你发现NeuroRecordings目录总是空的,先检查是否整局都卡在会议、小游戏或死亡状态(这些时候录制器是暂停的),先确认自己真的完整跑完了一局。
坑三:Python侧读不了录像。.gymbag2依赖特定分支的python-betterproto(支持pickle序列化方法的版本)。README里明确要求先安装那个特殊分支,普通PyPI版本会在读取帧时直接报错。装对依赖,AI/下的脚本才能顺利跑起来。
写在最后:下一局,让AI来玩
Neuro-AmongUs最迷人的地方,在于它把一条完整的技术流水线浓缩进一个游戏里:数据采集(Recording)、格式转换(converter)、神经网络训练(model.py + train_model.py)、实时推理(WebSocket通信)全都有现成的开源实现。对初学者来说,它是看得见、摸得着的AI入门教材;对贡献者来说,50多个求解器和完整的训练脚本意味着有大量可下手的空间。
下一个夜晚,当你再看到飞船里那个安静的身影时,也许它已经学会在投票环节前,故意站到尸体旁边——然后一脸无辜地按下报告键。那会是一个AI真正"融入"这场社交推理游戏的时刻。而你要做的,就是clone下这份代码,跑完一局,然后静静等待它长大。
【免费下载链接】neuro-amongusAmong Us Plugin for Neuro-sama项目地址: https://gitcode.com/gh_mirrors/ne/neuro-amongus
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考