首页> 中国专利> 交互式游戏中智能非玩家角色的人工情感驱动方法

交互式游戏中智能非玩家角色的人工情感驱动方法

摘要

交互式游戏中智能非玩家角色的人工情感驱动方法,涉及交互式游戏中的虚拟人物自动控制技术。启动知识库,加载初始行为规则,初始化人工情感系统参数;运行多智能体,连接知识库进入等待状态;加载世界接口,一端接游戏服务器,另一端接多智能体;多智能体进入主循环开始工作,分别并发处理非玩家角色感知到的虚拟环境信息,更新虚拟人物的内建需求水平、相应的动机强度、系统参数,计算虚拟人物的人工情感强度并选择当前主要情感,选择当前主导动机,并在人工情感的指导下制定动作策略,最后将动作通过世界接口作用于游戏虚拟环境中;世界接口转发游戏玩家退出游戏的状态信息,多智能体将相关状态信息写入全局知识库,关闭知识库,退出接口。

著录项

  • 公开/公告号CN104102522A

    专利类型发明专利

  • 公开/公告日2014-10-15

    原文格式PDF

  • 申请/专利权人 厦门大学;

    申请/专利号CN201410369468.8

  • 发明设计人 蔡振华;周昌乐;黄德恒;

    申请日2014-07-30

  • 分类号G06F9/445(20060101);G06F9/44(20060101);

  • 代理机构厦门南强之路专利事务所(普通合伙);

  • 代理人马应森

  • 地址 361005 福建省厦门市思明南路422号

  • 入库时间 2023-12-17 01:54:18

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-11-07

    授权

    授权

  • 2014-11-12

    实质审查的生效 IPC(主分类):G06F9/445 申请日:20140730

    实质审查的生效

  • 2014-10-15

    公开

    公开

说明书

技术领域

本发明涉及交互式游戏中的虚拟人物自动控制技术,特别是涉及一种依据非玩家角色的 内建需求及当前虚拟环境信息推导出人工情感,并运用人工情感自动控制智能非玩家角色行 为的交互式游戏中智能非玩家角色的人工情感驱动方法。

背景技术

游戏引擎是游戏开发的核心。早期的游戏引擎主要是为游戏提供光影效果、动画渲染、 物理机制及输入输出的支持,并没有包含太多人工智能的考虑。游戏中非玩家角色 (Non-Player Character,NPC)的行为都是由程序员在游戏开发过程中事先编制好的,其行 为模式十分机械、固定,表现得不够聪明,常常让游戏玩家感到索然无味。

自上世纪90年代中后期以来,提升游戏中虚拟人物的智能性成为各大游戏公司竞相追 逐的目标,他们在游戏引擎的设计中,越来越多地引入人工智能的技术。Quake[1]和Unreal [2]是支持第一人称射击(First Person Shooting,FPS)游戏的两大最著名引擎。其中Quake 是一款完全开源的引擎,Unreal虽然没有完全开源,但它具有良好的客户端--服务器 (Client-Server,C/S)架构,同时还为Client提供了面向对象的脚本语言UnrealScript [3]。美国Michigan大学的Soar/Games项目在开源Quake II引擎的基础上引入了推理式 Agent结构Soar[4],[5]。美国Southern California大学和Carnegie Mellon大学开发 了基于Unreal的GameBot[6]引擎。

相比第一人称射击游戏,即时战略(Real-Time Strategy,RTS)游戏对NPC的智能性提 出了更高的要求,因为它不但要考虑单独一个NPC的智能表现,还要更多地考虑多个NPC在 战术、战略、决策方法的智能行为。为此,加拿大Alberta Edmonton大学开发了基于C/S架 构的免费RTS游戏引擎ORTS[7]。

这些引入了人工智能技术的游戏引擎,在一定程度上增强了虚拟人物的智能表现,但仍 存在许多不足之处。一方面,这些游戏引擎需要开发人员事先编制好行为规则,不但开发任 务繁重,而且非玩家角色的行为模式也十分有限,玩家容易在游戏中预测其行为,使游戏很 快就丧失了趣味性与新颖性;另一方面,这些游戏引擎没能有效地让虚拟人物呈现与游戏交 互情境相一致的情感表现,破坏了游戏玩家游戏时的沉浸感。因此,将人工情感融入到虚拟 人物中,一方面让非玩家角色根据虚拟环境的信息展现出适合的情感,另一方面用人工情感 控制非玩家角色的行为,使其“表里如一”,是游戏设计以及游戏引擎开发中亟需攻克的关键 技术。

