CN111249733A - 一种创建虚拟对象的方法和装置 - Google Patents
一种创建虚拟对象的方法和装置 Download PDFInfo
- Publication number
- CN111249733A CN111249733A CN202010022964.1A CN202010022964A CN111249733A CN 111249733 A CN111249733 A CN 111249733A CN 202010022964 A CN202010022964 A CN 202010022964A CN 111249733 A CN111249733 A CN 111249733A
- Authority
- CN
- China
- Prior art keywords
- virtual object
- node
- behavior tree
- nodes
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/56—Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/65—Methods for processing data by generating or executing the game program for computing the condition of a game character
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请的目的是提供一种创建虚拟对象的方法和装置,获取虚拟对象不同状态下对应的行为的逻辑图;将所述逻辑图转换成对应的数据交换文件;读取所述数据交换文件,将所述数据交换文件中的每个节点转换为对应的代码;创建所述虚拟对象,将所述转换后的代码绑定至所述虚拟对象。与现有技术相比,本申请灵活多变地配置虚拟对象的行为,对玩家的不同操作和不同状态行为做出感知行为,提升用户使用体验。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种创建虚拟对象的技术。
背景技术
在游戏中,为实现虚拟对象在不同状态下对应的行为,目前通常是在程序中通过硬编码来实现虚拟对象的行为,然而这种方式存在诸多缺点,例如:1)不够灵活,在程序中硬编码的方式对于不同的需求过于死板;2)扩展性不强,应对不同场景下的不同虚拟对象的行为,无法方便灵活的扩展功能;3)复用率太低,无法实现原语操作和不同原语的不同组合;4)对使用人员要求过高,必须懂得如何写程序,才能实现虚拟对象的行为;5)无法动态改变,无法根据不同场景来动态学习、动态修改自己的行为。
因此,如何灵活多变地配置虚拟对象的行为,对玩家的不同操作和不同状态行为做出感知行为,成为本领域技术人员亟需解决的问题之一。
发明内容
本申请的目的是提供一种创建虚拟对象的方法和装置。
根据本申请的一个方面,提供了一种创建虚拟对象的方法,其中,该方法包括:
获取虚拟对象不同状态下对应的行为的逻辑图;
将所述逻辑图转换成对应的数据交换文件;
读取所述数据交换文件,将所述数据交换文件中的每个节点转换为对应的代码;
创建所述虚拟对象,将所述转换后的代码绑定至所述虚拟对象。
根据本申请的另一个方面,还提供了一种创建虚拟对象的装置,其中,该装置包括:
获取装置,用于获取虚拟对象不同状态下对应的行为的逻辑图;
转换装置,用于将所述逻辑图转换成对应的数据交换文件;
读取装置,用于读取所述数据交换文件,将所述数据交换文件中的每个节点转换为对应的代码;
创建装置,用于创建所述虚拟对象,将所述转换后的代码绑定至所述虚拟对象。
根据本申请的又一个方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机代码,当所述计算机代码被执行时,如前任一项所述的方法被执行。
根据本申请的再一个方面,还提供了一种计算机程序产品,当所述计算机程序产品被计算机设备执行时,如前任一项所述的方法被执行。
根据本申请的再一个方面,还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个计算机程序;
当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如前任一项所述的方法。
与现有技术相比,本申请获取虚拟对象不同状态下对应的行为的逻辑图,将该逻辑图转换成对应的数据交换文件,读取该数据交换文件,将该数据交换文件中的每个节点转换为对应的代码,创建虚拟对象,将该转换后的代码绑定至该虚拟对象,灵活多变地配置虚拟对象的行为,对玩家的不同操作和不同状态行为作出感知行为,提升用户使用体验。
进一步地,本申请结合了状态机和行为树,多根节点比单根节点更加方便灵活,更有效率,根据具体场景需求,自定义需要的节点,灵活多变地配置虚拟对象的行为,对玩家的不同操作和不同状态行为作出感知行为,让游戏更有趣,更生动,更好玩。
进一步地,本申请借助XMIND工具,使得非技术人员也可以在不需要写程序的前提下自由方便的组合节点,让创建、编辑虚拟对象这项工作门槛降低,灵活性更高,生成的虚拟对象更真实,更有趣,工作的复用率更高。
进一步地,本申请根据与该虚拟对象相关联的关联对象所发生的关联触发事件来更新该虚拟对象所对应的混合行为树,使得虚拟对象更真实、更灵活。
进一步地,本申请通过虚拟对象与玩家之间的交互,动态学习,生成新的状态和行为树,优化虚拟角色自身的行为。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出适于用来实现本申请实施方式的示例性计算机系统/服务器12的框图;
图2示出根据本申请一个方面的一种创建虚拟对象的方法的流程示意图;
图3示出根据本申请一个优选实施例的创建虚拟对象的示意图;
图4示出根据本申请另一个优选实施例的创建虚拟对象的示意图;
图5示出根据本申请再一个优选实施例的创建虚拟对象的示意图;
图6示出根据本申请又一个优选实施例的创建虚拟对象的示意图;
图7示出根据本申请另一个方面的一种创建虚拟对象的装置的示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
在上下文中所称“计算机设备”,也称为“电脑”,是指可以通过运行预定程序或指令来执行数值计算和/或逻辑计算等预定处理过程的智能电子设备,其可以包括处理器与存储器,由处理器执行在存储器中预存的存续指令来执行预定处理过程,或是由ASIC、FPGA、DSP等硬件执行预定处理过程,或是由上述二者组合来实现。计算机设备包括但不限于服务器、个人电脑、笔记本电脑、平板电脑、智能手机等。
所述计算机设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本申请,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本申请。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。
需要说明的是,所述用户设备、网络设备和网络等仅为举例,其他现有的或今后可能出现的计算机设备或网络如可适用于本申请,也应包含在本申请保护范围以内,并以引用方式包含于此。
后面所讨论的方法(其中一些通过流程图示出)可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实施。当用软件、固件、中间件或微代码来实施时,用以实施必要任务的程序代码或代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。
这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本申请的示例性实施例的目的。但是本申请可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。
应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。
应当理解的是,当一个单元被称为“连接”或“耦合”到另一单元时,其可以直接连接或耦合到所述另一单元,或者可以存在中间单元。与此相对,当一个单元被称为“直接连接”或“直接耦合”到另一单元时,则不存在中间单元。应当按照类似的方式来解释被用于描述单元之间的关系的其他词语(例如“处于...之间”相比于“直接处于...之间”,“与...邻近”相比于“与...直接邻近”等等)。
这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。
还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。
下面结合附图对本申请作进一步详细描述。
图1示出了适于用来实现本申请实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未示出,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本申请所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图1中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在存储器28中的程序,从而执行各种功能应用以及数据处理。
例如,存储器28中存储有用于执行本申请的各项功能和处理的计算机程序,处理单元16执行相应计算机程序时,本申请创建虚拟对象被实现。
以下将详细描述本申请用于创建虚拟对象的具体装置/步骤。
图2示出根据本申请一个方面的一种用于创建虚拟对象的方法的示意图。
在步骤S201中,装置1获取虚拟对象不同状态下对应的行为的逻辑图。
具体地,虚拟对象在不同的状态下具有对应的行为的逻辑图,该逻辑图例如是事先保存于预定位置的,也可以是实时生成的,在步骤S201中,装置1例如自该预定位置获取该虚拟对象在不同状态下对应的行为的逻辑图,或者,自用来实时生成该虚拟对象在不同状态下对应的行为的逻辑图的装置处获取对应逻辑图。
在一实施例中,装置1获取虚拟对象所对应的逻辑图,该逻辑图例如为用户在一思维导图软件中绘制的思维导图,其中,该思维导图中包括配置的该虚拟对象的混合行为树,该混合行为树中配置有该虚拟对象在不同状态下的对应行为;用户绘制完该思维导图后将其存储于该思维导图软件对应的数据库中;在步骤S201中,装置1通过与该数据库的交互,获取该虚拟对象对应的思维导图,也即该虚拟对象对应的逻辑图。
在步骤S202中,装置1将所述逻辑图转换成对应的数据交换文件。
具体地,在步骤S202中,装置1将在步骤S201中所获取的该逻辑图转换成对应的数据交换文件,该数据交换文件例如可以是Json文件、xml文件等。本领域技术人员应能理解,上述数据交换文件的格式仅为举例,而不应视为对本申请的限制,其他现有的或今后可能出现的数据交换文件的格式,如可适用于本申请,也应包含在本申请的保护范围之内,并通过引用的方式包含于此。在一实施例中,该数据交换文件中的节点对应该虚拟对象的状态。
在此,JSON的全称是“JavaScript Object Notation”,是一种基于文本,独立于语言的轻量级数据交换格式。简洁和清晰的层次结构使得JSON成为理想的数据交换语言,且易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
在步骤S203中,装置1读取所述数据交换文件,将所述数据交换文件中的每个节点转换为对应的代码。本申请逻辑图中的混合行为树的所有行为元素分别对应各自的软件代码,本申请具有逻辑图的元素数据库,所述数据库包括节点ID,以及节点ID对应的软件代码。所述行为元素包括状态机节点、行为树节点,以及二者之间的事件状态节点与心跳状态节点等。
具体地,在步骤S203中,装置1读取在步骤S202中所转换后的该数据交换文件,例如,读取该Json文件,并将该数据交换文件中的每个节点转换为对应的代码。
在一实施例中,假设用户所使用的思维导图软件为XMIND工具,用户在利用该XMIND工具绘制出针对一虚拟对象的思维导图,也即该虚拟对象的逻辑图,该思维导图以XMIND文件形式保存,其中包括配置的该虚拟对象的混合行为树,该混合行为树中配置有该虚拟对象在不同状态下的对应行为;在步骤S201中,装置1获取该虚拟对象对应的逻辑图,也即获取该XMIND文件;在步骤S202中,装置1将该XMIND文件转换成对应的Json文件;在步骤S203中,装置1读取该Json文件,并将该Json文件中的每个节点转换为对应的代码。
在步骤S204中,装置1创建所述虚拟对象,将所述转换后的代码绑定至所述虚拟对象。
具体地,在步骤S204中,装置1创建该虚拟对象,并将在步骤S203中所转换后的代码绑定至该虚拟对象,接前例,在步骤S203中,装置1读取该Json文件,并将该Json文件中的每个节点转换为对应的代码;随后,在步骤S204中,装置1创建该虚拟对象,并将该基于Json文件转换后的代码绑定至该虚拟对象,这样,该虚拟对象在不同状态下即可生成对应的不同行为。例如,当玩家打开该虚拟对象所在的游戏,装置1例如通过页面渲染等方式,在游戏界面中生成该虚拟对象,基于玩家与该虚拟对象的交互,该虚拟对象可处于不同的状态,并在该状态下具有对应的行为。
在此,装置1获取虚拟对象不同状态下对应的行为的逻辑图,将该逻辑图转换成对应的数据交换文件,读取该数据交换文件,将该数据交换文件中的每个节点转换为对应的代码,创建虚拟对象,将该转换后的代码绑定至该虚拟对象,灵活多变地配置虚拟对象的行为,对玩家的不同操作和不同状态行为做出感知行为,提升用户使用体验。
在一优选实施例中,所述逻辑图中包括配置的所述虚拟对象的混合行为树,所述混合行为树包括与场景无关的状态机节点,以及将所述状态机节点作为根节点的行为树节点,所述状态机节点包括事件状态节点与心跳状态节点,所述状态机节点通过事件状态节点与心跳状态节点连接所述行为树节点。
一个混合行为树的实施例如图4所示,该图示出了虚拟对象“农夫AI”所对应的混合行为树。从图中可以看出,该虚拟对象“农夫AI”的混合行为树包括四个主状态节点,分别为“【主状态】空闲”、“【主状态】追敌”、“【主状态】攻击”和“【主状态】回巢”,这四个主状态节点均为与场景无关的状态机节点。以“【主状态】空闲”为例,在该状态机节点下,还包括了其他状态机节点,分别是“【事件】进入状态”、“【子状态】待机”、“【子状态】游荡”、“【子状态】巡逻”、“【事件】仇恨列表添加第一个人”、“【事件】离开状态”。其中,状态机节点通过事件状态节点与心跳状态节点连接行为树节点。例如,状态机节点“【主状态】空闲”通过事件状态节点“【事件】离开状态”连接后续的行为树节点;状态机节点“【子状态】待机”通过心跳状态节点“【心跳】5秒”连接后续的行为树节点。
在一优选实施例中,该方法还包括步骤S205(未示出)和步骤S206(未示出),来对所述混合行为树进行配置:在步骤S205中,装置1
获取用户配置的所述与场景无关的状态机节点,以及将所述状态机节点作为根节点所配置的行为树节点;在步骤S206中,装置1根据所述用户对所述状态机节点与所述行为树节点的配置操作,生成所述虚拟对象的混合行为树。
具体地,用户可以自行编辑该虚拟对象的逻辑图中的混合行为树,以XMIND工具为例,用户可在该XMIND的绘图栏中新建与场景无关的一个或多个状态机节点,并将该状态机节点作为根节点,在此基础上新建行为树节点,或者,用户也可以在该XMIND的数据库中自行选择一个或多个状态机节点,将该状态机节点作为根节点,并在此基础上再以拖拽等方式继续从数据库中选择行为树节点,从而配置该虚拟对象对应的混合行为树。用户在新建或以拖拽方式选择好状态机节点或行为树节点之后,均可以对该些节点进行一定的配置操作,例如编辑该些节点的跳转关系、条件等信息;在步骤S205中,装置1例如通过与用户所使用的设备的交互,获取该用户配置的与场景无关的状态机节点,以及将该状态机节点作为根节点所配置的行为树节点;在步骤S206中,装置1根据所述用户对所述状态机节点与所述行为树节点的配置操作,生成所述虚拟对象的混合行为树。
在一优选实施例中,当用户在用来编辑该虚拟对象的逻辑图的工具中新建或选中某个状态机节点或行为树节点,该工具可在该状态机节点或行为树节点附近以悬浮框等形式展现对应的信息,如展现该状态机节点或行为树节点的描述、示例、参数等信息。
例如,如图3所示,状态机节点或行为树节点可展现其对应的信息,如当用户选中节点“1:有敌人”,则可展现其描述和示例信息,进一步地,描述信息中展示相关说明信息“怪物仇恨列表非空”,示例信息中展示相关说明信息“【条件】有敌人”;当用户选中节点“2:技能距离足够近”,则可展示其描述、示例和参数信息,进一步地,描述信息中展示相关说明信息“当前目标是否在当前技能范围内”,示例信息中展示相关说明信息“【条件】技能距离足够近:skill=xxx”,参数信息中展示相关说明信息“skill”,在“skill”下又可进一步展示信息“类型-int”和“描述-检测技能ID”。基于这些展示信息,用户可以更方便地获知各个状态机节点或行为树节点,从而更有利于用户对该状态机节点或行为树节点的编辑配置操作以及后续生成混合行为树时的配置操作。
在步骤S206中,装置1根据该用户对该状态机节点与行为树节点的配置操作,生成该虚拟对象的混合行为树,例如,将状态机节点作为根节点,状态机节点包括事件状态节点与心跳状态节点,利用状态机节点通过事件状态节点与心跳状态节点连接对应的行为树节点。在一实施例中,装置1定义基本的与场景无关节的状态机节点,该状态机节点包括但不限于以下各节点:【主状态】,【子状态】,【顺序】,【并行】,【选择】,【前置条件】,【NOT】,【AND】,【条件】,【动作】,【事件】,【心跳】。本领域技术人员应能理解,上述各个状态机节点仅为举例,不应视为对本申请的限制,其他现有的或今后可能出现的状态机节点,如可适用于本申请,也应包含在本申请的保护范围之内,并通过引用的方式包含于此。随后,装置1将该状态机节点作为根节点,在此基础上配置行为树分支,并通过事件状态节点与心跳状态节点连接行为树节点。
装置1根据用户对状态机节点与行为树节点的配置操作,所生成的一个混合行为树的实施例如图4所示,该图示出了虚拟对象“农夫AI”所对应的混合行为树。从图中可以看出,该虚拟对象“农夫AI”的混合行为树包括四个主状态节点,分别为“【主状态】空闲”、“【主状态】追敌”、“【主状态】攻击”和“【主状态】回巢”,这四个主状态节点均为与场景无关的状态机节点。以“【主状态】空闲”为例,在该状态机节点下,还包括了其他状态机节点,分别是“【事件】进入状态”、“【子状态】待机”、“【子状态】游荡”、“【子状态】巡逻”、“【事件】仇恨列表添加第一个人”、“【事件】离开状态”。其中,状态机节点通过事件状态节点与心跳状态节点连接行为树节点。例如,状态机节点“【主状态】空闲”通过事件状态节点“【事件】离开状态”连接后续的行为树节点;状态机节点“【子状态】待机”通过心跳状态节点“【心跳】5秒”连接后续的行为树节点。
在一优选实施例中,所述行为树节点包括前置条件节点,其中,对所述混合行为树的配置包括:在所述前置条件节点下配置条件树,其中,所述条件树包括逻辑运算节点和/或具体条件。
具体地,该虚拟对象对应的混合行为树的行为树节点还包括前置条件节点,装置1在该前置条件节点下配置条件树,例如,如图4所示,在该虚拟对象“农夫AI”的混合行为树的“【主状态】空闲-【子状态】待机-【事件】进入状态-【选择】”下,装置1配置了前置条件节点“前置条件”,并在该前置条件节点下配置了条件树,该条件树包括了具体条件“【条件】配置空闲行为:游荡”。又如,在该虚拟对象“农夫AI”的混合行为树的“【主状态】攻击-【心跳】0.5秒”下,装置1配置了前置条件节点“前置条件”,并在该前置条件节点下配置了条件树,该条件树包括了逻辑运算节点“NOT”和具体条件“【条件】正在释放技能”。
在一优选实施例中,所述状态机节点包括主状态节点和/或子状态节点,其中,对所述混合行为树的配置包括:配置所述混合行为树的叶节点与所述主状态节点和/或子状态节点之间的跳转关系。
具体地,该虚拟对象对应的混合行为树的状态机节点包括主状态节点和/或子状态节点,装置1配置该混合行为树的叶节点与该主状态节点和/或子状态节点之间的跳转关系。例如,如图4所示,在该虚拟对象“农夫AI”的混合行为树的“【主状态】空闲-【事件】仇恨列表添加第一个人”下,装置1配置了行为树节点“【动作】切换主状态:攻击”,因此,若该混合行为树遍历至此,则会跳转至主状态节点“【主状态】攻击”。
在此,装置1结合了状态机和行为树,多根节点比单根节点更加方便灵活,更有效率,根据具体场景需求,自定义需要的节点,灵活多变地配置虚拟对象的行为,对玩家的不同操作和不同状态行为作出感知行为,让游戏更有趣,更生动,更好玩。
进一步地,装置1借助XMIND工具,使得非技术人员也可以在不需要写程序的前提下自由方便的组合节点,让创建、编辑虚拟对象这项工作门槛降低,灵活性更高,生成的虚拟对象更真实,更有趣,工作的复用率更高。
在一优选实施例中,该方法包括步骤S207(未示出)和步骤S208(未示出)。在步骤S207中,装置1获取与所述虚拟对象相关联的关联对象所发生的关联触发事件;在步骤S208中,装置1根据所述关联触发事件,更新所述虚拟对象所对应的混合行为树。
具体地,虚拟对象还具有与之相关联的关联对象,例如,对于如图4所示的虚拟对象“农夫AI”,其具有对应的关联对象“关卡AI”,如图5所示。该关联对象可能会发生对应的关联触发事件,如图5中,该关联触发事件可以是该关卡中所发生的事件,例如进入平乱状态。则在步骤S208中,装置1根据该关联触发事件,更新该虚拟对象所对应的混合行为树,例如图6中更新了该虚拟对象所对应的混合行为树,该具体的更新将在下文中进行详细描述。
在一优选实施例中,所述更新所述虚拟对象的混合行为树包括:在所述混合行为树的关联节点下增加或删除对应的行为树分支,其中,所述行为树分支被预先配置,所述关联节点在所述关联对象对应的混合行为树中被配置。
具体地,在步骤S208中,装置1根据与该虚拟对象相关联的关联对象所发生的关联触发事件,在该虚拟对象所对应的混合行为树的关联节点下增加或删除对应的行为树分支,该行为树分支可以预先配置,并可通用,而具体在哪个行为树节点上增加或删除行为树分支,可在关联对象的混合行为树中配置,例如,在如图5所示的关联对象“关卡AI”的混合行为树中配置当发生关联触发事件时,具体在该虚拟对象“农夫AI”的哪个行为树节点上增加或删除预先配置的行为树分支。
例如,图5中在关联对象“关卡AI”的混合行为树中配置了“【主状态】建设-【事件】进入状态-【并行】-{【动作】创建定时器:山贼入侵=1小时;【动作】怪物AI增加分支:父节点=【ROOT】农夫AI-【主状态】空闲-【子状态】巡逻,分支=【分支】请求建设}”,即,关联触发事件为当山贼入侵1小时,则在虚拟对象“农夫AI”的混合行为树的行为树节点“【主状态】空闲-【子状态】巡逻”下增加行为树分支,该行为树分支为“【分支】请求建设”,如该图5中下方所示出的行为树分支,该行为树分支是预先配置的。
这样,当发生该关联触发事件,在步骤S208中,装置1据此更新该虚拟对象所对应的混合行为树,如图6所示,在该虚拟对象“农夫AI”的混合行为树的行为树节点“【主状态】空闲-【子状态】巡逻”下增加了行为树分支“【分支】请求建设”。
与前述增加行为树分支相比,装置1在混合行为树的关联节点下删除对应的行为树分支的方式相同或基本相同,故在此不做赘述,并通过引用的方式包含与此。
在此,本申请根据与该虚拟对象相关联的关联对象所发生的关联触发事件来更新该虚拟对象所对应的混合行为树,使得虚拟对象更真实、更灵活。
在一优选实施例中,该方法还包括步骤S209(未示出)和步骤S210(未示出)。在步骤S209中,装置1获取所述虚拟对象与玩家之间的交互行为历史数据;在步骤S210中,装置1根据所述交互行为历史数据,基于深度学习模型,更新所述虚拟对象所对应的混合行为树。
具体地,玩家与该虚拟对象之间具有一定的交互,例如,玩家点击操作该虚拟对象,虚拟对象具有一定的动作或状态,在步骤S209中,装置1获取该虚拟对象与玩家之间的交互行为历史数据,基于这些交互行为历史数据作为样本进行学习;在步骤S210中,装置1进一步基于深度学习模型,从而更新该虚拟对象所对应的混合行为树,该更新的方式例如新增、删除或替换已有的行为树分支。在此,装置1在步骤S209中基于深度学习模型进行自主学习时,会考虑该虚拟对象本身的设定象限,该设定象限包括虚拟对象的有限的设定,例如,有的虚拟对象仅在游戏中来回走,有的定义为动物,有的定义为火堆等。
在一优选实施例中,所述更新所述虚拟对象所对应的混合行为树包括:基于深度学习模型,更新所述虚拟对象的属性;根据更新后的所述属性,在所述虚拟对象所对应的混合行为树中增减或更新对应的行为树分支。
具体地,在步骤S210中,装置1基于该深度学习模型,更新该虚拟对象的属性,该属性例如用来表达该虚拟对象所具有的不同状态,装置1更新了虚拟对象的属性之后,该虚拟对象可能会增加、减少或者更新一些自身的状态,相应地该虚拟对象对应的混合行为树中会有对应的行为树分支的增减或更新,例如,当虚拟对象的属性更新之后,该虚拟对象减少了自身的其中一种状态,则在步骤S210中,装置1可将该虚拟对象对应的混合行为树下的该减少的状态所对应的行为树分支进行删除,从而更新该虚拟对象所对应的混合行为树。
在一实施例中,假设虚拟对象为一绿洲,该绿洲的属性为沙漠中具有水草的绿地,在步骤S209中,装置1获取玩家与该绿洲的交互行为历史数据,例如,玩家经常在该绿洲上与怪物战斗、玩家在该绿洲上与怪物战斗时经常使用喷火的武器、在该绿洲上的怪物经常采用喷火等技能攻击玩家等,在步骤S209中,装置1基于这些交互行为历史数据作为样本进行学习;在步骤S210中,装置1该深度学习模型,更新该虚拟对象的属性,例如将该绿洲的属性增加一个变为沙漠的状态,其条件例如可以是当该绿洲遭受大于多少阈值的火焰,该条件及该阈值同样可由该装置1基于深度学习模型来学习获得,这样,装置1可基于该条件及该阈值来在该绿洲对应的混合行为树中增加对应该新增的状态所对应的行为树分支。
在此,本申请通过虚拟对象与玩家之间的交互,动态学习,生成新的状态和行为树,优化虚拟角色自身的行为。
图7示出根据本申请另一个方面的一种创建虚拟对象的装置的示意图。
装置1包括获取装置701、转换装置702、读取装置703和创建装置704。
其中,获取装置701获取虚拟对象不同状态下对应的行为的逻辑图。
具体地,虚拟对象在不同的状态下具有对应的行为的逻辑图,该逻辑图例如是事先保存于预定位置的,也可以是实时生成的,获取装置701例如自该预定位置获取该虚拟对象在不同状态下对应的行为的逻辑图,或者,自用来实时生成该虚拟对象在不同状态下对应的行为的逻辑图的装置处获取对应逻辑图。
在一实施例中,获取装置701获取虚拟对象所对应的逻辑图,该逻辑图例如为用户在一思维导图软件中绘制的思维导图,其中,该思维导图中包括配置的该虚拟对象的混合行为树,该混合行为树中配置有该虚拟对象在不同状态下的对应行为;用户绘制完该思维导图后将其存储于该思维导图软件对应的数据库中;获取装置701通过与该数据库的交互,获取该虚拟对象对应的思维导图,也即该虚拟对象对应的逻辑图。
转换装置702将所述逻辑图转换成对应的数据交换文件。
具体地,转换装置702将获取装置701所获取的该逻辑图转换成对应的数据交换文件,该数据交换文件例如可以是Json文件、xml文件等。本领域技术人员应能理解,上述数据交换文件的格式仅为举例,而不应视为对本申请的限制,其他现有的或今后可能出现的数据交换文件的格式,如可适用于本申请,也应包含在本申请的保护范围之内,并通过引用的方式包含于此。在一实施例中,该数据交换文件中的节点对应该虚拟对象的状态。
在此,JSON的全称是“JavaScript Object Notation”,是一种基于文本,独立于语言的轻量级数据交换格式。简洁和清晰的层次结构使得JSON成为理想的数据交换语言,且易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
读取装置703读取所述数据交换文件,将所述数据交换文件中的每个节点转换为对应的代码。本申请逻辑图中的混合行为树的所有行为元素分别对应各自的软件代码,本申请具有逻辑图的元素数据库,所述数据库包括节点ID,以及节点ID对应的软件代码。所述行为元素包括状态机节点、行为树节点,以及二者之间的事件状态节点与心跳状态节点等。
具体地,读取装置703读取转换装置702所转换后的该数据交换文件,例如,读取该Json文件,并将该数据交换文件中的每个节点转换为对应的代码。
在一实施例中,假设用户所使用的思维导图软件为XMIND工具,用户在利用该XMIND工具绘制出针对一虚拟对象的思维导图,也即该虚拟对象的逻辑图,该思维导图以XMIND文件形式保存,其中包括配置的该虚拟对象的混合行为树,该混合行为树中配置有该虚拟对象在不同状态下的对应行为;获取装置701获取该虚拟对象对应的逻辑图,也即获取该XMIND文件;转换装置702将该XMIND文件转换成对应的Json文件;读取装置703读取该Json文件,并将该Json文件中的每个节点转换为对应的代码。
创建装置704创建所述虚拟对象,将所述转换后的代码绑定至所述虚拟对象。
具体地,创建装置704创建该虚拟对象,并将读取装置703所转换后的代码绑定至该虚拟对象,接前例,读取装置703读取该Json文件,并将该Json文件中的每个节点转换为对应的代码;随后,创建装置704创建该虚拟对象,并将该基于Json文件转换后的代码绑定至该虚拟对象,这样,该虚拟对象在不同状态下即可生成对应的不同行为。例如,当玩家打开该虚拟对象所在的游戏,创建装置704例如通过页面渲染等方式,在游戏界面中生成该虚拟对象,基于玩家与该虚拟对象的交互,该虚拟对象可处于不同的状态,并在该状态下具有对应的行为。
在此,装置1获取虚拟对象不同状态下对应的行为的逻辑图,将该逻辑图转换成对应的数据交换文件,读取该数据交换文件,将该数据交换文件中的每个节点转换为对应的代码,创建虚拟对象,将该转换后的代码绑定至该虚拟对象,灵活多变地配置虚拟对象的行为,对玩家的不同操作和不同状态行为做出感知行为,提升用户使用体验。
在一优选实施例中,所述逻辑图中包括配置的所述虚拟对象的混合行为树,所述混合行为树包括与场景无关的状态机节点,以及将所述状态机节点作为根节点的行为树节点,所述状态机节点包括事件状态节点与心跳状态节点,所述状态机节点通过事件状态节点与心跳状态节点连接所述行为树节点。
一个混合行为树的实施例如图4所示,该图示出了虚拟对象“农夫AI”所对应的混合行为树。从图中可以看出,该虚拟对象“农夫AI”的混合行为树包括四个主状态节点,分别为“【主状态】空闲”、“【主状态】追敌”、“【主状态】攻击”和“【主状态】回巢”,这四个主状态节点均为与场景无关的状态机节点。以“【主状态】空闲”为例,在该状态机节点下,还包括了其他状态机节点,分别是“【事件】进入状态”、“【子状态】待机”、“【子状态】游荡”、“【子状态】巡逻”、“【事件】仇恨列表添加第一个人”、“【事件】离开状态”。其中,状态机节点通过事件状态节点与心跳状态节点连接行为树节点。例如,状态机节点“【主状态】空闲”通过事件状态节点“【事件】离开状态”连接后续的行为树节点;状态机节点“【子状态】待机”通过心跳状态节点“【心跳】5秒”连接后续的行为树节点。
在一优选实施例中,该装置1还包括配置装置(未示出)。配置装置获取用户配置的所述与场景无关的状态机节点,以及将所述状态机节点作为根节点所配置的行为树节点;根据所述用户对所述状态机节点与所述行为树节点的配置操作,生成所述虚拟对象的混合行为树。
具体地,用户可以自行编辑该虚拟对象的逻辑图中的混合行为树,以XMIND工具为例,用户可在该XMIND的绘图栏中新建与场景无关的一个或多个状态机节点,并将该状态机节点作为根节点,在此基础上新建行为树节点,或者,用户也可以在该XMIND的数据库中自行选择一个或多个状态机节点,将该状态机节点作为根节点,并在此基础上再以拖拽等方式继续从数据库中选择行为树节点,从而配置该虚拟对象对应的混合行为树。用户在新建或以拖拽方式选择好状态机节点或行为树节点之后,均可以对该些节点进行一定的配置操作,例如编辑该些节点的跳转关系、条件等信息;配置装置例如通过与用户所使用的设备的交互,获取该用户配置的与场景无关的状态机节点,以及将该状态机节点作为根节点所配置的行为树节点;在步骤S206中,装置1根据所述用户对所述状态机节点与所述行为树节点的配置操作,生成所述虚拟对象的混合行为树。
在一优选实施例中,当用户在用来编辑该虚拟对象的逻辑图的工具中新建或选中某个状态机节点或行为树节点,该工具可在该状态机节点或行为树节点附近以悬浮框等形式展现对应的信息,如展现该状态机节点或行为树节点的描述、示例、参数等信息。
例如,如图3所示,状态机节点或行为树节点可展现其对应的信息,如当用户选中节点“1:有敌人”,则可展现其描述和示例信息,进一步地,描述信息中展示相关说明信息“怪物仇恨列表非空”,示例信息中展示相关说明信息“【条件】有敌人”;当用户选中节点“2:技能距离足够近”,则可展示其描述、示例和参数信息,进一步地,描述信息中展示相关说明信息“当前目标是否在当前技能范围内”,示例信息中展示相关说明信息“【条件】技能距离足够近:skill=xxx”,参数信息中展示相关说明信息“skill”,在“skill”下又可进一步展示信息“类型-int”和“描述-检测技能ID”。基于这些展示信息,用户可以更方便地获知各个状态机节点或行为树节点,从而更有利于用户对该状态机节点或行为树节点的编辑配置操作以及后续生成混合行为树时的配置操作。
随后,配置装置根据该用户对该状态机节点与行为树节点的配置操作,生成该虚拟对象的混合行为树,例如,将状态机节点作为根节点,状态机节点包括事件状态节点与心跳状态节点,利用状态机节点通过事件状态节点与心跳状态节点连接对应的行为树节点。在一实施例中,配置装置定义基本的与场景无关节的状态机节点,该状态机节点包括但不限于以下各节点:【主状态】,【子状态】,【顺序】,【并行】,【选择】,【前置条件】,【NOT】,【AND】,【条件】,【动作】,【事件】,【心跳】。本领域技术人员应能理解,上述各个状态机节点仅为举例,不应视为对本申请的限制,其他现有的或今后可能出现的状态机节点,如可适用于本申请,也应包含在本申请的保护范围之内,并通过引用的方式包含于此。随后,配置装置601将该状态机节点作为根节点,在此基础上配置行为树分支,并通过事件状态节点与心跳状态节点连接行为树节点。
装置1根据用户对状态机节点与行为树节点的配置操作,所生成的一个混合行为树的实施例如图4所示,该图示出了虚拟对象“农夫AI”所对应的混合行为树。从图中可以看出,该虚拟对象“农夫AI”的混合行为树包括四个主状态节点,分别为“【主状态】空闲”、“【主状态】追敌”、“【主状态】攻击”和“【主状态】回巢”,这四个主状态节点均为与场景无关的状态机节点。以“【主状态】空闲”为例,在该状态机节点下,还包括了其他状态机节点,分别是“【事件】进入状态”、“【子状态】待机”、“【子状态】游荡”、“【子状态】巡逻”、“【事件】仇恨列表添加第一个人”、“【事件】离开状态”。其中,状态机节点通过事件状态节点与心跳状态节点连接行为树节点。例如,状态机节点“【主状态】空闲”通过事件状态节点“【事件】离开状态”连接后续的行为树节点;状态机节点“【子状态】待机”通过心跳状态节点“【心跳】5秒”连接后续的行为树节点。
在一优选实施例中,所述行为树节点包括前置条件节点,其中,所述配置装置在所述前置条件节点下配置条件树,其中,所述条件树包括逻辑运算节点和/或具体条件。
具体地,该虚拟对象对应的混合行为树的行为树节点还包括前置条件节点,配置装置在该前置条件节点下配置条件树,例如,如图4所示,在该虚拟对象“农夫AI”的混合行为树的“【主状态】空闲-【子状态】待机-【事件】进入状态-【选择】”下,配置装置配置了前置条件节点“前置条件”,并在该前置条件节点下配置了条件树,该条件树包括了具体条件“【条件】配置空闲行为:游荡”。又如,在该虚拟对象“农夫AI”的混合行为树的“【主状态】攻击-【心跳】0.5秒”下,配置装置配置了前置条件节点“前置条件”,并在该前置条件节点下配置了条件树,该条件树包括了逻辑运算节点“NOT”和具体条件“【条件】正在释放技能”。
在一优选实施例中,所述状态机节点包括主状态节点和/或子状态节点,其中,所述配置装置配置所述混合行为树的叶节点与所述主状态节点和/或子状态节点之间的跳转关系。
具体地,该虚拟对象对应的混合行为树的状态机节点包括主状态节点和/或子状态节点,配置装置配置该混合行为树的叶节点与该主状态节点和/或子状态节点之间的跳转关系。例如,如图4所示,在该虚拟对象“农夫AI”的混合行为树的“【主状态】空闲-【事件】仇恨列表添加第一个人”下,配置装置配置了行为树节点“【动作】切换主状态:攻击”,因此,若该混合行为树遍历至此,则会跳转至主状态节点“【主状态】攻击”。
在此,装置1结合了状态机和行为树,多根节点比单根节点更加方便灵活,更有效率,根据具体场景需求,自定义需要的节点,灵活多变地配置虚拟对象的行为,对玩家的不同操作和不同状态行为作出感知行为,让游戏更有趣,更生动,更好玩。
进一步地,装置1借助XMIND工具,使得非技术人员也可以在不需要写程序的前提下自由方便的组合节点,让创建、编辑虚拟对象这项工作门槛降低,灵活性更高,生成的虚拟对象更真实,更有趣,工作的复用率更高。
在一优选实施例中,该装置1包括第一更新装置(未示出)。第一更新装置获取与所述虚拟对象相关联的关联对象所发生的关联触发事件;根据所述关联触发事件,更新所述虚拟对象所对应的混合行为树。
具体地,虚拟对象还具有与之相关联的关联对象,例如,对于如图4所示的虚拟对象“农夫AI”,其具有对应的关联对象“关卡AI”,如图5所示。该关联对象可能会发生对应的关联触发事件,如图5中,该关联触发事件可以是该关卡中所发生的事件,例如进入平乱状态。则第一更新装置根据该关联触发事件,更新该虚拟对象所对应的混合行为树,例如图6中更新了该虚拟对象所对应的混合行为树,该具体的更新将在下文中进行详细描述。
在一优选实施例中,所述更新所述虚拟对象的混合行为树包括:在所述混合行为树的关联节点下增加或删除对应的行为树分支,其中,所述行为树分支被预先配置,所述关联节点在所述关联对象对应的混合行为树中被配置。
具体地,第一更新装置根据与该虚拟对象相关联的关联对象所发生的关联触发事件,在该虚拟对象所对应的混合行为树的关联节点下增加或删除对应的行为树分支,该行为树分支可以预先配置,并可通用,而具体在哪个行为树节点上增加或删除行为树分支,可在关联对象的混合行为树中配置,例如,在如图5所示的关联对象“关卡AI”的混合行为树中配置当发生关联触发事件时,具体在该虚拟对象“农夫AI”的哪个行为树节点上增加或删除预先配置的行为树分支。
例如,图5中在关联对象“关卡AI”的混合行为树中配置了“【主状态】建设-【事件】进入状态-【并行】-{【动作】创建定时器:山贼入侵=1小时;【动作】怪物AI增加分支:父节点=【ROOT】农夫AI-【主状态】空闲-【子状态】巡逻,分支=【分支】请求建设}”,即,关联触发事件为当山贼入侵1小时,则在虚拟对象“农夫AI”的混合行为树的行为树节点“【主状态】空闲-【子状态】巡逻”下增加行为树分支,该行为树分支为“【分支】请求建设”,如该图5中下方所示出的行为树分支,该行为树分支是预先配置的。
这样,当发生该关联触发事件,第一更新装置据此更新该虚拟对象所对应的混合行为树,如图6所示,在该虚拟对象“农夫AI”的混合行为树的行为树节点“【主状态】空闲-【子状态】巡逻”下增加了行为树分支“【分支】请求建设”。
与前述增加行为树分支相比,第一更新装置在混合行为树的关联节点下删除对应的行为树分支的方式相同或基本相同,故在此不做赘述,并通过引用的方式包含与此。
在此,本申请根据与该虚拟对象相关联的关联对象所发生的关联触发事件来更新该虚拟对象所对应的混合行为树,使得虚拟对象更真实、更灵活。
在一优选实施例中,该装置1还包括第二更新装置(未示出)。第二更新装置获取所述虚拟对象与玩家之间的交互行为历史数据;根据所述交互行为历史数据,基于深度学习模型,更新所述虚拟对象所对应的混合行为树。
具体地,玩家与该虚拟对象之间具有一定的交互,例如,玩家点击操作该虚拟对象,虚拟对象具有一定的动作或状态,第二更新装置获取该虚拟对象与玩家之间的交互行为历史数据,基于这些交互行为历史数据作为样本进行学习;随后,第二更新装置进一步基于深度学习模型,从而更新该虚拟对象所对应的混合行为树,该更新的方式例如新增、删除或替换已有的行为树分支。在此,第二更新装置基于深度学习模型进行自主学习时,会考虑该虚拟对象本身的设定象限,该设定象限包括虚拟对象的有限的设定,例如,有的虚拟对象仅在游戏中来回走,有的定义为动物,有的定义为火堆等。
在一优选实施例中,第二更新装置基于深度学习模型,更新所述虚拟对象的属性;根据更新后的所述属性,在所述虚拟对象所对应的混合行为树中增减或更新对应的行为树分支。
具体地,第二更新装置基于该深度学习模型,更新该虚拟对象的属性,该属性例如用来表达该虚拟对象所具有的不同状态,第二更新装置更新了虚拟对象的属性之后,该虚拟对象可能会增加、减少或者更新一些自身的状态,相应地该虚拟对象对应的混合行为树中会有对应的行为树分支的增减或更新,例如,当虚拟对象的属性更新之后,该虚拟对象减少了自身的其中一种状态,则第二更新装置可将该虚拟对象对应的混合行为树下的该减少的状态所对应的行为树分支进行删除,从而更新该虚拟对象所对应的混合行为树。
在一实施例中,假设虚拟对象为一绿洲,该绿洲的属性为沙漠中具有水草的绿地,第二更新装置获取玩家与该绿洲的交互行为历史数据,例如,玩家经常在该绿洲上与怪物战斗、玩家在该绿洲上与怪物战斗时经常使用喷火的武器、在该绿洲上的怪物经常采用喷火等技能攻击玩家等,第二更新装置基于这些交互行为历史数据作为样本进行学习;第二更新装置该深度学习模型,更新该虚拟对象的属性,例如将该绿洲的属性增加一个变为沙漠的状态,其条件例如可以是当该绿洲遭受大于多少阈值的火焰,该条件及该阈值同样可由该第二更新装置基于深度学习模型来学习获得,这样,第二更新装置可基于该条件及该阈值来在该绿洲对应的混合行为树中增加对应该新增的状态所对应的行为树分支。
在此,本申请通过虚拟对象与玩家之间的交互,动态学习,生成新的状态和行为树,优化虚拟角色自身的行为。
本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机代码,当所述计算机代码被执行时,如前任一项所述的方法被执行。
本申请还提供了一种计算机程序产品,当所述计算机程序产品被计算机设备执行时,如前任一项所述的方法被执行。
本申请还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个计算机程序;
当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如前任一项所述的方法。
虽然前面特别示出并且描述了示例性实施例,但是本领域技术人员将会理解的是,在不背离条款书的精神和范围的情况下,在其形式和细节方面本发明可以有所变化。这里所寻求的保护在所附条款书中做了阐述。在下列编号条款中规定了各个实施例的这些和其他方面:
1.一种创建虚拟对象的方法,其中,该方法包括:
获取虚拟对象不同状态下对应的行为的逻辑图;
将所述逻辑图转换成对应的数据交换文件;
读取所述数据交换文件,将所述数据交换文件中的每个节点转换为对应的代码;
创建所述虚拟对象,将所述转换后的代码绑定至所述虚拟对象。
2.根据条款1所述的方法,其中,所述逻辑图中包括配置的所述虚拟对象的混合行为树,所述混合行为树包括与场景无关的状态机节点,以及将所述状态机节点作为根节点的行为树节点,所述状态机节点包括事件状态节点与心跳状态节点,所述状态机节点通过事件状态节点与心跳状态节点连接所述行为树节点。
3.根据条款2所述的方法,其中,对所述混合行为树的配置包括:
获取用户配置的所述与场景无关的状态机节点,以及将所述状态机节点作为根节点所配置的行为树节点;
根据所述用户对所述状态机节点与所述行为树节点的配置操作,生成所述虚拟对象的混合行为树。
4.根据条款2或3所述的方法,其中,所述行为树节点包括前置条件节点,其中,对所述混合行为树的配置包括:
在所述前置条件节点下配置条件树,其中,所述条件树包括逻辑运算节点和/或具体条件。
5.根据条款2至4中任一项所述的方法,其中,所述状态机节点包括主状态节点和/或子状态节点,其中,对所述混合行为树的配置包括:
配置所述混合行为树的叶节点与所述主状态节点和/或子状态节点之间的跳转关系。
6.根据条款2至5中任一项所述的方法,其中,该方法包括:
获取与所述虚拟对象相关联的关联对象所发生的关联触发事件;
根据所述关联触发事件,更新所述虚拟对象所对应的混合行为树。
7.根据条款6所述的方法,其中,所述更新所述虚拟对象的混合行为树包括:
在所述混合行为树的关联节点下增加或删除对应的行为树分支,其中,所述行为树分支被预先配置,所述关联节点在所述关联对象对应的混合行为树中被配置。
8.根据条款2至7中任一项所述的方法,其中,该方法还包括:
获取所述虚拟对象与玩家之间的交互行为历史数据;
根据所述交互行为历史数据,基于深度学习模型,更新所述虚拟对象所对应的混合行为树。
9.根据条款8所述的方法,其中,所述更新所述虚拟对象所对应的混合行为树包括:
基于深度学习模型,更新所述虚拟对象的属性;
根据更新后的所述属性,在所述虚拟对象所对应的混合行为树中增减或更新对应的行为树分支。
10.一种创建虚拟对象的装置,其中,该装置包括:
获取装置,用于获取虚拟对象不同状态下对应的行为的逻辑图;
转换装置,用于将所述逻辑图转换成对应的数据交换文件;
读取装置,用于读取所述数据交换文件,将所述数据交换文件中的每个节点转换为对应的代码;
创建装置,用于创建所述虚拟对象,将所述转换后的代码绑定至所述虚拟对象。
11.根据条款10所述的装置,其中,所述逻辑图中包括配置的所述虚拟对象的混合行为树,
所述混合行为树包括与场景无关的状态机节点,以及将所述状态机节点作为根节点的行为树节点,所述状态机节点包括事件状态节点与心跳状态节点,所述状态机节点通过事件状态节点与心跳状态节点连接所述行为树节点。
12.根据条款11所述的装置,其中,该装置还包括配置装置,用于:
获取用户配置的所述与场景无关的状态机节点,以及将所述状态机节点作为根节点所配置的行为树节点;
根据所述用户对所述状态机节点与所述行为树节点的配置操作,生成所述虚拟对象的混合行为树。
13.根据条款11或12所述的装置,其中,所述行为树节点包括前置条件节点,其中,所述配置装置还用于:
在所述前置条件节点下配置条件树,其中,所述条件树包括逻辑运算节点和/或具体条件。
14.根据条款11至13中任一项所述的装置,其中,所述状态机节点包括主状态节点和/或子状态节点,其中,所述配置装置用于:
配置所述混合行为树的叶节点与所述主状态节点和/或子状态节点之间的跳转关系。
15.根据条款10至14中任一项所述的装置,其中,该装置包括第一更新装置,用于:
获取与所述虚拟对象相关联的关联对象所发生的关联触发事件;
根据所述关联触发事件,更新所述虚拟对象所对应的混合行为树。
16.根据条款15所述的装置,其中,所述第一更新装置用于:
在所述混合行为树的关联节点下增加或删除对应的行为树分支,其中,所述行为树分支被预先配置,所述关联节点在所述关联对象对应的混合行为树中被配置。
17.根据条款10至16中任一项所述的装置,其中,该装置还包括第二更新装置,用于:
获取所述虚拟对象与玩家之间的交互行为历史数据;
根据所述交互行为历史数据,基于深度学习模型,更新所述虚拟对象所对应的混合行为树。
18.根据条款17所述的装置,其中,所述第二更新装置用于:
基于深度学习模型,更新所述虚拟对象的属性;
根据更新后的所述属性,在所述虚拟对象所对应的混合行为树中增减或更新对应的行为树分支。
19.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机代码,当所述计算机代码被执行时,如条款1至9中任一项所述的方法被执行。
20.一种计算机程序产品,当所述计算机程序产品被计算机设备执行时,如条款1至9中任一项所述的方法被执行。
21.一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个计算机程序;
当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如条款1至9中任一项所述的方法。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,本申请的各个装置可采用专用集成电路(ASIC)或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (10)
1.一种创建虚拟对象的方法,其中,该方法包括:
获取虚拟对象不同状态下对应的行为的逻辑图;
将所述逻辑图转换成对应的数据交换文件;
读取所述数据交换文件,将所述数据交换文件中的每个节点转换为对应的代码;
创建所述虚拟对象,将所述转换后的代码绑定至所述虚拟对象。
2.根据权利要求1所述的方法,其中,所述逻辑图中包括配置的所述虚拟对象的混合行为树,所述混合行为树包括与场景无关的状态机节点,以及将所述状态机节点作为根节点的行为树节点,所述状态机节点包括事件状态节点与心跳状态节点,所述状态机节点通过事件状态节点与心跳状态节点连接所述行为树节点。
3.根据权利要求2所述的方法,其中,对所述混合行为树的配置包括:
获取用户配置的所述与场景无关的状态机节点,以及将所述状态机节点作为根节点所配置的行为树节点;
根据所述用户对所述状态机节点与所述行为树节点的配置操作,生成所述虚拟对象的混合行为树。
4.根据权利要求2或3所述的方法,其中,该方法包括:
获取与所述虚拟对象相关联的关联对象所发生的关联触发事件;
根据所述关联触发事件,更新所述虚拟对象所对应的混合行为树。
5.根据权利要求2至4中任一项所述的方法,其中,该方法还包括:
获取所述虚拟对象与玩家之间的交互行为历史数据;
根据所述交互行为历史数据,基于深度学习模型,更新所述虚拟对象所对应的混合行为树。
6.根据权利要求5所述的方法,其中,所述更新所述虚拟对象所对应的混合行为树包括:
基于深度学习模型,更新所述虚拟对象的属性;
根据更新后的所述属性,在所述虚拟对象所对应的混合行为树中增减或更新对应的行为树分支。
7.一种创建虚拟对象的装置,其中,该装置包括:
获取装置,用于获取虚拟对象不同状态下对应的行为的逻辑图;
转换装置,用于将所述逻辑图转换成对应的数据交换文件;
读取装置,用于读取所述数据交换文件,将所述数据交换文件中的每个节点转换为对应的代码;
创建装置,用于创建所述虚拟对象,将所述转换后的代码绑定至所述虚拟对象。
8.根据权利要求7所述的装置,其中,所述逻辑图中包括配置的所述虚拟对象的混合行为树,
所述混合行为树包括与场景无关的状态机节点,以及将所述状态机节点作为根节点的行为树节点,所述状态机节点包括事件状态节点与心跳状态节点,所述状态机节点通过事件状态节点与心跳状态节点连接所述行为树节点。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机代码,当所述计算机代码被执行时,如权利要求1至6中任一项所述的方法被执行。
10.一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个计算机程序;
当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010022964.1A CN111249733B (zh) | 2020-01-09 | 2020-01-09 | 一种创建虚拟对象的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010022964.1A CN111249733B (zh) | 2020-01-09 | 2020-01-09 | 一种创建虚拟对象的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111249733A true CN111249733A (zh) | 2020-06-09 |
CN111249733B CN111249733B (zh) | 2023-10-13 |
Family
ID=70946830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010022964.1A Active CN111249733B (zh) | 2020-01-09 | 2020-01-09 | 一种创建虚拟对象的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111249733B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113687600A (zh) * | 2021-10-21 | 2021-11-23 | 中智行科技有限公司 | 仿真测试方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105656688A (zh) * | 2016-03-03 | 2016-06-08 | 腾讯科技(深圳)有限公司 | 状态控制方法和装置 |
WO2016147620A1 (en) * | 2015-03-13 | 2016-09-22 | Square Enix Co., Ltd. | Information processing apparatus, information processing method, non-transitory computer-readable storage medium |
CN106155658A (zh) * | 2015-04-08 | 2016-11-23 | 广州四三九九信息科技有限公司 | 基于u3d插件机制实现的行为树编辑器 |
CN107085519A (zh) * | 2017-05-04 | 2017-08-22 | 网易(杭州)网络有限公司 | 行为树调试处理方法、装置、系统、存储介质和处理器 |
CN110134375A (zh) * | 2019-05-14 | 2019-08-16 | 网易(杭州)网络有限公司 | 游戏角色行为的控制方法、装置及可读存储介质 |
-
2020
- 2020-01-09 CN CN202010022964.1A patent/CN111249733B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016147620A1 (en) * | 2015-03-13 | 2016-09-22 | Square Enix Co., Ltd. | Information processing apparatus, information processing method, non-transitory computer-readable storage medium |
CN106155658A (zh) * | 2015-04-08 | 2016-11-23 | 广州四三九九信息科技有限公司 | 基于u3d插件机制实现的行为树编辑器 |
CN105656688A (zh) * | 2016-03-03 | 2016-06-08 | 腾讯科技(深圳)有限公司 | 状态控制方法和装置 |
CN107085519A (zh) * | 2017-05-04 | 2017-08-22 | 网易(杭州)网络有限公司 | 行为树调试处理方法、装置、系统、存储介质和处理器 |
CN110134375A (zh) * | 2019-05-14 | 2019-08-16 | 网易(杭州)网络有限公司 | 游戏角色行为的控制方法、装置及可读存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113687600A (zh) * | 2021-10-21 | 2021-11-23 | 中智行科技有限公司 | 仿真测试方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111249733B (zh) | 2023-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11135514B2 (en) | Data processing method and apparatus, and storage medium for concurrently executing event characters on a game client | |
Weihs et al. | Allenact: A framework for embodied ai research | |
CN105739983B (zh) | 脚本程序编辑装置及其实现方法 | |
CN113688977B (zh) | 面向对抗任务的人机共生强化学习方法、装置、计算设备及存储介质 | |
CN104102522B (zh) | 交互式游戏中智能非玩家角色的人工情感驱动方法 | |
CN102262534B (zh) | 基于互联网b/s结构的计算机网络游戏开发系统及方法 | |
US20150080128A1 (en) | Content management system | |
Bogdanovych et al. | Developing virtual heritage applications as normative multiagent systems | |
CN107526682B (zh) | 测试机器人的ai行为树的生成方法、装置及设备 | |
CN111450531B (zh) | 虚拟角色控制方法、装置、电子设备以及存储介质 | |
CN113069769A (zh) | 云游戏界面显示方法、装置、电子设备以及存储介质 | |
CN103716237A (zh) | 一种利用二叉堆排序的寻路方法及装置 | |
Mizutani et al. | Unlimited rulebook: A reference architecture for economy mechanics in digital games | |
CN111249733A (zh) | 一种创建虚拟对象的方法和装置 | |
Johnson-Bey et al. | Neighborly: A sandbox for simulation-based emergent narrative | |
Qin et al. | Mp5: A multi-modal open-ended embodied system in minecraft via active perception | |
Natkin et al. | A new methodology for spatiotemporal game design | |
CN112755534B (zh) | 一种数据处理方法、装置和存储介质 | |
CN109343913A (zh) | 一种游戏行为树控制方法 | |
CN111443806B (zh) | 交互任务的控制方法、装置、电子设备及存储介质 | |
CN117046111B (zh) | 一种游戏技能的处理方法以及相关装置 | |
Gursoy et al. | Understanding change in a dynamic complex digital object: Reading categories of change out of patch notes documents | |
CN115957510B (zh) | 一种角色行为控制的方法及系统 | |
CN117648585B (zh) | 基于任务相似度的智能决策模型泛化方法和装置 | |
McQuillan | A survey of behaviour trees and their applications for game AI |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |