一种非玩家角色的行为序列生成方法及装置

文档序号:248439 发布日期:2021-11-16 浏览:2次 >En<

阅读说明:本技术 一种非玩家角色的行为序列生成方法及装置 (Behavior sequence generation method and device for non-player character ) 是由 张林箭 张聪 宋有伟 楼荒 刘畅 范长杰 胡志鹏 于 2021-08-16 设计创作,主要内容包括:本申请提供了一种非玩家角色的行为序列生成方法及装置,其中,该方法包括:获取用于描述行为序列关系的知识图谱;基于知识图谱中与非玩家角色相关的行为节点、状态节点和边获得子图;根据子图确定作为目标行为节点的下一步行为的多个候选行为节点;目标行为节点为行为序列中除终止节点外的任一行为节点;从中筛选满足第一预设条件的候选行为节点作为目标行为节点的下一行为节点,将其加入行为序列中;若行为序列中的目标行为节点具有对应的状态节点,则从目标行为节点的多个候选状态节点中筛选满足第二预设条件的候选状态节点,将其加入行为序列中,从而生成非玩家角色的行为序列,可提升非玩家角色剧情的多样性、新鲜感,且大大降低人力成本。(The application provides a method and a device for generating a behavior sequence of a non-player character, wherein the method comprises the following steps: acquiring a knowledge graph for describing a behavior sequence relation; obtaining a subgraph based on behavior nodes, state nodes and edges in the knowledge graph, wherein the behavior nodes, the state nodes and the edges are related to non-player characters; determining a plurality of candidate behavior nodes serving as next-step behaviors of the target behavior node according to the subgraph; the target behavior node is any behavior node except the termination node in the behavior sequence; screening candidate behavior nodes meeting the first preset condition from the behavior sequence as next behavior nodes of the target behavior node, and adding the candidate behavior nodes into the behavior sequence; if the target behavior node in the behavior sequence has the corresponding state node, the candidate state nodes meeting the second preset condition are screened from the plurality of candidate state nodes of the target behavior node and added into the behavior sequence, so that the behavior sequence of the non-player character is generated, the diversity and the freshness of the plot of the non-player character can be improved, and the labor cost is greatly reduced.)

一种非玩家角色的行为序列生成方法及装置

技术领域

本申请涉及游戏人工智能技术领域,具体而言,涉及一种非玩家角色的行为序列生成方法及装置。

背景技术

随着游戏人工智能(Artificial Intelligence,AI)技术的发展,虚拟游戏世界中的数百个非玩家角色(Non-Player Character,NPC),可以像现实中的人类一样,活动起来,创造一个更加丰富、更加逼真的虚拟角色社会群体。为了游戏世界更加逼真,通常需要预先定义每个非玩家角色的行为序列,使得非玩家角色在游戏里的行为和现实中人的行为保持一致。

目前,通过人工编写故事树(Story Tree)的方式来定义非玩家角色的行为序列,非玩家角色按照定义好的非玩家角色的行为序列执行每天的日常行为。例如:一个上班族的非玩家角色的行为序列为:起床->买早餐->吃早餐->上班->买午饭->吃午饭->睡午觉->上班...,中间可能穿插一些和其他非玩家角色的交互行为,比如“买早餐”可能会和服务员沟通,或者发生某个行为是具有前置条件的,根据不同的条件进入不同的分支,比如“吃午饭”后NPC困了就“睡午觉”,不困就继续“上班”。

申请人在研究中发现:通过人工编写故事树的方式来定义非玩家角色的行为序列,非常局限于人工创作,人工编写多少模板,就有多少非玩家角色的行为序列,非玩家角色剧情不具有多样性、新鲜感。而且,当非玩家角色数量众多的情况下,全靠人工写故事树的形式,会极大增加人力成本。

发明内容

有鉴于此,本申请的目的在于提供一种非玩家角色的行为序列生成方法及装置,可提升非玩家角色剧情的多样性、新鲜感,且大大降低人力成本。

第一方面,本申请实施例提供了一种非玩家角色的行为序列生成方法,包括:

获取用于描述行为序列关系的知识图谱;

基于所述知识图谱中与非玩家角色相关的行为节点、状态节点以及边,获得所述知识图谱的子图;其中,所述边用于表示所述行为节点之间、所述状态节点之间、以及所述行为节点与所述状态节点之间的逻辑关系;

从所述子图的行为节点中获取所述非玩家角色的行为序列的起始节点;

根据所述子图确定作为目标行为节点的下一步行为的多个候选行为节点;其中,所述目标行为节点为所述行为序列中除终止节点外的任一行为节点;

从所述多个候选行为节点中筛选满足第一预设条件的候选行为节点,将筛选得到的候选行为节点作为所述目标行为节点的下一行为节点;

将确定的所述目标行为节点的下一行为节点加入所述行为序列中;

根据所述子图确定所述行为序列中每个行为节点是否具有对应的状态节点,若所述行为序列中的目标行为节点具有对应的状态节点,则从所述目标行为节点的多个候选状态节点中筛选满足第二预设条件的候选状态节点,将筛选得到的候选状态节点加入所述行为序列中,从而生成所述非玩家角色的行为序列。

