CN105656688A - 状态控制方法和装置 - Google Patents
状态控制方法和装置 Download PDFInfo
- Publication number
- CN105656688A CN105656688A CN201610121881.1A CN201610121881A CN105656688A CN 105656688 A CN105656688 A CN 105656688A CN 201610121881 A CN201610121881 A CN 201610121881A CN 105656688 A CN105656688 A CN 105656688A
- Authority
- CN
- China
- Prior art keywords
- node
- behavior
- state
- server
- burl point
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4498—Finite state machines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
- H04L41/0233—Object-oriented techniques, for representation of network management data, e.g. common object request broker architecture [CORBA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种状态控制方法和装置。该方法包括:服务器检测到操作执行事件,操作执行事件用于请求对第一应用中的第一对象进行操作;服务器判断第一对象在混合状态机中的当前节点的下一个节点为第一状态节点还是第一行为树节点,混合状态机中的节点包括状态节点和行为树节点,混合状态机中的节点之间具有状态跳转关系;若判断出当前节点的下一个节点为第一状态节点,则服务器对第一对象执行第一状态节点所对应的第一状态中的操作;若判断出当前状态的下一个节点为第一行为树节点,则服务器对第一对象执行第一行为树节点所对应的第一行为树中的操作。本发明解决了相关技术使用有限状态机控制应用中个体执行操作效率低的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种状态控制方法和装置。
背景技术
目前,应用中控制个体执行操作的方式通常包括有限状态机和行为树,但是,有限状态机和行为树在执行操作过程中各自均存在缺陷,具体地:对于有限状态机,当状态非常多时,有限状态机需要处理大量的状态转换关系,不仅增加了设计者的工作量,而且不便于对有限状态机的维护,导致应用中个体执行操作效率低。对于行为树,行为树在状态跳转方面并不直观;行为树适合按计划执行一系列行为,不能有效地处理一些异常与特殊情况下的状态跳转。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种状态控制方法和装置,以至少解决相关技术使用有限状态机控制应用中个体执行操作效率低的技术问题。
根据本发明实施例的一个方面,提供了一种状态控制方法,包括:服务器检测到操作执行事件,其中,操作执行事件用于请求对第一应用中的第一对象进行操作;服务器判断第一对象在混合状态机中的当前节点的下一个节点为第一状态节点还是第一行为树节点,其中,混合状态机中的节点包括状态节点和行为树节点,混合状态机中的节点之间具有状态跳转关系;若判断出当前节点的下一个节点为第一状态节点,则服务器对第一对象执行第一状态节点所对应的第一状态中的操作;若判断出当前状态的下一个节点为第一行为树节点,则服务器对第一对象执行第一行为树节点所对应的第一行为树中的操作。
根据本发明实施例的另一方面,还提供了一种状态控制装置,包括:检测模块,用于服务器检测到操作执行事件,其中,操作执行事件用于请求对第一应用中的第一对象进行操作;判断模块,用于服务器判断第一对象在混合状态机中的当前节点的下一个节点为第一状态节点还是第一行为树节点,其中,混合状态机中的节点包括状态节点和行为树节点,混合状态机中的节点之间具有状态跳转关系;第一操作模块,用于在判断出当前节点的下一个节点为第一状态节点,则服务器对第一对象执行第一状态节点所对应的第一状态中的操作;第二操作模块,用于在判断出当前状态的下一个节点为第一行为树节点,则服务器对第一对象执行第一行为树节点所对应的第一行为树中的操作。
在本发明实施例中,通过服务器在检测到操作执行事件时判断第一对象在混合状态机中的当前节点的下一个节点为第一状态节点还是第一行为树节点,若为第一状态节点则对第一对象执行第一状态节点对应的第一状态中的操作,若为第一行为树节点则对第一对象执行第一行为树节点对应的第一行为树中的操作,达到了利用有限状态机和行为树共同控制应用中个体执行操作的目的,从而实现了提高应用中个体执行操作效率的技术效果,进而解决了相关技术使用有限状态机控制应用中个体执行操作效率低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的状态控制方法的硬件环境的示意图;
图2是根据本发明实施例的一种可选的状态控制方法的流程图;
图3是根据本发明实施例的有限状态机的示意图;
图4a是根据本发明实施例的状态分组之间有限状态机的示意图;
图4b是根据本发明实施例的层次状态机的示意图;
图5是根据本发明实施例的基于栈的状态机的示意图;
图6是根据本发明实施例的行为树的示意图;
图7是根据本发明实施例的混合状态机的示意图;
图8是根据本发明实施例的状态控制装置的示意图;
图9是根据本发明实施例的一种可选的状态控制装置的示意图;
图10是根据本发明实施例的另一种可选的状态控制装置的示意图;
图11是根据本发明实施例的再一种可选的状态控制装置的示意图;以及
图12是根据本发明实施例的一种终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种状态控制方法的方法实施例。
可选地,在本实施例中,上述状态控制方法可以应用于如图1所示的由服务器102和终端104所构成的硬件环境中。如图1所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于PC、手机、平板电脑等。本发明实施例的数据处理方法可以由服务器102来执行,也可以由终端104来执行,还可以是由服务器102和终端104共同执行。其中,终端104执行本发明实施例的数据处理方法也可以是由安装在其上的客户端来执行。
图2是根据本发明实施例的一种可选的状态控制方法的流程图,如图2所示,该方法可以包括以下步骤:
步骤S202,服务器检测到操作执行事件,其中,操作执行事件用于请求对第一应用中的第一对象进行操作;
步骤S204,服务器判断第一对象在混合状态机中的当前节点的下一个节点为第一状态节点还是第一行为树节点,其中,混合状态机中的节点包括状态节点和行为树节点,混合状态机中的节点之间具有状态跳转关系;
步骤S206,若判断出当前节点的下一个节点为第一状态节点,则服务器对第一对象执行第一状态节点所对应的第一状态中的操作;
步骤S208,若判断出当前状态的下一个节点为第一行为树节点,则服务器对第一对象执行第一行为树节点所对应的第一行为树中的操作。
通过上述步骤S202至步骤S208,通过服务器在检测到操作执行事件时判断第一对象在混合状态机中的当前节点的下一个节点为第一状态节点还是第一行为树节点,若为第一状态节点则对第一对象执行第一状态节点对应的第一状态中的操作,若为第一行为树节点则对第一对象执行第一行为树节点对应的第一行为树中的操作,达到了利用有限状态机和行为树共同控制应用中个体执行操作的目的,从而实现了提高应用中个体执行操作效率的技术效果,进而解决了相关技术使用有限状态机控制应用中个体执行操作效率低的技术问题。
在步骤S202提供的技术方案中,第一应用可以为游戏类应用、即时通信类应用,或者其他类型应用,本发明对第一应用为作限定。第一应用中可以包括多个对象,这多个对象中包括第一对象,第一对象可以为这多个对象中的任意一个对象,需要说明的是,此处的对象可以为应用中某个执行事件的事件对象,比如游戏人物。第一应用可以安装在服务器中,也可以安装在客户端(比如智能手机、电能等),由服务器负责对该第一应用中的事件和对象进行处理和维护。操作执行事件可以用于请求对第一应用中的第一对象进行操作,其中,对第一对象进行的操作可以包括调整第一对象移动路径、控制第一对象释放技能等,本发明对此并未做具体限定。
可选地,服务器可以实时检测该操作执行事件,以便于及时准确地响应该操作执行事件对第一应用中的第一对象进行操作。服务器在实时检测该操作执行事件的同时还可以实时检测第一应用中的第一对象是否正在执行某个操作,如果服务器检测到第一对象正在执行某个操作,则在检测到该操作执行事件时需要等待第一对象当前执行的操作执行完毕时才控制第一对象响应该操作执行事件;如果服务器检测到第一对象没有正在执行某个操作,则在检测到该操作执行事件时立即控制第一对象响应该操作执行事件。
在步骤S204提供的技术方案中,混合状态机可以控制对第一对象进行操作,需要说明的是,混合状态机可以控制对一个或者多个第一应用中的对象进行操作。混合状态机由有限状态机和行为树组成,为了更好地说明混合状态机,本发明实施例首先对有限状态机和行为树做具体说明如下:
有限状态机可以控制应用中个体对象执行操作,它包含了有限个状态和状态间的转换条件。同一时间内,个体对象只会处于某一个状态中,有限状态机需要从一个状态转换到另外一个状态实现执行不同的操作。例如,图3中表示了一个游戏应用中一个游戏人物的四个状态,分别为游荡、攻击、逃跑、寻找治疗,以及上述四个状态之间的转换关系,比如,游戏人物从寻找治疗至游荡的转换条件为发现药物,从攻击至游荡的转换条件为对象不在视野范围内,此处不再一一举例上述四种状态之间的转换条件。
有限状态机可以分为两种,分别为层次状态机(HierarchicalFiniteStateMachines,简称为HFSM)和基于栈的状态机(StackbasedFiniteStateMachines,简称为SFSM)。其中,层次状态机提出了将状态分组的概念,不同组之间的状态共享相同的转换关系。它提升了状态控制的粒度,大大减少了重复的状态转换关系,可以让设计者更好的控制状态转换。如图4a所示,有限状态机中包括三个状态A、B、C,其中,A和C状态在β条件触发时都可以跳转到B状态,则可以将A和C状态分组,节省掉重复的β条件触发的状态转换,分组后的有限状态机,即有限状态机如图4b所示。
基于栈的状态机可以使用栈结构管理状态的转换关系,如图5所示,栈顶保存了当前激活的状态C,状态之间的转换可以通过入栈和出栈操作来实现,该结构能够有效地处理基于事件触发的状态打断和继续的情况。例如,在游戏应用中需要添加一个新功能使得电脑AI随时暂停,则需要添加一个暂停状态。如果使用传统的有限状态机则需要为该暂停状态和每一个有限状态机中存在的状态之间设计转换关系。而使用基于栈的状态机,当事件触发需要暂停时只需要将暂停状态压栈即可,暂停结束时只需要将该暂停状态出栈即可以恢复到原有状态继续执行,大大节省了状态转换关系的设计。
需要说明的是,本发明实施例中的混合状态机可以利用层次状态机,也可以利用基于栈的状态机,本发明对此并不做限定。
行为树也可以控制应用中个体对象执行操作,行为树的节点可以分为以下几类:
组合节点(Composite):行为树中的分支,即非叶子节点,可以包括选择节点(Selector)、序列节点(Sequence)、简单并行节点(SimpleParallel)。
任务节点(Task):是行为树中的叶子节点,执行一项具体的任务,比如移动AI等。
修饰节点(Decorator):依附于Composite节点或者Task节点中,用于判断某个分支或者某个叶子节点能否被执行。
服务节点(Service):依附于Composite节点中,按一定频率被调用,用于更新该分支的信息。
根节点(Root):行为树的根。
选择节点(Selector):从左到右执行其子节点,若其子节点中有一个执行成功并返回,本节点就会立即停止执行。如果子节点返回成功,则该节点返回成功;若全部子节点返回失败,则该节点返回失败。
序列节点(Sequence):从左到右执行其子节点,若其子节点中有一个执行失败并返回,本节点就会立即停止执行。如果有子节点返回失败,则该节点返回失败;若所有节点返回成功,则该节点返回成功。
行为树的基本原理可以描述为:从根节点开始自顶向下,通过一些条件搜索这棵树,最终确定需要执行的叶子节点,并且执行它。树中除了根节点之外的每一个节点都有一个返回值,根据其执行情况返回成功或者失败。节点的返回值将会反馈给该节点的父节点,对其父节点的返回值造成一定的影响。如图6所示的行为树中,从根节点开始搜索,确定需要执行的叶子节点分别为任务节点0、任务节点1、任务节点2、任务节点3、任务节点4。一开始任务节点0执行失败,返回其给父节点选择节点0,继续执行任务节点1。任务节点1执行成功,返回给其父节点选择节点0。由于任务节点0、任务节点1、任务节点2的父节点选择节点0是个选择节点,因此立即返回成功。同理,任务节点3执行成功,返回给其父节点顺序节点1,继续执行任务节点4。任务节点4执行失败,返回给其父节点顺序节点1。由于任务节点3、任务节点4的父节点顺序节点1是个顺序节点,因此立即返回失败。选择节点0、顺序节点1的父节点顺序节点0为顺序节点,在接收到选择节点0、顺序节点1的返回值时,确定顺序节点0的返回值为失败。顺序节点0将返回值返回至根节点,因此,整个行为树遍历完成之后,结果为失败。
混合状态机中的节点可以包括状态节点和行为树节点,且混合状态机中的节点之间具有状态跳转关系,具体可以包括混合状态机中的状态节点之间、行为树节点之间、状态节点与行为树节点之间具有状态跳转关系。图7是根据本发明实施例的混合状态机的示意图,如图7所示,以游戏应用中游戏人物对应的混合状态机为例,混合状态机中可以包括多个节点,这多个节点中包括状态节点和行为树节点,其中,待机、寻路、追踪为状态节点,释放技能为行为树节点,混合状态机中的状态节点和状态节点之间,状态节点与行为树节点之间,行为树与行为树节点之间存在转换条件,图7中的箭头可以代表节点之间具有转换关系,节点之间具体的转换条件此处不做具体说明,行为树中包括多个节点,如图7所示,行为树节点中可以包括至少一个节点,比如顺序节点、选择节点、修饰节点、任务节点等。需要说明的是,本发明实施例对混合状态机中的状态节点和行为树节点的个数不做限定,对节点之间的转换条件不做限定,对行为树中节点个数,节点类型和节点关系不做限定。
在步骤S204提供的技术方案中,服务器在检测到操作执行事件之后,判断第一对象在混合状态机中的当前节点的下一个节点为第一状态节点还是行为树节点。需要说明的是,操作执行事件中可以包括在混合状态机中第一对象所在的当前节点,也可以包括第一对象在执行当前节点所对应的操作之后转换的目标节点,即当前节点的下一个节点,在操作执行事件的触发下第一对象可以在混合状态机中从当前节点转换至下一个节点,其中,下一个节点可以是状态节点,也可以是行为树节点。
在步骤S206和步骤S208提供的技术方案中,混合状态机中的任意一个状态节点(包括第一状态节点)所对应的状态中均包括对第一对象进行的操作,混合状态机中的任意一个行为树节点所对应的行为树中包括对第一对象进行的操作(包括第一行为树节点)。当服务器判断出当前节点的下一个节点为第一状态节点时,服务器对第一对象执行第一状态节点所对应的第一状态中的操作;当判断出当前状态的下一个节点为第一行为树节点时,服务器对第一对象执行第一行为树节点所对应的第一行为树中的操作。需要说明的是,本发明实施例对第一状态节点所对应的第一状态中的操作以及第一行为树所对应的操作不做限定。
本发明实施例利用混合状态机融合了有限状态机和行为树的优点,对于需要遵照一定流程的计划,使用行为树处理,对于事件触发的行为或者一些异常情况,使用有限状态机处理。既能处理异常与特征情况下的状态跳转,又能根据某种计划执行一系列阶段性的行为。
在实际应用场景中,如图7所示,对于游戏应用中的游戏人物来说主要有待机、追踪、寻路、释放技能四个状态。其中,释放技能的状态比较复杂,可能存在许多个不同的技能需要特定的排列组合来丰富游戏人物的技能表现。因此,本发明实施例将释放技能作为一个大的通用状态,使用行为树去管理,释放技能状态和待机、追踪、寻路等其他状态的转换则使用有限状态机去控制。有限状态机可以使用程序代码维护,以保证大多数情况AI处理各种情况的稳定性。在实际使用中有限状态机选择基于栈的状态机,能够进一步减少多个状态转换带来的复杂性。在释放技能状态内部使用行为树去管理,游戏人物技能策划人员只需负责对该行为树进行编辑修改,而无需关心该行为树和外部其他状态的转换关系。由于该行为树内部大部分逻辑只是技能的组合与阶段的控制,并不会影响到整体的AI逻辑,策划人员完全可以自己操作而无需程序设计人员的协助。采用这样的方式,策划人员可以只关心自己需要的技能,控制出招流程,平衡游戏的节奏感,极大地节省了策划人员的工作量。此外,本发明实施例还可以进行非常方便地实现打断与恢复。考虑技能释放后造成游戏人物眩晕的例子,游戏人物眩晕结束后继续从中断点开始执行。使用传统的行为树解决这个问题将会非常复杂,或者需要很多任务才能办到。而本发明实施例通过借助于外部有限状态机,在有限状态机中新增一个眩晕状态,在触发眩晕的时候AI从当前状态跳转到眩晕状态,结束之后继续回到上一个状态。从而方便快速地实现了状态的打断与恢复。
作为一种可选的实施例,步骤S204服务器判断第一对象在混合状态机中的当前节点的下一个节点为第一状态节点还是第一行为树节点可以包括:若操作执行事件指示的是事件触发的操作或者异常的操作,则服务器判断当前节点的下一个节点为第一状态节点;若操作执行事件指示的是流程类型的操作,则服务器判断当前节点的下一个节点为第一行为树节点。
该实施例中服务器可以依据检测到的操作执行事件指示的操作决定当前节点的下一个节点时第一状态节点还是第一行为树节点,操作执行事件指示的操作可以包括事件触发的操作、异常的操作、流程类型的操作等,该实施例对操作执行事件指示的操作的内容不做限定,除了上述列举的内容外,还可以包括其他内容,此处不再一一举例说明。该实施例依据操作执行事件指示的操作判断当前节点的下一个节点是第一状态节点还是第一行为树节点,达到了准确确定当前节点的下一个节点的类型的目的,进而能够达到根据不同的节点类型对第一对象执行不同操作的效果。
作为一种可选的实施例,步骤S208服务器对第一对象执行第一行为树节点所对应的第一行为树中的操作包括:服务器对第一对象执行第一行为树中的每个叶子节点所对应的操作。
该实施例中服务器在确定第一对象在混合状态机中的当前节点的下一个节点为第一行为树节点的情况下,服务器可以对第一对象执行第一行为树节点所对应的第一行为树中的操作,比如当第一对象为游戏人物,第一行为树节点为释放技能时,第一行为树中的操作可以包括调节技能强度、选择技能种类等。第一行为树中可以包括一个或者多个叶子节点,每个叶子节点对应一个第一行为树中的操作,即第一行为树中的操作可以包括一个,也可以包括多个。服务器对第一对象执行第一行为树节点所对应的第一行为树中的操作时,可以执行第一行为树中的每个叶子节点所对应的操作,具体的执行过程在介绍行为树的原理时已经说明,此处不再赘述。在执行完第一行为树中的每个叶子节点所对应的操作后,可以影响第一对象的属性,比如游戏人物的生命值、技能剩余量等。该实施例通过行为树对第一对象进行流程类型操作,能够避免使用有线状态机需要设置非常复杂的转换关系,进而达到了提高控制应用中对象执行操作的效率的技术效果。
作为一种可选的实施例,在步骤S202服务器检测到操作执行事件之前,该实施例还可以包括以下步骤:
步骤S2012,服务器获取第一配置信息,其中,第一配置信息用于指示状态节点、行为树节点、以及状态跳转关系。
步骤S2014,服务器根据第一配置信息为第一对象生成混合状态机。
在步骤S2012提供的技术方案中,第一配置信息可以是为第一对象生成混合状态机所依据的信息,可以用于指示混合状态机中的状态节点、行为树节点以及状态跳转关系,需要说明的是,状态跳转关系可以包括状态节点之间、行为树节点之间、状态节点与行为树节点之间的状态跳转关系。第一配置信息可以包括混合状态机中状态节点的个数、行为树节点的个数、状态节点之间的转换条件、行为树节点之间的转换条件、状态节点与行为树节点之间的转换条件、状态节点所对应的状态中的操作,行为树节点所对应的行为树中的操作等。该实施例对第一配置信息不做具体限定,第一配置信息可以根据实际应用场景需求进行相应的调整。该第一配置信息可以由用户根据实际需求进行设定和调整。
在步骤S2014提供的技术方案中,服务器在获取第一配置信息之后,依据该第一配置信息可以生成第一对象的混合状态机,比如,依据第一配置信息中的状态节点的个数可以设置混合状态机中的状态节点,依据行为树节点的个数可以设置混合状态机中的行为树节点,依据第一配置信息中的状态节点之间的转换条件可以设置混合状态机中的状态节点之间的跳转关系,依据第一配置信息中的行为树节点之间的转换条件可以设置混合状态机中的行为树节点之间的跳转关系,依据第一配置信息中的状态节点与行为树节点之间的转换条件可以设置混合状态机中的状态节点与行为树节点之间的跳转关系,依据第一配置信息中的状态节点所对应的状态中的操作可以配置混合状态机中的状态节点所对应的状态的操作,依据第一配置信息中的行为树节点所对应的行为树中的操作可以配置混合状态机中的行为树节点所对应的状态的操作等。上述只是列举了部分第一对象的混合状态机的配置操作,服务器根据第一配置信息为第一对象生成混合状态机的过程中还可以包括其他配置操作,此处不再一一举例说明。
该实施例通过提前获取为第一对象生成混合状态机所需的第一配置信息,且该第一配置信息可以依据实际应用场景需求进行设定,能够达到满足用户实际需求的效果,同时,通过提前获取用于生成混合状态机所需的第一配置信息能够达到缩短混合状态机的生成时间的效果。
作为一种可选的实施例,在步骤S2014服务器根据第一配置信息为第一对象生成混合状态机之后,该实施例还可以包括以下步骤:
步骤S2016,服务器获取第二配置信息。
步骤S2018,服务器根据第二配置信息对混合状态机进行更新。
在步骤S2016提供的技术方案中,第二配置信息可以用于更新依据第一配置信息为第一对象生成的混合状态机,第二配置信息可以包括第一配置信息中的内容,还可以包括第一配置信息以外的内容,修改混合状态机中状态节点所对应的状态中的操作,修改混合状态机中行为树节点所对应的行为树中的操作,修改混合状态机中节点之间的转换条件和跳转关系,增加或者删除混合状态机中的节点,增加或者删除混合状态机中节点之间的转换条件和跳转关系等。该实施例对第二配置信息不做具体限定,第二配置信息可以包括其他内容,此处不再一一举例说明。
在步骤S2018提供的技术方案中,服务器在获取第二配置信息之后,依据该第二配置信息可以对混合状态机进行更新,可以包括对混合状态机中的节点进行更新,也可以包括对混合状态机中节点之间的跳转关系进行更新等。
可选地,步骤S2018服务器根据第二配置信息对混合状态机进行更新可以包括以下至少之一:服务器对混合状态机中已存在的状态节点、和/或已存在的行为树节点、和/或已存在的状态节点与已存在的行为树节点之间的状态跳转关系进行更新;服务器删除混合状态机中已存在的状态节点、和/或已存在的行为树节点、和/或已存在的状态节点与已存在的行为树节点之间的状态跳转关系;服务器在混合状态机中增加状态节点和/或行为树节点、和/或在增加的状态节点和/或行为树节点与已存在的状态节点和/或已存在的行为树节点之间建立状态跳转关系。
上述对混合状态机的更新操作只是本发明的一种可选实施例,需要说明的是,本发明并不对混合状态机的更新操作做限定,除了上述列举的更新操作外还可以包括其他更新操作,此处不再一一举例说明。该实施例通过提前获取用于更新混合状态机的第二配置信息,可以缩短混合状态机的更新时间,通过对混合状态机进行实时更新,能够提高混合状态机的实时性和准确性,进而达到利用混合状态机提高对第一对象执行操作的效率的效果。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种用于实施上述状态控制方法的状态控制装置。图8是根据本发明实施例的状态控制装置的示意图,如图8所示,该装置可以包括:
检测模块22,用于服务器检测到操作执行事件,其中,操作执行事件用于请求对第一应用中的第一对象进行操作;判断模块24,用于服务器判断第一对象在混合状态机中的当前节点的下一个节点为第一状态节点还是第一行为树节点,其中,混合状态机中的节点包括状态节点和行为树节点,混合状态机中的节点之间具有状态跳转关系;第一操作模块26,用于在判断出当前节点的下一个节点为第一状态节点,则服务器对第一对象执行第一状态节点所对应的第一状态中的操作;第二操作模块28,用于在判断出当前状态的下一个节点为第一行为树节点,则服务器对第一对象执行第一行为树节点所对应的第一行为树中的操作。
需要说明的是,该实施例中的检测模块22可以用于执行本申请实施例1中的步骤S202,该实施例中的判断模块24可以用于执行本申请实施例1中的步骤S204,该实施例中的第一操作模块26可以用于执行本申请实施例1中的步骤S206,该实施例中的第二操作模块28可以用于执行本申请实施例1中的步骤S208。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
通过上述模块,通过服务器在检测到操作执行事件时判断第一对象在混合状态机中的当前节点的下一个节点为第一状态节点还是第一行为树节点,若为第一状态节点则对第一对象执行第一状态节点对应的第一状态中的操作,若为第一行为树节点则对第一对象执行第一行为树节点对应的第一行为树中的操作,达到了利用有限状态机和行为树共同控制应用中个体执行操作的目的,从而实现了提高应用中个体执行操作效率的技术效果,进而解决了相关技术使用有限状态机控制应用中个体执行操作效率低的技术问题。
作为一种可选的实施例,图9是根据本发明实施例的一种可选的状态控制装置的示意图,如图9所示,判断模块24可以包括:第一判定模块242,用于在操作执行事件指示的是事件触发的操作或者异常的操作时,服务器判断当前节点的下一个节点为第一状态节点;第二判定模块244,用于在操作执行事件指示的是流程类型的操作,则服务器判断当前节点的下一个节点为第一行为树节点。
该实施例中服务器可以依据检测到的操作执行事件指示的操作决定当前节点的下一个节点时第一状态节点还是第一行为树节点,操作执行事件指示的操作可以包括事件触发的操作、异常的操作、流程类型的操作等,该实施例对操作执行事件指示的操作的内容不做限定,除了上述列举的内容外,还可以包括其他内容,此处不再一一举例说明。该实施例依据操作执行事件指示的操作判断当前节点的下一个节点是第一状态节点还是第一行为树节点,达到了准确确定当前节点的下一个节点的类型的目的,进而能够达到根据不同的节点类型对第一对象执行不同操作的效果。
作为一种可选的实施例,图10是根据本发明实施例的另一种可选的状态控制装置的示意图,如图10所示,第二操作模块28可以包括:第一操作子模块282,用于服务器对第一对象执行第一行为树中的每个叶子节点所对应的操作。
该实施例第一行为树中可以包括一个或者多个叶子节点,每个叶子节点对应一个第一行为树中的操作,即第一行为树中的操作可以包括一个,也可以包括多个。服务器在确定第一对象在混合状态机中的当前节点的下一个节点为第一行为树节点的情况下,服务器可以对第一对象执行第一行为树节点所对应的第一行为树中的操作,比如当第一对象为游戏人物,第一行为树节点为释放技能时,第一行为树中的操作可以包括调节技能强度、选择技能种类等。对第一对象执行第一行为树中的每个叶子节点所对应的操作,具体的执行过程在介绍行为树的原理时已经说明,此处不再赘述。在执行完第一行为树中的每个叶子节点所对应的操作后,可以影响第一对象的属性,比如游戏人物的生命值、技能剩余量等。该实施例通过行为树对第一对象进行流程类型操作,能够避免使用有线状态机需要设置非常复杂的转换关系,进而达到了提高控制应用中对象执行操作的效率的技术效果。
作为一种可选的实施例,图11是根据本发明实施例的再一种可选的状态控制装置的示意图,如图11所示,该实施例的状态控制装置还可以包括:第一获取模块212,用于在服务器检测到操作执行事件之前,服务器获取第一配置信息,其中,第一配置信息用于指示状态节点、行为树节点、以及状态跳转关系;生成模块214,用于服务器根据第一配置信息为第一对象生成混合状态机。
需要说明的是,该实施例中的第一获取模块212可以用于执行本申请实施例1中的步骤S2012,该实施例中的生成模块214可以用于执行本申请实施例1中的步骤S2014。
第一配置信息可以是为第一对象生成混合状态机所依据的信息,可以用于指示混合状态机中的状态节点、行为树节点以及状态跳转关系,需要说明的是,状态跳转关系可以包括状态节点之间、行为树节点之间、状态节点与行为树节点之间的状态跳转关系。第一配置信息可以包括混合状态机中状态节点的个数、行为树节点的个数、状态节点之间的转换条件、行为树节点之间的转换条件、状态节点与行为树节点之间的转换条件、状态节点所对应的状态中的操作,行为树节点所对应的行为树中的操作等。该实施例对第一配置信息不做具体限定,第一配置信息可以根据实际应用场景需求进行相应的调整。该第一配置信息可以由用户根据实际需求进行设定和调整。服务器在获取第一配置信息之后,依据该第一配置信息可以生成第一对象的混合状态机,比如,依据第一配置信息中的状态节点的个数可以设置混合状态机中的状态节点,依据行为树节点的个数可以设置混合状态机中的行为树节点,依据第一配置信息中的状态节点之间的转换条件可以设置混合状态机中的状态节点之间的跳转关系,依据第一配置信息中的行为树节点之间的转换条件可以设置混合状态机中的行为树节点之间的跳转关系,依据第一配置信息中的状态节点与行为树节点之间的转换条件可以设置混合状态机中的状态节点与行为树节点之间的跳转关系,依据第一配置信息中的状态节点所对应的状态中的操作可以配置混合状态机中的状态节点所对应的状态的操作,依据第一配置信息中的行为树节点所对应的行为树中的操作可以配置混合状态机中的行为树节点所对应的状态的操作等。上述只是列举了部分第一对象的混合状态机的配置操作,服务器根据第一配置信息为第一对象生成混合状态机的过程中还可以包括其他配置操作,此处不再一一举例说明。
该实施例通过提前获取为第一对象生成混合状态机所需的第一配置信息,且该第一配置信息可以依据实际应用场景需求进行设定,能够达到满足用户实际需求的效果,同时,通过提前获取用于生成混合状态机所需的第一配置信息能够达到缩短混合状态机的生成时间的效果。
作为一种可选的实施例,如图11所示,该实施例的状态控制装置还可以包括:第二获取模块216,用于在服务器根据第一配置信息为第一对象生成混合状态机之后,服务器获取第二配置信息;更新模块218,用于服务器根据第二配置信息对混合状态机进行更新。
需要说明的是,该实施例中的第二获取模块216可以用于执行本申请实施例1中的步骤S2016,该实施例中的更新模块218可以用于执行本申请实施例1中的步骤S2018。
第二配置信息可以用于更新依据第一配置信息为第一对象生成的混合状态机,第二配置信息可以包括第一配置信息中的内容,还可以包括第一配置信息以外的内容,修改混合状态机中状态节点所对应的状态中的操作,修改混合状态机中行为树节点所对应的行为树中的操作,修改混合状态机中节点之间的转换条件和跳转关系,增加或者删除混合状态机中的节点,增加或者删除混合状态机中节点之间的转换条件和跳转关系等。该实施例对第二配置信息不做具体限定,第二配置信息可以包括其他内容,此处不再一一举例说明。
可选地,如图11所示,更新模块218可以包括以下至少之一:第一更新子模块2182,用于服务器对混合状态机中已存在的状态节点、和/或已存在的行为树节点、和/或已存在的状态节点与已存在的行为树节点之间的状态跳转关系进行更新;删除模块2184,用于服务器删除混合状态机中已存在的状态节点、和/或已存在的行为树节点、和/或已存在的状态节点与已存在的行为树节点之间的状态跳转关系;增加模块2186,用于服务器在混合状态机中增加状态节点和/或行为树节点、和/或在增加的状态节点和/或行为树节点与已存在的状态节点和/或已存在的行为树节点之间建立状态跳转关系。
上述对混合状态机的更新操作只是本发明的一种可选实施例,需要说明的是,本发明并不对混合状态机的更新操作做限定,除了上述列举的更新操作外还可以包括其他更新操作,此处不再一一举例说明。该实施例通过提前获取用于更新混合状态机的第二配置信息,可以缩短混合状态机的更新时间,通过对混合状态机进行实时更新,能够提高混合状态机的实时性和准确性,进而达到利用混合状态机提高对第一对象执行操作的效率的效果。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
实施例3
根据本发明实施例,还提供了一种用于实施上述状态控制方法的服务器或终端。
图12是根据本发明实施例的一种终端的结构框图,如图12所示,该终端可以包括:一个或多个(图中仅示出一个)处理器201、存储器203、以及传输装置205(如上述实施例中的发送装置),如图12所示,该终端还可以包括输入输出设备207。
其中,存储器203可用于存储软件程序以及模块,如本发明实施例中的状态控制方法和装置对应的程序指令/模块,处理器201通过运行存储在存储器203内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的状态控制方法。存储器203可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器203可进一步包括相对于处理器201远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置205用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置205包括一个网络适配器(NetworkInterfaceController,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置205为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器203用于存储应用程序。
处理器201可以通过传输装置205调用存储器203存储的应用程序,以执行下述步骤:服务器检测到操作执行事件,其中,操作执行事件用于请求对第一应用中的第一对象进行操作;服务器判断第一对象在混合状态机中的当前节点的下一个节点为第一状态节点还是第一行为树节点,其中,混合状态机中的节点包括状态节点和行为树节点,混合状态机中的节点之间具有状态跳转关系;若判断出当前节点的下一个节点为第一状态节点,则服务器对第一对象执行第一状态节点所对应的第一状态中的操作;若判断出当前状态的下一个节点为第一行为树节点,则服务器对第一对象执行第一行为树节点所对应的第一行为树中的操作。
处理器201还用于执行下述步骤:若操作执行事件指示的是事件触发的操作或者异常的操作,则服务器判断当前节点的下一个节点为第一状态节点;若操作执行事件指示的是流程类型的操作,则服务器判断当前节点的下一个节点为第一行为树节点。
处理器201还用于执行下述步骤:服务器对第一对象执行第一行为树中的每个叶子节点所对应的操作。
处理器201还用于执行下述步骤:在服务器检测到操作执行事件之前,服务器获取第一配置信息,其中,第一配置信息用于指示状态节点、行为树节点、以及状态跳转关系;服务器根据第一配置信息为第一对象生成混合状态机,其中,混合状态机中的状态节点和行为树节点之间具有状态跳转关系。
处理器201还用于执行下述步骤:在服务器根据第一配置信息为第一对象生成混合状态机之后,服务器获取第二配置信息;服务器根据第二配置信息对混合状态机进行更新。
处理器201还用于执行下述步骤:服务器对混合状态机中已存在的状态节点、和/或已存在的行为树节点、和/或已存在的状态节点与已存在的行为树节点之间的状态跳转关系进行更新;服务器删除混合状态机中已存在的状态节点、和/或已存在的行为树节点、和/或已存在的状态节点与已存在的行为树节点之间的状态跳转关系;服务器在混合状态机中增加状态节点和/或行为树节点、和/或在增加的状态节点和/或行为树节点与已存在的状态节点和/或已存在的行为树节点之间建立状态跳转关系。
采用本发明实施例,提供了一种状态控制方法和装置。通过服务器在检测到操作执行事件时判断第一对象在混合状态机中的当前节点的下一个节点为第一状态节点还是第一行为树节点,若为第一状态节点则对第一对象执行第一状态节点对应的第一状态中的操作,若为第一行为树节点则对第一对象执行第一行为树节点对应的第一行为树中的操作,达到了利用有限状态机和行为树共同控制应用中个体执行操作的目的,从而实现了提高应用中个体执行操作效率的技术效果,进而解决了相关技术使用有限状态机控制应用中个体执行操作效率低的技术问题。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图12所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(MobileInternetDevices,MID)、PAD等终端设备。图12其并不对上述电子装置的结构造成限定。例如,终端还可包括比图12中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图12所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-OnlyMemory,ROM)、随机存取器(RandomAccessMemory,RAM)、磁盘或光盘等。
实施例4
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行状态控制方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,服务器检测到操作执行事件,其中,操作执行事件用于请求对第一应用中的第一对象进行操作;
S2,服务器判断第一对象在混合状态机中的当前节点的下一个节点为第一状态节点还是第一行为树节点,其中,混合状态机中的节点包括状态节点和行为树节点,混合状态机中的节点之间具有状态跳转关系;
S3,若判断出当前节点的下一个节点为第一状态节点,则服务器对第一对象执行第一状态节点所对应的第一状态中的操作;
S4,若判断出当前状态的下一个节点为第一行为树节点,则服务器对第一对象执行第一行为树节点所对应的第一行为树中的操作。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:若操作执行事件指示的是事件触发的操作或者异常的操作,则服务器判断当前节点的下一个节点为第一状态节点;若操作执行事件指示的是流程类型的操作,则服务器判断当前节点的下一个节点为第一行为树节点。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:务器对第一对象执行第一行为树中的每个叶子节点所对应的操作。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在服务器检测到操作执行事件之前,服务器获取第一配置信息,其中,第一配置信息用于指示状态节点、行为树节点、以及状态跳转关系;服务器根据第一配置信息为第一对象生成混合状态机,其中,混合状态机中的状态节点和行为树节点之间具有状态跳转关系。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在服务器根据第一配置信息为第一对象生成混合状态机之后,服务器获取第二配置信息;服务器根据第二配置信息对混合状态机进行更新。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:服务器对混合状态机中已存在的状态节点、和/或已存在的行为树节点、和/或已存在的状态节点与已存在的行为树节点之间的状态跳转关系进行更新;服务器删除混合状态机中已存在的状态节点、和/或已存在的行为树节点、和/或已存在的状态节点与已存在的行为树节点之间的状态跳转关系;服务器在混合状态机中增加状态节点和/或行为树节点、和/或在增加的状态节点和/或行为树节点与已存在的状态节点和/或已存在的行为树节点之间建立状态跳转关系。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (12)
1.一种状态控制方法,其特征在于,包括:
服务器检测到操作执行事件,其中,所述操作执行事件用于请求对第一应用中的第一对象进行操作;
所述服务器判断所述第一对象在混合状态机中的当前节点的下一个节点为第一状态节点还是第一行为树节点,其中,所述混合状态机中的节点包括状态节点和行为树节点,所述混合状态机中的节点之间具有状态跳转关系;
若判断出所述当前节点的下一个节点为第一状态节点,则所述服务器对所述第一对象执行所述第一状态节点所对应的第一状态中的操作;
若判断出所述当前状态的下一个节点为所述第一行为树节点,则所述服务器对所述第一对象执行所述第一行为树节点所对应的第一行为树中的操作。
2.根据权利要求1所述的方法,其特征在于,所述服务器判断所述第一对象在混合状态机中的当前节点的下一个节点为第一状态节点还是第一行为树节点包括:
若所述操作执行事件指示的是事件触发的操作或者异常的操作,则所述服务器判断所述当前节点的下一个节点为所述第一状态节点;
若所述操作执行事件指示的是流程类型的操作,则所述服务器判断所述当前节点的下一个节点为所述第一行为树节点。
3.根据权利要求1所述的方法,其特征在于,所述服务器对所述第一对象执行所述第一行为树节点所对应的第一行为树中的操作包括:
所述服务器对所述第一对象执行所述第一行为树中的每个叶子节点所对应的操作。
4.根据权利要求1所述的方法,其特征在于,在所述服务器检测到操作执行事件之前,所述方法还包括:
所述服务器获取第一配置信息,其中,所述第一配置信息用于指示所述状态节点、所述行为树节点、以及所述状态跳转关系;
所述服务器根据所述第一配置信息为所述第一对象生成所述混合状态机。
5.根据权利要求4所述的方法,其特征在于,在所述服务器根据所述第一配置信息为所述第一对象生成所述混合状态机之后,所述方法还包括:
所述服务器获取第二配置信息;
所述服务器根据所述第二配置信息对所述混合状态机进行更新。
6.根据权利要求5所述的方法,其特征在于,所述服务器根据所述第二配置信息对所述混合状态机进行更新包括以下至少之一:
所述服务器对所述混合状态机中已存在的状态节点、和/或已存在的行为树节点、和/或已存在的状态节点与已存在的行为树节点之间的状态跳转关系进行更新;
所述服务器删除所述混合状态机中已存在的状态节点、和/或已存在的行为树节点、和/或已存在的状态节点与已存在的行为树节点之间的状态跳转关系;
所述服务器在所述混合状态机中增加状态节点和/或行为树节点、和/或在增加的状态节点和/或行为树节点与已存在的状态节点和/或已存在的行为树节点之间建立状态跳转关系。
7.一种状态控制装置,其特征在于,包括:
检测模块,用于服务器检测到操作执行事件,其中,所述操作执行事件用于请求对第一应用中的第一对象进行操作;
判断模块,用于所述服务器判断所述第一对象在混合状态机中的当前节点的下一个节点为第一状态节点还是第一行为树节点,其中,所述混合状态机中的节点包括状态节点和行为树节点,所述混合状态机中的节点之间具有状态跳转关系;
第一操作模块,用于在判断出所述当前节点的下一个节点为第一状态节点,则所述服务器对所述第一对象执行所述第一状态节点所对应的第一状态中的操作;
第二操作模块,用于在判断出所述当前状态的下一个节点为所述第一行为树节点,则所述服务器对所述第一对象执行所述第一行为树节点所对应的第一行为树中的操作。
8.根据权利要求7所述的装置,其特征在于,所述判断模块包括:
第一判定模块,用于在所述操作执行事件指示的是事件触发的操作或者异常的操作时,所述服务器判断所述当前节点的下一个节点为所述第一状态节点;
第二判定模块,用于在所述操作执行事件指示的是流程类型的操作,则所述服务器判断所述当前节点的下一个节点为所述第一行为树节点。
9.根据权利要求7所述的装置,其特征在于,所述第二操作模块包括:
第一操作子模块,用于所述服务器对所述第一对象执行所述第一行为树中的每个叶子节点所对应的操作。
10.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第一获取模块,用于在所述服务器检测到操作执行事件之前,所述服务器获取第一配置信息,其中,所述第一配置信息用于指示所述状态节点、所述行为树节点、以及所述状态跳转关系;
生成模块,用于所述服务器根据所述第一配置信息为第一对象生成所述混合状态机。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于在所述服务器根据所述第一配置信息为所述第一对象生成所述混合状态机之后,所述服务器获取第二配置信息;
更新模块,用于所述服务器根据所述第二配置信息对所述混合状态机进行更新。
12.根据权利要求11所述的装置,其特征在于,所述更新模块包括以下至少之一:
第一更新子模块,用于所述服务器对所述混合状态机中已存在的状态节点、和/或已存在的行为树节点、和/或已存在的状态节点与已存在的行为树节点之间的状态跳转关系进行更新;
删除模块,用于所述服务器删除所述混合状态机中已存在的状态节点、和/或已存在的行为树节点、和/或已存在的状态节点与已存在的行为树节点之间的状态跳转关系;
增加模块,用于所述服务器在所述混合状态机中增加状态节点和/或行为树节点、和/或在增加的状态节点和/或行为树节点与已存在的状态节点和/或已存在的行为树节点之间建立状态跳转关系。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610121881.1A CN105656688B (zh) | 2016-03-03 | 2016-03-03 | 状态控制方法和装置 |
JP2018544453A JP6755325B2 (ja) | 2016-03-03 | 2017-01-24 | 状態制御方法及び装置 |
KR1020187023912A KR102085686B1 (ko) | 2016-03-03 | 2017-01-24 | 상태 제어 방법 및 장치 |
EP17759084.1A EP3425849B1 (en) | 2016-03-03 | 2017-01-24 | State control method and device |
PCT/CN2017/072456 WO2017148233A1 (zh) | 2016-03-03 | 2017-01-24 | 状态控制方法和装置 |
US16/110,239 US11184216B2 (en) | 2016-03-03 | 2018-08-23 | State control method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610121881.1A CN105656688B (zh) | 2016-03-03 | 2016-03-03 | 状态控制方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105656688A true CN105656688A (zh) | 2016-06-08 |
CN105656688B CN105656688B (zh) | 2019-09-20 |
Family
ID=56493068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610121881.1A Active CN105656688B (zh) | 2016-03-03 | 2016-03-03 | 状态控制方法和装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11184216B2 (zh) |
EP (1) | EP3425849B1 (zh) |
JP (1) | JP6755325B2 (zh) |
KR (1) | KR102085686B1 (zh) |
CN (1) | CN105656688B (zh) |
WO (1) | WO2017148233A1 (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106861190A (zh) * | 2017-02-16 | 2017-06-20 | 网易(杭州)网络有限公司 | Ai构建方法及装置、游戏控制方法及装置、ai系统 |
WO2017148233A1 (zh) * | 2016-03-03 | 2017-09-08 | 腾讯科技(深圳)有限公司 | 状态控制方法和装置 |
CN107678804A (zh) * | 2017-08-22 | 2018-02-09 | 腾讯科技(深圳)有限公司 | 行为执行方法和装置、存储介质及电子装置 |
WO2018103493A1 (zh) * | 2016-12-05 | 2018-06-14 | 上海时年信息科技有限公司 | 模拟多个运动体行为的方法和系统 |
CN108270604A (zh) * | 2016-12-30 | 2018-07-10 | 北京亿阳信通科技有限公司 | 一种业务数据变更的追踪方法和系统 |
CN108415709A (zh) * | 2018-02-12 | 2018-08-17 | 北京梆梆安全科技有限公司 | 一种基于有限状态机加固源代码的方法及装置 |
CN109189504A (zh) * | 2018-09-20 | 2019-01-11 | 腾讯科技(深圳)有限公司 | 行为执行方法、行为树生成方法、装置和计算机设备 |
CN109426239A (zh) * | 2017-08-31 | 2019-03-05 | 株洲中车时代电气股份有限公司 | 一种机车顺序控制系统及方法 |
CN109731334A (zh) * | 2018-11-22 | 2019-05-10 | 腾讯科技(深圳)有限公司 | 状态的切换方法和装置、存储介质、电子装置 |
CN110688301A (zh) * | 2019-08-22 | 2020-01-14 | 浙江口碑网络技术有限公司 | 服务器测试方法、装置、存储介质及计算机设备 |
CN111135559A (zh) * | 2019-12-27 | 2020-05-12 | 北京像素软件科技股份有限公司 | 游戏数据处理方法、装置、电子设备及存储介质 |
CN111249733A (zh) * | 2020-01-09 | 2020-06-09 | 完美世界(北京)软件科技发展有限公司 | 一种创建虚拟对象的方法和装置 |
CN111660815A (zh) * | 2020-05-20 | 2020-09-15 | 摩登汽车有限公司 | 电池管理系统的控制方法 |
CN112221129A (zh) * | 2020-10-19 | 2021-01-15 | 杭州电魂网络科技股份有限公司 | 一种基于有向图的任务触发方法及系统 |
CN112306850A (zh) * | 2019-07-31 | 2021-02-02 | 腾讯科技(成都)有限公司 | 一种测试用例生成方法、装置及存储介质 |
CN113379590A (zh) * | 2021-06-07 | 2021-09-10 | 腾讯科技(上海)有限公司 | 动画数据处理方法、装置、计算机设备和存储介质 |
CN113750537A (zh) * | 2021-09-08 | 2021-12-07 | 福建天晴在线互动科技有限公司 | 一种编辑游戏状态迁移的方法及其系统 |
WO2022140880A1 (zh) * | 2020-12-28 | 2022-07-07 | 深圳元戎启行科技有限公司 | 有限状态机的控制方法、装置、计算机设备和存储介质 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12024183B2 (en) * | 2019-04-23 | 2024-07-02 | Hitachi Astemo, Ltd. | Vehicle control device and recording medium |
CN110377040A (zh) * | 2019-07-31 | 2019-10-25 | 北京智行者科技有限公司 | 基于行为树的自动驾驶决策方法及装置 |
KR102276230B1 (ko) * | 2019-11-19 | 2021-07-12 | 주식회사 카카오뱅크 | 유한 상태기계 생성 방법, 유한 상태기계 운영 방법, 이를 수행하는 서버 및 컴퓨터 프로그램 |
CN112190945B (zh) * | 2020-10-22 | 2024-03-15 | 网易(杭州)网络有限公司 | 游戏数据处理方法和装置、计算机可读存储介质、电子设备 |
KR102531765B1 (ko) * | 2020-12-07 | 2023-05-11 | 인하대학교 산학협력단 | Put 오브젝트 처리속도 상향을 위한 하이브리드 오브젝트 스토리지 시스템 및 그 동작 방법 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101626420A (zh) * | 2008-07-08 | 2010-01-13 | 中国移动通信集团公司 | Lfc资源管理方法及其设备和系统 |
CN103049264A (zh) * | 2012-12-17 | 2013-04-17 | 国电南京自动化股份有限公司 | 一种通过状态机动态建模实现对业务系统控制的方法 |
CN104077121A (zh) * | 2013-03-29 | 2014-10-01 | 北京大学深圳研究生院 | 一种实现和管理状态机信息的装置 |
US20140379100A1 (en) * | 2013-06-25 | 2014-12-25 | Fujitsu Limited | Method for requesting control and information processing apparatus for same |
CN105117575A (zh) * | 2015-06-17 | 2015-12-02 | 深圳市腾讯计算机系统有限公司 | 一种行为处理方法及装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08194612A (ja) | 1994-11-15 | 1996-07-30 | Nippon Telegr & Teleph Corp <Ntt> | プログラム実行制御方法及びプログラム実行制御システム |
US6031549A (en) * | 1995-07-19 | 2000-02-29 | Extempo Systems, Inc. | System and method for directed improvisation by computer controlled characters |
US6317638B1 (en) * | 1997-08-22 | 2001-11-13 | Honeywell Inc. | Multi-layer state machine for a hybrid real-time control system and method of operation thereof |
US7958454B2 (en) | 2005-04-19 | 2011-06-07 | The Mathworks, Inc. | Graphical state machine based programming for a graphical user interface |
KR101358477B1 (ko) * | 2008-04-02 | 2014-02-05 | 아이로보트 코퍼레이션 | 로보틱스 시스템 |
US8571745B2 (en) * | 2008-04-10 | 2013-10-29 | Robert Todd Pack | Advanced behavior engine |
KR20100088049A (ko) * | 2009-01-29 | 2010-08-06 | 삼성전자주식회사 | 사용자 인터페이스 구성 객체들로 이루어진 콘텐츠의 사전 예측 불가능한 경로를 통하여 수신되는 정보들의 처리 방법 및 이를 위한 장치 |
EP3716060A1 (en) * | 2009-07-31 | 2020-09-30 | NEC Corporation | Control server, service providing system, and method of providing a virtual infrastructure |
US8766666B2 (en) * | 2010-06-10 | 2014-07-01 | Micron Technology, Inc. | Programmable device, hierarchical parallel machines, and methods for providing state information |
US9747440B2 (en) * | 2012-08-15 | 2017-08-29 | Qualcomm Incorporated | On-line behavioral analysis engine in mobile device with multiple analyzer model providers |
CN103049838B (zh) * | 2012-12-26 | 2017-05-31 | 华中科技大学 | 基于有限状态机的包裹运输状态监控方法 |
JP6514352B2 (ja) | 2015-03-13 | 2019-05-15 | 株式会社スクウェア・エニックス | 情報処理装置、情報処理方法、非一時的なコンピュータ読み取り可能な記憶媒体 |
CN106034246A (zh) * | 2015-03-19 | 2016-10-19 | 阿里巴巴集团控股有限公司 | 一种基于用户操作行为的服务提供方法及装置 |
CN105656688B (zh) * | 2016-03-03 | 2019-09-20 | 腾讯科技(深圳)有限公司 | 状态控制方法和装置 |
-
2016
- 2016-03-03 CN CN201610121881.1A patent/CN105656688B/zh active Active
-
2017
- 2017-01-24 EP EP17759084.1A patent/EP3425849B1/en active Active
- 2017-01-24 KR KR1020187023912A patent/KR102085686B1/ko active IP Right Grant
- 2017-01-24 JP JP2018544453A patent/JP6755325B2/ja active Active
- 2017-01-24 WO PCT/CN2017/072456 patent/WO2017148233A1/zh active Application Filing
-
2018
- 2018-08-23 US US16/110,239 patent/US11184216B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101626420A (zh) * | 2008-07-08 | 2010-01-13 | 中国移动通信集团公司 | Lfc资源管理方法及其设备和系统 |
CN103049264A (zh) * | 2012-12-17 | 2013-04-17 | 国电南京自动化股份有限公司 | 一种通过状态机动态建模实现对业务系统控制的方法 |
CN104077121A (zh) * | 2013-03-29 | 2014-10-01 | 北京大学深圳研究生院 | 一种实现和管理状态机信息的装置 |
US20140379100A1 (en) * | 2013-06-25 | 2014-12-25 | Fujitsu Limited | Method for requesting control and information processing apparatus for same |
CN105117575A (zh) * | 2015-06-17 | 2015-12-02 | 深圳市腾讯计算机系统有限公司 | 一种行为处理方法及装置 |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11184216B2 (en) | 2016-03-03 | 2021-11-23 | Tencent Technology (Shenzhen) Company Limited | State control method and apparatus |
WO2017148233A1 (zh) * | 2016-03-03 | 2017-09-08 | 腾讯科技(深圳)有限公司 | 状态控制方法和装置 |
WO2018103493A1 (zh) * | 2016-12-05 | 2018-06-14 | 上海时年信息科技有限公司 | 模拟多个运动体行为的方法和系统 |
CN108270604A (zh) * | 2016-12-30 | 2018-07-10 | 北京亿阳信通科技有限公司 | 一种业务数据变更的追踪方法和系统 |
CN106861190B (zh) * | 2017-02-16 | 2020-07-10 | 网易(杭州)网络有限公司 | Ai构建方法及装置、游戏控制方法及装置、ai系统 |
CN106861190A (zh) * | 2017-02-16 | 2017-06-20 | 网易(杭州)网络有限公司 | Ai构建方法及装置、游戏控制方法及装置、ai系统 |
CN107678804A (zh) * | 2017-08-22 | 2018-02-09 | 腾讯科技(深圳)有限公司 | 行为执行方法和装置、存储介质及电子装置 |
CN109426239A (zh) * | 2017-08-31 | 2019-03-05 | 株洲中车时代电气股份有限公司 | 一种机车顺序控制系统及方法 |
CN109426239B (zh) * | 2017-08-31 | 2020-05-08 | 株洲中车时代电气股份有限公司 | 一种机车顺序控制系统及方法 |
CN108415709A (zh) * | 2018-02-12 | 2018-08-17 | 北京梆梆安全科技有限公司 | 一种基于有限状态机加固源代码的方法及装置 |
CN109189504A (zh) * | 2018-09-20 | 2019-01-11 | 腾讯科技(深圳)有限公司 | 行为执行方法、行为树生成方法、装置和计算机设备 |
CN109189504B (zh) * | 2018-09-20 | 2020-04-28 | 腾讯科技(深圳)有限公司 | 行为执行方法、行为树生成方法、装置和计算机设备 |
CN109731334A (zh) * | 2018-11-22 | 2019-05-10 | 腾讯科技(深圳)有限公司 | 状态的切换方法和装置、存储介质、电子装置 |
CN109731334B (zh) * | 2018-11-22 | 2020-08-11 | 腾讯科技(深圳)有限公司 | 状态的切换方法和装置、存储介质、电子装置 |
CN112306850A (zh) * | 2019-07-31 | 2021-02-02 | 腾讯科技(成都)有限公司 | 一种测试用例生成方法、装置及存储介质 |
CN112306850B (zh) * | 2019-07-31 | 2024-03-08 | 腾讯科技(成都)有限公司 | 一种测试用例生成方法、装置及存储介质 |
CN110688301A (zh) * | 2019-08-22 | 2020-01-14 | 浙江口碑网络技术有限公司 | 服务器测试方法、装置、存储介质及计算机设备 |
CN111135559A (zh) * | 2019-12-27 | 2020-05-12 | 北京像素软件科技股份有限公司 | 游戏数据处理方法、装置、电子设备及存储介质 |
CN111135559B (zh) * | 2019-12-27 | 2023-06-27 | 北京像素软件科技股份有限公司 | 游戏数据处理方法、装置、电子设备及存储介质 |
CN111249733A (zh) * | 2020-01-09 | 2020-06-09 | 完美世界(北京)软件科技发展有限公司 | 一种创建虚拟对象的方法和装置 |
CN111249733B (zh) * | 2020-01-09 | 2023-10-13 | 完美世界(北京)软件科技发展有限公司 | 一种创建虚拟对象的方法和装置 |
CN111660815A (zh) * | 2020-05-20 | 2020-09-15 | 摩登汽车有限公司 | 电池管理系统的控制方法 |
CN112221129A (zh) * | 2020-10-19 | 2021-01-15 | 杭州电魂网络科技股份有限公司 | 一种基于有向图的任务触发方法及系统 |
WO2022140880A1 (zh) * | 2020-12-28 | 2022-07-07 | 深圳元戎启行科技有限公司 | 有限状态机的控制方法、装置、计算机设备和存储介质 |
CN113379590A (zh) * | 2021-06-07 | 2021-09-10 | 腾讯科技(上海)有限公司 | 动画数据处理方法、装置、计算机设备和存储介质 |
CN113379590B (zh) * | 2021-06-07 | 2023-06-30 | 腾讯科技(上海)有限公司 | 动画数据处理方法、装置、计算机设备和存储介质 |
CN113750537A (zh) * | 2021-09-08 | 2021-12-07 | 福建天晴在线互动科技有限公司 | 一种编辑游戏状态迁移的方法及其系统 |
Also Published As
Publication number | Publication date |
---|---|
US11184216B2 (en) | 2021-11-23 |
WO2017148233A1 (zh) | 2017-09-08 |
EP3425849B1 (en) | 2024-03-06 |
JP6755325B2 (ja) | 2020-09-16 |
EP3425849A1 (en) | 2019-01-09 |
CN105656688B (zh) | 2019-09-20 |
EP3425849A4 (en) | 2019-10-30 |
US20180367365A1 (en) | 2018-12-20 |
JP2019518257A (ja) | 2019-06-27 |
KR102085686B1 (ko) | 2020-04-23 |
KR20180105678A (ko) | 2018-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105656688A (zh) | 状态控制方法和装置 | |
CN109660400A (zh) | 流控配置方法及系统 | |
CN109981403A (zh) | 虚拟机网络数据流量监控方法及装置 | |
RU2005118770A (ru) | Администрирование удаленной системы с использованием среды командной строки | |
CN107977254B (zh) | 云数据系统中请求的响应方法和计算机可读存储介质 | |
EP3923549A1 (en) | Data downloading method and related apparatus | |
CN108255585A (zh) | Sdk异常控制及应用程序运行方法、装置及其设备 | |
CN109147788A (zh) | 本地语音库的更新方法及装置 | |
CN103795644A (zh) | 策略表表项配置方法、装置及系统 | |
CN108733496A (zh) | 事件处理方法和装置 | |
CN104767756A (zh) | 设备信息处理方法、客户端装置和服务端装置 | |
CN109731334A (zh) | 状态的切换方法和装置、存储介质、电子装置 | |
CN104991811A (zh) | 隔离系统切换时进程运行状态的调整方法以及智能终端 | |
CN106445850A (zh) | 一种智能硬件的连接方法及装置 | |
CN111045893A (zh) | 监控任务的执行方法、装置及系统、存储介质、电子装置 | |
CN105511273B (zh) | 一种客户端运行管理方法及客户端 | |
JP2020528241A (ja) | 集約グループの作成 | |
CN101388792B (zh) | 一种单板即插即用的处理方法、装置以及电信系统 | |
CN104331330A (zh) | 资源池生成方法以及装置 | |
CN109710303A (zh) | 语音交互产品的多版本并行开发方法及系统 | |
CN108920379A (zh) | 捕获lua代码异常的方法和装置 | |
CN102387137B (zh) | 多个网络设备智能操作逻辑的实现方法和系统 | |
CN107153561A (zh) | 一种更新扩展卡中固件的方法、装置及系统 | |
CN107180525A (zh) | 一种物理设备的蓝牙控制方法、装置、系统和相关设备 | |
CN109257806A (zh) | 通信终端的载波聚合模式设定方法及通信终端和介质产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |