非玩家角色的控制方法、装置、设备及存储介质与流程

文档序号:17633347发布日期:2019-05-11 00:15阅读:280来源:国知局
非玩家角色的控制方法、装置、设备及存储介质与流程

本发明涉及操控技术领域,尤其涉及一种非玩家角色的控制方法、装置、设备及存储介质。



背景技术:

随着游戏人工智能(artificialintelligence,ai)技术的发展,虚拟游戏世界中的数百个非玩家角色(non-playercharacter,npc),可以像现实中的人类一样,活动起来,创造一个更加丰富、更加逼真的虚拟角色社会群体。

目前,为了实现虚拟游戏世界中npc的类人决策行为,通常可以采用有限状态机或者行为决策树的方法搭建起一个ai构架。其中,有限状态机的方法可以通过定义多个状态,及状态之间切换的触发条件来实现npc的决策行为,同时使用节点图工具,来编辑与动态调试。行为决策树的方法可以通过定义一个庞大的决策树,来选择不同状态下npc的决策行为,同时借助节点编辑工具来编辑决策树,调试行为树。

然而,由于人类的行为复杂多变,因此,无论是借助有限状态机的方法还是借助行为决策树的方法,均需要庞大的工作量,并无法做到npc复杂的类人决策行为,降低用户的游戏体验感。



技术实现要素:

本发明提供一种非玩家角色的控制方法、装置、设备及存储介质,以解决现有技术中无法做到非玩家角色复杂的类人决策行为的问题。

第一方面,本发明提供一种非玩家角色的控制方法,包括:

通过获取非玩家角色的当前需求信息,确定所述非玩家角色在游戏场景中参与游戏活动的资源点;

根据所述非玩家角色在游戏场景中参与游戏活动的资源点,确定所述非玩家角色前往所述资源点的路径;

控制所述非玩家角色按照所述路径前往对应资源点参与游戏活动。

可选地,通过获取非玩家角色的当前需求信息,确定所述非玩家角色在游戏场景中参与游戏活动的资源点,包括:

根据所述非玩家角色的当前需求信息,确定初始满足状态和当前需求权重;

根据所述当前需求权重和所述初始满足状态,得到平均快乐值;

预测在所述非玩家角色在游戏场景中参与各资源点对应的游戏活动后的参与满足状态;

确定所述非玩家角色的位置分别与各资源点的位置之间的游戏活动距离;

根据所述游戏活动距离、所述当前需求权重、所述初始满足状态、所述参与满足状态和所述当前增益系数,得到快乐总增益;

根据所述快乐总增益和所述平均快乐值,确定所述非玩家角色在游戏场景中参与游戏活动的资源点。

可选地,所述资源点为满足预设条件的资源点,所述预设条件为当前时刻在所述资源点的开放时间段之内且所述资源点处于空闲状态。

可选地,所述资源点的要素包括:游戏活动的内容、游戏活动的区域、游戏活动的交互点、参与游戏活动的增益或消耗、游戏活动的开放时间段。

可选地,根据所述非玩家角色在游戏场景中参与游戏活动的资源点,确定所述非玩家角色前往所述资源点的路径,包括:

判断所述非玩家角色的位置与所述资源点的位置之间的游戏活动距离是否小于预设距离;

若是,则采用第一算法,确定所述非玩家角色前往所述资源点的路径;

若否,则采用第一算法和第二算法,确定所述非玩家角色前往所述资源点的路径。

可选地,在所述非玩家角色的位置与所述资源点的位置之间的游戏活动距离大于或等于预设距离时,采用第一算法和第二算法,确定所述非玩家角色前往所述资源点的路径,包括:

确定距离所述非玩家角色的位置最近的一个第一区域和距离所述资源点的位置最近的一个第二区域;

根据所述第一算法,确定所述非玩家角色的位置与所述第一区域内任一点之间的路线为第一路径;

根据所述第二算法和预设偏差,确定第二路径;

根据所述第一算法,确定所述资源点的位置与所述第二区域内任一点之间的路线为第三路径;

根据所述第一路径、所述第二路径、所述第三路径以及预设条件,确定所述非玩家角色前往所述资源点的路径,所述预设条件为所述第二路径分别与所述第一路径和所述第三路径的衔接处的夹角均为钝角。

可选地,确定距离所述非玩家角色的位置最近的一个第一区域和距离所述资源点的位置最近的一个第二区域,包括:

确定所述非玩家角色的位置与各预设区域上任意点之间的距离最小的n个预设区域,n为正整数;

确定所述资源点的位置与各预设区域上任意点之间的距离最小的m个预设区域,m为正整数;