参考文献:

[1]M.Abrash,“Quake's game engine:The big picture”,Dr.Dobb's Journal,1997.

[2]J.Busby,Z.Parrish,and J.Van Eenwyk,Mastering Unreal Technology:The Art  of Level Design.Sams Pub.,2005.

[3]T.Sweeney and M.Hendriks,“UnrealScript language reference”,Viewed online  at http://udn.epicgames.com/Two/UnrealScriptReference,1998.

[4]J.E.Laird,A.Newell,and P.S.Rosenbloom,“Soar:An architecture for general  intelligence”,Artificial intelligence,vol.33,no.1,pp.1–64,1987.

[5]J.E.Laird,“Extending the Soar cognitive architecture”,in Proceeding of the  2008 conference on Artificial General Intelligence 2008:Proceedings of the First  AGI Conference,2008,pp.224–235.

[6]R.Adobbati,A.N.Marshall,A.Scholer,S.Tejada,G.A.Kaminka,S.Schaffer, and C.Sollitto,“Gamebots:A 3d virtual world test-bed for multi-agent  research”,in Proceedings of the second international workshop on Infrastructure  for Agents,MAS,and Scalable MAS,2001,pp.47–52.

[7]M.Buro,“ORTS:A hack-free RTS game environment”,Computers and Games,pp. 280–291,2003.

发明内容

本发明的目的是针对现有交互式游戏引擎没有较完善的人工情感系统的不足,提供一种 交互式游戏中智能非玩家角色的人工情感驱动方法。

本发明包括以下步骤:

1)启动全局知识库,加载初始行为规则,初始化人工情感系统参数;

2)运行多智能体,连接全局知识库,并进入等待状态;

3)加载世界接口,接口一端连接游戏服务器,同游戏虚拟环境交互,接口另一端连接多 智能体,向其发送虚拟环境信息或转发多智能体的控制指令到游戏虚拟环境中;

4)多智能体进入主循环开始工作,分别并发处理非玩家角色感知到的虚拟环境信息,更 新虚拟人物的内建需求水平,相应的动机强度,系统参数,计算虚拟人物的人工情感强度并 选择当前主要情感,选择当前主导动机,并在人工情感的指导下制定动作策略,最后将动作 通过世界接口作用于游戏虚拟环境中;

5)世界接口转发游戏玩家退出游戏的状态信息,多智能体将相关状态信息写入全局知识 库,然后关闭全局知识库,退出世界接口。

本发明解决游戏开发中设计非玩家角色行为工作繁重,角色行为过于机械,缺乏适合的 情感表现的问题,同时提升游戏玩家游戏时的沉浸感。本发明采用松耦合的多智能体设计模 式,并使用一个全局知识库存储虚拟人物的感知、记忆、动作等信息,将非玩家角色的内建 需求、虚拟环境信息、系统参数、人工情感、行为控制有效地整合成一个复杂、动态控制系 统,实现对智能非玩家角色的自动控制。

附图说明

图1为本发明的全局知识库的部署及其与后台数据库和多智能体的连接示意图;

图2为本发明的整体系统架构及各大组件的结构示意图;

图3为本发明步骤4)基于多智能体协同工作的人工情感系统的原理图。

具体实施方式

为了使本技术领域的技术人员更好地理解本发明方案,下面结合附图对本发明作进一步 的描述。

1.启动全局知识库,加载初始行为规则及系统参数

1):读取配置文件,获取知识库服务端口,后台数据库服务端口;

2):启动后台数据库,加载初始行为规则及人工情感系统参数;

3):通过知识库服务端口向智能体提供数据服务。

全局知识库采用超图作为统一的知识表示方法。超图是对一般图的扩展,其显著特点是 每条边可以连接任意多条边和顶点。其基本的存储单元称为“原子”(Atom)。每一个原子(Atom) 携带的值(Value)的结构为(STI,LTI,TruthValue,Confidence,Content)。STI(Short Term  Importance)和LTI(Long Term Importance)可以用来模拟短期记忆(Short Term Memory)和 长期记忆(Long Term Memory)。TruthValue和Confidence分别为该原子(Atom)的真值和 可信度。Content则是原子(Atom)具体携带的信息。

知识库与情感系统各组件采用Client/Server的方式进行连接(参见图1)。每一个单独 的组件(如智能体)都具有各自的客户端,负责与服务端通信。客户端的主要功能包括,向 服务端发送存取指令,以及从服务端获得知识库中的数据。而服务端则负责驱动后台数据库 具体的读写操作。这种Client/Server架构具有分布式存储、易于实现并发与并行、跨平台 及语言无关性、便于实现通用算法的优点。

知识库本身并不负责对数据(超图)的直接存取操作,而是将这些操作转化为后台数据 库的基本操作,即直接的数据存取操作是由后台数据库来完成的。这种设计的优点是,充分 利用现有的、成熟的数据库技术,避免“重复制造车轮”;将相对抽象的知识存取操作与具体 的数据存取操作剥离,提高了系统的可移值性。后台数据库可以采用任何现有的数据库技术, 针对这里超图的知识表示方法,选择一些开源的、高效的NoSQL数据库,如MongoDB,Redis 是较为合适的。

在步骤1第2)部分中,知识库中的每条行为规则,形如Context&Action→Goal,其表 达的意义为:在条件Context满足时,执行某一动作Action,将能达成目标Goal。

在步骤1第2)部分中,人工情感的系统参数主要包括:每一个调节子(具体实施第4 部分详细介绍)的初始值;每一个内建需求D的初始水平L0,期望取值范围的下限min_l, 上限max_l。

2.运行多智能体,并连接全局知识库

1)读取配置文件,获取知识库服务端口,多智能体通信端口,世界接口通信端口;

2)运行多智能体,读取知识库中的系统参数初始值,初始化相应变量;

3)侦听世界接口通信端口,等待处理信息。

图2展示了多智能体与游戏虚拟环境的消息通信(具体实施第3部分详细介绍);图3展 示了多智能体之间的消息通信(具体实施第4部分详细介绍)。

3.加载世界接口,在虚拟游戏环境和多智能体之间转发数据

1)读取配置文件,获取世界接口通信端口,多智能体通信端口;

2)处理用户指令消息队列;

3)处理虚拟环境信息消息队列;

4)处理多智能体动作消息队列。

世界接口(参见图2)是沟通多智能体与虚拟游戏环境的桥梁。它的内部保持有3个消 息队列,分别用于处理用户指令、虚拟环境信息及非玩家角色动作。

在步骤3第2)部分中,用户指令消息队列存放来自游戏玩家的各种操作指令,对于非 玩家角色而言,由于玩家不需要直接操纵它们,因而这里的用户指令消息事实上只有一个, 即“退出游戏”。

在步骤3第3)部分中,虚拟环境信息消息队列采用XML格式存放虚拟人物所观察到的 虚拟环境中的信息,对每一个观察到的物体,包含有以下信息:物体ID,位置,颜色,大小, 是否可移动,是否可交互。另外,为了减少消息通信的频度,提高通信效率,我们将某一时 刻所观察到的所有物体打包成一个消息,一次性发送给多智能体。同时,还要在消息中附上 观察到的时间(即当前系统时间),便于多智能体进行取舍。

在步骤3第4)部分中,多智能体动作消息队列存放非玩家角色需要在虚拟环境中执行 的动作及其相应的参数。下面是一些常用的基本动作、参数及其说明。

goto(dir,v,step):向某个方向dir,以速度v,移动step步的距离;

jump(dir,step):向某个方向dir,跳跃step步距离;

eat(obj_id):吃编号为obj_id的物体;

drink(obj_id):喝编号为obj_id的物体;

pick_up(obj_id):捡起编号为obj_id的物体;

throw(obj_id):丢弃编号为obj_id的物体;

play(obj_id):玩耍编号为obj_id的物体;

follow(obj_id):跟随编号为obj_id的物体。

4.多智能体进入主循环,生成人工情感并驱动非玩家角色人物行动(图3)

1)感知智能体,负责接收虚拟环境信息,计算空间位置关系,并将相关信息写入到全局 知识库中;

2)需求智能体,负责更新非玩家角色的内建需求水平以及相应的动机强度,并将相关信 息写入到全局知识库中;

3)参数智能体,负责更新人工情感系统参数;

4)情感智能体,负责更新非玩家角色的人工情感强度,并选择当前主要情感;

5)动作智能体,负责发送动作序列中的第一个动作,若该序列为空,则先选择系统主导 动机,然后运行动作规划器生成新的动作序列

在步骤4第1)部分中,感知智能体,需要首先解析以XML格式封装的虚拟环境信息, 然后计算相应的空间位置关系。空间位置关系分为二元位置关系和三元位置关系两种。二元 位置位置主要包括前(front),后(back),左(left),右(right),上(above),下(beneath); 三元位置关系主要是指介于两者之间(between)。由于二元位置关系具有对称性,因此只需 要计算出一半的二元位置关系便可以推算出与之对称的二元位置关系;三元位置关系则是二 位置关的基础上,依据一些判断准则得到的。

在步骤4第2)部分中,首先需要为非玩家控制角色设定一些内建的需求,较为通用的 需求主要包括能量、水、完整性、确定性、自信度、亲和性。其中,完整性指的是虚拟人物 具有保护自身不受伤害,即保持完整性的需求;确定性主要反映的是虚拟人物对当前所处环 境的熟悉和了解程度;自信度的需求与虚拟人物成功达成目标的经历有关;亲和性是需要其 它虚拟人物共同参与才能被满足的需求,它是对人类社会需求的模拟和仿真。

在步骤4第2)部分中,每一个需求都有一定的偏好范围或目标范围。当需求水平落在 相应的目标范围时,称作该需求被满足,否则需求不被满足。我们可以将人工情感系统视为 一个目标驱动的系统,其主要任务就是尽可能让所有这些需求都被满足。而当某一需求不被 满足时,虚拟人物会有一种试图将该需求水平恢复到偏好范围内的愿望,这种愿望便构成了 动机。动机的强度与相应需求的满足度呈负相关的关系。因此,我们用需求的满足度来间接 表征相应的动机水平。而虚拟人物某一需求的满足度则根据该需求的当前水平、目标范围, 通过一个非线性模糊函数计算得到。

在步骤4第3)部分中,人工情感系统参数也称为调节子,它们一方面影响虚拟人物的 行为,另一方面构成了虚拟人物情感空间的基本维度。主要有以下4个系统参数:

(1)激活度,它表征感知和反应的激活程度。其作用是调节快速、激烈的活动与反射性 的、同认知相关的活动之间的平衡。当激活度较高时,虚拟人物倾向于快速响应外部刺激, 反之将则对外部刺激反应较慢,同时把更多的系统资源用于自身的认知活动。

(2)解析度,它决定了各种认知活动(如感知、动作规划)的精细程度。例如,当解析 度较高时,虚拟人物对环境的感知将更加注重细节,但缺乏整体性的观念,反之则通过牺牲 局部细节,把握全局性的观念。此外,解析度与激活度呈负相关的关系。例如,当激活度较 高时,虚拟人物往往选择降低解析度以提高响应速度。

(3)保护阀值,它控制智能体执行保护行为的频繁程度。保护行为可以是一系列周期性 执行的动作,其主要功能是检测外部环境的异常变化。保护阀值与当前主要动机的强度呈正 相关的关系,即在虚拟人物在面对紧急情况时(主要动机强烈),伴随着较高的保护阀值,相 应地减少保护动作的执行,将更多地资源用于处理当前的紧急事务(如自我保护)。此外,保 护阀值还与虚拟人物对当前环境的了解和熟悉程度有关(即确定性需求)。不确定的、高度动 态的环境往往需要更加频繁地执行保护动作,即对应较低的保护阀值。

(4)选择阀值,它通过引入偏好信息,帮助虚拟人物在几个相互冲突的动机之间作出选 择。由于目标驱动的系统中通常存在多个需求,系统往往会出现同时存在多个动机的情况, 而虚拟人物一次只能考虑一个动机,这就需要从中选择一个动机作为主导动机。选择阀值通 过调节当前选中的主导动机的权重,避免系统在几个相互冲突的动机之间振荡。选择阀值随 着激活度的增大而增大。例如,当虚拟人物面对危险的时候(伴随较高的的激活度),它往往 高度集中于当前选中的动机(对应较高的选择阀值),即确保自身安全的需求(或完整性需求)。

在步骤4第3)部分中,参数智能体,通过一组非线性方程来更新调节子的水平。更新 方程的构造方式可以灵活多样,但通常应满足以下一些基本原则:

(1)激活度同能量及自信度的需求有关。例如,当智能体具备足够的能量并能对自身的 能力充满信心时,往往意味着智能体已经做好了反应的准备。

(2)解析度与激活度呈负相关的关系。例如,当智能体准备做出快速响应的时候,它往 往无暇顾及其它的认知活动,譬如感知、探测环境中异常的变化,动作规划等。

(3)保护阀值则取决于智能体对环境的熟悉程度以及智能体的安全性。例如,当智能体 对环境比较熟悉的时候,或者正处于安全的环境中的时候,智能体倾向于减少保护性的行为。

(4)选择阀值同智能体的自信程度呈正相关的关系。当智能体对自身能力充满信心时, 它放弃当前计划或中止当前动作的可能就较小。

在步骤4第4)部分中,非玩家角色的情感用4个调节子及满足度构成的五维连续空间来 表达。例如高兴、悲伤、生气和恐惧这四种常用情感的可以如表1的方式定义。

表1

对每一种情感,其强度的计算方式为:首先根据4个调节子及满足度的当前水平以及上 表定义的隶属范围,通过一个隶属度函数,计算每一情感维度的隶属度;然后,将所有情感 维度的隶属度的加权平均作为该情感的强度。

当所有情感的强度计算完毕后,当前强度最大的情感被挑选出来,作为当前系统的主要 情感然后,以适当的方式在游戏中呈现出来。

另外,为了滤去太小的情感波动所造成的情感快速、不稳定的变化,我们还引入了情感 阀值γ。如果按上面步骤计算出来的主导情感其强度低于γ,则忽略该情感,即认为非 玩家角色处于中情情感(或无情感)的状态。

在步骤4第5)部分中,采用以下的方法选择系统的主导动机:

若random(0,1)<选择阀值,则选择满足度最低的需求所对应的动机作为系统的主导 动机;否则,随机选择一个动机作为系统的主导动机。

其中,random(0,1)输出一个[0,1]范围内的随机数,其分布为均匀分布。

挑选出系统主导动机之后,智能体通过运行一个动作规划器,从当前主导动机出发(即 最终目标),根据知识库中的规则信息(规则形式通常为条件&动作→目标),生成相应的动 作序列。该动作序列的成功实施应当有助于智能体将主导动机所对应的需求水平恢复到期望 范围内。

动作规划器通常采用基于图搜索的后向推理方法,此方法已广泛应用,故其本身不属于 本发明所包涵的内容。但本发明对动作规划器的改进之处在于,引入了人工情感对动作规划 的调节机制。使用参数MAX_N来控制动作搜索的循环迭代次数,即虚拟人物把多少计算资源 用于动作规划。而MAX_N又与虚拟人物的激活度相关联,即MAX_N=f(activation),其中f 为一个非线性、单调递减函数。

5.处理退出指令,保存数据,关闭系统

1)世界接口将用户退出游戏的指令转发给多智能体;

2)多智能体将当前状态信息及相关数据写入到全局知识库中,向世界接口发送退出状态 信息,然后退出主循环;

3)全局知识库等待多智能体服务请求超时,关闭后台数据库,关闭知识库服务端口;

4)世界接口接收到所有多智能体退出状态信息,或等待退出状态信息超时,尝试强行关 闭多智能体,向游戏虚拟环境发送退出状态信息,然后退出主循环。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号