在游戏中, 如果只有玩家操控的角色在游戏世界里孤单的产生一系列行为, 而没有其他任何可以和玩家角色形成交互活动、产生事件的话, 玩家会觉得非常索然无味。此时如果在游戏中加入一些有一定功能和智能的人物和怪物, 使之与玩家形成各种事件的互动, 我们通常就把这些角色称为NPC(NO people control)———游戏世界中无需玩家操控而具备智能的物体。玩家就与这些有“智能”的NPC 共同构成一个有故事有内容的游戏世界, 这样既能让玩家在游戏中了解到如同看故事书或看电影般的内容情节, 又能亲身操控角色参与到这个虚拟的世界里面。
有了NPC 在游戏世界里, 我们就必须赋予他们足够的“思想”, 才能让他们行动起来, 形成一个有生命的世界, 通常我们将之称谓NPC AI( 即NPC 的人工智能) 。NPC 一些精彩的思想, 所做出的事件往往会让玩家得到更多惊喜的体验。所以NPC 的智能思想在游戏设定中越来越重要乃至于整个AI 系统也越来越庞大。
下面就让我们在这篇文章里面着重分析游戏中怪物NPC 的AI 系统设定的规律和原则, 从而揭开NPC AI 的神秘面纱。
(据说绿色可以使人心情愉悦,好吧,我知道这样的帖子通常会让人觉得索然无味。但是作为一个游戏的爱好者,我觉得具有一定的相关知识还是必须的,毕竟这样,你可以理直气壮一些的对别人说,我爱好游戏。)
1 怪物NPC AI 系统
设计怪物的AI 系统需主要考虑怪物处于主动和被动状态下会做出什么样反应。在怪物处于主动状态下时, 设定一个警戒范围, 如果没有目标进入这个范围, 那么怪物会自发的进行行走, 停留等动作, 反之如果有目标进入, 怪物则会进入战斗状态准备攻击目标; 在怪物处于被动状态时, 就该考虑怪物应该被施与哪些被动动作。
2 怪物NPC 的属性
怪物在主动和被动状态下会做出的任何反应都需要依赖于其自身的各种属性设定, 也就是AI 系统的运作是根据其各种属性来进行判定。根据怪物NPC 当前状态下的不同属性, 驱动产生出多种行为事件。通常我们将怪物NPC 的AI 中涉及到的属性归纳为两类:
2 .1 基本属性
我们在AI 系统设定时考虑的第一个基本属性为怪物的种类。一个游戏中怪物种类的设定是多种的, 设定时由种类不同得到特性会有不同, 或可以说“智商”会有不同, 比如:人形怪的AI 通常都设定非常高, 当被猎杀而打不过时会聪明地选择逃跑保命, 而动物系的怪AI 设定一般就比较低, 在一样的情况下可能会选择一味的猛攻直到死亡。第二个要考虑的基本属性是等级。原则上等级越高给其设定的AI 也会越高, 但不是绝对。第三个要考虑的属性就是怪物的性别。一般设为三种性别, 雌、雄、无性别。
2.2 AI 相关的战斗属性
战斗属性中的各种属性一般是由公式计算得到的具体数据值, 是AI 系统判定的重要指标。先分析战斗属性的基本属性: HP(Health Point)属性------怪的血量值, 也称为生命值, 需要设定怪的当前血量值和最大血量值, 怪会依据血量值有不同动作, 可能继续战斗, 或呼唤同伴帮忙, 或死亡。MP(Magic Point)属性----- 怪的魔法值或法力值, 需要设定怪的当前魔法值和最大魔法值, 怪物会依据魔法值施出不同的技能或不同的攻击方式。还有物理攻击力属性, 物理防御力属性, 魔法攻击力属性, 魔法防御力属性分别代表对物理或魔法的适性。以及闪避(Dodge)属性———怪物NPC 躲避玩家角色攻击的几率, 在AI 设计中, 通常会让某些怪物NPC 具备增强闪避率的技能, 增强对玩家攻击的躲闪能力, 以至于给玩家造成足够的麻烦。而命中, 致命一击和格挡属性在AI 中应用和闪避属性类似, 不再敷述。命中(Hit)属性———怪物NPC 攻击玩家角色的命中率。致命一击(Critical)———怪物NPC 攻击中的致命一击的概率。格挡(Block)———怪物NPC 抵挡玩家角色的概率。
3 自发性动作事件
AI 系统中, 设定自发性动作事件首先考虑怪物的生成情况。怪物的生成第一考虑的是怪物生成区域, 也就是怪物在自发性动作事件中的活动区域。需要设定一个坐标点Point=[x,y]为中心, r 为半径的圆形区域内生成某种类型怪物NPC; 其次要设定怪物生成数量, 在单位区域内某类型怪物NPC 最大生成个数; 再来是怪物生成时间间隔, 设定N 秒生成1 个怪物, 直到达到最大生成个数。最后还需设定怪物生成坐标, 某一个怪物NPC 生成的坐标位置。以及怪物活动关键点, 每两个关键点之间可任意生成行动路径, 怪物在行动路径上活动。
生成设定好了以后, 再考虑怪物的自发性动作。包括停留, 行走, 警戒。行走, 是通过预先在一定区域内随机分布停留点, 每两个停留点之间的连线就形成了该怪物NPC 行走的路径; 停留, 是在一定区域内随机设定单位数量无重复的坐标点, 也就是怪物NPC行走的停留点; 警戒, 包括“警戒范围”的设定, 主动性攻击怪物NPC 在停留或行走过程中始终在警戒范围内进行着敌对目标的搜索行为, 一旦发现敌对目标进入该警戒范围内, 就会主动攻击目标。
4 反应性动作事件
对主动攻击性怪来将, 当目标进入警戒范围内, 就会由自发性动作事件转换为反应性动作事件。开始对目标进行一系列的攻击动作。而对被动攻击性怪来说, 当目标攻击时才转换为反应性动作攻击目标。怪物的反应动作事件包括: 目标选取判定, 战斗技能使用判定, 追击判定, 逃跑判定。
4.1 目标选取判定
目标选取判定的关键是怪物属性之一的“仇恨值”。怪物攻击目标可以设定首先遵从仇恨值最大原则。再依次考虑当前HP( 血量) 少的对象攻击原则, 就近攻击原则, 低等级对象攻击原则, 原先仇恨值排位较高原则。
仇恨值最大原则, 根据仇恨值计算方法得出当前怪物仇恨值列表, 怪物会选择攻击当前仇恨列表中“仇恨值”最大的目标。那么什么是仇恨值呢?是对玩家打击程度的数值累加, 其范围为正整数, 是决定该怪物的攻击对象判定的关键数据。引起一个怪物仇恨值产生有三种方式: 进入“主动攻击性”怪物的“警戒范围”, 如果玩家A 第一个主动或被动进入某个处于“和平状态”的主动攻击物的“警戒范围”内, 该怪物将会对玩家A 产生N 点“初始仇恨值”, 并进入“战斗状态”, 主动攻击玩家角色; 第二种, 该怪物被攻击, 每一次攻击怪物都会使怪物对该玩家产生新的除“初始仇恨值”以外的增量仇恨值; 第三种, 帮助攻击该怪物的对象(间接敌对)。玩家A 对怪物X 仇恨列表中存在的玩家B 使用辅助或恢复技能, 怪物X 会对玩家A 产生一定的仇恨增量。仇恨值产生以及值的变化会造成仇恨列表刷新, 也就会引起怪物仇恨值的变化, 怎么进行仇恨列表刷新呢? 需从三方面考虑,一方面怪物在每完成一次进攻后(不论成功或失败), 就会触发“仇恨列表”刷新事件, 重新从仇恨列表中选取仇恨值最高的玩家作为攻击目标; 另一方面需设定一次攻击动作事件的时间和仇恨列表固定刷新时间, 这个时间定义为N 秒, 这项设定作用在于为了防止交替出现仇恨数值变化, 如两个玩家远程攻击怪物, 使怪物仇恨交替上升造成怪物跑来跑去; 再者由玩家的特殊技能( 只改变自身的仇恨值而不造成伤害和增减益效果的技能) 造成“仇恨列表刷新”引起的时候, 怪物会立刻强制响应这个变化。
仇恨值最大原则的另一重要设定是仇恨列表的删除。玩家A 如果处于怪物B 的仇恨列表中, 当玩家A 跑出怪物B 的追击范围后, 怪物B 会从自身的仇恨列表内将玩家A 的仇恨信息删除; 玩家A 如果处于怪物B 的仇恨列表中, 当玩家A 跑出怪物B 所在的场景地图后, 怪物B 会从自身的仇恨列表内将玩家A 的仇恨信息删除; 玩家A 如果处于怪物B 的仇恨列表中, 如果玩家A 死亡, 怪物B 会从自身的仇恨列表内将玩家A 的仇恨信息删除; 玩家A 如果处于怪物B 的仇恨列表中, 如果玩家B 因为非正常退出游戏或者直接返回人物选择界面, 那么在玩家A 的登出延迟时间结束并完全退出游戏后, 怪物B 会从自身的仇恨列表内将玩家A 的仇恨信息删除; 怪物死亡后, 怪物的仇恨列表所有内容会被清空, 不再记录玩家的仇恨值。
4.2 战斗技能使用判定
也就是怪物NPC 在战斗中选择怎样的攻击方式, 其判定的主要依据则和第3 节列举出来的怪物NPC 属性关联甚密。先分析怪物NPC 在和玩家角色的战斗中通常会使用的技能攻击种类有: 普通攻击、单体近战技能、群体近战技能、单体远程技能、群体远程技能、单体法术技能、群体法术技能、单体增益技能、群体增益技能、单体减益技能、群体减益技能。
4.3 怪物NPC 追击判定
当玩家角色离开怪物攻击范围后,怪物会选择追击。具体追击条件一般设定为两种:
玩家角色离开怪物攻击范围; 该玩家A 在怪物仇恨列表里排第一位, 将继续追击玩家A, 达到怪物的进攻范围就实行攻击。
4.4 怪物NPC 逃跑判定:
4.4.1 逃跑与否判定
据该怪物的“逃跑率”进行判定, 逃跑率越大则逃跑的可能性越高, 取值范围0.00~1.00。当HP( 血量) 值在15%- 20%之间时进行第一次逃跑判定; 如果第一次判定逃跑失败, 当前HP 值在5%- 10%之间时进行第二次逃跑判定。根据该怪物的“逃跑率”进行判定是否逃跑成功。如果超出HP 值判定范围, 出现范围溢出, 将自动失去逃跑判定机会。根据怪物NPC 的具体特性设置怪物逃跑方式:
彻底逃跑, 根据该怪物的“逃跑率”进行判定, 逃跑率越高越易逃跑。逃跑成功后仇恨列表内容将全部清除。
4.4.2 逃跑方向判定
当怪物NPC 的HP 值下降到一定百分比时, 在AI 设计中往往会设计让该怪物NPC 选择逃跑, 以摆脱玩家角色的继续攻击。AI设计基本原则通常以下三点:
(1)与玩家角色当前相反的方向逃跑。
(2)逃跑范围必须满足始终不超出“怪物生成区域”。
(3)尽可能往最近同伴位置逃跑, 并且使用“呼叫”使周围同伴前来援助。
分享到:
相关推荐
高中政治教案《神奇的货币》:揭开货币的神秘面纱-最新范文.doc
高一(上)政治作业与测评:1.1.1揭开货币的神秘面纱-4页.pdf
项目一 揭开人工智能的神秘面纱-任务4解析人工智能的关键技术.pptx
### 项目一 揭开人工智能的神秘面纱-任务5探索人工智能成功应用领域 #### 重要知识点概述 本文档旨在探讨人工智能(AI)在不同领域的实际应用案例,并通过这些案例来展示人工智能技术如何深刻地改变了我们的日常...
### 项目一 揭开人工智能的神秘面纱——任务1掌握人工智能的基本概念 #### 一、引言 随着第五届世界智能大会的召开,人工智能再次成为焦点。本次大会不仅展现了人工智能在多个领域的应用和发展前景,还强调了中国...
### 项目一 揭开人工智能的神秘面纱—任务6:驾驭“无处不在”的人工智能 #### 一、任务背景与导入 随着科技的飞速发展,人工智能(Artificial Intelligence, AI)已成为当今世界最炙手可热的话题之一。本项目旨在...
### 项目一:揭开人工智能的神秘面纱——探究人工智能发展历程 #### 一、引言 随着全球人工智能技术大会(GAITC 2021)的召开,人工智能再次成为全球关注的焦点。这次盛会不仅汇聚了众多国内外顶尖的人工智能学者...
揭开均线系统的神秘面纱pdf版本 揭开均线系统的神秘面纱pdf版本
1.1 揭开货币的神秘面纱 教学设计-2020-2021学年高中政治人教版必修一.docx
01-docker基本概念 02-docker安装之centos 7 03-docker镜像相关操作命令 04-docker容器操作命令 05-docker应用之tomcat容器部署web应用 06-问题解决
【知识点详解】 1. **货币的基本职能** - **价值尺度**:货币作为衡量和表现所有商品价值大小的标准。这是货币的基本职能之一,因为它允许我们用货币单位来表示商品的价值。货币自身也是商品,有价值,因此能用来...
揭开世界500强的面纱--世界500强的秘密
随着时代的发展,揭开计算机的神秘面纱,了解其内部构造和工作原理,不仅对于科技工作者和计算机爱好者,对于每个人来说,都显得尤为重要。本文将带领大家认识计算机系统,探索其硬件和软件的组成,以及二者是如何...
"小游戏源码,揭开游戏神秘面纱"这个标题和描述正揭示了我们可以通过学习游戏源码来理解游戏背后的运作机制。源码是软件的灵魂,它记录了游戏从无到有的每一个细节。下面我们将深入探讨游戏源码相关的知识点。 1. *...
而后续的EDVAC(Electronic Discrete Variable Automatic Computer)由冯·诺依曼设计,标志着计算机进入了存储程序控制的新时代,它的出现奠定了现代计算机的基本结构,包括运算器、控制器、存储器、输入设备和输出...
【标题】:“03-04-05-揭开BootStrap的神秘面纱1”主要探讨了Netty框架中的BootStrap组件及其在实现高性能网络通信中的作用。本章节旨在帮助读者深入理解Netty的运行机制,特别是NioEventLoop、Pipeline、ByteBuf的...
1-1高一政治揭开货币的神秘面纱.ppt
高中政治-揭开货币的神秘面纱课件新人教版必修.ppt