从所述n个区域中选择所述第一区域;

从所述m个区域中选择所述第二区域。

可选地,根据所述第二算法和预设偏差,确定第二路径,包括:

根据所述第二算法,确定所述第一区域的中心与所述第二区域的中心之间的路径;

根据所述第一区域的中心与所述第二区域的中心之间的路径和所述预设偏差,确定所述第二路径。

可选地,所述方法还包括:

在所述非玩家角色与任一非玩家角色之间的距离满足预设距离时,控制所述非玩家角色执行社交的操作。

第二方面,本发明提供一种非玩家角色的控制装置,包括:

第一确定模块,用于通过获取非玩家角色的当前需求信息,确定所述非玩家角色在游戏场景中参与游戏活动的资源点;

第二确定模块,用于根据所述非玩家角色在游戏场景中参与游戏活动的资源点,确定所述非玩家角色前往所述资源点的路径;

控制模块,用于控制所述非玩家角色按照所述路径前往对应资源点参与游戏活动。

可选地,所述第一确定模块,具体用于根据所述非玩家角色的当前需求信息,确定初始满足状态和当前需求权重;根据所述当前需求权重和所述初始满足状态,得到平均快乐值;预测在所述非玩家角色在游戏场景中参与各资源点对应的游戏活动后的参与满足状态;确定所述非玩家角色的位置分别与各资源点的位置之间的游戏活动距离;根据所述游戏活动距离、所述当前需求权重、所述初始满足状态、所述参与满足状态和所述当前增益系数,得到快乐总增益;根据所述快乐总增益和所述平均快乐值,确定所述非玩家角色在游戏场景中参与游戏活动的资源点。

可选地,所述资源点为满足预设条件的资源点,所述预设条件为当前时刻在所述资源点的开放时间段之内且所述资源点处于空闲状态。

可选地,所述资源点的要素包括:游戏活动的内容、游戏活动的区域、游戏活动的交互点、参与游戏活动的增益或消耗、游戏活动的开放时间段。

可选地,所述第二确定模块,具体用于判断所述非玩家角色的位置与所述资源点的位置之间的游戏活动距离是否小于预设距离;在所述非玩家角色的位置与所述资源点的位置之间的游戏活动距离小于预设距离时,采用第一算法,确定所述非玩家角色前往所述资源点的路径;在所述非玩家角色的位置与所述资源点的位置之间的游戏活动距离大于或等于预设距离时,采用第一算法和第二算法,确定所述非玩家角色前往所述资源点的路径。

可选地,在所述非玩家角色的位置与所述资源点的位置之间的游戏活动距离大于或等于预设距离时,所述第二确定模块,用于确定距离所述非玩家角色的位置最近的一个第一区域和距离所述资源点的位置最近的一个第二区域;根据所述第一算法,确定所述非玩家角色的位置与所述第一区域内任一点之间的路线为第一路径;根据所述第二算法和预设偏差,确定第二路径;根据所述第一算法,确定所述资源点的位置与所述第二区域内任一点之间的路线为第三路径;根据所述第一路径、所述第二路径、所述第三路径以及预设条件,确定所述非玩家角色前往所述资源点的路径,所述预设条件为所述第二路径分别与所述第一路径和所述第三路径的衔接处的夹角均为钝角。

可选地,所述第二确定模块,用于确定所述非玩家角色的位置与各预设区域上任意点之间的距离最小的n个预设区域,n为正整数;确定所述资源点的位置与各预设区域上任意点之间的距离最小的m个预设区域,m为正整数;从所述n个区域中选择所述第一区域;从所述m个区域中选择所述第二区域。

可选地,所述第二确定模块,用于根据所述第二算法,确定所述第一区域的中心与所述第二区域的中心之间的路径;根据所述第一区域的中心与所述第二区域的中心之间的路径和所述预设偏差,确定所述第二路径。

可选地,所述控制模块,还用于在所述非玩家角色与任一非玩家角色之间的距离满足预设距离时,控制所述非玩家角色执行社交的操作。

第三方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的非玩家角色的控制方法。

第四方面,本发明提供一种电子设备,包括:输入输出设备、存储器及处理器;所述输入输出设备、所述存储器分别与所述处理器连接;

所述存储器,用于存储程序指令;

所述处理器,用于在程序指令被执行时,实现第一方面所述的游戏中预览地图的非玩家角色的控制方法。

本发明提供的非玩家角色的控制方法、装置、设备及存储介质,通过根据获取到的非玩家角色的当前需求信息,确定非玩家角色在游戏场景中参与游戏活动的资源点,并根据非玩家角色在游戏场景中参与游戏活动的资源点,确定非玩家角色前往资源点的路径,从而,控制非玩家角色按照路径前往对应资源点参与游戏活动。本发明中,实现了非玩家角色的类人决策,使得非玩家角色可以在虚拟游戏中进行类人决策行为,解决了现有技术无法做到非玩家角色复杂的类人决策行为,提高了用户的游戏体验感。

附图说明

为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的非玩家角色的控制方法的流程图;

图2为本发明提供的非玩家角色的控制方法的流程图;

图3为本发明提供的非玩家角色的控制方法的流程图;

图4为本发明提供的非玩家角色的控制方法的流程图;

图5为本发明提供的非玩家角色的控制装置的结构示意图;

图6为本发明提供的电子设备的硬件结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,本申请实施例各部分及附图中的术语“第一”、“第二”及“第三”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

本申请下述实施例所涉及的方法流程图仅是示例性说明,不是必须包括所有的内容和步骤,也不是必须按照所描述的顺序执行。例如,有些步骤还可以分解,而有些步骤可以合并或部分合并,因此,实际执行的顺序可根据实际情况改变。

本申请下述实施例所涉及的方框图中的功能模块仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或者不同网络和/或处理器和/或微控制器中实现这些功能实体。

如下结合多个实例对本申请实施例提供的非玩家角色的控制方法、装置、设备及存储介质进行说明。

图1为本发明提供的非玩家角色的控制方法的流程图。该非玩家角色的控制方法可由游戏软件/客户端所安装的终端的处理设备如处理器执行相应的软件代码实现,也可由该终端的处理设备执行相应的软件代码,并结合其他硬件实体实现。其中,终端例如是台式电脑、笔记本、个人数字助理(personaldigitalassistant,简称:pda)、智能手机、平板电脑和游戏机等设备。该实施例以终端为执行主体进行说明,服务器的执行方式类似,本实施例此处不做赘述。

终端的处理器上可通过执行游戏应用并在终端的显示设备上渲染生成游戏场景,该游戏场景中包括至少一个npc、资源点以及路径。其中,资源点代表了npc所处的动态环境,可以将npc所处的虚拟环境抽象为一个或多个资源点,例如,公园中的社交资源点、餐厅中的吃饭资源点、npc的家以及扫地工作资源点等。该路径为虚拟游戏中预设的地图,也可以为npc移动的预设路径,使得npc可以在路径上移动。

具体地,用户可以下载游戏类的应用程序或浏览器的网页程序并安装至终端上,如该游戏应用在终端上运行时,便可在终端的显示设备上渲染生成游戏场景,该游戏场景中包括至少一个npc、资源点以及路径,使得npc可以根据自身需求,确定需要参与游戏活动的资源点以及前往该资源点的路径,实现控制npc移动到资源点并参与游戏活动,丰富虚拟游戏。同时还可以显示运行的游戏场景中各个npc的需求状态、各个资源点的情况和虚拟游戏的路径情况。

其中,该npc的角色包括但不限于商人、律师、医生、农民、小孩等各种类型的虚拟角色。该npc的需求包括但不限于如体力和金钱等物质需求以及如娱乐等精神需求,此外,该npc的需求还可以包括依据角色设定的如嗜酒、信仰的特殊需求。该资源点包括但不限于酒店、商店、广场、咖啡馆、赛道、公园等各种活动对应的场所。该路径可以为npc前往资源点的最佳路径,其中最佳路径指的是最贴合人类决策行为的路径。

该非玩家角色的控制方法,可应用于包含有游戏应用的电子设备,该游戏应用对应的虚拟游戏中,任意一个npc可以根据自身需求,前往资源点并参与游戏活动,实现复杂的类人决策行为,从而构建一个更加丰富且饱满的虚拟游戏。如图1所示,本实施例的非玩家角色的控制方法可以包括:

s101、通过获取非玩家角色的当前需求信息,确定非玩家角色在游戏场景中参与游戏活动的资源点。

类比于人类决策行为的现实情况,人类可以根据自身需求,选择参与活动,且在参与活动之后便可改变自身的需求。如,人们出门打工赚钱便可实现自身的金钱需求。人们去图书馆读书、看报便以满足自身的精神需求。因此,本实施例中,一个npc具有多个需求,该需求可以包括如能量和金钱等物质需求,以及如读书和听音乐等精神需求。

并且,本实施例中,还可以设置有多个资源点,每个资源点对应一个游戏活动,使得资源点的动态变化可以为npc构建一个不断变化的虚拟环境,来承载npc的具体行为表现,从而,本实施例可以通过资源点可以向npc提供不同类型的游戏活动。

进一步地,由于npc的需求多种多样,且资源点提供的游戏活动丰富多彩,使得npc通过参与游戏活动实现自身需求满足的过程,会更加贴近人类的真实生活。又由于npc具有至少一个需求,每个游戏活动可以满足npc的一个或多个需求,且资源点可以包括多个,每个资源点对应一个游戏活动,因此,本实施例便可根据npc的当前需求信息,从npc可参与游戏活动的一个或多个资源点中任选一个资源点作为npc参与游戏活动的资源点。

其中,本实施例对资源点的具体实现形式不做限定。可选地,资源点的要素包括:游戏活动的内容、游戏活动的区域、参与游戏活动的收益或消耗、游戏活动的开放时间段。

其中,该游戏活动内容指的是游戏活动的流程,该游戏活动的区域指的是游戏活动的位置或游戏活动的范围,该游戏或的交互点包括最大参与游戏活动的人数、以及每个参与游戏活动的位置和朝向,该参与游戏活动的增益或消耗指的是参与游戏活动后npc需求的增长或消耗,该朝向指的是如npc处于电影院资源点时需要规定npc面向屏幕等规定npc站位的方向。

举例而言,在npc的当前需求信息确定当前需求为饥饿需求时,npc可以前往餐馆对应的吃饭资源点。由于餐馆可以向npc提供餐食,因此,npc在吃饭资源点内进食结束后,npc的饥饿需求便得到满足。在npc的当前需求信息确定当前需求为金钱需求时,npc可以前往野外对应的宝藏资源点。由于野外可以向npc提供宝藏,因此,npc在宝藏资源点内寻宝结束后,npc的金钱需求便得到满足。

s102、根据非玩家角色在游戏场景中参与游戏活动的资源点,确定非玩家角色前往资源点的路径。

s103、控制非玩家角色按照路径前往对应资源点参与游戏活动。

为了实现npc参与游戏活动的过程,本实施例可以根据npc参与游戏活动的资源点,确定npc前往资源点的路径,且该路径为更加贴近人类移动的路径。进而,本实施例可以控制npc按照该路径前往对应的资源点,并参与游戏活动,实现npc的类人决策行为。

举例而言,在npc的当前需求为饥饿需求时,本实施例可以选择提供能量的资源点,如餐馆资源点,并确定npc从当前位置前往餐馆资源点的路径,使得npc在游戏场景中可以按照该路径前往到餐馆资源点,npc便可通过进食来满足饥饿需求。在npc的当前需求为金钱需求时,本实施例可以选择提供金钱的资源点,如餐馆资源点,并确定npc从当前位置前往餐馆资源点的路径,使得npc在游戏场景中可以按照该路径前往到餐馆资源点,npc便可通过参与洗碗等服务活动来满足金钱需求。

本实施例提供的非玩家角色的控制方法,通过根据获取到的非玩家角色的当前需求信息,确定非玩家角色在游戏场景中参与游戏活动的资源点,并根据非玩家角色在游戏场景中参与游戏活动的资源点,确定非玩家角色前往资源点的路径,从而,控制非玩家角色按照路径前往对应资源点参与游戏活动。本实施例中,实现了非玩家角色的类人决策,使得非玩家角色可以在虚拟游戏中进行类人决策行为,解决了现有技术无法做到非玩家角色复杂的类人决策行为,提高了用户的游戏体验感。

在上述图1实施例的基础上,结合图2对s101中的通过获取非玩家角色的当前需求信息,确定非玩家角色在游戏场景中参与游戏活动的资源点的具体实现过程进行详细说明。

图2为本发明提供的非玩家角色的控制方法的流程图,如图2所示,本实施例的非玩家角色的控制方法可以包括:

s201、根据非玩家角色的当前需求信息,确定初始满足状态和当前需求权重。

s202、根据当前需求权重和初始满足状态,得到当前快乐值。

s203、预测在非玩家角色在游戏场景中参与各资源点对应的游戏活动后的参与满足状态。

s204、确定非玩家角色的位置分别与各资源点的位置之间的游戏活动距离。

s205、根据游戏活动距离、当前需求权重、初始满足状态、参与满足状态和当前增益系数,得到快乐总增益。

s206、根据快乐总增益和当前快乐值,确定非玩家角色在游戏场景中参与游戏活动的资源点。

具体地,由于资源点包括多个,且每个资源点可以满足npc的一个或多个需求,因此,可能存在多个资源点可以满足npc的需求。本实施例中,可以对npc的决策行为进行建模,通过计算不同游戏活动可以为npc带来多少需求增益,以便选择出更加贴合人类决策行为对应的资源点。

