下载 App

如何设计一个具备「活人感」的 NPC

修改于04/06102 浏览开发交流 包含 AI 合成内容
大家好,我是 猛攻兄弟 的作者 附中。
在多人合作或竞技游戏中,AI NPC 常常扮演着填充战局、提供挑战或辅助的角色。
然而大多数 AI 给玩家的感受通常是机械重复、可预测、单调呆板。
今天我就来分享下我对于 NPC 队友的一些开发经验,当然我现在也只是做了点皮毛,离完美还有很长的距离要走。希望大家都能透过我的分享,让 AI 队友呈现出具有「活人感」的行为特质——即让玩家感觉它们是在与一个有独立意识、有合理动机、有性格特点、会犯错误、能学习成长的「活人」并肩作战或对抗。
TapTap

一、「活人感」的核心特质

在细说方案前,首先需要定义我心中的「活人感」是什么
1. 有自主目标与动机:行为不是随机的,而是目标驱动(补给>生存>胜利)。
2. 注意力有限且会转移:掌握有限情报,专注当前任务,也会被突发事件(如枪声)吸引。
3. 能力合理且有局限:枪法不会百发百中,转身有快慢,决策有延迟,会害怕、会犹豫。
4. 具备个性与习惯:不同的「人」会有不同的交战偏好(激进/保守)、武器习惯、移动风格。
5. 会沟通与协作:能与队友进行简单的信息交流(警报、标记),并能执行基础的团队配合。
6. 对环境有反应:会利用掩体、规避危险区域(火线、爆炸物)、在草丛中隐蔽。
7. 行为可被玩家理解与预测:玩家能通过观察 AI 的行为,推测其意图(“他弹药不足了,在找补给而撤退等等”)而非感到莫名其妙。
TapTap

二、设计「活人感」的四大核心支柱

1. 目标驱动的有限状态机

核心思想:AI的行为由其当前目标决定,并应基于对环境和自身状态进行切换。
状态:巡逻/搜索、追击/战斗、拾取
驱动逻辑:状态转换完全由事件触发(看到敌人、听到声音、需要物资),并设有超时机制(追击N秒未果则放弃)。模拟人类注意力转移和放弃的过程。
活人感体现:AI不死追一个敌人,也不会在激战时突然跑去捡子弹。他的行为应该是连贯且符合常理的。

2. 基于武器与情境的行为调制

核心思想:所有行为决策都应与其持有的武器和当前情境(血量、敌情)相关。
武器感知:
交战距离:狙击偏好8米外,喷子喜欢贴脸3米。
转向速度:手枪手可快速转身(720°/s),狙击手转身笨重(360°/s)。
静走概率:困难与专家模式,狙击枪70%概率静走以求精准,冲锋枪仅15%。
情境感知:
低血量行为:HP<30%时,有40%概率触发撤退模式,边退边蛇形走位。
被压制反应:遭受火力压制时,会主动寻找掩体触发角落探头。

3. 不完美的感知与情报的互动

核心思想:AI不应拥有“上帝视角”。其感知应有范围、有角度、会被遮挡,其移动应避免机械感,并与其他单位有自然的物理互动。
分层感知系统:
主视觉锥:90度视角,距离所有人相同
听觉系统:枪声会吸引一定范围内的AI前往查看,并有冷却时间。制造连锁反应和战场动态。

4. 根据环境展现的战术与团队协作

核心思想:团队协作基于简单的分层指挥链实现。复杂的战术行为通过简单规则与概率组合实现变化。
团队规则: 8米内非交战的2-3人自动组队移动。(主要是降低A*寻路压力)队员在移动时会负责警戒周围。当接敌时可灵活的自主脱队进行接敌,或是实现团队战术配合。
交战逻辑:每0.5-1秒,AI根据距离、血量等因素,按概率选择蛇形、包抄、冲刺等模式。让AI的行为在每次交战都有微妙不同。

5. 适当的作弊

核心思想:四大天王有五个,小技巧能带来真人体验的大幅优化
鼓励交战:AI 巡逻时,队长会带队伍前往随机一个敌对目标附近的坐标,注意是附近而不是精确位置,目的是避免 AI 四处闲逛刚好错过,且每次交战更像是偶遇。
适度埋伏:真人玩射击游戏肯定很多龟仔,这是一种轻松且高收益的行为,可以在地图上安排兴趣点,让 AI 在落单经过时有小概率会选择躲在那边埋伏敌人。(太频繁就不好玩了,此方案目前被我从经典玩法中移除的理由是我希望更积极交火,没必要被 AI 阴)
增加掩护:当你的游戏有真人时特别有用(我纯单机没用上),可以在游戏中设计两种 NPC AI,一种是一眼假,另一种是在预算内仿真。目的是用一眼假的让玩家产生这游戏有陪玩可以保底且放下戒心,仿真的人能让他觉得这游戏很火热且不被怀疑,至于能瞒多久,就看你的预算能做到多拟真,且是否有那个价值去深挖。

