一次业余开发者的试验——UE5.7 + DeepSeek,让游戏NPC真的会说话
先说结果:这个demo没做完,但做的部分比想象中多。一个业余开发者在UE5.7上用DeepSeek让NPC真正会说话的完整记录。
想法很简单:用大模型让游戏NPC真的会说话,而不是翻来覆去那三句台词。
市面上已经有很多AI NPC的尝试,但我想亲自试——作为一个业余开发者,能做到什么程度。
2026年5月,我搭了一个Unreal Engine 5.7的C++项目。
做,还是不做?不,我有一个主意!!!
打开源码,真实可见的内容比以为的多。从API调用到表情系统,从状态机到消息路由——一个能跑起来的UE5工程。
UE5.7编辑器实机画面——NPC角色、测试场景与项目文件结构
完整的 AINPCCharacter C++ 类,HTTP POST调用DeepSeek聊天补全接口。系统提示词可配,对话历史缓存(最多20轮)。
300单位球体触发器,玩家走进范围自动检测。Widget气泡组件显示NPC说话内容。按F对话,按T打字输入。
三状态独立维护:Idle → Engaged → Busy。无全局锁,两个NPC可同时与不同玩家对话。
三层路由:精确点名 → 当前活跃NPC → 最近空闲NPC。兜底提示"附近没有空闲的NPC"。
不用UMG,直接Slate写聊天界面。NPC青色、玩家绿色、系统黄色。Ctrl+T开关聊天框。
7种表情:中立/开心/好奇/困惑/惊讶/思考/欢迎/悲伤。MetaHuman用Morph Target精确控制14个面部控制点,普通模型降级为骨骼旋转。
AI回复后自动分析关键词——"你好"触发打招呼,"再见"触发告别,含"嗯""想"触发思考动作。动画资源可在编辑器中指定。
NPC自动转向,仅Engaged/Talking状态才转。转向速度分两档:对话中6.0(快)、非对话2.0(慢),走远后缓慢恢复。
工程能跑,但游戏不好玩。问题不在AI,在游戏本身。
半成品骑士悬浮在工作台上——代码还在,但故事还没讲完
项目搁置后,开始跟身边人聊AI。聊得越多,越发现一个有趣的现象:很多人知道AI,用过AI,然后就觉得AI"不过如此"。他们的结论是"AI没什么用"。
我恰恰相反——脑子里有太多可以让AI做的事情了:
有人有时间却不知AI能做什么,有人知道AI能做什么却没有时间
代码还在硬盘里。UE5.7工程、AINPCCharacter类、DeepSeek配置、Slate聊天界面、表情系统、手势触发——这些东西不会消失。
哪天有合适的契机——比如跟做游戏的朋友合作,或者有更成熟的AI游戏工具出现——随时可以翻出来继续。代码是现成的,思路也是清晰的。
AI只是一个实现你想法的工具,真正有意思的想法在你的脑袋里。
想法,源于生活。
源于对生活的观察和体验、对未来的期待!