ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

给AI装上游戏眼睛:Neuro-sama Among Us AI插件从数据录制到神经网络的完整链路

给AI装上游戏眼睛:Neuro-sama Among Us AI插件从数据录制到神经网络的完整链路

给AI装上游戏眼睛:Neuro-sama Among Us AI插件从数据录制到神经网络的完整链路

【免费下载链接】neuro-amongusAmong Us Plugin for Neuro-sama项目地址: https://gitcode.com/gh_mirrors/ne/neuro-amongus

如果你是《Among Us》玩家、关注AI VTuber动态的技术爱好者,或者正在寻找一个"把真实游戏数据喂给神经网络"的开源案例,那么 Neuro-sama Among Us 插件值得你花十分钟了解一下。这个开源项目不只是一款游戏模组,它更是一套完整的"AI游戏能力流水线":插件在游戏内持续录制局面数据,通过本地网络转发给Python端,神经网络基于这些数据输出移动与操作指令,再驱动游戏角色实时行动。简单说,它让AI从"看别人玩"变成"自己上手玩"。

先说痛点:为什么大多数AI玩家"不会玩"游戏

很多"AI玩游戏"的Demo其实只做了两件事:截图识别加预设脚本。它们换一张地图、换一局任务就失灵,因为AI从不理解"现在发生了什么"。

而《Among Us》这类社交推理游戏更难:玩家位置是实时变化的、任务点分散在地图各处、还要区分内鬼与船员的不同玩法。想让AI真正"会玩",首先要解决一个底层问题——如何把游戏里的一帧画面,变成机器能读懂的、结构化的数据。这就是本项目第一个设计目标。

一条从游戏到大脑的数据流水线,拆开看只有四层

这个项目的整体思路可以概括成一句话:游戏产生数据,数据训练模型,模型反哺操作。整条链路分四层,每一层都有对应的源码目录。

第一层:录制层,把"看到的"变成"能存的"

插件启动后会创建一个本地录制目录,把每局游戏的局面写入带时间戳的.gymbag2文件(Neuro/Recording/Recorder.cs)。录制不是简单地截屏,而是分类采集结构化的信息:

  • 地图结构:门、通风管的位置(Neuro/Recording/Map/
  • 玩家状态:你的位置、速度、是否在管道中(Neuro/Recording/LocalPlayer/
  • 其他玩家:最后一次被看到的位置(Neuro/Recording/OtherPlayers/
  • 任务进度:任务点、当前破坏事件(Neuro/Recording/Tasks/
  • 尸体信息:发现尸体、报告事件(Neuro/Recording/DeadBodies/

打个比方:录制层就像给AI配了一名"战地记者",每秒钟汇报一次"场上有谁、在哪、在干什么",而不是丢给它一段无法解析的视频流。

第二层:传输层,让数据实时抵达AI大脑

如果只录不传,AI还是玩不了。项目在Neuro/Communication/AmongUsAI/里实现了基于 WebSocket 的本地通信(CommunicationHandler.cs),把录制的帧数据实时推送给外部的AI进程。所有消息都通过 Protocol Buffers 协议序列化——每一帧的数据结构在.proto文件中定义,游戏中录制端和Python端用同一套"语言"对话,互不误解。

这里有一个设计上的巧思:本地WebSocket优先,本地文件兜底。有AI进程连着就实时传输,没有就连着就退回到写文件,训练数据依然不丢。

第三层:训练层,让神经网络学会"看局面"

这是整个项目最"硬核"的部分,集中在AI/目录。Python端先把录制的原始帧转换成定长的特征向量(AI/data/),再交给模型训练。

值得留意的是AI/nn/model.py中的两个模型设计:

  • 一个基础的全连接网络,适合快速验证"数据能不能学出东西"
  • 一个 LSTM 循环网络,利用时间序列记忆,理解"角色连续几帧的移动意图"

训练流程写在AI/train_model.py:加载数据集、切分训练集与验证集、逐epoch输出loss。如果你手头有显卡,还可以直接享受CUDA加速;没有的话,CPU也能跑通整个流程,只是慢一些。

第四层:执行层,把决策落成游戏操作

模型输出的不是"往前走三步"这种脚本指令,而是移动方向和动作倾向。Neuro/Movement/MovementHandler.cs负责把决策转化为真实的位移,并且内置了"卡住检测":如果角色超过一秒没挪窝,就自动触发脱困逻辑,避免AI在墙角原地发呆。

遇到小游戏时,项目则走"程序化求解"路线:Neuro/Minigames/Solvers/下内置了50多个求解器,比如修电线(FixWiringSolver.cs)、校准分配器、启动反应堆等,每个求解器通过模拟鼠标移动与点击来完成小游戏,与神经网络的分工各司其职。

三分钟让AI先学会"看"游戏:安装与首次运行

别被上面的架构吓到,实际跑起来只需三步:

  1. 装好运行环境:为《Among Us》安装 BepInEx 与 Reactor 两个前置模组,再准备 .NET 6.0 SDK,这是编译插件的基础。
  2. 编译并部署插件:用 Visual Studio 或 Rider 打开项目解决方案,把编译产出的 Neuro.dll 复制到游戏目录下的BepInEx/plugins文件夹。也可以像官方建议那样,在Neuro/Neuro.csproj里直接配置输出路径,每次编译自动进游戏目录。
  3. 启动游戏:进入对局后,插件自动开始录制,NeuroRecordings目录里会陆续出现.gymbag2数据文件。

第一次运行建议只用"录制模式":让AI先积累几局数据,同时用AI/play_test.pyAI/convert_file_test.py这类测试脚本验证录制数据能否被正确解析。先确认数据通,再谈训练模型,这是最稳妥的上手路径。

进阶玩法:把Neuro的训练数据"接手"到自己手里

项目的另一个开放价值在于:它把"采集-训练-推理"整条链路都开源了,你可以完全用自己的数据重训模型。

具体来说,跑通AI/train_model.py就能完成一轮完整训练,训练脚本会自动把数据集缓存成.pkl文件,二次训练无需重新解析原始录制。如果觉得从头训练成本高,AI/finetune_model.py支持在已有权重基础上微调,适合针对特定地图或特定玩法做定向增强。

想观察训练效果,AI/visualise.py可以把模型在局面上的输出可视化出来——它直观到什么程度呢?你甚至能看到模型在不同局面下"打算往哪走"。而AI/rename_recordings.py这类小工具则帮你管理原始录制文件,避免数据越攒越乱。

调试不是黑盒:插件自带一套"可视化手术台"

项目在Neuro/Debugging/里藏了一个非常实用的调试窗口(DebugWindow.cs),按不同主题拆成了多个标签页:对局信息、任务状态、破坏事件、录制回放等一应俱全。你可以一边开着游戏、一边观察插件内部到底在做什么。

遇到AI行为异常时,建议按这个顺序排查:

  • 先查数据:录制帧是否完整,是否包含地图、任务、尸体等关键字段
  • 再查模型:训练loss是否收敛,验证集表现是否正常
  • 最后查执行:用小游戏求解器调试页和移动调试页,看指令是否被正确执行

这种"分层排查"的思路,也是这个项目值得学习的地方——它把AI游戏的复杂度拆解成了可观测、可复现的模块。

写在最后:这个项目最适合谁

如果你想快速体验"AI玩Among Us",克隆项目后按上面的步骤装上插件即可;如果你想研究"如何用真实游戏数据训练游戏AI",那它的价值更大——从数据采集协议到神经网络结构,再到游戏内执行与调试工具,每一步都有可读的开源实现。

动手建议:先让插件跑几局游戏、积累数据,然后跑一遍训练脚本,你会亲眼看到loss曲线下降、模型逐步学会移动。从"录制数据"到"模型动起来"的完整闭环,就是本项目最好的学习入口。如果你对AI游戏开发感兴趣,不妨直接从它的AI/Neuro/Recording/两个目录读起。

【免费下载链接】neuro-amongusAmong Us Plugin for Neuro-sama项目地址: https://gitcode.com/gh_mirrors/ne/neuro-amongus

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

返回列表