在一种可能的实施方式中,所述从所述多个候选行为节点中筛选满足第一预设条件的候选行为节点,包括:

针对每个候选行为节点,计算该候选行为节点对应的词向量与当前行为序列中的每个行为节点对应的词向量之间的第一相似度;

基于该候选行为节点对应的多个所述第一相似度,计算该候选行为节点的第一评分;

从所述多个候选行为节点中筛选所述第一评分满足第一预设条件的候选行为节点。

在一种可能的实施方式中,所述基于该候选行为节点对应的多个所述第一相似度,计算该候选行为节点的第一评分,包括:

对该候选行为节点对应的多个所述第一相似度分别与对应的所述当前行为序列中的每个行为节点的第一权重系数进行加权求和,得到该候选行为节点的第一评分;其中,所述行为节点的第一权重系数与对应的行为节点在当前行为序列中的生成时刻呈负相关。

在一种可能的实施方式中,所述对该候选行为节点对应的多个所述第一相似度分别与对应的所述当前行为序列中的每个行为节点的第一权重系数进行加权求和,得到该候选行为节点的第一评分,包括:

从该候选行为节点对应的多个所述第一相似度中选择小于预设阈值的第一相似度;

将选择的第一相似度分别与对应的行为节点的第一权重系数进行加权求和,得到该候选行为节点的第一评分。

在一种可能的实施方式中,所述对该候选行为节点对应的多个所述第一相似度分别与对应的所述当前行为序列中的每个行为节点的第一权重系数进行加权求和,得到该候选行为节点的第一评分,包括:

从该候选行为节点对应的多个所述第一相似度中选择多个第一采样相似度;其中,所述第一采样相似度对应的行为节点在当前行为序列中的生成时刻处于第一预设时间范围内;

对所述多个第一采样相似度分别与对应的行为节点的第一权重系数进行加权求和,得到该候选行为节点的第一评分。

在一种可能的实施方式中,所述从所述多个候选行为节点中筛选所述第一评分满足第一预设条件的候选行为节点,包括:

按照所述多个候选行为节点的第一评分从高到低的顺序对所述多个候选行为节点进行排序,得到所述多个候选行为节点的第一排序结果;

基于以下任一方式从所述第一排序结果中筛选候选行为节点:

从所述第一排序结果中随机筛选预设数量的候选行为节点;

从所述第一排序结果中位于第一位的候选行为节点开始按顺序筛选预设数量的候选行为节点;

从所述第一排序结果中位于最后一位的候选行为节点开始按顺序筛选预设数量的候选行为节点。

在一种可能的实施方式中,所述根据所述子图确定所述行为序列中每个行为节点是否具有对应的状态节点,若所述行为序列中的目标行为节点具有对应的状态节点,则从所述目标行为节点的多个候选状态节点中筛选满足第二预设条件的候选状态节点,包括:

根据所述子图确定所述行为序列中每个行为节点是否具有对应的状态节点,若所述行为序列中的目标行为节点具有对应的状态节点,则针对所述目标行为节点的每个候选状态节点,计算该候选状态节点对应的词向量与当前行为序列中的每个状态节点对应的词向量之间的第二相似度;

基于该候选状态节点对应的多个所述第二相似度,计算该候选状态节点的第二评分;

从所述目标行为节点的多个候选状态节点中筛选所述第二评分满足第二预设条件的候选状态节点。

在一种可能的实施方式中,所述基于该候选状态节点对应的多个所述第二相似度,计算该候选状态节点的第二评分,包括:

对该候选状态节点对应的多个所述第二相似度分别与对应的所述当前行为序列中的每个状态节点的第二权重系数进行加权求和,得到该候选状态节点的第二评分;其中,所述状态节点的第二权重系数与对应的状态节点在当前行为序列中的生成时刻呈负相关。

在一种可能的实施方式中,所述对该候选状态节点对应的多个所述第二相似度分别与对应的所述当前行为序列中的每个状态节点的第二权重系数进行加权求和,得到该候选状态节点的第二评分,包括:

从该候选状态节点对应的多个所述第二相似度中选择小于预设阈值的第二相似度;

将选择的第二相似度分别与对应的状态节点的第二权重系数进行加权求和,得到该候选状态节点的第二评分。

在一种可能的实施方式中,所述对该候选状态节点对应的多个所述第二相似度分别与对应的所述当前行为序列中的每个状态节点的第二权重系数进行加权求和,得到该候选状态节点的第二评分,包括:

从该候选状态节点对应的多个所述第二相似度中选择多个第二采样相似度;其中,所述第二采样相似度对应的状态节点在当前行为序列中的生成时刻处于第二预设时间范围内;

对所述多个第二采样相似度分别与对应的状态节点的第二权重系数进行加权求和,得到该候选状态节点的第二评分。

在一种可能的实施方式中,所述从所述目标行为节点的多个候选状态节点中筛选所述第二评分满足第二预设条件的候选状态节点,包括:

按照所述目标行为节点的多个候选状态节点的第二评分从高到低的顺序对所述多个候选状态节点进行排序,得到所述多个候选状态节点的第二排序结果;

基于以下任一方式从所述第二排序结果中筛选候选状态节点:

从所述第二排序结果中随机筛选预设数量的候选状态节点;

从所述第二排序结果中位于第一位的候选状态节点开始按顺序筛选预设数量的候选状态节点;

从所述第一排序结果中位于最后一位的候选状态节点开始按顺序筛选预设数量的候选状态节点。

第二方面,本申请实施例提供了一种非玩家角色的行为序列生成装置,包括:

图谱获取模块,用于获取用于描述行为序列关系的知识图谱;

子图获得模块,用于基于所述知识图谱中与非玩家角色相关的行为节点、状态节点以及边,获得所述知识图谱的子图;其中,所述边用于表示所述行为节点之间、所述状态节点之间、以及所述行为节点与所述状态节点之间的逻辑关系;

节点获取模块,用于从所述子图的行为节点中获取所述非玩家角色的行为序列的起始节点;

节点确定模块,用于根据所述子图确定作为目标行为节点的下一步行为的多个候选行为节点;其中,所述目标行为节点为所述行为序列中除终止节点外的任一行为节点;

节点筛选模块,用于从所述多个候选行为节点中筛选满足第一预设条件的候选行为节点,将筛选得到的候选行为节点作为所述目标行为节点的下一行为节点;

第一加入模块,用于将确定的所述目标行为节点的下一行为节点加入所述行为序列中;

第二加入模块,用于根据所述子图确定所述行为序列中每个行为节点是否具有对应的状态节点,若所述行为序列中的目标行为节点具有对应的状态节点,则从所述目标行为节点的多个候选状态节点中筛选满足第二预设条件的候选状态节点,将筛选得到的候选状态节点加入所述行为序列中,从而生成所述非玩家角色的行为序列。

第三方面,本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。

第四方面,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。

本申请实施例提供一种非玩家角色的行为序列生成方法,首先,获取用于描述行为序列关系的知识图谱,作为后续行为序列生成的知识来源,可以降低整理知识的人力成本;而后,基于所述知识图谱中与非玩家角色相关的行为节点、状态节点以及边,获得所述知识图谱的子图,所述边用于表示所述行为节点之间、所述状态节点之间、以及所述行为节点与所述状态节点之间的逻辑关系,可以从所述知识图谱中筛选出与非玩家角色相关的子图;最后,从所述子图的行为节点中获取所述非玩家角色的行为序列的起始节点;针对所述行为序列中除终止节点外的任一行为节点,也即针对任一目标行为节点,根据所述子图确定作为目标行为节点的下一步行为的多个候选行为节点,从所述多个候选行为节点中筛选满足第一预设条件的候选行为节点,将筛选得到的候选行为节点作为所述目标行为节点的下一行为节点,将确定的所述目标行为节点的下一行为节点加入所述行为序列中;并且,如果从所述子图中确定所述行为序列中的目标行为节点具有对应的状态节点,从目标行为节点的多个候选状态节点中筛选满足第二预设条件的候选状态节点,将筛选得到的候选状态节点加入所述行为序列中,从而生成所述非玩家角色的行为序列。本申请实施例无需人工整理知识和人工编辑故事树来定义非玩家角色的行为序列,可以大大降低人力成本;并且可以通过设置不同的预设条件来选择不同的候选行为节点和候选状态节点,可提升非玩家角色剧情的多样性、新鲜感。

为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本申请实施例提供的一种非玩家角色的行为序列生成方法的流程图;

图2示出了本申请实施例提供的中文常识图谱的示意图;

图3示出了本申请实施例提供的一种非玩家角色的行为序列生成装置的结构示意图;

图4示出了本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。

另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。

请参照图1,图1为本申请实施例提供的一种非玩家角色的行为序列生成方法的流程图。如图1所示,可以包括如下步骤:

S101、获取用于描述行为序列关系的知识图谱;

S102、基于所述知识图谱中与非玩家角色相关的行为节点、状态节点以及边,获得所述知识图谱的子图;其中,所述边用于表示所述行为节点之间、所述状态节点之间、以及所述行为节点与所述状态节点之间的逻辑关系;

S103、从所述子图的行为节点中获取所述非玩家角色的行为序列的起始节点;

S104、根据所述子图确定作为目标行为节点的下一步行为的多个候选行为节点;其中,所述目标行为节点为所述行为序列中除终止节点外的任一行为节点;

S105、从所述多个候选行为节点中筛选满足第一预设条件的候选行为节点,将筛选得到的候选行为节点作为所述目标行为节点的下一行为节点;

S106、将确定的所述目标行为节点的下一行为节点加入所述行为序列中;

S107、根据所述子图确定所述行为序列中每个行为节点是否具有对应的状态节点,若所述行为序列中的目标行为节点具有对应的状态节点,则从所述目标行为节点的多个候选状态节点中筛选满足第二预设条件的候选状态节点,将筛选得到的候选状态节点加入所述行为序列中,从而生成所述非玩家角色的行为序列。

步骤S101中,用于描述行为序列关系的知识图谱可以包括中文常识图谱、话题图谱和百科知识图谱等。其中,如图2所示,中文常识图谱是在公开的数据集ConceptNet上筛选出中文常识,然后构建而成的图谱,该图谱中包含约13k节点和114k边,其中边的类型共11类,边的形式为三元组,比如(“吃饭”,“是因为”,“饥饿”)为一条边。话题图谱是基于公开的话题集构建而成的图谱。百科知识图谱是基于百科数据集构建而成的图谱,例如百度百科、维基百科等。

步骤S102中,所述知识图谱中与非玩家角色相关的行为节点(也即动词节点)可以包括“吃饭”、“上班”、“买花”等。所述知识图谱中与非玩家角色相关的状态节点(也即形容词节点)可以包括“高兴”、“害羞”、“难过”等。所述边用于表示所述行为节点之间、所述状态节点之间、以及所述行为节点与所述状态节点之间的逻辑关系,所述边可以包括“引起”、“引起向往”、“有子事件”这三种先后逻辑等。

需要说明的是,另外一些关系也可以稍作改动用来扩展先后逻辑,比如把“是因为”这类关系的边的方向逆转,即可得到“引起”的关系。甚至可以人工继续标注一些表示“先后逻辑”的动作序列,用于扩充常识图谱。并且,行为节点可能会指向其他行为节点或者状态节点,状态节点也可能会指向其他状态节点或者行为节点。

在本步骤中,从所述知识图谱中筛选出与非玩家角色相关的行为节点、状态节点以及用于表示所述行为节点之间、所述状态节点之间、以及所述行为节点与所述状态节点之间的逻辑关系的边,从而得到所述知识图谱的子图。同时,在子图中标注出非玩家角色的起始节点和终止节点,起始节点用于控制行为序列的开头,终止节点用于控制行为序列的结尾。

步骤S103中,非玩家角色的行为序列的起始节点是从所述子图的行为节点中获取的,可以指在所述子图中预先标注的起始节点,也可以指随机指定的所述子图中的行为节点。

步骤S104中,目标行为节点为所述行为序列中除终止节点外的任一行为节点,例如:起始节点,所述行为序列中除起始节点和终止节点之外的任一行为节点。

如图2所示,假设目标行为节点为“运动”,根据所述子图确定作为目标行为节点的下一步行为的多个候选行为节点:“休闲”、“中暑”、“享受”、“伤害”等。

步骤S105中,在确定目标行为节点的多个候选行为节点之后,从所述多个候选行为节点中筛选满足第一预设条件的候选行为节点,作为所述目标行为节点的下一行为节点。

其中,从所述多个候选行为节点中筛选满足第一预设条件的候选行为节点的步骤,可以包括以下子步骤:

S1051、针对每个候选行为节点,计算该候选行为节点对应的词向量与当前行为序列中的每个行为节点对应的词向量之间的第一相似度;

S1052、基于该候选行为节点对应的多个所述第一相似度,计算该候选行为节点的第一评分;

S1053、从所述多个候选行为节点中筛选所述第一评分满足第一预设条件的候选行为节点。

步骤S1051中,第一相似度指的是候选行为节点对应的词向量与当前行为序列中的行为节点对应的词向量之间的余弦相似度。具体地,针对每个候选行为节点ci,计算该候选行为节点ci对应的词向量eci与当前行为序列中的每个行为节点pj对应的词向量epj之间的第一相似度cos(eci,epj),由于当前行为序列中的行为节点pj有多个,得到该候选行为节点对应的多个第一相似度cos(eci,epj)。

步骤S1052中,具体地,基于该候选行为节点ci对应的多个第一相似度cos(eci,epj)计算该候选行为节点ci的第一评分score(ci)。

其中,步骤S1052可以包括:对该候选行为节点对应的多个所述第一相似度分别与对应的所述当前行为序列中的每个行为节点的第一权重系数进行加权求和,得到该候选行为节点的第一评分;其中,所述行为节点的第一权重系数与对应的行为节点在当前行为序列中的生成时刻呈负相关。需要说明的是,行为节点在当前行为序列中的生成时刻越晚,对应的第一权重系数越大;行为节点在当前行为序列中的生成时刻越早,对应的第一权重系数越小。

在具体实施中,通过对该候选行为节点ci对应的多个第一相似度cos(eci,epj)进行加权求和的方式计算该候选行为节点ci的第一评分wherecos(eci,epj)<α。其中,n表示行为序列的长度,并对ωj进行归一化处理行为节点pj在当前行为序列中的生成时刻越晚,对应的第一权重系数ωj越大。行为节点pj在当前行为序列中的生成时刻越早,对应的第一权重系数ωj越小

在一种可能的实施方式中,针对上述实施例中对该候选行为节点对应的多个所述第一相似度分别与对应的所述当前行为序列中的每个行为节点的第一权重系数进行加权求和,得到该候选行为节点的第一评分的步骤,具体可以包括:从该候选行为节点对应的多个所述第一相似度中选择小于预设阈值的第一相似度;将选择的第一相似度分别与对应的行为节点的第一权重系数进行加权求和,得到该候选行为节点的第一评分。

