1.本发明涉及游戏技术领域,尤其是涉及一种虚拟角色的显示控制方法、装置和电子设备。
背景技术:2.在大型多人在线角色扮演游戏(massively multiplayer onlinerole-playing game,mmorpg)中,通常设置很多不受真人玩家操纵的非玩家角色(non-player characters,npcs),可以与游戏玩家进行交互。一般将游戏内角色(npc或者游戏玩家)对周围环境(其他npc、游戏玩家、天气、时间等因素)表现出的肢体动作、情感动作、文本回复、后续状态等反应统一称为“角色反应”。
3.在一种相关技术中,通过人工编辑的方式实现游戏场景下的角色反应,提前为虚拟角色写入相应指令对应的状态,在特点指令下做出相应的角色反应,通常采用预先编辑好的动作回复套路。在另一相关技术中,对于角色的文本回复往往是固定的问答模板,比如微软小冰、阿里小蜜、谷歌的 meena、facebook的blender,依赖于一问一答的形式,在一些实际场景中,游戏中角色需要根据周围环境的变化来产生回复,“发问”只是周围环境变化中的一个维度,天气情况、当前时间、玩家执行的动作等都是环境中需要考虑的维度。
4.然而,对于人工编辑的方式,为了增加角色反应的多样性、提升玩家的游戏体验,每个状态下通常会编辑多条文本,实际上呈几何倍数增加了文案的数量,如此大规模的数据对于游戏文案来说编辑成本非常巨大。对于采用问答模板的角色文本回复,通常只能依据问话中的关键词生成固定回复,面对周围环境变化的情况无法及时做出调整,即无法满足多元化的实际场景的需求。
5.也就是说,现有mmorpg中,虚拟角色的反应无法满足多元化实际场景的需求,存在编辑成本巨大、场景适用范围小、游戏体验感差的技术问题。
技术实现要素:6.有鉴于此,本发明的目的在于提供一种虚拟角色的显示控制方法、装置及电子设备,以缓解现有技术中编辑虚拟角色的角色反应成本大、场景适用范围小、游戏体验感差的问题。
7.为了实现上述目的,本发明实施例采用的技术方案如下:
8.第一方面,本发明实施例提供了一种虚拟角色的显示控制方法,包括:根据预先生成的虚拟角色的背景信息,利用策略模型对上述虚拟角色的行为动作进行预测,得到上述虚拟角色的目标行为动作;上述行为动作包括上述虚拟角色的第一肢体动作和语言行为;将上述虚拟角色的背景信息对应的描述文本作为输入,利用预先训练好的生成式预训练语言模型,生成上述虚拟角色的回复文本;控制所述虚拟角色执行所述目标行为动作并且显示所述回复文本,以生成所述虚拟角色的角色反应。
9.在一种可能的实施方式中,在将上述虚拟角色的背景信息对应的描述文本作为输
入,利用预先训练好的生成式预训练语言模型,生成上述虚拟角色的回复文本的步骤之后,还包括:根据预先生成的虚拟角色的背景信息和上述虚拟角色的回复文本,利用策略模型对上述虚拟角色的状态信息进行预测,确定上述虚拟角色的后续状态;所述后续状态包括所述虚拟角色的第二肢体动作。
10.在一种可能的实施方式中,控制所述虚拟角色执行所述目标行为动作,并且显示所述回复文本,以生成所述虚拟角色的角色反应的步骤之后,还包括:控制所述虚拟角色执行所述第二肢体动作。
11.在一种可能的实施方式中,上述策略模型包括:ppl策略和seq2seq 模型;ppl策略基于训练好的gpt模型生成;根据预先生成的虚拟角色的背景信息,利用策略模型对上述虚拟角色的行为动作进行预测,得到上述虚拟角色的目标行为动作的步骤,包括:根据预先生成的虚拟角色的背景信息,利用gpt模型进行预测,生成上述行为动作的第一预测结果;根据预先生成的虚拟角色的背景信息,利用seq2seq模型进行预测,生成上述行为动作的第二预测结果;基于上述第一预测结果和上述第二预测结果对应的行为动作确定目标行为动作。
12.在一种可能的实施方式中,基于所述第一预测结果和所述第二预测结果对应的所述行为动作为确定目标行为动作的步骤,包括:当所述第一预测结果与所述第二预测结果相同时,确定所述第一预测结果或所述第二预测结果对应的所述行为动作为目标行为动作;当上述第一预测结果与上述第二预测结果不同,且所述第一预测结果和所述第二预测结果有且仅有一个不为空时,确定不为空的预测结果对应的所述行为动作为目标行为动作;当所述第一预测结果与所述第二预测结果不同,且所述第一预测结果和所述第二预测结果均不为空时,确定所述第一预测结果对应的所述行为动作为目标行为动作。
13.在一种可能的实施方式中,还包括:根据预先获得的多个维度的角色信息描述文本,生成虚拟角色的背景信息;上述虚拟角色的背景信息包括:玩家信息、环境信息和npc信息。
14.在一种可能的实施方式中,根据预先获得的多个维度的角色信息描述文本,生成虚拟角色的背景信息的步骤,包括:获取当前游戏场景下的玩家信息;上述玩家信息包括玩家角色表,上述玩家角色表包括玩家角色名称、职业和标签;每个上述标签对应至少一条描述文本;将上述玩家角色表中的每个上述玩家角色名称的上述职业和上述描述文本进行拼接,生成当前玩家角色的最终描述文本。
15.在一种可能的实施方式中,根据预先获得的多个维度的角色信息描述文本,生成虚拟角色的背景信息的步骤,还包括:获取当前游戏场景下的 npc信息;上述npc信息包括npc表,上述npc表包括npc名称、职业和标签;每个上述标签对应至少一条描述文本;将上述npc表中的每个上述npc名称的上述职业和上述描述文本进行拼接,生成当前npc的最终描述文本。
16.第二方面,本发明实施例提供了一种虚拟角色的显示控制装置,包括:目标行为动作确定模块,用于根据预先生成的虚拟角色的背景信息,利用策略模型对上述虚拟角色的行为动作进行预测,得到上述虚拟角色的目标行为动作;上述行为动作包括上述虚拟角色的第一肢体动作和语言行为;回复文本生成模块,用于将上述虚拟角色的背景信息对应的描述文本作为输入,利用预先训练好的生成式预训练语言模型,生成上述虚拟角色的回复
文本;显示控制模块,用于控制所述虚拟角色执行所述目标行为动作并且显示所述回复文本,以生成所述虚拟角色的角色反应。
17.在一种可能的实施方式中,还包括:后续状态生成模块,用于根据预先生成的虚拟角色的背景信息和上述虚拟角色的回复文本,利用策略模型对上述虚拟角色的状态信息进行预测,确定上述虚拟角色的后续状态;所述后续状态包括所述虚拟角色的第二肢体动作。
18.在一种可能的实施方式中,上述显示控制模块,还用于控制所述虚拟角色执行所述第二肢体动作。
19.在一种可能的实施方式中,还包括:背景信息生成模块,用于根据预先获得的多个维度的角色信息描述文本,生成虚拟角色的背景信息;上述虚拟角色的背景信息包括:玩家信息、环境信息和npc信息。
20.在一种可能的实施方式中,上述背景信息生成模块,还用于:获取当前游戏场景下的玩家信息;上述玩家信息包括玩家角色表,上述玩家角色表包括玩家角色名称、职业和标签;每个上述标签对应至少一条描述文本;将上述玩家角色表中的每个上述玩家角色名称的上述职业和上述描述文本进行拼接,生成当前玩家角色的最终描述文本。
21.第三方面,本发明实施例提供了一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面任一项虚拟角色的显示控制方法的步骤。
22.第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述第一方面任一项虚拟角色的显示控制方法。
23.本发明提供了一种虚拟角色的显示控制方法、装置和电子设备,该方法包括:首先根据虚拟角色的背景信息,利用策略模型对虚拟角色的行为动作进行预测,得到目标行为动作,然后利用预先训练好的生成式预训练语言模型,生成虚拟角色的回复文本,最后控制虚拟角色执行目标行为动作并且显示回复文本,以生成虚拟角色的角色反应。该方法通过模型预测行为动作并生成回复文本的方式对虚拟角色进行控制,从而生成角色反应,极大降低了编辑的成本,提高了角色反应的生成效率,满足了多元化实际场景的需求,提升了游戏体验感。
附图说明
24.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
25.图1为本发明实施例提供的一种虚拟角色的显示控制方法的流程示意图;
26.图2为本发明实施例提供的一种虚拟角色的显示控制系统的结构示意图;
27.图3为本发明实施例提供的一种虚拟角色的显示控制装置的结构示意图;
28.图4为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
29.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
30.因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
31.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
32.在大型多人在线角色扮演游戏mmorpg中,通常设置很多不受真人玩家操纵的非玩家角npc,可以与游戏玩家进行交互。一般将游戏内角色 (npc或者游戏玩家)对周围环境(其他npc、游戏玩家、天气、时间等因素)表现出的肢体动作、情感动作、文本回复、后续状态等反应定义为“角色反应”。目前一般通过人工提前写入状态反馈的方式来实现虚拟角色角色反应,而且为了增加角色反应的多样性、提升玩家的游戏体验,每个状态下通常会编辑多条文本,实际上呈几何倍数增加了文案的数量,比如:游戏中有1000个npc,玩家可以对npc做出50个动作,天气种类有5种,时间有3种,则该场景下仅文本回复的数量将会是1000*50*5*3= 750000。如此大规模的数据对于游戏文案来说编辑成本非常巨大,所以亟需一种自动化的方法来辅助游戏文案生成这些角色反应数据。
33.除了人工编辑微反应外,现在并没有自动生成游戏场景下角色微反应的解决方案。具体来说,对于角色肢体动作预测、角色情感动作、角色后续状态三个任务,和应用场景非常相关,目前没有现成的数据集来支持处理这些任务,需要将任务进行转化拆解。对于角色的文本回复这个任务,现在有一些对话回复相关的技术方案,比如微软小冰、阿里小蜜、谷歌的 meena、facebook的blender,但是依赖于一问一答的形式,在一些实际场景中,游戏中角色需要根据周围环境的变化来产生回复,“发问”只是周围环境变化中的一个维度,天气情况、当前时间、玩家执行的动作等都是环境中需要考虑的维度。所以现有对话回复的技术无法满足实际场景的需求。
34.基于此,本发明实施例提供了一种虚拟角色的显示控制方法、装置和电子设备,以缓解现有编辑虚拟角色的角色反应方法的成本较大、效率较低、无法满足多元化的实际场景的需求、游戏体验感差的问题。
35.为便于对本实施例进行理解,首先对本发明实施例所公开的一种虚拟角色的显示控制方法进行详细介绍,参见图1所示的一种虚拟角色的显示控制方法的流程示意图,该方法可以由电子设备执行,该方法主要包括以下步骤s110至步骤s130:
36.s110:根据预先生成的虚拟角色的背景信息,利用策略模型对虚拟角色的行为动作进行预测,得到虚拟角色的目标行为动作;
37.其中,虚拟角色可以是玩家角色,也可以是npc。也就是说,本实施例提供的虚拟角
色的显示控制方法可以用于生成玩家的角色反应,也可以用于生成npc的角色反应。具体的,玩家还可以包括在线玩家和离线玩家。
38.在本实施例中,虚拟角色的行为动作可以包括:第一肢体动作和语言行为。其中,第一肢体动作可以是角色在游戏中实际可执行的动作,如:挥手、下跪、抬头等;语言行为可以决定接下来的文本回复的情感倾向,比如:愤怒、开心、无奈等。
39.s120:将虚拟角色的背景信息对应的描述文本作为输入,利用预先训练好的生成式预训练语言模型,生成虚拟角色的回复文本;
40.其中,回复文本可以是虚拟角色对当前场景作出的回应,如:玩家偷了npc的东西,npc回应说“偷东西可不好啊,你看这么多百姓都在围观呢。”41.在本实施例中,预先训练好的生成式预训练语言模型可以是基于公开的中文小说语料以及游戏场景的剧情语料预训练的一个gpt模型。可以通过给定背景信息来让该模型生成预期的回复文本。
42.作为一个具体的示例,拼接《玩家信息》+《npc信息》+《环境信息》+《 玩家动作》+“npc接下来会”+《肢体动作》+“npc”+《语言行为》+“npc对玩家说”将该前缀信息给到gpt模型,引导模型往下生成npc说的话。比如:女侠是三清山自在门弟子,身负武艺,刚刚下山游历。吴三嫂是个少妇,作为一个路人,整天在路边闲逛。现在天气晴朗。女侠在吴三嫂面前打了个哆嗦。吴三嫂接下来会握紧双拳。吴三嫂感到不安。吴三嫂对女侠说:得到的生成结果比如:姑娘,你不要怕!我们没有恶意的。
43.为了增加生成回复文本的多样性,可以采用以下策略:多次解码,每次取topn,对topn候选回复两两进行相似度打分(采用bert提取句向量,接着计算余弦距离),对相似度高的两个候选项只保留解码分数更高者,最后对多次解码的结果统一进行去重(也可以采用句向量进行去重,可根据具体场景具体调整)。
44.s130:控制虚拟角色执行目标行为动作并且显示回复文本,以生成虚拟角色的角色反应。
45.在一种实施例中,上述步骤s120之后,该方法还可以包括:根据预先生成的虚拟角色的背景信息和虚拟角色的回复文本,利用策略模型对虚拟角色的状态信息进行预测,确定虚拟角色的后续状态;后续状态包括虚拟角色的第二肢体动作。
46.相应的,在上述步骤s130之后,该方法还可以包括:控制所述虚拟角色执行所述第二肢体动作。
47.其中,后续状态可以是虚拟角色对当前场景作出回应后的下一步反应,第二肢体动作可以是角色在游戏中实际可执行的动作。比如:npc在被游戏玩家激怒后,做出了相应的动作和回复,紧接着可能会进入的后续状态为战斗状态,即与该游戏玩家进行打斗,则后续状态对应的第二肢体动作为打斗;npc在与玩家结束交流后,可能会进入的后续状态为与游戏玩家告别,则后续状态对应的第二肢体动作可能为挥手、抱拳等。该步骤可以用于预测npc是否需要进入该后续状态。
48.在一种实施例中,在上述步骤s110之前,该方法可以包括:根据预先获得的多个维度的角色信息描述文本,生成虚拟角色的背景信息。其中,虚拟角色的背景信息包括:玩家信息、环境信息和npc信息。
49.通常,需要预先用“自然语言”将各种结构化的数据描述出来,作为后续预训练语
言模型的输入。也就是需要人工提前编辑好每个维度对应的描述文本,其中,多个维度可以包括:玩家信息、肢体动作、语言行为、后续状态、环境信息等。本实施例提供的虚拟角色的显示控制方法中,只需要人工对每个结构化的维度单独进行文案编辑,即可通过自动组合多个维度的文本描述,得到场景丰富的背景信息,用于辅助角色反应的生成。
50.为了简化文案的量级,可以将游戏玩家分为男女两大类,分别写好对应的描述文本。比如男玩家的描述为“少侠是三清山自在门弟子,身负武艺,刚刚下山游历。”但是不局限于性别这个维度,游戏中玩家的任何维度都可以用来扩充玩家动作的描述文本。
51.在本实施例中,玩家信息的自动获取方法可以包括以下步骤:
52.(1)获取当前游戏场景下的玩家信息;
53.其中,玩家信息包括玩家角色表,玩家角色表包括玩家角色名称、职业和标签;每个标签对应至少一条描述文本;
54.(2)将玩家角色表中的每个玩家角色名称的职业和描述文本进行拼接,生成当前玩家角色的最终描述文本。
55.由于玩家在游戏中可执行的玩家动作为有限集合,该动作集合由游戏所决定。作为一个具体的示例,本实施例所应用的场景中包含50个玩家动作,每个玩家动作对应一个提前编辑好的描述文本。比如“挥手”的描述文本为“{1}朝着{0}挥了挥手。”(注:后续所有文本中{0}表示npc名字,{1} 表示玩家名字,在实际生成数据时会根据具体值进行替换)。
56.npc信息与玩家信息类型,也是使用一句话描述npc的特点,即每个 npc对应一句描述文本。由于游戏内npc量级可能多达上千个,依次写出描述文本非常费时。因此本实施例提出了一种自动生成npc信息的方法。
57.在本实施例中,npc信息的自动获取方法也可以包括以下步骤:
58.(a)获取当前游戏场景下的npc信息;
59.其中,npc信息包括npc表,npc表包括npc名称、职业和标签;每个标签对应至少一条描述文本;
60.(b)将npc表中的每个npc名称的职业和描述文本进行拼接,生成当前npc的最终描述文本。
61.也就是说,npc表中一般包含了游戏中已有npc的名称、职业(可能为空)、标签。首先针对npc的职业来编辑npc描述模板,职业类别约50 个,比如“僧人”职业的模板是:{0}是个僧人,身穿袈裟;然后对每个标签编辑对应的文案,比如“富有”标签的文案是:家境殷实;再获取游戏提供的 npc表中的每个npc的职业,(如果未提供,可以通过匹配npc名称和职业名称的词向量距离来预测分类,将npc归类至距离最近的职业);最后将职业和标签的文本描述进行拼接,即可得到当前npc的最终描述文本。比如:相国寺明慧是个“僧人”,标签为“高个子”、“朴实”,则对应的描述为:相国寺明慧是个僧人,身穿袈裟,个子高高的,为人很朴实。
62.本实施例提供的虚拟角色的显示控制方法既可以用于玩家对npc的任务中,也可以用于在线玩家对离线玩家的任务中。例如:对于一个特定玩家和一个特定npc,当玩家对该npc做了某个特定行为后,本实施例提供的方法可以根据当前背景信息(玩家信息、npc信息、环境信息),预测 npc接下来的目标行为动作(肢体动作、语言行为、文本回复、后续状态)。
63.npc在游戏中可执行的肢体动作也是有限集合,作为一个具体示例,本实施例所应用的场景中包含70个npc动作,类似玩家动作,可以提前写好npc肢体动作对应的描述文本。比如“哆嗦”:{0}打了打哆嗦。
64.在本实施例中,npc在游戏中所表现的语言(情绪)行为约20类,类似肢体动作,可以提前编辑npc语言行为对应的描述文本。比如“无奈”: {0}感到很无奈。在本实施例中,npc后续状态约10类,与肢体动作类似,提前编辑好与后续状态对应的描述文本。比如“战斗”:{0}准备开始战斗。
65.环境信息包括但不限于天气(晴天、雪天、雨天),时辰(白天、夜晚、黄昏)。可以对每个环境信息的值编辑描述文本,比如“晴天”:这是个大晴天,天朗气清。
66.在一种实施例中,上述步骤s110中使用的策略模型包括:ppl策略和 seq2seq模型,ppl策略基于训练好的gpt模型生成。作为一个具体的示例,ppl策略包括:预先训练gpt模型后,在推理阶段(也即解码阶段),给定一个前缀和后缀,让gpt模型接收前缀输入,预测输出结果为后缀的分数(ppl得分),分数越低说明该后缀接在前缀后面越通顺,从而可以实现对多个候选项进行排序的功能。
67.gpt模型使用时可以进行fine-tune(微调),本实施例中利用公开的中文小说语料,以及游戏场景的剧情数据(mmorpg游戏通常会有剧情故事,这些故事描绘了虚拟角色之间的对话和行为,类似小说,可以直接拿来训练语言模型),在开源的基础gpt模型基础上进行fine-tune,从而让该 gpt模型具有理解对话、行为、以及游戏场景的能力。
68.在本实施例中,上述根据预先生成的虚拟角色的背景信息,利用策略模型对游戏劫色的行为动作进行预测包括:根据预先生成的虚拟角色的背景信息,利用gpt模型进行预测,生成行为动作的第一预测结果;以及根据预先生成的虚拟角色的背景信息,利用seq2seq模型进行预测,生成行为动作的第二预测结果;最后基于第一预测结果和第二预测结果对应的行为动作确定目标行为动作。
69.其中,基于第一预测结果和第二预测结果对应的行为动作确定目标行为动作时,优先ppl策略的预测结果,具体表现可以是:
70.(1)当第一预测结果与第二预测结果相同时,确定第一预测结果或第二预测结果对应的行为动作为目标行为动作;如果第一预测结果和第二预测结果都为空,则不预测该任务,或者说预测结果为空。
71.(2)当第一预测结果与第二预测结果不同,且第一预测结果和第二预测结果有且仅有一个不为空时,确定不为空的预测结果对应的行为动作为目标行为动作。
72.(3)当第一预测结果与第二预测结果不同,且第一预测结果和第二预测结果均不为空时,确定第一预测结果对应的行为动作为目标行为动作。
73.在一种实施例中,如果采用ppl策略预测得到的第一预测结果与采用 seq2seq模型预测得到的第二预测结果不同,则分别对ppl策略和seq2seq 模型设置过滤阈值,生成第一预测结果和第二预测结果的置信度分数,然后将置信度分数较高的预测结果对应的行为动作,作为虚拟角色的目标行为动作。
74.其中,以npc肢体动作任务为例,对模型设置过滤阈值的流程可以包括:先批量跑出一批数据,数据内容为在不同场景下(玩家、npc、玩家动作、环境等维度)的npc的肢体动作预测结果(候选项排序及其打分);然后预先人工标注动作预测合理性,并找到一个阈值t
(比如90%),能够满足高于该阈值的预测结果和人工标注的结果一致。后续实际预测时可直接过滤打分低于t的结果。对于ppl策略以及seq2seq模型均可以采用上述方法设置阈值,并过滤不合理的选项。
75.实施例1:ppl策略采用在游戏场景语料数据下预训练的gpt语言模型来预测,可以得到每个候选动作在给定背景信息下的置信度打分。具体地,对于三种任务,定义以下三类模板:
76.i.肢体动作模板:《玩家信息》+《npc信息》+《环境信息》+《玩家动作》+“npc接下来会”+《肢体动作候选项》。《》中的内容替换为实际值后,输入到gpt模型,得到ppl分数,比如“女侠是三清山自在门弟子,身负武艺,刚刚下山游历。吴三嫂是个少妇,作为一个路人,整天在路边闲逛。现在天气晴朗。女侠在吴三嫂面前打了个哆嗦。吴三嫂接下来会握紧双拳。”将《肢体动作候选项》的内容挨个替换为肢体动作文本描述,可分别得到每个候选项的ppl分数。
77.ii.语言行为模板:《玩家信息》+《npc信息》+《环境信息》+《玩家动作》+“npc接下来会”+《肢体动作》+“npc”+《语言行为候选项》。语言行为是在肢体动作预测之后进行的,比如“女侠是三清山自在门弟子,身负武艺,刚刚下山游历。吴三嫂是个少妇,作为一个路人,整天在路边闲逛。现在天气晴朗。女侠在吴三嫂面前打了个哆嗦。吴三嫂接下来会握紧双拳。吴三嫂感到不安。”同理替换《语言行为候选项》后可以分别得到每个候选项的 ppl分数。
78.iii.后续状态模板:《玩家信息》+《npc信息》+《环境信息》+《玩家动作》+“npc接下来会”+《肢体动作》+“npc”+《语言行为》+“npc对玩家说”+《回复文本》+“npc”+《后续状态候选项》。后续状态预测会和虚拟角色实际回复的文本密切相关,所以是在语言行为预测完成,且“回复文本”生成完成后再进行预测的,“回复文本”生成细节见步骤4。实际例子比如:女侠是三清山自在门弟子,身负武艺,刚刚下山游历。吴三嫂是个少妇,作为一个路人,整天在路边闲逛。现在天气晴朗。女侠在吴三嫂面前打了个哆嗦。吴三嫂接下来会握紧双拳。吴三嫂感到不安。吴三嫂对女侠说:“姑娘,你有什么事就快点吧!老娘还要去干活呢?”吴三嫂走开了。同理替换《后续状态候选项》后可以分别得到每个候选项的ppl分数。
79.实施例2:seq2seq模型是基于训好的t5模型,在公开的多选题相关的数据集上微调后的模型,一般可以提前将多选题数据集处理成seq2seq的格式。
80.其中,多选题数据集的构造一般为基于几个ner任务的数据集: msra_ner、duee-fin、ccks2019_event_entity_extract等,通过模板处理成seq2seq格式的数据。ner任务是给定一段文本,输出文本中涉及到的实体以及实体类别,将该任务构造成seq2seq格式,只要改变问法即可。
81.对于同一个多选题,可以基于不同模板扩充成多个样本,从而扩大了训练集。用这些数据训练的seq2seq模型便具备一定的推理决策能力,比较适用于本实施例的场景。
82.同实施例1,对三种任务定好输入模板,比如,肢体动作预测的输入模板为:《玩家信息》+《npc信息》+《环境信息》+《玩家动作》+“npc接下来最可能会做哪个行为:”+《肢体动作候选项列表》。这里的《肢体动作候选项列表》会列出所有可能的候选项,为了减少模型的预测难度,文案可提前对每个《玩家动作》提前编辑好可选的《肢体动作》,选项控制在10个以内。
83.比如,输入内容为:“女侠是三清山自在门弟子,身负武艺,刚刚下山游历。吴三嫂
是个少妇,作为一个路人,整天在路边闲逛。现在天气晴朗。女侠在吴三嫂面前打了个哆嗦。吴三嫂接下来最可能会做哪个行为:a.握紧双拳b.挥了挥手c.点了点头d.下跪求饶。”让模型解码输出结果。对语言行为和后续状态预测,可以设置类似的输入模板进行解码生成。为了提升生成效果,可以对每个场景多设置一些模板,每个模板分别经过seq2seq 模型预测得到结果,最后对这些结果进行投票,选出最终的结果。
84.假如设置了n个模板,分别经过微调finetune的seq2seq模型得到各自的答案后,对该答案求众数,作为最终答案返回。如果存在多个答案计数相同,则计算同一个答案在不同模板下解码时的分数和(解码时的分数在这里指的是输出解码结果的概率,seq2seq模型自带的一个数值),返回该分数最高的答案。设置模板可以缓解模型的偏见,如果只给一个模板让模型预测,很可能只生成最常见通用的预测结果,本实施例通过写入多个模板分别让模型进行预测,再对结果投票后取众数,可以得到更加准确合理的结果。
85.在本技术实施例的场景中,角色反应不局限于游戏npc,也适用于以下场景,这些场景通过图2所示的一种虚拟角色的显示控制系统中的“总调度模块”进行控制,决定该生成哪些角色反应。
86.a)离线玩家。游戏玩家下线后,其控制的虚拟角色还会出现在游戏场景中,在线玩家可以对该离线玩家做出动作,然后离线玩家需要进行反馈。这个场景下,我们可以提前生成好离线玩家的角色反应。
87.b)在线玩家。当在线玩家在对虚拟角色做出某个动作后,可以生成一句和该动作相匹配的回复文本,比如玩家对燕捕头npc做出嘲讽动作后,给该动作生成回复“你长得真丑,就不要出来吓唬路过的姑娘了。”,在线玩家可以直观看到自己做的动作配上的回复文本,提高玩家的游戏沉浸感。
88.c)部分信息缺失的场景。比如:(1)缺失玩家信息时,npc只基于环境信息进行角色反应;(2)缺失npc信息时,玩家做出动作后只基于环境信息进行角色反应。
89.d)生成回复文本可以是实际说的一句话,也可以是心里活动,通过修改回复文本生成的模板后缀即可实现,比如把“xx对xx说:”替换为“xx心里想:”。也不局限于这两种形式,其他的可以通过修改前缀来引导一个训好的语言模型往下生成的场景,都可以通过此方式进行修改,来生成所要的文案内容。
90.角色反应数据都是离线提前生成好的,存储在数据库中,游戏运行时通过玩家信息、npc信息、环境信息等关键字段获取到符合条件的角色反应,然后在游戏中表现出来,所以相比于在线生成来说时延较低。
91.本技术实施例提供了一种虚拟角色的显示控制方法,该方法包括:首先根据虚拟角色的背景信息,利用策略模型对虚拟角色的行为动作进行预测,得到目标行为动作,然后利用预先训练好的生成式预训练语言模型,生成虚拟角色的回复文本,最后结合目标行为动作和回复文本,生成虚拟角色的角色反应。该方法通过模型预测行为动作并生成回复文本的方式生成角色对应的角色反应,极大降低了编辑的成本,提高了角色反应的生成效率,扩大了实际场景的适用范围,提升了游戏体验感。
92.本发明实施例还提供了一种虚拟角色的显示控制装置,参见图3所示,该装置包括:
93.目标行为动作确定模块310,用于根据预先生成的虚拟角色的背景信息,利用策略
模型对虚拟角色的行为动作进行预测,得到虚拟角色的目标行为动作;行为动作包括虚拟角色的第一肢体动作和语言行为;
94.回复文本生成模块320,用于将虚拟角色的背景信息对应的描述文本作为输入,利用预先训练好的生成式预训练语言模型,生成虚拟角色的回复文本;
95.显示控制模块330,用于控制所述虚拟角色执行所述目标行为动作并且显示所述回复文本,以生成所述虚拟角色的角色反应。
96.在一种实施例中,上述装置还可以包括:后续状态生成模块,该模块可以用于根据预先生成的虚拟角色的背景信息和虚拟角色的回复文本,利用策略模型对虚拟角色的状态信息进行预测,确定虚拟角色的后续状态。
97.在本实施例中,显示控制模块还可以用于控制虚拟角色执行目标行为动作并且显示回复文本,以生成虚拟角色的角色反应。
98.在一种实施例中,上述装置还可以包括:背景信息生成模块,该模块可以用于根据预先获得的多个维度的角色信息描述文本,生成虚拟角色的背景信息;虚拟角色的背景信息包括:玩家信息、环境信息和npc信息。
99.另外,该背景信息生成模块还可以用于:获取当前游戏场景下的玩家信息;玩家信息包括玩家角色表,玩家角色表包括玩家角色名称、职业和标签;每个标签对应至少一条描述文本;将玩家角色表中的每个玩家角色名称的职业和描述文本进行拼接,生成当前玩家角色的最终描述文本。
100.本技术实施例所提供的虚拟角色的显示控制装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本技术实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。本技术实施例提供的虚拟角色的显示控制装置与上述实施例提供的虚拟角色的显示控制方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
101.本技术实施例还提供了一种电子设备,具体的,该电子设备包括处理器和存储装置;存储装置上存储有计算机程序,计算机程序在被所述处理器运行时执行如上所述实施方式的任一项所述的方法。
102.图4为本技术实施例提供的一种电子设备的结构示意图,该电子设备 400包括:处理器40,存储器41,总线42和通信接口43,所述处理器40、通信接口43和存储器41通过总线42连接;处理器40用于执行存储器41 中存储的可执行模块,例如计算机程序。
103.其中,存储器41可能包含高速随机存取存储器(ram,random accessmemory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口43(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
104.总线42可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
105.其中,存储器41用于存储程序,所述处理器40在接收到执行指令后,执行所述程
序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器40中,或者由处理器40实现。
106.处理器40可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器40中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器40可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现成可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器41,处理器40读取存储器41中的信息,结合其硬件完成上述方法的步骤。
107.对应于上述方法,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述方法的步骤。
108.在本技术所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
109.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
110.另外,在本技术提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
111.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom, read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
112.应注意到:相似的标号和字母在附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第
二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
113.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。