进一步地,本实施例可以根据npc的当前需求信息,确定初始满足状态h和当前需求权重。其中,当前需求信息中可以包括npc的各个需求。灭个需求的满足状态可以通过具体数值进行表示,通常数值越大,就越满足npc的需求。初始满足状态h代表了npc所需满足当前一个或多个需求的当前状态。该当前需求权重中的任意一个需求的需求权重可以代表该需求在各个需求中的重要程度。一般情况下,需求权重越大,对应需求的重要程度越高。

进一步地,本实施例可以根据当前需求权重和初始满足状态h,得到平均快乐值t,即t=∑需求权重*h,这样,该平均快乐值可以作为npc参与各个游戏活动之后满足需求的参考标准。

具体地,由于一个游戏活动可以满足npc的一个或多个需求,例如,当npc前往餐馆资源点时,npc既可以进食以满足能量需求,还可以通过打工等服务以满足金钱需求。因此,本实施例还可以预测在非玩家角色在游戏场景中参与资源点对应的游戏活动后的参与满足状态。其中,参与满足度为npc参与资源点对应的游戏活动后所处的满足状态。

进一步地,由于当前需求信息中包括一个或多个需求,因此,本实施例可以计算参与满足状态与初始满足状态的差值,得到f。其中,f可以表示npc参与游戏活动后各个需求对应的快乐值的变化情况。当f为正值时,可以表示npc有意愿参与游戏活动;当f为负值时,可以表示npc非常抵触参与游戏活动。

具体地,为了更加贴合人类决策行为,通常会尽量选择距npc较近的游戏活动进行参与,因此,本实施例中可以通过公式g=3000/(distance+3000),确定非玩家角色的位置分别与在游戏场景中各资源点的位置之间的游戏活动距离g,进而根据该游戏活动距离,可以从相同类型的游戏活动中选择距离近的游戏活动。其中,distance为游戏场景中npc距各游戏活动对应资源点的距离。且本实施例的游戏活动距离g不限于采用上述公式得到。

进一步地,本实施例可以对当前需求权重、f和当前增益系数进行求和,得到各个游戏活动的总快乐值,再将各游戏活动的总快乐值与对应的游戏活动距离g相乘,得到快乐总增益,即s=g*∑[当前需求权重*(参与满足状态-初始满足状态)*当前增益系数]。

其中,该当前增益系数可以代表npc对应角色满足任意一个需求的能力或天赋的高低。一般情况下,增益系数越大,能力或天赋越高。例如,npc对应的角色为商家且当前需求为金钱需求时,由于通常商家具有赚钱的能力,因此,本实施例可设定较大的增益系数来反映npc对金钱需求的增长或消耗较快。

进一步地,本实施例可以根据快乐总增益和平均快乐值,得到决策npc选择游戏活动的概率函数p=es/t-1,该概率函数p充分且全面的表达了各个游戏活动给npc带来的总快乐增益以及各游戏活动对应的资源点的距离,即各个游戏活动的选择概率,从而可以根据该概率函数p,评估npc参与游戏活动的意愿,随机选择任意一个游戏活动,使得该游戏活动更加贴近人类的决策。

其中,由于每个资源点具有自身的开放时间段,因此,在当前时刻,资源点可以处于开放状态,也可以处于不开放状态。由于每个资源点的最大参与游戏活动人数不同,且每个资源点内当前的npc个数皆有不同,因此,资源点可以处于空闲状态,也可以处于非空闲状态。基于上述描述,在图1或图2实施例中确定npc参与游戏活动的资源点时,可以从将全部资源点中,选择满足当前时刻在资源点的开放时间段之内且资源点处于空闲状态的资源点作为npc参与活动的资源点。

本实施例提供的非玩家角色的控制方法,通过每个非玩家角色具有不同的需求来创造大量个性迥异的非玩家角色,每个资源点对应一个游戏活动来创建多个资源点,使得虚拟游戏更加逼真、形象,且每个游戏活动可以满足非玩家角色的一个或多个需求,也使得游戏场景中的行为表现更加丰富且贴近人类决策,从而非玩家角色可以更好的完成复杂的类人决策行为,提高了用户的游戏体验感。

在上述图1实施例的基础上,结合图3对s102中的根据非玩家角色在游戏场景中参与游戏活动的资源点,确定非玩家角色前往资源点的路径的具体实现过程进行详细说明。

图3为本发明提供的非玩家角色的控制方法的流程图,如图3所示,本实施例的非玩家角色的控制方法可以包括:

s301、判断非玩家角色的位置与资源点的位置之间的游戏活动距离是否小于预设距离。若是,则执行s3021。若否,则执行s3022。

s3021、采用第一算法,确定非玩家角色前往资源点的路径。

s3022、采用第一算法和第二算法,确定非玩家角色前往资源点的路径。

具体地,在确定npc参与游戏活动的资源点之后,npc前往该资源点的过程有多种路径可供选择,而为了满足虚拟时间的实际情况,本实施例需要选择一条更加贴近人类决策行为的路径。

进一步地,本实施例可以先判断npc的位置与该资源点的位置之间的游戏活动距离是否小于预设距离。其中,本实施例可以根据经验值对预设距离进行设置,本实施例对此不做限定。

进一步地,当该游戏活动距离小于预设距离时,本实施例可以采用第一算法确定出npc前往该资源点的路径。当该游戏活动距离大于或等于预设距离时,本实施例可以采用第一算法和第二算法,共同确定出npc前往该资源点的路径。

其中,本实施例对第一算法和第二算法的具体实现方式不做限定。例如,第一算法可以为启发式搜索算法(简称astar算法),第二算法可以为迪杰斯特拉算法(简称dijkstra算法)。

另外,在游戏场景中,预先设定了主干路径的管道。且npc前往资源点的路径基于主干路径的管道得到的,这样,可选地,在该游戏活动距离大于或等于预设距离时,结合图4,对s3022中采用第一算法和第二算法,确定非玩家角色前往资源点的路径的具体实现过程进行详细说明。

图4为本发明提供的非玩家角色的控制方法的流程图,如图4所示,本实施例的非玩家角色的控制方法可以包括:

s401、确定距离非玩家角色的位置最近的一个第一区域和距离资源点的位置最近的一个第二区域。

本实施例中,由于游戏场景中可以在npc周围事先设置多个预设区域,其中,本实施例对预设区域的形状和大小不做限定。例如,现有的游戏场景中,管道是由多个圆、以及圆之间的连接关系组成。通常,两个圆及其之间的连接形成一个管道,并事先用floyd-warshall算法计算出任意两个圆的圆心之间的最短路径,故各预设区域为多个圆。

因此,本实施例需要从这些预设区域中选择出离npc的位置最近的一个预设区域,具体可以从npc的位置到任意一个预设区域上的边缘点之间的距离最小的n个预设区域中任选一个预设区域,n为正整数。

举例说明,当预设区域为圆时,具体可以采用npc的位置到任意一个圆的圆心之间的距离减去该圆的半径,取差值最小的圆作为第一圆,即从npc的位置到任意一个圆上的点之间的距离最小的n个圆中任选一个圆。

对应地,资源点周围事先也设置有多个预设区域,需要从这些预设区域中选择出离资源点的位置最近的一个预设区域,具体可以从资源点的位置到任意一个预设区域上的边缘点之间的距离最小的m个预设区域中任选一个预设区域,m为正整数。

举例说明,当预设区域为圆时,具体可以采用资源点的位置到任意一个圆的圆心之间的距离减去该圆的半径,取差值最小的圆作为第二圆,即从资源点的位置到任意一个圆上的点之间的距离最小的m个圆中任选一个圆。

进而,本实施例将npc前往资源点的路径大致分为三部分,第一部分为npc从当前位置前往第一区域的第一路径,第二部分为npc从第一区域前往第二区域的第二路径,第三部分为npc从第二区域前往资源点的位置的第三路径。为了使得npc的行为更加贴近人类决策行为,本实施例需要保证第一路径、第二路径以及第三路径的距离之和最小。

其中,第一路径和第三路径可以采用相同的方式进行设定,分别参见步骤s402和s404,第二路径的具体实现过程可参见步骤s403。

s402、根据第一算法,确定非玩家角色的位置与第一区域内任一点之间的路线为第一路径。

具体地,当npc的位置与第一区域直线可达时,npc的位置与第一区域之间的距离为直线距离,第一路径为直线路线。当npc的位置与第一区域直线不可达时,npc的位置与第一区域之间的距离设置为直线距离的根号2倍,便于高效估计npc的位置与第一区域之间的实际距离,且第一路径不为直线路线。

进一步地,由于npc的位置与第一区域之间的距离较近,因此,本实施例可以采用第一算法,如astar算法,从npc的位置到第一区域内任一点寻找到对应的路径作为第一路径,即第一路径的起点为npc的位置,第一路径的终点为第一区域内任一点。

s403、根据第二算法和预设偏差,确定第二路径。

具体地,由于npc的位置与资源点的位置之间的游戏活动距离大于或等于预设距离,且第一路径仅为npc前往资源点的路径的一小部分,因此,第一区域与第二区域之间的距离较大,这样,本实施例可以采用第二算法,如dijkstra算法,确定出第一区域的中心与第二区域的中心之间的路径。

其中,当第一区域的形状为规则形状时,第一区域的中心为其几何中心;当第一区域的形状不为规则形状时,第一区域的中心为其内的任意一个位置。对应的,当第二区域的形状为规则形状时,第二区域的中心为其几何中心;当第二区域的形状不为规则形状时,第二区域的中心为其内的任意一个位置。

又由于在实际情况中无法保证npc每一次从第一区域的中心前往第二区域的中心,因此,本实施例可以根据第一区域的中心与第二区域的中心之间的路径以及预设偏差,来确定第二路径,使得第二路径更加贴近人类决策行为。

其中,本实施例对预设偏差不做限定,预设偏差可以为定值,也可以为动态变化的值。

s404、根据第一算法,确定资源点的位置与第二区域内任一点之间的路线为第三路径。

具体地,当资源点的位置与第二区域直线可达时,资源点的位置与第二区域之间的距离为直线距离,第三路径为直线路线。当资源点的位置与第二区域直线不可达时,资源点的位置与第二区域之间的距离设置为直线距离的根号2倍,便于高效估计资源点的位置与第二区域之间的实际距离,且第三路径不为直线路线。

进一步地,由于资源点的位置与第二区域之间的距离较近,因此,本实施例可以采用第一算法,如astar算法,从资源点的位置到第二区域内任一点寻找到对应的路径作为第三路径,即第三路径的起点为资源点的位置,第三路径的终点为第一区域内任一点。

s405、根据第一路径、第二路径、第三路径以及预设条件,确定非玩家角色前往资源点的路径,预设条件为第二路径分别与第一路径和第三路径的衔接处的夹角均为钝角。

具体地,人类在移动时通常不会出现急转弯的情况。为了避免该情况,本实施例可以根据预设条件,对第一路径和第二路径之间的衔接处,以及第二路径与第三路径的衔接处进行优化,保证第一路径和第二路径之间的衔接处的夹角为钝角,以及第二路径与第三路径的衔接处的夹角为钝角,使得npc可以更加贴近人类行为前往资源点。

需要说明的是,上述s402和s404之间没有时序上的先后顺序,且s402和s404可以同时执行,也可以顺序执行。

进一步地,在游戏场景中,各个npc可以根据当前需求,按照上述过程设定的路径前往对应资源点参与游戏活动,使得各个npc在游戏中可以错落有致的行进。

另外,npc在成功参与游戏活动之后,由于游戏活动可以改变npc的需求满足度,影响npc的下一次决策行为,因此,npc需要进行自反馈。一般情况下,npc的需求满足度随着时间会缓慢衰减。

进一步地,由于空闲的资源点吸引npc前往参与游戏活动,在npc前往资源点参与游戏活动后,使得空闲的资源点变为不空闲的资源点,容纳到该资源点最大参与游戏活动的人数后,其他npc便无法选择该资源点,因此,资源点需要进行自反馈。

进一步地,由于npc占用资源点之后,会导致其他npc无法选择该资源点,因此,npc与npc之间需求进行反馈。且当任意两个npc之间的距离满足预设距离时,本实施例可以控制npc执行社交的操作。例如,两个npc可以进行谈话、交换商品等社交。

基于上述过程,本实施例可以全面且完整的实现游戏场景中npc的自主智能行为,使得npc的行为更加贴近人类决策行为。

需要说明的是:为了便于操作人员对上述过程进行测试,本实施例可提供有离线的可视化测试功能,可以加速或慢速配置好的虚拟世界的运行,以便支持虚拟世界中的任一环节的测试。且本实施例还提供有统计虚拟世界的相关信息的功能,方便操作人员观察各npc的决策行为以及资源点的使用情况等。

图5为本发明提供的非玩家角色的控制装置的结构示意图,如图5所示,本实施例的非玩家角色的控制装置10可以包括:

第一确定模块11,用于通过获取非玩家角色的当前需求信息,确定非玩家角色在游戏场景中参与游戏活动的资源点;

第二确定模块12,用于根据非玩家角色在游戏场景中参与游戏活动的资源点,确定非玩家角色前往资源点的路径;

控制模块13,用于控制非玩家角色按照路径前往对应资源点参与游戏活动。

可选地,第一确定模块11,具体用于根据非玩家角色的当前需求信息,确定初始满足状态和当前需求权重;根据当前需求权重和初始满足状态,得到平均快乐值;预测在非玩家角色在游戏场景中参与各资源点对应的游戏活动后的参与满足状态;确定非玩家角色的位置分别与各资源点的位置之间的游戏活动距离;根据游戏活动距离、当前需求权重、初始满足状态、参与满足状态和当前增益系数,得到快乐总增益;根据快乐总增益和平均快乐值,确定非玩家角色在游戏场景中参与游戏活动的资源点。

可选地,资源点为满足预设条件的资源点,预设条件为当前时刻在资源点的开放时间段之内且资源点处于空闲状态。

可选地,资源点的要素包括:游戏活动的内容、游戏活动的区域、游戏活动的交互点、参与游戏活动的增益或消耗、游戏活动的开放时间段。

可选地,第二确定模块12,具体用于判断非玩家角色的位置与资源点的位置之间的游戏活动距离是否小于预设距离;在非玩家角色的位置与资源点的位置之间的游戏活动距离小于预设距离时,采用第一算法,确定非玩家角色前往资源点的路径;在非玩家角色的位置与资源点的位置之间的游戏活动距离大于或等于预设距离时,采用第一算法和第二算法,确定非玩家角色前往资源点的路径。

可选地,在非玩家角色的位置与资源点的位置之间的游戏活动距离大于或等于预设距离时,第二确定模块12,用于确定距离非玩家角色的位置最近的一个第一区域和距离资源点的位置最近的一个第二区域;根据第一算法,确定非玩家角色的位置与第一区域内任一点之间的路线为第一路径;根据第二算法和预设偏差,确定第二路径;根据第一算法,确定资源点的位置与第二区域内任一点之间的路线为第三路径;根据第一路径、第二路径、第三路径以及预设条件,确定非玩家角色前往资源点的路径,预设条件为第二路径分别与第一路径和第三路径的衔接处的夹角均为钝角。

可选地,第二确定模块12,用于确定非玩家角色的位置与各预设区域上任意点之间的距离最小的n个区域,n为正整数;确定资源点的位置与各预设区域上任意点之间的距离最小的m个区域,m为正整数;从n个区域中选择第一区域;从m个区域中选择第二区域。

可选地,第二确定模块12,用于根据第二算法,确定第一区域的中心与第二区域的中心之间的路径;根据第一区域的中心与第二区域的中心之间的路径和预设偏差,确定第二路径。

可选地,控制模块13,还用于在非玩家角色与任一非玩家角色之间的距离满足预设距离时,控制非玩家角色执行社交的操作。

本实施例提供的非玩家角色的控制装置可用于执行上述图1-图4所示的非玩家角色的控制方法,其实现方式和技术效果类似,本实施例此处不再赘述。

本发明中可以根据上述方法示例对非玩家角色的控制装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明各实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

图6为本发明提供的电子设备的硬件结构示意图。如图6所示,该电子设备20,用于实现上述任一方法实施例中对应于终端的操作,本实施例的电子设备20可以包括:输入输出设备21、存储器22和处理器23。其中,输入输出设备21和存储器22分别通过总线24与处理器23连接。

存储器22,用于存储计算机程序;

处理器23,用于执行存储器22存储的计算机程序,以实现上述实施例中的非玩家角色的控制方法。具体可以参见前述方法实施例中的相关描述。

可选地,存储器22既可以是独立的,也可以跟处理器23集成在一起。

其中,输入输出设备21可以通过总线24与处理器23连接。处理器23可以控制输入输出设备21来实现电子设备20的上述的接收和发送的功能。

本实施例提供的电子设备可用于执行上述的非玩家角色的控制方法,其实现方式和技术效果类似,本实施例此处不再赘述。

本发明还提供一种计算机可读存储介质,计算机可读存储介质包括计算机程序,计算机程序用于实现如上实施例中的非玩家角色的控制方法。

在本发明所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例方法的部分步骤。

应理解,上述处理器可以是中央处理单元(英文:centralprocessingunit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:digitalsignalprocessor,简称:dsp)、专用集成电路(英文:applicationspecificintegratedcircuit,简称:asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

存储器可能包含高速ram存储器,也可能还包括非易失性存储nvm,例如至少一个磁盘存储器,还可以为u盘、移动硬盘、只读存储器、磁盘或光盘等。

总线可以是工业标准体系结构(industrystandardarchitecture,isa)总线、外部设备互连(peripheralcomponent,pci)总线或扩展工业标准体系结构(extendedindustrystandardarchitecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。

上述计算机可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1