在具体实施中,为了避免下一步动作对应的行为节点与当前行为序列已有的行为节点重复度太高,对于与当前行为序列已有的行为节点非常接近的候选行为节点,降低该候选行为节点的分数。具体地,若第一相似度cos(eci,epj)大于等于预设阈值α,则表示候选行为节点ci对应的词向量eci与当前行为序列中的行为节点pj对应的词向量epj非常接近,该第一相似度对应的第一权重系数为零,不累积到最终的第一评分。在本实施例中,预设阈值α可设置为0.84,本实施例不限于此。

在另一种可能的实施方式中,针对上述实施例中对该候选行为节点对应的多个所述第一相似度分别与对应的所述当前行为序列中的每个行为节点的第一权重系数进行加权求和,得到该候选行为节点的第一评分的步骤,具体可以包括:从该候选行为节点对应的多个所述第一相似度中选择多个第一采样相似度;其中,所述第一采样相似度对应的行为节点在当前行为序列中的生成时刻处于第一预设时间范围内;对所述多个第一采样相似度分别与对应的行为节点的第一权重系数进行加权求和,得到该候选行为节点的第一评分。

需要说明的是,计算每个候选行为节点的第一评分时,可以考虑候选行为节点和当前行为序列已有的所有行为节点之间的第一相似度的加权得分,也可以只考虑候选行为节点和当前行为序列已有的最近若干轮行为节点之间的第一采样相似度的加权得分。其中,只考虑候选行为节点和当前行为序列已有的最近若干轮行为节点之间的第一采样相似度的加权得分,意味着只关注当前小范围的行为合理性,避免关注的历史行为太长而导致生成的行为节点和前一个时刻的行为节点不够贴合。

步骤S1053中,从所述多个候选行为节点ci中筛选所述第一评分score(ci)满足第一预设条件的候选行为节点ci

具体地,步骤S1053可以包括:按照所述多个候选行为节点的第一评分从高到低的顺序对所述多个候选行为节点进行排序,得到所述多个候选行为节点的第一排序结果;基于以下任一方式从所述第一排序结果中筛选候选行为节点:从所述第一排序结果中位于第一位的候选行为节点开始按顺序筛选预设数量的候选行为节点;从所述第一排序结果中位于最后一位的候选行为节点开始按顺序筛选预设数量的候选行为节点;从所述第一排序结果中随机筛选预设数量的候选行为节点。需要说明的是,这三种方式中的“预设数量”并不一定相同。

关于上述第一种方式,从所述第一排序结果中位于第一位的候选行为节点开始按顺序筛选排序靠前的候选行为节点,例如排序前三位的候选行为节点等,该处不作限定。这样,可以获得非玩家角色的无剧情波动且具有一定逻辑的行为序列,无需人工整理知识和人工编辑故事树来定义非玩家角色的行为序列,可以大大降低人力成本。

举例来说,从“加班”出发,只考虑候选行为节点和当前行为序列已有的最近三轮行为节点之间的第一采样相似度的加权得分,得到的非玩家角色的无剧情波动且具有一定逻辑的行为序列可以为:加班,熬夜,睡觉,睡不着,看书,发呆,睡着,醒来,洗澡,洗脸,过敏,感冒。

从“加班”出发,只考虑候选行为节点和当前行为序列已有的最近四轮行为节点之间的第一采样相似度的加权得分,得到的非玩家角色的无剧情波动且具有一定逻辑的行为序列可以为:加班,熬夜,睡觉,睡不着,看书,发呆,无所事事,打瞌睡,睡着,醒来,吃饭,吃饱。

关于上述第二种方式,从所述第一排序结果中位于最后一位的候选行为节点开始按顺序筛选排序靠后的候选行为节点,例如排序最后五个候选行为节点等。这样,可以获得非玩家角色的有剧情波动的行为序列,可以提升非玩家角色剧情的新鲜感。

举例来说,在指定步数的情况下,从“加班”出发,只考虑候选行为节点和当前行为序列已有的最近四轮行为节点之间的第一采样相似度的加权得分,得到的非玩家角色的有剧情波动的行为序列可以为:加班,熬夜,睡觉,看书,吃饭,喝水,没事,发呆,睡着,做梦,傻笑,愣住。

关于上述第三种方式,从所述第一排序结果中随机筛选预设数量的候选行为节点,例如随机筛选排序前五个候选行为节点中的任意一个候选行为节点,从而获得非玩家角色的无剧情波动的多条不重复的行为序列,提升非玩家角色剧情的多样性。或者,随机筛选排序后五个候选行为节点中的任意一个候选行为节点,从而获得非玩家角色的有剧情波动的多条不重复的行为序列,提升非玩家角色剧情的多样性。

举例来说,从“加班”出发,只考虑候选行为节点和当前行为序列已有的最近三轮行为节点之间的第一采样相似度的加权得分,得到的非玩家角色的无剧情波动的多条不重复行为序列可以为:

加班,睡觉,起床,上班,休息,回家,开车,塞车,迟到,下课,读书,考试;

加班,睡觉,起床,出门,开车,塞车,超车,辱骂;