三、如何实现

1. 让哒拉拉建立最小的雏形版本,验证你的想法

核心思想:具象的说明你的需求与预期,如何实现交由嗒拉拉来发挥
实践经历:我跟搭拉拉说我要参考枪声搞个2D俯视角游戏,介绍了些角色的核心操作逻辑,然后 产出的表现直接远超我的预期,有完整地图,有角色可操控,有分两队伍,随机重生,有NPC AI 逻辑,甚至连团队行为都已经有了,Day0直接实现 10v10 团队战斗.....

2. 根据你的预期,由嗒拉拉提方案让你审核

核心思想:跟嗒拉拉说你有什么需求,让他去想办法
实践经历:我要NPC会侧袭! 我要NPC会绕背,我要NPC会拾取道具补给 blablabla

3. 不断迭代细节优化体验

核心思想:想到什么不够完美的内容,就告诉嗒拉拉让她去打磨细节

四、踩坑避雷

1. AI这东西逻辑非常耗性能,不忧化目标一多容易卡死

实践经历:让搭拉拉打印数据,反馈关键性能节点,剩下让嗒拉拉自己思考自己解决

2. 嗒拉拉可能会选择复杂的复合方案来解决问题

实践经历:嗒拉拉初始版本给我用直线寻路 + 碰撞滑墙来解决问题,我请他改用A*后变成复合方案,在一下A*又滑墙时,完全无法排除卡墙等问题。最后是透过完全重做寻路这块逻辑,在两点间直线路径上有障碍就用 A* 解决,中间无障碍就走直线的清晰规则来实现。

五、结语

设计一个具备「活人感」的队友,本质上是一场精密的骗局。
我们通过有限状态机模拟动机,通过参数调制模拟个性,
通过不完美的感知模拟认知局限,通过简单的交互规则模拟社交。
技术层面,我们需要模块化的架构、性能优先的优化;
体验层面,我们需要时刻站在玩家视角反问:“这个行为,一个真人队友会做吗?为什么?”
《猛攻兄弟》的AI系统成功地将超过5000行代码的复杂逻辑,转化为玩家眼中一个个有紧张感、有惊喜(惊吓)、有时甚至让人会心一笑的“活生生”的对手。它告诉我们,强大的 AI 不在于无所不能,而在于其行为的合理性、响应性和涌现出的那一点不可预测的灵光。这正是游戏 AI 设计所追求的艺术与科学的交汇点。
猜你想搜
taptap 制造ai队友行为逻辑
别再烧积分了!从每次 2000 到每次 50 的血泪经验截图
别再烧积分了!从每次 2000 到每次 50 的血泪经验
适用场景:所有在用 TapTap Code 开发游戏的小白 难度:★☆☆☆☆ 背景最近群里总有人"炫耀"一次操作花了几千积分,说实话这不是值得高兴的事——这是在告诉所有人你的开发方式有根本性问题。我也走过这条弯路,所以来说说怎么改。 积分消耗的本质是什么积分 = AI 处理的 token 数量 = 你发给 AI 的内容 + AI 回给你的内容所以烧积分的本质只有两种: 你让 AI 做了大量无效/重
精华
82 赞
23 回复
如何提升你游戏中的UI美术水平截图
如何提升你游戏中的UI美术水平
一、请为你的游戏挑选一款合适的字体 很多开发者没有注意到其实UI界面中最重要的元素是字体,一款合适的字体能给整个游戏的界面感官带来蜕变。 请看案例 那么如何挑选适合自己的字体呢? 我总结出了一些小经验可供参考: 黑体:通用 宋体:古风、武侠、修仙 楷体:古风、武侠、修仙 圆体:卡通、动漫、Q版 科技:科幻、未来、电子 顺手分享一个免费可商用字体网站: 当然 如果你不知道自己的游戏适合什么风格
精华
126 赞
44 回复
【UI教程】如何将已有的效果图应用为实际的UI界面截图
【UI教程】如何将已有的效果图应用为实际的UI界面
在经过了一些折腾和比较折磨的尝试后,我总算是摸清楚了嗒啦啦怎么把UI效果图转换为实际游戏中的UI组件,今天就给大家带来这部分的经验分享。 tips:1.本篇教程需要各位掌握最基本的ps使用,具体的操作部分我会大致讲解,但仍需各位自行学习ps的基本操作,部分可以由ai代劳的环节我会注明。 2.本篇教程需要在以我前两篇教程作为前置环节,请在阅读这两篇前置教程后再进行本篇教程内容的学习 在按照前
12 赞
5 回复
永恒虚空持续开发日记1——关于游戏中的新名词:场频截图
永恒虚空持续开发日记1——关于游戏中的新名词:场频
写在前边:首先感谢TapTap制造版主大大@汪崽 对于作品潜力的肯定,给与了我积分计划二的权限[表情_不好意思]。这边也在加紧开发改进各种功能中,期望尽快给大家带来成熟的版本。[表情_猫咪举手] 大家好,我是永恒虚空的制作人黑猫不详,大家叫我黑猫就好。从今天开始我将以后置开发日记的形式给大家分享我在TapTap制造中制作的游戏永恒虚空的开发过程,新人希望大家多多关照! 今天先给大家介绍我作品中最重
投票
3 赞
01:29
官方阅,申请积分计划2,希望官方继续支持我完成这款游戏,截图
官方阅,申请积分计划2,希望官方继续支持我完成这款游戏,
视频内容只是一部分, 本游戏耗时3个月,目前完成进度百分之80, 是生存游戏,进入修仙界,走剧情找到宗门加入, 这时游戏才是真正开始, 提升实力境界后就可以变强,获取功法法术法宝, @视频内是游戏里挑战妖族入侵一种主流玩法,游戏就是围绕着这个来进行, 还有很多地方可以战斗,获得资源修炼变强,比如去藏书阁学习功法, 去法宝楼抽法宝,每一个宗门数十个法宝抽取 去修仙界探索,获得各自的资源,可能遇见妖兽
1 赞
3 回复
本地部署 AI 对接 TapMaker 指南 —— 以 CodeBuddy 为例V1.1截图
本地部署 AI 对接 TapMaker 指南 —— 以 CodeBuddy 为例V1.1
写在前面 大家好,我是橘猫,和你一样也是TapMaker的萌新玩家。在"全能神"天哥的悉心指导下,我顺利完成了本地开发环境的部署。经过这段时间的实战测试,已经成功打通了「本地开发 → 同步至TapMaker」的完整流程。 以下内容全部来自我的个人实操经验,旨在为同样在探索本地部署的朋友提供一个参考。每个人的电脑环境、网络情况、AI工具版本都不尽相同,文中的步骤仅供交流学习。如果你照着操作后遇到问题
37 赞
21 回复
[避坑踩雷] 小程序更新时遇到黑屏解决方案截图
[避坑踩雷] 小程序更新时遇到黑屏解决方案
之前搞了个客户端服务端 互相对照写死参数的版本检测方式,今天测试下发现居然... 直接黑屏死机,找了差不多七小时,其间死了三个Agent 陷入智力降低 + 逻辑混乱问题,在五小时左右意外的达成了完美期望结果,但是为啥会这样的原因却迟迟找不出来。 总之,如果你也遇到版本更新就黑屏,可以试试我的这方案,完美利用 -----------------------以下可以复制给哒拉拉------------
6 赞
3 回复
[避坑踩雷指南] 发布专案惨痛经验截图
[避坑踩雷指南] 发布专案惨痛经验
整起意外从2/16埋下地雷 当天开了个独立聊天询问发布游戏的步奏就了解了怎么操作 2/18 经历了一轮熬夜赶工,从早上9点多找AI说我要准备发布,请他列出步奏 他说需要我给他几张图片让他制作宣传图,还有画游戏Icon。 等我提交了资料后,在开发者服务后台看到 图片是圆的,直接违反平台规则 跟AI说要他重新生成图片,这次是方图,然后留空白,跟他说用我裁切的图做参考,然后AI上传了另一张带黑底的图..
5 赞
3 回复
猛攻兄弟为广告系统做了哪些努力截图
猛攻兄弟为广告系统做了哪些努力
在游戏中接入激励视频广告 看似只是让嗒拉拉调一个 SDK 接口的事 但真正投入生产后你会发现 难的是之后如雪片飞来的差评 本文分享我在广告系统上踩过的坑和最终的工程方案。 一、问题背景:广告 SDK 没你想的那么可靠 激励视频广告的标准流程很简单: 用户点击 → SDK 弹出广告 → 用户看完 → SDK 回调 → 发放奖励 但在真实小游戏环境中,这个流程经常断裂: SDK 回调丢失:广告播放完毕
33 赞
7 回复
游戏自荐《少女终焉契约》截图
游戏自荐《少女终焉契约》
之前玩放置类型的rpg游戏的时候我就在想,现在游戏的操作有的太过于繁琐了,有没有一款休闲一点的,想上线就上线,离线的时候角色能自动行动的游戏呢?感谢TapTap制造,我按照我的想法开发出了现在这款游戏。 一、故事背景和UI 游戏的故事背景是传统的异世界穿越故事,玩家被女神召唤到异世界,随后组建工会,招募美少女,打怪升级探索世界。所以我选择了更加二次元萌系画风的UI风格,主页为各个主要的功能,点开来
8 赞
3 回复