加班,应酬,吃饭,睡觉,起床,洗澡,洗头。

特别地,还可以基于已经生成的行为节点、非玩家角色的背景对多个候选行为节点进行排序打分。

步骤S106中,在将筛选得到的候选行为节点作为所述目标行为节点的下一行为节点之后,将确定的所述目标行为节点的下一行为节点加入所述行为序列中。然后将下一步行为节点作为新的目标行为节点,不断重复步骤S104-S106的这个流程,直到下一步没有后续行为节点、或者行为序列的长度达到预设阈值、或者达到了预先标注的终止节点结束。

步骤S107中,针对所述行为序列中的目标行为节点,通过所述子图查询所述目标行为节点是否具有对应的状态节点。针对具有状态节点的目标行为节点,从所述目标行为节点的多个候选状态节点中筛选满足第二预设条件的候选状态节点,将筛选得到的候选状态节点加入所述行为序列中。

具体地,步骤S107可以包括如下子步骤:

S1071、根据所述子图确定所述行为序列中每个行为节点是否具有对应的状态节点,若所述行为序列中的目标行为节点具有对应的状态节点,则针对所述目标行为节点的每个候选状态节点,计算该候选状态节点对应的词向量与当前行为序列中的每个状态节点对应的词向量之间的第二相似度;

S1072、基于该候选状态节点对应的多个所述第二相似度,计算该候选状态节点的第二评分;

S1073、从所述目标行为节点的多个候选状态节点中筛选所述第二评分满足第二预设条件的候选状态节点。

步骤S1071中,第二相似度指的是候选状态节点对应的词向量与当前行为序列中的状态节点对应的词向量之间的余弦相似度。

在本步骤中,针对所述行为序列中目标行为节点,通过所述子图查询所述目标行为节点是否具有对应的状态节点。针对具有状态节点的目标行为节点,计算该候选状态节点对应的词向量与当前行为序列中的每个状态节点对应的词向量之间的余弦相似度。由于当前行为序列中的状态节点有多个,得到该候选状态节点对应的多个第二相似度。

步骤S1072中,对该候选状态节点对应的多个所述第二相似度分别与对应的所述当前行为序列中的每个状态节点的第二权重系数进行加权求和,得到该候选状态节点的第二评分;其中,所述状态节点的第二权重系数与对应的状态节点在当前行为序列中的生成时刻呈负相关。需要说明的是,状态节点在当前行为序列中的生成时刻越晚,对应的第二权重系数越大;状态节点在当前行为序列中的生成时刻越早,对应的第二权重系数越小。

在一种可能的实施方式中,针对上述实施例中对该候选状态节点对应的多个所述第二相似度分别与对应的所述当前行为序列中的每个状态节点的第二权重系数进行加权求和,得到该候选状态节点的第二评分的步骤,具体可以包括:从该候选状态节点对应的多个所述第二相似度中选择小于预设阈值的第二相似度;将选择的第二相似度分别与对应的状态节点的第二权重系数进行加权求和,得到该候选状态节点的第二评分。

在具体实施中,为了避免下一步动作对应的状态节点与当前行为序列已有的状态节点重复度太高,对于与当前行为序列已有的状态节点非常接近的候选状态节点,降低该候选状态节点的分数。具体地,若第二相似度大于等于预设阈值,则表示候选状态节点对应的词向量与当前行为序列中的状态节点对应的词向量非常接近,该第二相似度对应的第二权重系数为零,不累积到最终的第二评分。在本实施例中,预设阈值可设置为0.84,本实施例不限于此。

在另一种可能的实施方式中,针对上述实施例中对该候选状态节点对应的多个所述第二相似度分别与对应的所述当前行为序列中的每个状态节点的第二权重系数进行加权求和,得到该候选状态节点的第二评分的步骤,具体可以包括:从该候选状态节点对应的多个所述第二相似度中选择多个第二采样相似度;其中,所述第二采样相似度对应的状态节点在当前行为序列中的生成时刻处于第二预设时间范围内;对所述多个第二采样相似度分别与对应的状态节点的第二权重系数进行加权求和,得到该候选状态节点的第二评分。

需要说明的是,计算每个候选状态节点的第二评分时,可以考虑候选状态节点和当前行为序列已有的所有状态节点之间的第二相似度的加权得分,也可以只考虑候选状态节点和当前行为序列已有的最近若干轮状态节点之间的第二采样相似度的加权得分。其中,只考虑候选状态节点和当前行为序列已有的最近若干轮状态节点之间的第二采样相似度的加权得分,意味着只关注当前小范围的状态合理性,避免关注的历史状态太长而导致生成的状态节点和前一个时刻的状态节点不够贴合。

步骤S1073中,按照所述目标行为节点的多个候选状态节点的第二评分从高到低的顺序对所述多个候选状态节点进行排序,得到所述多个候选状态节点的第二排序结果;基于以下任一方式从所述第二排序结果中筛选候选状态节点:从所述第二排序结果中位于第一位的候选状态节点开始按顺序筛选预设数量的候选状态节点;从所述第一排序结果中位于最后一位的候选状态节点开始按顺序筛选预设数量的候选状态节点;从所述第二排序结果中随机筛选预设数量的候选状态节点。需要说明的是,这三种方式中的“预设数量”并不一定相同。

关于上述第一种方式,从所述第二排序结果中位于第一位的候选状态节点开始按顺序筛选排序靠前的候选状态节点,例如排序前三个候选状态节点等。这样,可以获得非玩家角色的无剧情波动的行为序列,无需人工整理知识和人工编辑故事树来定义非玩家角色的行为序列,可以大大降低人力成本。举例来说,从“看漫画”出发,得到的非玩家角色的包含状态节点(无剧情波动)的行为序列可以为:看漫画(愉悦),傻笑,发呆(冷静),睡觉,看书(平静),吃饭(愉悦)。

关于上述第二种方式,从所述第二排序结果中位于最后一位的候选状态节点开始按顺序筛选排序靠后的候选状态节点,例如排序最后五个候选状态节点等。这样,可以获得非玩家角色的包含状态节点(有剧情波动)的行为序列,可以提升非玩家角色剧情的新鲜感。举例来说,从“看漫画”出发,得到的非玩家角色的包含状态节点(有剧情波动)的行为序列可以为:看漫画(悲伤),傻笑,发呆(冷静),睡觉,看书(大笑),吃饭(呕吐)。

关于上述第三种方式,从所述第二排序结果中随机筛选预设数量的候选状态节点,例如随机筛选排序前五个候选状态节点中任意一个候选状态节点,从而获得非玩家角色的包含状态节点(无剧情波动)的多条不重复的行为序列,提升非玩家角色剧情的多样性。或者,随机筛选排序后五个候选状态节点中任意一个候选状态节点,从而获得非玩家角色的包含状态节点(有剧情波动)的多条不重复的行为序列,提升非玩家角色剧情的多样性。

需要说明的是,本申请实施例既可以离线生成大量具有逻辑性的、具有多样性、具有剧情波动的行为序列,交由文案审核标注,把合理的整条行为序列,或者行为序列中合理的部分标注出来,应用于游戏中非玩家角色的日程活动。也可以在线生成一条行为序列,实时控制游戏中非玩家角色的动作行为。

本申请实施例提供一种非玩家角色的行为序列生成方法,首先,获取用于描述行为序列关系的知识图谱,作为后续行为序列生成的知识来源,可以降低整理知识的人力成本;而后,基于所述知识图谱中与非玩家角色相关的行为节点、状态节点以及边,获得所述知识图谱的子图,所述边用于表示所述行为节点之间、所述状态节点之间、以及所述行为节点与所述状态节点之间的逻辑关系,可以从所述知识图谱中筛选出与非玩家角色相关的子图;最后,从所述子图的行为节点中获取所述非玩家角色的行为序列的起始节点;针对所述行为序列中除终止节点外的任一行为节点,也即针对任一目标行为节点,根据所述子图确定作为目标行为节点的下一步行为的多个候选行为节点,从所述多个候选行为节点中筛选满足第一预设条件的候选行为节点,将筛选得到的候选行为节点作为所述目标行为节点的下一行为节点,将确定的所述目标行为节点的下一行为节点加入所述行为序列中;并且,如果从所述子图中确定所述行为序列中的目标行为节点具有对应的状态节点,从目标行为节点的多个候选状态节点中筛选满足第二预设条件的候选状态节点,将筛选得到的候选状态节点加入所述行为序列中,从而生成所述非玩家角色的行为序列。本申请实施例无需人工整理知识和人工编辑故事树来定义非玩家角色的行为序列,可以大大降低人力成本;并且可以通过设置不同的预设条件来选择不同的候选行为节点和候选状态节点,可提升非玩家角色剧情的多样性、新鲜感。

基于相同的技术构思,本申请实施例还提供一种非玩家角色的行为序列生成装置、电子设备、以及计算机存储介质等,具体可参见以下实施例。

请参照图3,图3为本申请实施例所提供的一种非玩家角色的行为序列生成装置的结构示意图。所述装置可以包括:

图谱获取模块10,用于获取用于描述行为序列关系的知识图谱;

子图获得模块20,用于基于所述知识图谱中与非玩家角色相关的行为节点、状态节点以及边,获得所述知识图谱的子图;其中,所述边用于表示所述行为节点之间、所述状态节点之间、以及所述行为节点与所述状态节点之间的逻辑关系;

节点获取模块30,用于从所述子图的行为节点中获取所述非玩家角色的行为序列的起始节点;

节点确定模块40,用于根据所述子图确定作为目标行为节点的下一步行为的多个候选行为节点;其中,所述目标行为节点为所述行为序列中除终止节点外的任一行为节点;

节点筛选模块50,用于从所述多个候选行为节点中筛选满足第一预设条件的候选行为节点,将筛选得到的候选行为节点作为所述目标行为节点的下一行为节点;

第一加入模块60,用于将确定的所述目标行为节点的下一行为节点加入所述行为序列中;

第二加入模块70,用于根据所述子图确定所述行为序列中每个行为节点是否具有对应的状态节点,若所述行为序列中的目标行为节点具有对应的状态节点,则从所述目标行为节点的多个候选状态节点中筛选满足第二预设条件的候选状态节点,将筛选得到的候选状态节点加入所述行为序列中,从而生成所述非玩家角色的行为序列。

在一种可能的实施方式中,节点筛选模块50可以包括:

第一相似度计算单元,用于针对每个候选行为节点,计算该候选行为节点对应的词向量与当前行为序列中的每个行为节点对应的词向量之间的第一相似度;

第一评分计算单元,用于基于该候选行为节点对应的多个所述第一相似度,计算该候选行为节点的第一评分;

候选行为节点筛选单元,用于从所述多个候选行为节点中筛选所述第一评分满足第一预设条件的候选行为节点。

在一种可能的实施方式中,第一评分计算单元具体用于:对该候选行为节点对应的多个所述第一相似度分别与对应的所述当前行为序列中的每个行为节点的第一权重系数进行加权求和,得到该候选行为节点的第一评分;其中,所述行为节点的第一权重系数与对应的行为节点在当前行为序列中的生成时刻呈负相关。

在一种可能的实施方式中,第一评分计算单元具体用于:

从该候选行为节点对应的多个所述第一相似度中选择小于预设阈值的第一相似度;

将选择的第一相似度分别与对应的行为节点的第一权重系数进行加权求和,得到该候选行为节点的第一评分。

在一种可能的实施方式中,第一评分计算单元具体用于:

从该候选行为节点对应的多个所述第一相似度中选择多个第一采样相似度;其中,所述第一采样相似度对应的行为节点在当前行为序列中的生成时刻处于第一预设时间范围内;

对所述多个第一采样相似度分别与对应的行为节点的第一权重系数进行加权求和,得到该候选行为节点的第一评分。

在一种可能的实施方式中,候选行为节点筛选单元具体用于:

按照所述多个候选行为节点的第一评分从高到低的顺序对所述多个候选行为节点进行排序,得到所述多个候选行为节点的第一排序结果;

基于以下任一方式从所述第一排序结果中筛选候选行为节点:

从所述第一排序结果中随机筛选预设数量的候选行为节点;

从所述第一排序结果中位于第一位的候选行为节点开始按顺序筛选预设数量的候选行为节点;

从所述第一排序结果中位于最后一位的候选行为节点开始按顺序筛选预设数量的候选行为节点。

在一种可能的实施方式中,第二加入模块70包括:

第二相似度计算单元,用于根据所述子图确定所述行为序列中每个行为节点是否具有对应的状态节点,若所述行为序列中的目标行为节点具有对应的状态节点,则针对所述目标行为节点的每个候选状态节点,计算该候选状态节点对应的词向量与当前行为序列中的每个状态节点对应的词向量之间的第二相似度;

第二评分计算单元,用于基于该候选状态节点对应的多个所述第二相似度,计算该候选状态节点的第二评分;

候选状态节点筛选单元,用于从所述目标行为节点的多个候选状态节点中筛选所述第二评分满足第二预设条件的候选状态节点。

在一种可能的实施方式中,第二评分计算单元具体用于:对该候选状态节点对应的多个所述第二相似度分别与对应的所述当前行为序列中的每个状态节点的第二权重系数进行加权求和,得到该候选状态节点的第二评分;其中,所述状态节点的第二权重系数与对应的状态节点在当前行为序列中的生成时刻呈负相关。

在一种可能的实施方式中,第二评分计算单元具体用于:

从该候选状态节点对应的多个所述第二相似度中选择小于预设阈值的第二相似度;

将选择的第二相似度分别与对应的状态节点的第二权重系数进行加权求和,得到该候选状态节点的第二评分。

在一种可能的实施方式中,第二评分计算单元具体用于:

从该候选状态节点对应的多个所述第二相似度中选择多个第二采样相似度;其中,所述第二采样相似度对应的状态节点在当前行为序列中的生成时刻处于第二预设时间范围内;

对所述多个第二采样相似度分别与对应的状态节点的第二权重系数进行加权求和,得到该候选状态节点的第二评分。

在一种可能的实施方式中,候选状态节点筛选单元具体用于:

按照所述目标行为节点的多个候选状态节点的第二评分从高到低的顺序对所述多个候选状态节点进行排序,得到所述多个候选状态节点的第二排序结果;

基于以下任一方式从所述第二排序结果中筛选候选状态节点:

从所述第二排序结果中随机筛选预设数量的候选状态节点;

从所述第二排序结果中位于第一位的候选状态节点开始按顺序筛选预设数量的候选状态节点;

从所述第一排序结果中位于最后一位的候选状态节点开始按顺序筛选预设数量的候选状态节点。

请参阅图4,图4为本申请实施例提供的一种电子设备的结构示意图。如图4所示,包括:处理器401、存储介质402和总线403,存储介质402存储有处理器401可执行的机器可读指令,当电子设备运行时,处理器401与存储介质402之间通过总线403通信,处理器401执行所述机器可读指令,以执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。

本申请实施例所提供的一种非玩家角色的行为序列生成方法的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

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

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

21页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:游戏中处理信息的方法、装置、电子设备及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类