CN111862272A - 动画状态机创建方法、动画控制方法、装置、设备及介质 - Google Patents
动画状态机创建方法、动画控制方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN111862272A CN111862272A CN201910364450.1A CN201910364450A CN111862272A CN 111862272 A CN111862272 A CN 111862272A CN 201910364450 A CN201910364450 A CN 201910364450A CN 111862272 A CN111862272 A CN 111862272A
- Authority
- CN
- China
- Prior art keywords
- animation
- transition
- state
- target
- configuration information
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本公开提供了一种动画状态机创建方法、动画控制方法、装置、设备及介质,本公开的方案包括:获取创建目标动画状态机所需的第一语言数据类型的配置信息,按照第一语言数据类型与第二语言数据类型之间的对应关系,将第一配置信息转化为第二语言数据类型的第四配置信息,将第二配置信息转化为第二语言数据类型的第五配置信息,将第三配置信息转化为第二语言数据类型的第六配置信息。通过第四配置信息创建目标动画状态机所支持的动画状态,通过第五配置信息建立各动画状态之间的过渡关系,通过第六配置信息创建具备过渡关系的动画状态之间进行过渡的过渡条件,得到目标动画状态机,以使得对动画状态机的创建更简便。
Description
技术领域
本公开涉及动画处理技术领域,特别是涉及一种动画状态机创建方法、动画控制方法、装置、设备及介质。
背景技术
目前,Unreal引擎中实现了比较通用的动画状态机,通过该动画状态机实现对动画片段的控制。动画状态机中包括动画状态、动画状态之间的过渡关系以及各过渡关系对应的过渡条件,其中,具备过渡关系的动画状态之间对应的动画片段可以进行过渡;当过渡关系对应的过渡条件被满足时,该过渡关系所表征的过渡将被实现,即可以从该过渡关系的起始动画状态过渡至目标动画状态。动画状态机中每一动画状态实际表征一段动画片段,上述从该过渡关系的起始动画状态过渡至目标动画状态的过程,实际为:从起始动画状态所表征的动画片段过渡至目标动画状态所表征的动画片段,以实现动画片段的过渡,即通过该动画状态机实现对动画片段的控制。
相关技术中,在创建动画状态机时,需要创建动画状态机中包括动画状态、动画状态之间的过渡关系以及各过渡关系对应的过渡条件。其中,在创建动画状态机的过渡条件的过程中,由于过渡条件实质上为一段程序,其需要创建动画状态机的人员自行基于编程语言的语法进行编程。若不熟悉编程语言则无法编写过渡条件。相关技术中,对创建动画状态机的人员的编程语言熟知程度要求较高,动画状态机创建过程较复杂。
发明内容
为克服相关技术中存在的问题,本公开提供一种动画状态机创建方法、动画控制方法、装置、设备及介质。
根据本公开实施例的第一方面,提供一种动画状态机创建方法,该方法包括:
获取创建目标动画状态机所需的第一语言数据类型的配置信息,其中,所述配置信息包括:表示所述目标动画状态机的表征各动画片段的动画状态的第一配置信息,表示各所述动画状态之间的过渡关系的第二配置信息,表示具备过渡关系的动画状态之间进行过渡的过渡条件的第三配置信息,所述第三配置信息包括:创建各过渡条件所需的动画参数以及比较信息,所述第一语言数据类型为:轻量级的数据类型,所述比较信息包括比较运算符和/或比较阈值;
按照所述第一语言数据类型与第二语言数据类型之间的对应关系,将所述第一配置信息转化为所述第二语言数据类型的第四配置信息,将所述第二配置信息转化为所述第二语言数据类型的第五配置信息,将所述第三配置信息转化为所述第二语言数据类型的第六配置信息,所述第二语言数据类型为机器可识别语言类型;
通过所述第四配置信息,创建所述目标动画状态机所支持的动画状态;
通过所述第五配置信息,建立各所述动画状态之间的过渡关系;
通过所述第六配置信息包括的创建各过渡条件所需的动画参数以及所述比较信息,创建具备过渡关系的动画状态之间进行过渡的过渡条件,得到所述目标动画状态机。
在一种可能的实现方式中,在所述通过所述第六配置信息包括的创建各过渡条件所需的动画参数以及比较信息,创建具备过渡关系的动画状态之间进行过渡的过渡条件的步骤之前,所述方法还包括:
获取预先建立的各动画参数的动画参数类型与比较信息之间的对应关系,以及动画参数集;
所述通过所述第六配置信息包括的创建各过渡条件所需的动画参数以及比较信息,创建具备过渡关系的动画状态之间进行过渡的过渡条件的步骤,包括:
针对每一过渡条件,若确定创建所述过渡条件所需的指定动画参数,属于所述动画参数集,且基于预先建立的动画参数类型与比较信息之间的对应关系,确定所述指定动画参数的动画参数类型与创建所述过渡条件所需的指定比较信息之间具备对应关系,则使用所述指定动画参数以及所述指定比较信息,创建所述过渡条件。
在一种可能的实现方式中,所述配置信息还包括表示所述目标动画状态机所支持的动画参数的第七配置信息;
在所述得到所述目标动画状态机的步骤之前,所述方法还包括:
按照第一语言数据类型与第二语言数据类型之间的对应关系,将所述第七配置信息转化为所述第二语言数据类型的第八数据类型;
通过所述第八数据类型,创建所述目标动画状态机所支持的动画参数。
在一种可能的实现方式中,在所述获取创建目标动画状态机所需的第一语言数据类型的配置信息的步骤之前,所述方法还包括:
展示配置界面;
所述获取创建目标动画状态机所需的第一语言数据类型的配置信息的步骤,包括:
在监测到针对所述配置界面的第一操作时,在所述配置界面展示动画状态图标;
在监测到针对所展示动画状态图标触发的第一配置操作后,接收所述第一配置操作对应的第一配置信息;
在监测到针对所述配置界面的第二操作时,在所述配置界面所展示的第一动画状态图标与第二动画状态图标之间,展示箭头图标,其中,所述箭头图标用于表征所述第一动画状态图标和所述第二动画状态图标之间的过渡关系;
在监测到针对所展示箭头图标的第二配置操作时,接收所述第二配置操作对应的配置操作信息;
基于所述第一动画状态图标和所述第二动画状态图标之间的连接关系以及所述配置操作信息,生成表示第一动画状态和第二动画状态之间的过渡关系的第二配置信息,其中,所述第一动画状态为所述第一动画状态图标表示的动画状态,所述第二动画状态图标为所述第二动画状态图标表示的动画状态;
在监测到针对所展示箭头图标的第三操作时,在所述配置界面展示预先配置的动画参数集;
在监测到针对所述动画参数集中的目标动画参数的选中操作时,基于所述目标动画参数,以及预先建立的各动画参数的动画参数类型与比较信息之间的对应关系,确定所述目标动画参数的动画参数类型对应的比较信息,作为待展示比较信息,所述待展示比较信息包括运算符和/或比较阈值;
在所述配置界面展示所述待展示比较信息;
在监测到针对所述待展示比较信息中的目标比较信息的选中操作时,基于所述目标动画参数和所述目标比较信息,生成表示所展示箭头图标对应的过渡关系的过渡条件的第三配置信息;
在监测到针对所述配置界面触发的保存操作后,生成创建目标动画状态机所需的第一语言数据类型的配置信息。
在一种可能的实现方式中,所述第一配置信息包括:表示各所述动画状态的动画状态标识、播放速度参数的参数值和播放方式的参数值,以及各动画状态对应的动画片段标识;
通过所述第四配置信息,创建所述目标动画状态机所支持的动画状态的步骤,包括:
使用表示各所述动画状态的动画状态标识、播放速度参数的参数值以及播放方式的参数值,创建所述目标动画状态机所支持的各第一动画状态;并记录各第一动画状态与动画片段标识的对应关系;
使用表示各所述动画状态的动画片段标识对应的动画资源的时长以及所述播放速度参数的参数值,确定各所述动画状态的状态时长;
使用各所述动画状态的状态时长以及各所述第一动画状态,创建所述目标动画状态机的时态子状态机所支持的各第二动画状态。
在一种可能的实现方式中,所述第二配置信息包括:表示各所述过渡关系的过渡关系标识、过渡时长的参数值、过渡时机的参数值、过渡起始动画状态的起始动画状态标识以及过渡目标动画状态的目标状态标识;
所述通过所述第五配置信息,建立各所述动画状态之间的过渡关系的步骤,包括:
使用表示各所述过渡关系的过渡关系标识、过渡时长的参数值、过渡时机的参数值、起始动画状态标识以及目标动画状态标识,建立所述目标动画状态机所支持的各所述第一动画状态之间的过渡关系;
基于所述目标动画状态机所支持的各所述第一动画状态之间的过渡关系,建立所述时态子状态机所支持的各所述第二动画状态之间的过渡关系。
在一种可能的实现方式中,所述第三配置信息包括创建各所述过渡条件所需的动画参数以及比较信息;
所述通过所述第六配置信息包括的创建各过渡条件所需的动画参数以及比较信息,创建具备过渡关系的动画状态之间进行过渡的过渡条件的步骤,包括:
使用创建各所述过渡条件所需的动画参数以及比较信息,创建所述目标动画状态机所支持的具备过渡关系的第一动画状态之间进行过渡的过渡条件;
基于所述目标动画状态机所支持的具备过渡关系的第一动画状态之间进行过渡的过渡条件,创建所述时态子状态机所支持的具备过渡关系的第二动画状态之间进行过渡的过渡条件。
在一种可能的实现方式中,所述目标动画状态机还设置有状态监听器以及动画控制器;
所述状态监听器用于:同步所述时态子状态机所支持的第二动画状态的运行进度信息,以及所述时态子状态机所支持的具备过渡关系的第二动画状态之间的过渡进度信息,至所述动画控制器,以使所述动画控制器基于所述时态子状态机所支持的第二动画状态的运行进度信息,以及所述时态子状态机所支持的具备过渡关系的第二动画状态之间的过渡进度信息,确定所述目标动画状态机所支持的第一动画状态的运行进度信息以及所述目标动画状态机所支持的具备过渡关系的第一动画状态之间的过渡进度信息。
在一种可能的实现方式中,所述第一语言数据类型为Json格式的数据类型。
根据本公开实施例的第二方面,提供一种动画控制方法,应用于目标动画状态机,所述目标动画状态机设置有时态子状态机、状态监听器以及动画控制器,所述目标动画状态机为基于第一语言数据类型的配置信息创建得到的动画状态机,所述配置信息包括:表示所述目标动画状态机的表征各动画片段的动画状态的第一配置信息,表示各所述动画状态之间的过渡关系的第二配置信息,表示具备过渡关系的动画状态之间进行过渡的过渡条件的第三配置信息,所述第三配置信息包括:创建各过渡条件所需的动画参数以及比较信息,所述第一语言数据类型为:轻量级的数据类型,所述比较信息包括比较运算符和/或比较阈值;
所述目标动画状态机支持表征各动画片段的第一动画状态,各第一动画状态之间的过渡关系以及具备过渡关系的各第一动画状态进行过渡的过渡条件;
其中,所述第一动画状态基于第四配置信息创建,所述过渡关系基于第五配置信息建立,所述过渡条件基于第六配置信息创建;所述第四配置信息、所述第五配置信息以及所述第六配置信息均属于第二语言数据类型,分别由第一语言数据类型的第一配置信息、第二配置信息以及第三配置信息转化得到,所述第二语言数据类型为机器可识别语言类型;
所述时态子状态机支持第二动画状态,各第二动画状态之间的过渡关系以及具备过渡关系的各第二动画状态进行过渡的过渡条件;
该方法包括:
所述动画控制器控制所述时态子状态机检测当前运行的第二动画状态,作为第一当前动画状态;
所述动画控制器控制所述时态子状态机基于所获得的动画参数的参数值,以及所述第一当前动画状态所具备的过渡关系进行过渡所需的过渡条件的动画参数和比较信息,判断所述第一当前动画状态所具备的过渡关系中,是否存在所需的过渡条件均被满足的第一目标过渡关系;
若存在所需的过渡条件均被满足的第一目标过渡关系,则所述动画控制器控制所述时态子状态机根据所述第一当前动画状态,确定所述第一目标过渡关系所对应的第一目标动画状态;
所述动画控制器控制所述时态子状态机通过所述状态监听器将所述第一当前动画状态的运行进度信息、所述第一目标动画状态的运行进度信息以及所述第一目标过渡关系的过渡进度信息,同步至所述动画控制器;
所述动画控制器基于所述第一当前动画状态的运行进度信息,确定所述第二当前动画状态的运行进度信息;并基于所述第一目标动画状态的运行进度信息,确定所述第二目标动画状态的运行进度信息;基于所述第一目标过渡关系的过渡进度信息,确定第二目标过渡关系的过渡进度信息;
所述动画控制器基于所述第二当前动画状态的运行进度信息、所述第二目标动画状态的运行进度信息以及所述第二目标过渡关系的过渡进度信息,控制所述第二当前动画状态对应的动画片段向所述第二目标动画状态对应的动画片段进行过渡。
在一种可能的实现方式中,在所述动画控制器控制所述时态子状态机检测当前运行的第二动画状态,作为第一当前动画状态的步骤之前,所述方法还包括:
所述动画控制器控制所述时态子状态机判断所支持的各第二动画状态所具备的过渡关系中,是否存在处于过渡状态的过渡关系;
若所述时态子状态机判断所支持的各第二动画状态所具备的过渡关系中,不存在处于过渡状态的过渡关系,控制所述时态子状态机执行所述检测当前运行的第二动画状态,作为第一当前动画状态的步骤。
在一种可能的实现方式中,所述方法还包括:
若所述时态子状态机判断所支持的各第二动画状态所具备的过渡关系中,存在处于过渡状态的第三目标过渡关系,所述动画控制器控制所述时态子状态机确定所述第三目标过渡关系的第一过渡起始动画状态以及第一过渡目标动画状态;并控制所述时态子状态机通过所述状态监听器,将所述第一过渡起始动画状态的运行进度信息、所述第一过渡目标动画状态的运行进度信息以及所述第三目标过渡关系的过渡进度信息,同步至所述动画控制器;
所述动画控制器根据所述第一过渡起始动画状态的运行进度信息,确定第二过渡起始动画状态的运行进度信息;根据所述第一过渡目标动画状态的运行进度信息,确定第二过渡目标动画状态的运行进度信息;基于第三目标过渡关系的过渡进度信息,确定第四目标过渡关系的过渡进度信息;基于所述第二过渡起始动画状态的运行进度信息、所述第二过渡目标动画状态的运行进度信息以及所述第四目标过渡关系的过渡进度信息,控制所述第二过渡起始动画状态对应的动画片段向所述第二过渡目标动画状态对应的动画片段进行过渡。
根据本公开实施例的第三方面,提供一种动画状态机的创建装置,该装置包括:
获取模块,被配置为获取创建目标动画状态机所需的第一语言数据类型的配置信息,其中,所述配置信息包括:表示所述目标动画状态机的表征各动画片段的动画状态的第一配置信息,表示各所述动画状态之间的过渡关系的第二配置信息,表示具备过渡关系的动画状态之间进行过渡的过渡条件的第三配置信息,所述第三配置信息包括:创建各过渡条件所需的动画参数以及比较信息,所述第一语言数据类型为:轻量级的数据类型,所述比较信息包括比较运算符和/或比较阈值;
转化模块,被配置为按照所述第一语言数据类型与第二语言数据类型之间的对应关系,将所述第一配置信息转化为所述第二语言数据类型的第四配置信息,将所述第二配置信息转化为所述第二语言数据类型的第五配置信息,将所述第三配置信息转化为所述第二语言数据类型的第六配置信息,所述第二语言数据类型为机器可识别语言类型;
创建模块,被配置为通过所述第四配置信息,创建所述目标动画状态机所支持的动画状态;
所述创建模块,还被配置为通过所述第五配置信息,建立各所述动画状态之间的过渡关系;
所述创建模块,还被配置为通过所述第六配置信息包括的创建各过渡条件所需的动画参数以及所述比较信息,创建具备过渡关系的动画状态之间进行过渡的过渡条件,得到所述目标动画状态机。
在一种可能的实现方式中,
所述获取模块,还被配置为获取预先建立的各动画参数的动画参数类型与比较信息之间的对应关系,以及动画参数集;
所述创建模块,具体被配置为:针对每一过渡条件,若确定创建所述过渡条件所需的指定动画参数,属于所述动画参数集,且基于预先建立的动画参数类型与比较信息之间的对应关系,确定所述指定动画参数的动画参数类型与创建所述过渡条件所需的指定比较信息之间具备对应关系,则使用所述指定动画参数以及所述指定比较信息,创建所述过渡条件。
在一种可能的实现方式中,所述配置信息还包括表示所述目标动画状态机所支持的动画参数的第七配置信息;
所述转化模块,还被配置为按照第一语言数据类型与第二语言数据类型之间的对应关系,将所述第七配置信息转化为所述第二语言数据类型的第八数据类型;
所述创建模块,还被配置为通过所述第八数据类型,创建所述目标动画状态机所支持的动画参数。
在一种可能的实现方式中,所述装置还包括:
展示模块,被配置为展示配置界面;
所述展示模块,还被配置为在监测到针对所述配置界面的第一操作时,在所述配置界面展示动画状态图标;
接收模块,被配置为在监测到针对所展示动画状态图标触发的第一配置操作后,接收所述第一配置操作对应的第一配置信息;
所述展示模块,还被配置为在监测到针对所述配置界面的第二操作时,在所述配置界面所展示的第一动画状态图标与第二动画状态图标之间,展示箭头图标,其中,所述箭头图标用于表征所述第一动画状态图标和所述第二动画状态图标之间的过渡关系;
所述接收模块,还被配置为在监测到针对所展示箭头图标的第二配置操作时,接收所述第二配置操作对应的配置操作信息;
生成模块,被配置为基于所述第一动画状态图标和所述第二动画状态图标之间的连接关系以及所述配置操作信息,生成表示第一动画状态和第二动画状态之间的过渡关系的第二配置信息,其中,所述第一动画状态为所述第一动画状态图标表示的动画状态,所述第二动画状态图标为所述第二动画状态图标表示的动画状态;
所述展示模块,还被配置为在监测到针对所展示箭头图标的第三操作时,在所述配置界面展示预先配置的动画参数集;
确定模块,被配置为在监测到针对所述动画参数集中的目标动画参数的选中操作时,基于所述目标动画参数,以及预先建立的各动画参数的动画参数类型与比较信息之间的对应关系,确定所述目标动画参数的动画参数类型对应的比较信息,作为待展示比较信息,所述待展示比较信息包括运算符和/或比较阈值;
所述展示模块,还被配置为所述在所述配置界面展示所述待展示比较信息;
所述生成模块,还被配置为在监测到针对所述待展示比较信息中的目标比较信息的选中操作时,基于所述目标动画参数和所述目标比较信息,生成表示所展示箭头图标对应的过渡关系的过渡条件的第三配置信息;在监测到针对所述配置界面触发的保存操作后,生成创建目标动画状态机所需的第一语言数据类型的配置信息。
在一种可能的实现方式中,所述第一配置信息包括:表示各所述动画状态的动画状态标识、播放速度参数的参数值和播放方式的参数值,以及各动画状态对应的动画片段标识;
所述创建模块,具体被配置为:
使用表示各所述动画状态的动画状态标识、播放速度参数的参数值以及播放方式的参数值,创建所述目标动画状态机所支持的各第一动画状态;并记录各第一动画状态与动画片段标识的对应关系;
使用表示各所述动画状态的动画片段标识对应的动画资源的时长以及所述播放速度参数的参数值,确定各所述动画状态的状态时长;
使用各所述动画状态的状态时长以及各所述第一动画状态,创建所述目标动画状态机的时态子状态机所支持的各第二动画状态。
在一种可能的实现方式中,所述第二配置信息包括:表示各所述过渡关系的过渡关系标识、过渡时长的参数值、过渡时机的参数值、过渡起始动画状态的起始动画状态标识以及过渡目标动画状态的目标状态标识;
所述创建模块,具体被配置为:
使用表示各所述过渡关系的过渡关系标识、过渡时长的参数值、过渡时机的参数值、起始动画状态标识以及目标动画状态标识,建立所述目标动画状态机所支持的各所述第一动画状态之间的过渡关系;
基于所述目标动画状态机所支持的各所述第一动画状态之间的过渡关系,建立所述时态子状态机所支持的各所述第二动画状态之间的过渡关系。
在一种可能的实现方式中,所述第三配置信息包括创建各所述过渡条件所需的动画参数以及比较信息;
所述创建模块,具体被配置为:
使用创建各所述过渡条件所需的动画参数以及比较信息,创建所述目标动画状态机所支持的具备过渡关系的第一动画状态之间进行过渡的过渡条件;
基于所述目标动画状态机所支持的具备过渡关系的第一动画状态之间进行过渡的过渡条件,创建所述时态子状态机所支持的具备过渡关系的第二动画状态之间进行过渡的过渡条件。
在一种可能的实现方式中,所述目标动画状态机还设置有状态监听器以及动画控制器;
所述状态监听器用于:同步所述时态子状态机所支持的第二动画状态的运行进度信息,以及所述时态子状态机所支持的具备过渡关系的第二动画状态之间的过渡进度信息,至所述动画控制器,以使所述动画控制器基于所述时态子状态机所支持的第二动画状态的运行进度信息,以及所述时态子状态机所支持的具备过渡关系的第二动画状态之间的过渡进度信息,确定所述目标动画状态机所支持的第一动画状态的运行进度信息以及所述目标动画状态机所支持的具备过渡关系的第一动画状态之间的过渡进度信息。
在一种可能的实现方式中,所述第一语言数据类型为Json格式的数据类型。
根据本公开实施例的第四方面,提供一种动画控制装置,应用于目标动画状态机,所述目标动画状态机设置有时态子状态机、状态监听器以及动画控制器,所述目标动画状态机为基于第一语言数据类型的配置信息创建得到的动画状态机,所述配置信息包括:表示所述目标动画状态机的表征各动画片段的动画状态的第一配置信息,表示各所述动画状态之间的过渡关系的第二配置信息,表示具备过渡关系的动画状态之间进行过渡的过渡条件的第三配置信息,所述第三配置信息包括:创建各过渡条件所需的动画参数以及比较信息,所述第一语言数据类型为:轻量级的数据类型,所述比较信息包括比较运算符和/或比较阈值;
所述目标动画状态机支持表征各动画片段的第一动画状态,各第一动画状态之间的过渡关系以及具备过渡关系的各第一动画状态进行过渡的过渡条件;
其中,所述第一动画状态基于第四配置信息创建,所述过渡关系基于第五配置信息建立,所述过渡条件基于第六配置信息创建;所述第四配置信息、所述第五配置信息以及所述第六配置信息均属于第二语言数据类型,分别由第一语言数据类型的第一配置信息、第二配置信息以及第三配置信息转化得到,所述第二语言数据类型为机器可识别语言类型;
所述时态子状态机支持第二动画状态,各第二动画状态之间的过渡关系以及具备过渡关系的各第二动画状态进行过渡的过渡条件;
所述装置包括:
检测模块,被配置为检测当前运行的第二动画状态,作为第一当前动画状态;
判断模块,被配置为基于所获得的动画参数的参数值,以及所述第一当前动画状态所具备的过渡关系进行过渡所需的过渡条件的动画参数和比较信息,判断所述第一当前动画状态所具备的过渡关系中,是否存在所需的过渡条件均被满足的第一目标过渡关系;
确定模块,被配置为若存在所需的过渡条件均被满足的第一目标过渡关系,则根据所述第一当前动画状态,确定所述第一目标过渡关系所对应的第一目标动画状态;
同步模块,被配置为通过所述状态监听器将所述第一当前动画状态的运行进度信息、所述第一目标动画状态的运行进度信息以及所述第一目标过渡关系的过渡进度信息,同步至所述动画控制器;
所述确定模块,还被配置为基于所述第一当前动画状态的运行进度信息,确定所述第二当前动画状态的运行进度信息;并基于所述第一目标动画状态的运行进度信息,确定所述第二目标动画状态的运行进度信息;基于所述第一目标过渡关系的过渡进度信息,确定第二目标过渡关系的过渡进度信息;
过渡模块,被配置为基于所述第二当前动画状态的运行进度信息、所述第二目标动画状态的运行进度信息以及所述第二目标过渡关系的过渡进度信息,控制所述第二当前动画状态对应的动画片段向所述第二目标动画状态对应的动画片段进行过渡。
在一种可能的实现方式中,
所述判断模块,还被配置为判断所述时态子状态机所支持的各第二动画状态所具备的过渡关系中,是否存在处于过渡状态的过渡关系;
所述检测模块,还被配置为若所述时态子状态机所支持的各第二动画状态所具备的过渡关系中,不存在处于过渡状态的过渡关系,执行所述检测当前运行的第二动画状态,作为第一当前动画状态的步骤。
在一种可能的实现方式中,
所述确定模块,还被配置为若所述时态子状态机所支持的各第二动画状态所具备的过渡关系中,存在处于过渡状态的第三目标过渡关系,确定所述第三目标过渡关系的第一过渡起始动画状态以及第一过渡目标动画状态;
所述同步模块,还被配置为通过所述状态监听器,将所述第一过渡起始动画状态的运行进度信息、所述第一过渡目标动画状态的运行进度信息以及所述第三目标过渡关系的过渡进度信息,同步至所述动画控制器;
所述确定模块,具体被配置为根据所述第一过渡起始动画状态的运行进度信息,确定第二过渡起始动画状态的运行进度信息;根据所述第一过渡目标动画状态的运行进度信息,确定第二过渡目标动画状态的运行进度信息;基于第三目标过渡关系的过渡进度信息,确定第四目标过渡关系的过渡进度信息;
所述过渡模块,具体被配置为基于所述第二过渡起始动画状态的运行进度信息、所述第二过渡目标动画状态的运行进度信息以及所述第四目标过渡关系的过渡进度信息,控制所述第二过渡起始动画状态对应的动画片段向所述第二过渡目标动画状态对应的动画片段进行过渡。
根据本公开实施例的第五方面,提供一种电子设备,该电子设备包括:处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现第一方面中所述的动画状态机的创建方法。
根据本公开实施例的第六方面,提供一种电子设备,该电子设备包括:处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现第二方面中所述的动画控制方法。
根据本公开实施例的第七方面,提供一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面中所述的动画状态机的创建方法。
根据本公开实施例的第八方面,提供一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第二方面中所述的动画控制方法。
根据本公开实施例的第九方面,提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面中所述的动画状态机的创建方法。
根据本公开实施例的第十方面,提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第二方面中所述的动画控制方法。
本公开实施例中,在创建目标动画状态机时,电子设备接收的配置信息为第一语言数据类型的配置信息,属于轻量级的数据类型,相较于第二语言数据类型,比如编程语言,第一语言数据类型更容易被创建动画状态机的创建人员理解和编写,且本公开支持将用户输入的第一语言数据类型的配置信息转化为第二语言类型的配置信息,以实现对目标动画状态机的创建。另外,本公开中用户输入的过渡条件为简单的比较信息,比如比较运算值和/或比较阈值,无需通过程序语言编写具有复杂逻辑关系的过渡条件,在一定程度上降低了对动画状态机的创建要求,使得动画状态机的创建过程更简便。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种动画状态机的创建方法的流程图;
图2为根据一示例性实施例示出的一种动画控制方法的流程示意图;
图3是根据一示例性实施例示出的一种动画状态机的创建装置的框图;
图4是根据一示例性实施例示出的一种动画控制装置的框图;
图5是根据一示例性实施例示出的一种电子设备的结构示意图;
图6是根据一示例性实施例示出的另一种电子设备的结构示意图;
图7是根据一示例性实施例示出的一种用于动画状态机的创建的装置的框图;
图8是根据一示例性实施例示出的一种用于动画控制的装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本申请实施例提供了一种动画状态机的创建方法、装置及动画控制方法、装置,以实现在一定程度上降低了对动画状态机的创建要求,使得对动画状态机的创建更简便。
可以理解的是,本公开实施例所提供的动画状态机的创建方法,可以应用于任意类型的电子设备中,在此不再赘述。该电子设备中可以预先安装有动画状态机的创建工具。一种情况,可以基于该电子设备预先安装的动画状态机的创建工具,实现本公开实施例所提供的动画状态机创建方法。
图1是根据一示例性实施例示出的一种动画状态机的创建方法的流程图,如图1所示,该动画状态机的创建方法可以包括如下步骤:
S101:获取创建目标动画状态机所需的第一语言数据类型的配置信息。
其中,配置信息包括:表示目标动画状态机的表征各动画片段的动画状态的第一配置信息,表示各动画状态之间的过渡关系的第二配置信息,表示具备过渡关系的动画状态之间进行过渡的过渡条件的第三配置信息。
其中,第三配置信息包括创建各过渡条件所需的动画参数及比较信息。该比较信息可以包括比较运算符和比较阈值;或者,可以包括比较阈值;或者,该比较信息为空。其中,比较运算符包括但不限于:大于、小于、大于等于、小于等于、等于。
在一种实现方式中,该第一语言数据类型的配置信息,可以是创建人员预先在文档中基于第一语言数据类型的编写规则,手动编写的配置信息。进而,将该手动编写完成的配置信息输入电子设备中,以使得电子设备获取得到创建目标动画状态机所需的第一语言数据类型的配置信息。
在另一种实现方式中,也可以是通过预设图文编写形式,编写得到配置信息,在一定程度上可以节省编写配置信息的时间。为了布局清楚,后续对于通过预设图文编写形式,编写得到配置信息的具体实现进行描述。
上述第一语言数据类型为:一种轻量级的数据类型,可以包括两种结构,分别为:数组与对象,编写方式简单易懂,易于机器的解析,其可以被解析使得被多种编程语言识别。在一种情况中,第一语言数据类型可以为Json格式的数据类型,Json格式包括两种结构,分别为数组与对象。其中,对象:为用大括号“{}”括起来的内容,数据结构为:键值对的结构,例如:可以表示为{key:value,key:value,...};其中,key为对象的属性,value为对象的属性值,取值方法为对象.key获取属性值,这个属性值的类型可以是:数字、字符串、数组以及对象几种。数组:为用中括号“[]”括起来的内容,数据结构为:字段值的结构,例如:可以表示为:["java","javascript","vb",...]。其取值方式为使用索引获取字段值,字段值的类型可以是:数字、字符串、数组和对象几种。
可以理解的是,该目标动画状态机可以用于控制目标角色的动画片段的转换。
S102:按照第一语言数据类型与第二语言数据类型之间的对应关系,将第一配置信息转化为第二语言数据类型的第四配置信息,将第二配置信息转化为第二语言数据类型的第五配置信息,将第三配置信息转化为第二语言数据类型的第六配置信息。
其中,第二语言数据类型为机器可识别语言类型。例如可以为编程语言,比如JAVA语言、C语言以及C++语言等。
本步骤中,该第一配置信息为表示目标动画状态机的动画状态的配置信息,其中,该第一配置信息可以包括:表征各动画状态的基本属性信息以及所对应的动画片段的信息,各动画状态的基本属性信息可以包括:各动画状态的标识、所支持播放方式以及所支持播放速度等等,所对应的动画片段的信息可以包括:动画片段标识等信息。
本步骤中,该第二配置信息为表示各动画状态之间的过渡关系的配置信息。其中,该第二配置信息可以包括:表征各动画状态与其他动画状态中哪些动画状态存在过渡关系,以及具备过渡关系的各动画状态进行过渡时的过渡属性信息,该过渡属性信息可以包括:过渡标识以及过渡时长、过渡时机等信息。
可以理解的是,过渡表示从一个动画状态到另一个动画状态的转换,具备过渡关系的两个动画状态,可以从一个动画状态转换至另一个动画状态。其中,两个动画状态所具备的过渡关系可以具体表征,从哪个动画状态转换至哪个动画状态。若两个动画状态所具备的过渡关系表征,动画状态A至动画状态B,则可以表示只能从动画状态A转换至动画状态B。此时,也可以称动画状态A具备转换至动画状态B的过渡关系。
该第三配置信息为表示具备过渡关系的动画状态之间进行过渡的过渡条件的配置信息。其中,该第三配置信息可以包括:具备过渡关系的动画状态之间进行过渡的过渡条件的设置信息,该设置信息可以包括过渡条件所需的动画参数以及比较信息。
可以理解的是,每一过渡关系可以对应一个或多个过渡条件,即具备过渡关系的动画状态之间进行过渡的过渡条件可以为一个或多个。当过渡关系对应多个过渡条件时,其所对应的过渡条件均被满足时,具备该过渡关系的动画状态之间的过渡才会发生。
在一种情况中,为了便于创建人员对配置信息的编写,允许创建人员利用第一语言数据类型编写配置信息。在创建目标动画状态机时,需要将该第一语言数据类型的配置信息解析为电子设备所能识别的第二语言数据类型,以便于电子设备识别配置信息。
本实现方式中,可以预先存储第一语言数据类型与第二语言数据类型之间的对应关系,该对应关系可以实现对第一语言数据类型的配置信息与第二语言数据类型的配置信息之间的转换,即按照预先建立的第一语言数据类型与第二语言数据类型之间的对应关系,可以将第一语言数据类型的第一配置信息,转化为该第二语言数据类型的第四配置信息,后续的,该第四配置信息可以被电子设备直接识别。同理,也可以基于预先存储的第一语言数据类型与第二语言数据类型之间的对应关系,对第二配置信息和第三配置信息进行转换。
可以理解的是,转换前的配置和转换后的配置信息虽使用的语言数据类型不同,但包含的实质内容相同。
S103、通过第四配置信息,创建目标动画状态机所支持的动画状态。
其中,该电子设备可以根据目前相关的创建方式,根据第二语言数据类型的第四配置信息,创建得到目标动画状态机所支持的表征各动画片段的动画状态,在此不再赘述。
在一种情况中,该第一配置信息可以包括动画状态的动画状态标识、动画状态对应的动画片段的动画片段标识、动画状态的播放速度、动画状态的播放方式。
例如,动画状态A的动画状态标识可表示为“stateA”。
动画状态对应的动画片段的动画片段标识可表示为“model/idle,anim”。
动画状态A的播放速度可表示为“1.0”;
动画状态A的播放方式可表示为“loop”:true,其中,该播放方式的参数值为“true”,可以表征该动画状态A支持循环播放。
S104:通过第五配置信息,建立各动画状态之间的过渡关系。
其中,该电子设备可以根据目前相关的创建方式,根据第二语言数据类型的第五配置信息,创建得到目标动画状态机的各动画状态之间的过渡关系,在此不再赘述。
S105:通过第六配置信息包括的创建各过渡条件所需的动画参数以及比较信息,创建具备过渡关系的动画状态之间进行过渡的过渡条件,得到目标动画状态机。
其中,该电子设备可以根据目前相关的创建方式,根据第二语言数据类型的第六配置信息,创建得到目标动画状态机的具备过渡关系的动画状态之间进行过渡的过渡条件,在此不再赘述。
本公开实施例中,在创建目标动画状态机时,电子设备接收的配置信息为第一语言数据类型的配置信息,属于轻量级的数据类型,相较于第二语言数据类型,比如编程语言,第一语言数据类型更容易被创建动画状态机的创建人员理解和编写,且本公开支持将用户输入的第一语言数据类型的配置信息转化为第二语言类型的配置信息,以实现对目标动画状态机的创建。另外,本公开中用户输入的过渡条件为简单的比较信息,比如比较运算值和/或比较阈值,无需通过程序语言编写具有复杂逻辑关系的过渡条件,在一定程度上降低了对动画状态机的创建要求,使得动画状态机的创建过程更简便。
为了更好的简化对创建目标动画状态机的配置信息的编写,可以允许创建人员在编写第三配置信息时,以动画参数和比较信息的组合的方式编写。后续的,电子设备可以基于预先存储的过渡条件对应的过渡条件框架,将动画参数和比较信息添加至该过渡条件框架,以生成设备可识别的过渡条件。
一种情况中,该第三配置信息为Json格式的配置信息,本公开实施例,可以首先将该第三配置信息中描述各对象的Json字符串,即每个“{}”之间的内容,转化为各Json对象,其中,转化得到Json对象分别为动画参数和比较信息。进而,将该动画参数和比较信息,添加至预先存储的过渡条件对应的过渡条件框架中,以生成设备可识别的过渡条件。
可以理解的是,在创建过渡条件时需要利用动画参数,在创建具备过渡关系的动画状态之间进行过渡的过渡条件时,需要预先配置好目标动画状态机所支持的动画参数,进而,在创建具备过渡关系的动画状态之间进行过渡的过渡条件时,可以利用预先配置好的目标动画状态机所支持的动画参数,进行创建。在一种实现方式中,电子设备已预先配置好目标动画状态机所支持的动画参数。此时,在创建具备过渡关系的动画状态之间进行过渡的过渡条件时,直接从电子设备的相应存储位置读取即可。
在另一种实现方式中,该目标动画状态机所支持的动画参数需要通过创建人员进行配置。鉴于此,该配置信息还可以包括表示目标动画状态机所支持的动画参数的第七配置信息。
所以,在得到目标动画状态机之前,电子设备还需按照第一语言数据类型与第二语言数据类型之间的对应关系,将第七配置信息转化为第二语言数据类型的第八数据类型。进而通过第八数据类型,创建目标动画状态机所支持的动画参数。
本实现方式中,一种情况,电子设备可以按照预先建立的第一语言数据类型与第二语言数据类型之间的对应关系,将第七配置信息转化为的第二语言数据类型的第八配置信息,后续的,该第八配置信息可以被电子设备直接识别,并创建得到目标动画状态机所支持的动画参数。
另一种情况,电子设备预存有动画参数代码框架,电子设备可以直接将表示目标动画状态机所支持的动画参数的第七配置信息,添加至相应的动画参数代码框架中,以得到完整的动画参数代码,即创建得到目标动画状态机所支持的动画参数。
上述动画参数可以指:该目标动画状态机所支持的动画状态所对应的动画片段中的角色的参数,例如,动画参数可以为该角色是否在地面上以及角色的移动速度等。
在一种实现方式中,为了便于管理目标动画状态机所支持的动画参数,可以预先设置目标动画状态机支持的动画参数集存储容器,将各动画参数存储于动画参数集存储容器中,生成动画参数集,以便于对动画参数的集中管理。一种情况,可以设置该动画参数集存储集容器的类型为动画参数集(Animation Parameter Set)。本公开实施例中,该动画参数集存储容器,可以支持添加新的动画参数、查询其所存储的动画参数以及修改已存储的动画参数的功能。
在一种实现方式中,上述表示目标动画状态机所支持的动画参数的第七配置信息,可以至少包括动画参数标识和动画参数类型。其中,动画参数标识可以为动画参数名称;动画参数类型可以包括:整数型(Integer)、浮点型(Float)、布尔值(Boolean)以及触发器(Trigger)。其中,当动画参数的动画参数类型为整数型(Integer)、浮点型(Float)或布尔值(Boolean)时,需要设置初始值。当动画参数的动画参数类型为触发器时,不需要初始值,每渲染完一帧图像之后,自动重置为false的布尔值。
其中,可以使用动画参数(Animation Parameter)类型来表示一个动画参数,该Animation Parameter类型可以包含动画参数标识设置字段、动画参数类型设置字段以及一个可以用来表示整数型(Integer)、浮点型(Float)以及布尔值(Boolean)的联合体等,其中,触发器可以使用布尔值存储。该AnimationParameter类型可以支持动画参数标识以及动画参数类型等的设置于获取。
在一种情况中,第七配置信息为Json格式的配置信息,第七配置信息可以包括:动画参数类型为整数型的动画参数,动画参数类型为浮点型的动画参数,动画参数类型为布尔值的动画参数,动画参数类型为触发器的动画参数。
其中,动画参数类型为整数型的动画参数可以表示为“type”:“integer”,且通过“value”:0表示该动画参数的初始值为0;
动画参数类型为浮点型的动画参数可以表示为:“type”:“float”,且通过“value”:0.0表示该动画参数的初始值为0;
动画参数类型为布尔值的动画参数可以表示为:“type”:“boolean”,且通过“value”:false表示该动画参数的初始值为false。
动画参数类型为触发器的动画参数可以表示为:“type”:“trigger”。
在一种实现方式中,不同动画参数类型的动画参数所支持的比较方式存在差异。为了保证所创建的目标动画状态机的规范性以及可用性,在通过第六配置信息中创建各过渡条件所需的动画参数以及比较信息,创建具备过渡关系的动画状态之间进行过渡的过渡条件的步骤之前,电子设备可获取预先建立的各动画参数的动画参数类型与比较信息之间的对应关系,以及动画参数集。
基于获取的上述对应关系以及动画参数集,本公开中通过第六配置信息包括的创建各所述过渡条件所需的动画参数以及比较信息,创建具备过渡关系的动画状态之间进行过渡的过渡条件的步骤,包括:
针对每一过渡条件,判断创建该过渡条件所需的指定动画参数,是否属于动画参数集。其中,指定动画参数用于特指创建该过渡条件所需的动画参数。
若该指定动画参数属于动画参数集,则基于预先建立的动画参数类型与比较信息之间的对应关系,判断指定动画参数的动画参数类型与创建该过渡条件所需的指定比较信息之间是否具备对应关系。其中,指定比较信息用于特指创建该过渡条件所需的比较信息。
示例性地,若创建该过渡条件所需的指定动画参数为动画参数A,创建该过渡条件所需的指定比较参数为比较参数A,且预先建立的上述对应关系包括动画参数A的动画参数类型与比较信息A之间的对应关系,则可确定指定动画参数的动画参数类型与指定比较信息具备对应关系。
若指定动画参数的动画类型与指定比较信息具备对应关系,则使用指定动画参数以及指定比较信息,创建该过渡条件。
本实现方式中,电子设备预先存储有预先建立的各动画参数的动画参数类型与比较信息之间的对应关系,以及动画参数集。其中,该动画参数集包括多个目标动画状态机所支持的动画参数。后续的,针对每一过渡条件,判断创建该过渡条件所需的指定动画参数,是否属于动画参数集。若判断创建该过渡条件所需的指定动画参数,属于动画参数集,则可以确定目标动画状态机可以支持指定动画参数。
进而,可以基于预先建立的各动画参数的动画参数类型与比较信息之间的对应关系,判断是否支持创建该过渡条件所需的指定比较信息。即判断预先建立的各动画参数的动画参数类型与比较信息之间的对应关系中,是否存在该指定动画参数与指定比较信息之间的对应关系,若存在,则确定支持创建该过渡条件所需的指定比较信息。此时,可以使用创建该过渡条件所需的动画参数以及比较信息,创建该过渡条件。
反之,若判断创建该过渡条件所需的指定动画参数,不属于动画参数集,则可以直接过滤该过渡条件;继续针对下一条过渡条件,执行判断创建该下一条过渡条件所需的动画参数,是否属于动画参数集的步骤。
另外,若确定不支持创建该过渡条件所需的比较信息,则可以基于预先建立的各动画参数的动画参数类型与比较信息之间的对应关系,确定创建该过渡条件所需的指定动画参数的动画参数类型对应的比较信息,从中选择出默认比较信息,然后基于该过渡条件所需的指定动画参数以及所选择的默认比较信息,创建过渡条件。其中,上述默认比较信息可以是随机选择的,也可以是预先标定的作为默认比较信息的比较信息。
需要说明的是,每个动画参数包括两个属性,分别为动画参数标识(动画参数名字)和动画参数类型。对于不同的动画参数类型可以对应不同的比较信息。
其中,当过渡条件所需的动画参数的动画参数类型为整数型integer或浮点型float时,该过渡条件可以表示为一个等式或不等式,表示该过渡关系的第三配置信息需要填写比较方式“compareOp”和比较阈值“compareValue”,目标动画状态机所支持的该过渡条件的比较信息中的比较方式包括:“大于(Greater)”、“大于等于(GreaterEqual)”、“小于(Less)”、“小于等于(LessEqual)”、“等于(Equal)”和“不等于(Unequal/NotEqual)”。
当过渡条件所需的动画参数的动画参数类型为布尔值boolean时,表示该过渡关系的第三配置信息可以直接填写比较方式"compareOp"为等于,或者,可以不需要填写比较方式"compareOp",此时,可以被默认为比较方式为等于。
当过渡条件所需的动画参数的动画参数类型为触发器trigger时,表示该过渡关系的第三配置信息不需要填写比较方式"compareOp"和比较阈值"compareValue"。这个动画参数类型为触发器的动画参数被触发的瞬间,该过渡条件被认为被满足。
其中,每一过渡条件可以被认为成一个比较语句,在一种实现方式中,可以匿名函数lambda表达式来表征一个比较语句,以表示每一过渡条件。
在一种实现方式中,为了更便于创建人员对配置信息的编写,可以通过预设图文编写形式,编写该第一语言数据类型的配置信息。在获取创建目标动画状态机所需的第一语言数据类型的配置信息的步骤之前,电子设备可以展示配置界面。
进而,电子设备可以通过该配置界面获取第一语言数据类型的配置信息。所以获取创建目标动画状态机所需的第一语言数据类型的配置信息的步骤,具体包括:
步骤一、在监测到针对配置界面第一操作时,在配置界面展示动画状态图标。
一种情况中,第一操作可以为对配置界面的右键点击,并选中创建空的动画状态的操作。或者,可以为:对配置界面的工作栏展示区域中所展示的动画状态图标的拖拽动作,将工作栏中所展示的动画状态图标的拖拽至配置界面的预设配置区域。
步骤二、在监测到针对所展示动画状态图标触发的第一配置操作后,接收第一配置操作对应的第一配置信息。
第一配置操作可以为:对所展示动画状态图标的右键点击,并选中动画状态信息配置选项,进而输入对空的动画状态的配置信息的操作,其中,对空的动画状态的配置信息可以包括:动画状态标识、播放速度、播放方式以及所对应的动画片段的信息等。播放方式可以包括:循环播放或不循环播放。
步骤三、在监测到针对配置界面的第二操作时,在配置界面所展示的第一动画状态图标与第二动画状态图标之间,展示箭头图标。
其中,箭头图标用于表征第一动画状态图标和第二动画状态图标之间的过渡关系。
在监测到针对配置界面的第二操作时,可以表征监测到创建人员需要针对动画状态设置过渡关系,在配置界面所展示的第一动画状态图标与第二动画状态图标之间,展示箭头图标,其中,箭头图标用于表征第一动画状态图标和第二动画状态图标之间的过渡关系。
当箭头图标的箭头指向第一动画状态图标,且箭头图标的箭尾指向第二动画状态图标时,可以指第二动画状态图标所表示的第二动画状态可以向第一动画状态图标所表示的第一动画状态进行过渡。当箭头图标的箭头指向第二动画状态图标,且箭头图标的箭尾指向第一动画状态图标时,可以指第一动画状态图标所表示的第一动画状态可以向第二动画状态图标所表示的第二动画状态进行过渡。
其中,上述第二操作可以为对配置界面的右键点击,并选中创建新的过渡关系的操作。或者,可以是对所展示动画图标的右键点击,并选中创建新的过渡关系的操作。或者,可以为:对配置界面的工作栏展示区域中所展示的箭头图标的拖拽动作,将工作栏中所展示的箭头图标的拖拽至配置界面的预设配置区域。
步骤四、在监测到针对所展示箭头图标的第二配置操作时,接收第二配置操作对应的配置操作信息。
在监测到针对所展示箭头图标的第二配置操作时,可以表征监测到创建人员需要针对过渡关系进行属性配置,可以接收第三配置操作对应的配置操作信息;基于第一动画状态图标和第二动画状态图标之间的连接关系以及配置操作信息,生成表示第一动画状态和第二动画状态之间的过渡关系的第二配置信息。该第一动画状态为第一动画状态图标表示的动画状态,该第二动画状态图标为第二动画状态图标表示的动画状态。
其中,上述第二配置操作可以为:对所展示箭头图标的右键点击,并选中过渡关系信息配置选项,进而输入对过渡关系的配置信息的操作。其中,对过渡关系的配置信息可以包括过渡关系的标识以及时长等信息。
步骤五、基于第一动画状态图标和第二动画状态图标之间的连接关系以及配置操作信息,生成表示第一动画状态和第二动画状态之间的过渡关系的第二配置信息。
其中,第一动画状态为第一动画状态图标表示的动画状态,第二动画状态图标为第二动画状态图标表示的动画状态。
步骤六、在监测到针对所展示箭头图标的第三操作时,在配置界面展示预先配置的动画参数集。
在监测到针对所展示箭头图标的第三操作时,可以表征监测到创建人员需要针对过渡关系,设置过渡条件的操作,在配置界面展示预先配置的动画参数集;在监测到针对动画参数集中的目标动画参数的选中操作时,基于目标动画参数,以及预先建立的各动画参数的动画参数类型与比较信息之间的对应关系,确定目标动画参数的动画参数类型对应的比较信息,作为待展示比较信息;在配置界面展示待展示比较信息;在监测到针对待展示比较信息中的目标比较信息的选中操作时,基于目标动画参数和目标比较信息,生成表示所展示箭头图标对应的过渡关系的过渡条件的第三配置信息。
其中,上述第三操作可以为:对表示过渡关系的箭头图标的右键点击,并选中过渡条件设置选项的操作。
步骤七、在监测到针对动画参数集中的目标动画参数的选中操作时,基于目标动画参数,以及预先建立的各动画参数的动画参数类型与比较信息之间的对应关系,确定目标动画参数的动画参数类型对应的比较信息,作为待展示比较信息。
步骤八、在配置界面展示待展示比较信息。
步骤九、在监测到针对待展示比较信息中的目标比较信息的选中操作时,基于目标动画参数和目标比较信息,生成表示所展示箭头图标对应的过渡关系的过渡条件的第三配置信息。
作为一个例子,若配置界面展示的待展示比较信息包括大于、等于、小于,且电子设备监测到了对“大于”的选中操作,则生成的第三配置信息包括的比较信息为“大于”。
在监测到针对述配置界面触发的保存操作后,可以表征监测到创建人员对创建目标动画状态机所需的配置信息配置完成,生成创建目标动画状态机所需的第一语言数据类型的配置信息。
在一种情况中,在监测到针对述配置界面触发的保存操作后,可以生成Json格式的数据类型的配置信息。
步骤十、在监测到针对配置界面触发的保存操作后,得到创建目标动画状态机所需的第一语言数据类型的配置信息。
本公开实施例中,动画状态机的创建流程被触发后,可以向创建人员展示配置界面。在监测到针对配置界面第一操作时,可以表征监测到创建人员需要创建空的动画状态,在配置界面展示动画状态图标,后续的,在监测到针对所展示动画状态图标触发的第一配置操作后,可以表征监测到创建人员需要对该空的动画状态设置配置信息,接收第一配置操作对应的第一配置信息。
在一种实现方式中,为了在一定程度上方便维护目标动画状态机,并且便于对目标动画状态机所支持的动画参数的修改、增加以及删除等,以及便于对目标动画状态机所支持的每一动画状态对应的动画片段的信息的修改等。在创建目标动画状态机时,可以将目标动画状态机创建成双层结构,该双层结构的目标动画状态机可以包括时态子状态机,该时态子状态机可以作为该目标动画状态机的一个组件,该时态子状态机与动画片段无关,其构建有各动画状态之间的逻辑关系,包括:各动画状态、各动画状态之间的过渡关系以及具备过渡关系的各动画状态之间进行过渡的过渡条件。
目标动画状态机的时态子状态机可以支持有限时长的第二动画状态一次播放或循环播放,支持不同第二动画状态之间存在任意数量的过渡关系,支持每种过渡关系可以设置任意多个过渡条件,而这个过渡条件是一个返回布尔值的程序段,例如:在C++实现中就是一个仿函数(functor)程序段。
在创建双层结构的目标动画状态机的过程中,在一种实现方式中,该第一配置信息可以包括:表示各动画状态的动画状态标识、播放速度参数的参数值和播放方式的参数值,以及各动画状态对应的动画片段标识。可以理解的是,由于第四配置信息通过第一配置信息转化得到,所以第四配置信息也包括第一配置信息中包括的内容。
所述使用第四配置信息,创建目标动画状态机所支持的表征各动画片段的动画状态的步骤,可以包括:
使用表示各动画状态的动画状态标识、播放速度参数的参数值以及播放方式的参数值,创建目标动画状态机所支持的各第一动画状态;并记录各第一动画状态与动画片段标识的对应关系。
使用表示各动画状态的动画片段标识对应的动画资源的时长以及播放速度参数的参数值,确定各动画状态的状态时长。
使用各动画状态的状态时长以及各第一动画状态,创建目标动画状态机的时态子状态机所支持的各第二动画状态。
本实现方式中,在创建目标动画状态机所支持的动画状态时,可以使用第四配置信息中表示各动画状态的动画状态标识、播放速度参数的参数值以及播放方式,创建目标动画状态机所支持的各第一动画状态,并记录各第一动画状态与动画片段标识的对应关系。
一种情况中,可以通过指针,记录各第一动画状态与动画片段标识的对应关系。通过动画片段标识,可以直接确定得到第一动画状态所对应的动画片段资源。后续的,目标动画状态机在运行某一第一动画状态时,可以直接确定出需要播放哪段动画片段资源。
在创建得到目标动画状态机所支持的第一动画状态之后,可以基于该第一动画状态,创建目标动画状态机的时态子状态机所支持的各第二动画状态。其中,目标动画状态机所支持的第一动画状态的属性信息包括:动画状态的动画状态标识、播放速度参数以及播放方式,该播放速度参数为:限定所对应第一动画状态的播放速度,该播放方式为:用于限定是否支持循环播放的参数,当播放方式对应的参数值为“true”时,表征支持循环播放;当播放方式对应的参数值为“false”时,表征不支持循环播放。
目标动画状态机的时态子状态机所支持的第二动画状态的属性信息包括:动画状态标识、状态时长以及播放方式。其中,该状态时长可以指该动画状态运行的时长。上述动画状态的状态时长的计算方式可以是:状态时长=动画状态对应的动画片段的时长/播放速度参数的参数值。
一种实现方式中,上述使用各动画状态的状态时长以及各第一动画状态,创建目标动画状态机的时态子状态机所支持的各第二动画状态,可以是,将各第一动画状态中的播放速度参数删除,并增加所对应的状态时长,以得到目标动画状态机的时态子状态机所支持的各第二动画状态。
在创建得到目标动画状态机的时态子状态机所支持的各第二动画状态之后,还需要设置一个入口动画状态,可以直接指定一第二动画状态,作为入口动画状态,以便在基于目标动画状态机进行动画控制时,可以确定出第一个开始运行的动画状态。
其中,目标动画状态机所支持的第一动画状态与目标动画状态机中的时态状态机所支持的第二动画状态之间存在对应关系,其中,存在对应关系的第一动画状态和第二动画状态之间的动画状态标识相同。
在一种情况中,可以称第二动画状态为TSM(Temporal State Machine,基于时间的状态机)State,称第一动画状态为Animation(动画)State。
在一种实现方式中,该第二配置信息可以包括:表示各过渡关系的过渡关系标识、过渡时长的参数值、过渡时机的参数值、过渡起始动画状态的起始动画状态标识以及过渡目标动画状态的目标状态标识。可以理解的是,由于第五配置信息通过第二配置信息转化得到,所以第五配置信息也包括第二配置信息中包括的内容。
所述使用第五配置信息,建立各动画状态之间的过渡关系的步骤,可以包括:
使用表示各过渡关系的过渡关系标识、过渡时长的参数值、过渡时机的参数值、起始动画状态标识以及目标动画状态标识,建立目标动画状态机所支持的各第一动画状态之间的过渡关系;
基于目标动画状态机所支持的各第一动画状态之间的过渡关系,建立时态子状态机所支持的各第二动画状态之间的过渡关系。
本实现方式中,在创建目标动画状态机所支持的各动画状态之间的过渡关系时,可以使用第五配置信息中表示各过渡关系的过渡关系标识、过渡时长的参数值、过渡时机的参数值、过渡起始动画状态的起始动画状态标识以及过渡目标动画状态的目标状态标识,建立目标动画状态机所支持的各第一动画状态之间的过渡关系。
其中,该过渡关系可以表征:过渡起始动画状态可以向过渡目标动画状态进行过渡。该过渡起始动画状态和过渡目标动画状态均属于目标动画状态机所支持的动画状态。
其中,上述过渡时长可以指:过渡起始动画状态过渡至过渡目标动画状态所需时长,上述过渡时机可以指过渡开始的时机。起始动画状态标识可以包括过渡起始动画状态的名字和过渡起始动画状态的ID,目标动画状态标识可以包括过渡目标动画状态的名字和过渡目标动画状态的ID。
在一种情况中,过渡时机可以通过“fixedExitTime(bool)”字段和“exitTime”字段表示。当过渡关系的该“fixedExitTime(bool)”字段的参数值为“true”时,表示只能在过渡起始动画状态的固定时间点开始此过渡关系所表征的过渡。并且,当过渡关系的该fixedExitTime(bool)字段的参数值为“true”时,“exitTime”字段有效,该“exitTime”字段的参数值,用于限定具体的开始此过渡关系所表征的过渡的时间点。其中,“exitTime”字段的参数值的取值范围为0~1,且参数值的取值不是以秒为单位的时间。举例而言,当“fixedExitTime”字段的参数值为“true”时,且“exitTime”字段的参数值为0.5时,表示:过渡关系所表征的过渡,只能在过渡起始动画状态的0.5的时间点发生,即在过渡起始动画状态对应的动画片段播放到一半时发生。
在一种情况中,该“fixedExitTime(bool)”字段的参数值为“true”时,可以认为该“fixedExitTime(bool)”字段和“exitTime”字段,组成该过渡关系的一个过渡条件。
在建立得到目标动画状态机所支持的各第一动画状态之间的过渡关系之后,可以基于目标动画状态机所支持的各第一动画状态之间的过渡关系,建立时态子状态机所支持的各第二动画状态之间的过渡关系。
一种实现方式中,上述基于目标动画状态机所支持的各第一动画状态之间的过渡关系,建立时态子状态机所支持的各第二动画状态之间的过渡关系,可以是,复制目标动画状态机所支持的各第一动画状态之间的过渡关系,并将复制所得到的各第一动画状态之间的过渡关系中的过渡起始动画状态的起始动画状态标识以及过渡目标动画状态的目标状态标识,从第一动画状态的动画状态标识,修改为第二动画状态的动画状态标识,建立得到时态子状态机所支持的各第二动画状态之间的过渡关系。
其中,目标动画状态机所支持的各第一动画状态之间的过渡关系,与时态子状态机所支持的各第二动画状态之间的过渡关系之间存在对应关系,其中,存在对应关系的各第一动画状态之间的过渡关系,和各第二动画状态之间的过渡关系的过渡关系标识相同。
在一种情况中,可以称各第二动画状态之间的过渡关系为TSM(Temporal StateMachine,基于时间的状态机)Transition,称各第一动画状态之间的过渡关系为Animation(动画)Transition。
上述各第一动画状态之间的过渡关系,与各第二动画状态之间的过渡关系的属性信息可以相同,均可以包括:表示各过渡关系的过渡关系标识、过渡时长的参数值、过渡时机的参数值、过渡起始动画状态的起始动画状态标识以及过渡目标动画状态的目标状态标识。
在一种实现方式中,该第四配置信息包括创建各过渡条件所需的动画参数以及比较信息。可以理解的是,由于第六配置信息通过第三配置信息转化得到,所以第五配置信息也包括第三配置信息中包括的内容。
所述使用第六配置信息包括的创建各过渡条件所需的动画参数以及比较信息,创建具备过渡关系的动画状态之间进行过渡的过渡条件的步骤,包括:
使用创建各过渡条件所需的动画参数以及比较信息,创建目标动画状态机所支持的具备过渡关系的第一动画状态之间进行过渡的过渡条件;
基于目标动画状态机所支持的具备过渡关系的第一动画状态之间进行过渡的过渡条件,创建时态子状态机所支持的具备过渡关系的第二动画状态之间进行过渡的过渡条件。
本实现方式中,在具备过渡关系的动画状态之间进行过渡的过渡条件时,可以创建各过渡条件所需的动画参数以及比较信息,创建目标动画状态机所支持的具备过渡关系的第一动画状态之间进行过渡的过渡条件。其中,该过渡条件可以为一个比较语句,其所需的动画参数为目标动画状态机所支持的动画参数,其所需的比较信息,为目标动画状态机所支持的,且与所需的动画参数的动画参数类型对应的比较信息。
该过渡条件可以表征:是否允许具备其所对应的过渡关系的动画状态之间的过渡发生。其中,当具备过渡关系的第一动画状态之间进行过渡的过渡条件均被满足时,具备过渡关系的第一动画状态之间的过渡可以发生。
在创建得到具备过渡关系的第一动画状态之间进行过渡的过渡条件之后,可以基于具备过渡关系的第一动画状态之间进行过渡的过渡条件,建立时态子状态机所支持的具备过渡关系的第二动画状态之间进行过渡的过渡条件。
一种实现方式中,上述基于具备过渡关系的第一动画状态之间进行过渡的过渡条件,建立时态子状态机所支持的具备过渡关系的第二动画状态之间进行过渡的过渡条件,可以是,复制具备过渡关系的第一动画状态之间进行过渡的过渡条件,并将复制所得到的各过渡条件,添加至相应的过渡关系内,建立得到时态子状态机所支持的具备过渡关系的第二动画状态之间进行过渡的过渡条件。
一种情况中,每个过渡条件可以通过一个匿名函数lambda表达式表示,目标动画状态机可以将所创建的表示为匿名函数lambda表达式的过渡条件,传递给时态子状态机,以创建得到时态子状态机所支持的具备过渡关系的第二动画状态之间进行过渡的过渡条件。其中,时态子状态机所支持的具备过渡关系的第二动画状态之间进行过渡的过渡条件,可以称为TSM(Temporal State Machine,基于时间的状态机)Condition。具备过渡关系的第一动画状态之间进行过渡的过渡条件,可以称为Animation(动画)Condition。
其中,目标动画状态机所支持的具备过渡关系的第一动画状态之间进行过渡的过渡条件,与时态状态机所支持的具备过渡关系的第二动画状态之间进行过渡的过渡条件之间,存在对应关系。其中,存在对应关系的具备过渡关系的第一动画状态之间进行过渡的过渡条件,和具备过渡关系的第二动画状态之间进行过渡的过渡条件,对应的过渡关系标识可以相同。
过渡条件表示一个具备过渡关系的动画状态进行过渡的条件,当某个过渡关系的所有条件都被满足了,这个过渡关系所表征的过渡才会发生。在目标动画状态机内每一个过渡条件可以被封装为一个外部函数,这个外部函数的返回值类型必须是布尔值,且没有任何参数。当目标动画状态机需要评估过渡条件是否被满足时,就会依次调用过渡条件的评估函数,通过所获得的动画参数的参数值判断该过渡条件是否被满足,当评估函数返回true时,则表征该过渡条件通过,即被满足。
在一种实现方式中,在配置信息中第二配置信息和第三配置信息存在对应关系,该第三配置信息可以嵌入所对应的第二配置信息内。
例如,通过“srcState”:“StateA”表示该过渡关系的过渡起始动画状态。
通过“destState”:“StateB”表示该过渡关系的过渡目标动画状态。
通过“duration”:0.0表示该过渡关系的过渡时长,其中,该过渡时长的参数值为0,表示该过渡关系的过渡时长为0,即当该过渡关系的过渡条件均被满足时,直接从过渡起始动画状态跳转至过渡目标动画状态。
通过“fixedExitTime”:false,“exitTime”:1.0表示该过渡关系的过渡时机,其中,该“fixedExitTime”的参数值为false,“exitTime”:1.0无效,可以表示该过渡关系可以从过渡起始动画状态的任一时间点发生。
之后,具备该过渡关系的动画状态进行过渡的过渡条件可以通过以下方式表示:
其中,该过渡关系对应四个过渡条件。
“parameter”:“param_integer”表示第一个过渡条件所需的动画参数,“compare0p”:“equal”表示第一个过渡条件所需的比较信息中的比较方式,“compareValue”:3表示第一个过渡条件所需的比较信息中的比较阈值。
“parameter”:“param_float”表示第二个过渡条件所需的动画参数,“compare0p”:“greater”表示第二个过渡条件所需的比较信息中的比较方式,“compareValue”:10.0表示第二个过渡条件所需的比较信息中的比较阈值。
“parameter”:“param_boolean”表示第三个过渡条件所需的动画参数,“compare0p”:true表示第三个过渡条件所需的比较信息中的比较方式,“parameter”:“param_trigeer”表示第四个过渡条件所需的动画参数。
每个过渡关系可以有任意多的过渡条件,当所有过渡条件都被满足时,过渡关系就会发生。当有多个过渡关系的过渡条件均被满足时,优先触发位置靠前的过渡关系。其中,上述位置靠前的过渡关系可以指所对应的第二配置信息的编写位置靠前的过渡关系。当过渡关系发生时,该过渡关系对应的两个动画状态在过渡关系的过渡时长内交叉渐变(CrossFade)。
在一种情况中,为简化某些情况下的配置,目标动画状态机的动画状态支持填写“AnyState”,表示可以由任意动画状态过渡到目标动画状态。例如对应角色的走路、跑步、射击的动画片段的动画状态,都可以过渡到对应死亡的动画片段的动画状态。对于为“AnyState”的动画状态,其所具备的过渡关系内的“canTransitionToSelf”字段有效,该字段有效时可以表征是否允许一个动画状态过渡到其自身。
在一种实现方式中,该目标动画状态机还设置有状态监听器以及动画控制器;
该状态监听器用于:同步时态子状态机所支持的第二动画状态的运行进度信息,以及时态子状态机所支持的具备过渡关系的第二动画状态之间的过渡进度信息,至动画控制器,以使动画控制器基于时态子状态机所支持的第二动画状态的运行进度信息,以及时态子状态机所支持的具备过渡关系的第二动画状态之间的过渡进度信息,确定目标动画状态机所支持的第一动画状态的运行进度信息以及目标动画状态机所支持的具备过渡关系的第一动画状态之间的过渡进度信息。
在将创建得到的目标动画状态机设置为双层结构后,需要保证目标动画状态机运行时,其所支持的第一动画状态的运行,与目标动画状态机的时态子状态机所支持的第二动画状态的运行之间同步。为了保证第一动画状态的运行和第二动画状态的运行之间的同步,目标动画状态机内设置有状态监听器,该状态监听器器用于:监控时态子状态机所支持的第二动画状态的运行进度信息以及时态子状态机所支持的具备过渡关系的第二动画状态之间的过渡进度信息,并同步时态子状态机所支持的第二动画状态的运行进度信息以及时态子状态机所支持的具备过渡关系的第二动画状态之间的过渡进度信息,至动画控制器,使得目标动画状态机的动画控制器可以确定得到当前运行的第一动画状态,并基于当前运行的第一动画状态确定出当前所需播放的动画片段,以及具体需要播放的动画片段内的动画。可以理解的是,每一动画片段资源可以为多帧动画组成。其中,动画片段内的一帧动画可以为一帧图像,也可以为一些预先设置好的旋转缩放平移数据,该旋转缩放平移数据为用于描述所对应角色的动作变化的数据,例如:动画片段资源为骨骼动画时,该动画片段资源中的每一帧动画为预先设置好的旋转缩放平移数据。
本公开实施例中,创建得到的目标动画状态机可以为双层结构,其主要组件可以包括:时态子状态机TemporalStateMachine,用于监控时态子状态机的状态监听器,动画状态集合,动画过渡关系集合以及动画控制器,其中,该动画控制器在该目标动画状态机运行时,可以确定出具体需要播放的动画片段内的动画。在目标动画状态机的实际运行过程时,还可以包括动画状态的运行进度信息和过渡进度的过渡进度信息。
目标动画状态机所支持的第一动画状态、各第一动画状态之间的过渡关系、以及具备过渡关系的各第一动画状态进行过渡的过渡条件被修改时,可以同时修改目标动画状态机的时态子状态机的第二动画状态、各第二动画状态之间的过渡关系、以及具备过渡关系的各第二动画状态进行过渡的过渡条件。
目标动画状态机所支持的动画参数集中的动画参数被修改时,该目标动画状态机的时态子状态机内的内容无需修改。当修改各第一动画状态对应的动画片段的信息时,该目标动画状态机的时态子状态机内的内容无需修改。这在一定程度上,可以减轻维护已创建得到的目标动画状态机的维护工作量。保证通用的时态子状态机的稳定性,并且,可以保证目标动画状态机的可扩展性。
时态子状态机为目标动画状态机的核心,时态子状态机保存了状态机的图结构,且包含了各第二动画状态、第二动画状态之间的过渡关系以及具备过渡关系的第二动画状态进行过渡的过渡条件。在目标动画状态机运行过程中,时态子状态机还保存了当前正在运行的第二动画状态的运行信息,如果正处于过渡状态中,还包含了目前处于过渡中的两个第二动画状态的当前运行信息和过渡关系进行过渡的进度的运行信息。
为了更好的知晓时态子状态机的内部信息,创建得到的目标动画状态机,可以预先配置用于查询时态子状态机的第二动画状态和第二动画状态之间的过渡关系的信息的一些函数。
其中,可以预先针对创建得到的目标动画状态机配置AddState和AddTransition函数,可以通过AddState和AddTransition函数来构建时态子状态机所支持的状态机图结构,该状态机图结构用于表征所创建完成的时态子状态机所支持的各第二动画状态、各第二动画状态之间的过渡关系以及具备过渡关系的第二动画状态进行过渡的过渡条件。一种情况中,目标动画状态机可以通过调用预先设置的Update函数,驱动时态子状态机。
相应于上述方法实施例,本公开实施例还提供了一种动画控制方法,可以应用于目标动画状态机,该目标动画状态机为基于第一语言数据类型的配置信息创建得到的动画状态机,第一语言数据类型为轻量级的数据类型,如图2所示,所述方法还可以包括:
S201:在获得进行动画控制所需的动画参数的参数值之后,检测当前运行的动画状态,作为当前动画状态。
本步骤中,目标动画状态机在获得进行动画控制所需的动画参数的参数值之后,可以检测当前运行的动画状态,作为当前动画状态。其中,该动画参数为前端应用发送的用于驱动该目标动画状态机运行的参数。
一种情况,该前端应用可以指游戏应用,在游戏应用中某一角色被驱动时,可以触发用于控制该角色的动画片段进行切换的目标动画状态机,以使得目标动画状态机启动运行,并执行本公开实施例所提供的动画控制流程。其中,目标动画状态机所支持的动画状态对应有动画片段。该动画参数为用于描述该角色所处状态的参数,例如该角色的移动速度、是否在地面、该角色的血量以及该角色的预定技能是否被触发等参数。
一种实现方式中,目标动画状态机启动后,可以首先判断是否存在当前运行的动画状态,若存在当前运行的动画状态,确定该当前运行的动画状态,作为当前动画状态;若未存在当前运行的动画状态,可以直接将预先设置的入口动画状态,作为当前运行的动画状态。一种情况,可以通过确定目标动画状态机中是否存在处于活跃的动画状态,当确定目标动画状态机中存在处于活跃的动画状态时,可以直接确定存在当前运行的动画状态,确定该当前运行的动画状态,作为当前动画状态;当确定目标动画状态机中不存在处于活跃的动画状态时,可以直接确定不存在当前运行的动画状态,此时,可以直接将预先设置的入口动画状态,作为当前运行的动画状态。
S202:基于所获得的动画参数的参数值以及预存的当前动画状态具备的过渡关系进行过渡所需的过渡条件,判断当前动画状态所具备的过渡关系中,是否存在所需的过渡条件均被满足的过渡关系。
本步骤中,目标动画状态机可以预存有各动画状态之间的过渡关系,以及具备过渡关系的动画状态进行过渡的过渡条件,该过渡条件用于限定所对应过渡关系所表征的过渡是否可以发生。当具备过渡关系的动画状态进行过渡的过渡条件均被满足时,该过渡关系所表征的过渡可以发生,即具备过渡关系的动画状态可以进行过渡;反之,当具备过渡关系的动画状态进行过渡的过渡条件未均被满足时,该过渡关系所表征的过渡不可以发生,即具备过渡关系的动画状态不可以进行过渡。
其中,上述基于所获得的动画参数的参数值,可以确定当前动画状态具备的过渡关系进行过渡所需的过渡条件是否均被满足。一种情况中,每一过渡条件包括动画参数和比较信息,通过每一过渡条件的动画参数和比较信息以及所获得的动画参数的参数值,可以确定过渡条件是否被满足,进而,可以确定具备过渡关系的动画状态进行过渡的过渡条件是否均被满足。
S203:若判断存在所需的过渡条件均被满足的过渡关系,根据当前动画状态,确定目标过渡关系所对应的目标动画状态,其中,所述目标过渡关系为:所需的过渡条件均被满足的过渡关系。
本步骤中,若判断存在所需的过渡条件均被满足的过渡关系,则可以确定过渡关系所表征的过渡可以发生,具备该过渡关系的动画状态可以进行过渡,此时,可以根据当前动画状态,以及与当前动画状态存在过渡关系的动画状态,确定所需的过渡条件均被满足的目标过渡关系所对应的目标动画状态。
S204:基于当前动画状态、目标动画状态以及目标过渡关系,控制当前动画状态对应的动画片段向目标动画状态对应的动画片段进行过渡。
本公开实施例中,在确定出当前动画状态之后,可以直接确定出当前动画状态的运行进度信息,以及当前动画状态所对应的动画片段;在确定出目标动画状态之后,可以直接确定得到目标动画状态的运行进度信息以及目标动画状态所对应的动画片段;目标动画状态机可以基于当前动画状态的运行进度信息、目标动画状态的运行进度信息以及目标过渡关系,控制当前动画状态对应的动画片段向目标动画状态对应的动画片段进行过渡。其中,该基于当前动画状态的运行进度信息、目标动画状态的运行进度信息以及目标过渡关系,控制当前动画状态对应的动画片段向目标动画状态对应的动画片段进行过渡的控制方式,可以参见相关技术中动画片段过渡的控制方式,本公开实施例并不对具体的控制方式进行限定。
本公开实施例中,目标动画状态机可以基于所获得的进行动画控制所需的动画参数的参数值,以及预存的当前动画状态具备的过渡关系进行过渡所需的过渡条件,判断出当前动画状态所具备的过渡关系中,是否存在所需的过渡条件均被满足的目标过渡关系;在判断出存在目标过渡关系时,可以基于目标过渡关系、当前动画状态以及目标过渡关系对应的目标动画状态,实现对当前动画状态对应的动画片段向目标动画状态对应的动画片段的过渡。以实现对动画的控制。
在一种实现方式中,该目标动画状态机为双层结构,该目标动画状态机设置有时态子状态机、状态监听器以及动画控制器,该目标动画状态机支持表征各动画片段的第一动画状态,各第一动画状态之间的过渡关系以及具备过渡关系的各第一动画状态进行过渡的过渡条件,该时态子状态机支持第二动画状态,各第二动画状态之间的过渡关系以及具备过渡关系的各第二动画状态进行过渡的过渡条件。
其中,目标动画状态机为基于第一语言数据类型的配置信息创建得到的动画状态机,该配置信息包括:表示目标动画状态机的表征各动画片段的动画状态的第一配置信息,表示各动画状态之间的过渡关系的第二配置信息,表示具备过渡关系的动画状态之间进行过渡的过渡条件的第三配置信息。
第三配置信息包括:创建各过渡条件所需的动画参数以及比较信息。比较信息包括比较运算符和/或比较阈值。
第一语言数据类型为:轻量级的数据类型。
需要说明的是,上述第一动画状态基于第四配置信息创建,过渡关系基于第五配置信息建立,过渡条件基于第六配置信息创建。
第四配置信息、第五配置信息以及第六配置信息均属于第二语言数据类型,分别由第一语言数据类型的第一配置信息、第二配置信息以及第三配置信息转化的得到。具体转化方法可参考上述实施例中的描述,此处不再赘述。
第二语言数据类型为轻量级的数据类型。
基于目标动画状态机的双层结构,本公开实施例提供的动画控制方法具体包括以下步骤:
步骤一、动画控制器控制时态子状态机检测时态子状态机的当前运行的第二动画状态,作为第一当前动画状态。
步骤二、动画控制器控制时态子状态机基于所获得的动画参数的参数值,以及第一当前动画状态所具备的过渡关系进行过渡所需的过渡条件的动画参数和比较信息,判断第一当前动画状态所具备的过渡关系中,是否存在所需的过渡条件均被满足的第一目标过渡关系。
其中,若判断第一当前动画状态所具备的过渡关系中,存在第一目标过渡关系,则表征判断当前动画状态所具备的过渡关系中,存在目标过渡关系。
时态子状态机所支持的过渡关系进行过渡所需的过渡条件可以包括动画参数和比较信息,在动画控制器获得动画参数的参数值之后,可以控制时态子状态机基于各过渡关系进行过渡所需的过渡条件的动画参数和比较信息,确定出该过渡条件是否被满足。
步骤三、若存在所需的过渡条件均被满足的第一目标过渡关系,则动画控制器控制时态子状态机根据第一当前动画状态,确定第一目标过渡关系所对应的第一目标动画状态。
步骤四、动画控制器控制时态子状态机通过状态监听器将第一当前动画状态的运行进度信息、第一目标动画状态的运行进度信息以及第一目标过渡关系的过渡进度信息,同步至动画控制器。
步骤五、动画控制器基于第一当前动画状态的运行进度信息,确定第二当前动画状态的运行进度信息;并基于第一目标动画状态的运行进度信息,确定第二目标动画状态的运行进度信息;基于第一目标过渡关系的过渡进度信息,确定第二目标过渡关系的过渡进度信息。
步骤六、动画控制器基于第二当前动画状态的运行进度信息、第二目标动画状态的运行进度信息以及第二目标过渡关系的过渡进度信息,控制第二当前动画状态对应的动画片段向第二目标动画状态对应的动画片段进行过渡。
本实现方式中,目标动画状态机为双层结构,其中,包括:时态子状态机、状态监听器、动画控制器、其支持的动画参数集以及动画状态集。时态子状态机处于目标动画状态机的内层,该时态子状态机支持第二动画状态,各第二动画状态之间的过渡关系以及具备过渡关系的各第二动画状态进行过渡的过渡条件。该目标动画状态机支持时态子状态机所支持的第二动画状态,各第二动画状态之间的过渡关系以及具备过渡关系的各第二动画状态进行过渡的过渡条件外,还支持表征各动画片段的第一动画状态,各第一动画状态之间的过渡关系以及具备过渡关系的各第一动画状态进行过渡的过渡条件。
时态子状态机支持的第二动画状态,与目标动画状态机支持的第一动画状态之间存在对应关系,其中,存在对应关系的第二动画状态和第一动画状态具有相同的动画状态标识,也可以具有不同的动画状态标识。时态子状态机支持的各第二动画状态之间的过渡关系,与目标动画状态机支持的各第一动画状态之间的过渡关系,存在对应关系,其中,存在对应关系的各第二动画状态之间的过渡关系,和各第一动画状态之间的过渡关系进行过渡所需的过渡条件相同,其两者的过渡关系标识可以相同也可以不同。
本公开实施例中,目标动画状态机的动画控制在获得动画参数的参数值之后,可以控制时态子状态机检测当前运行的第二动画状态,作为第一当前动画状态。其中,可以是:动画状态机的动画控制将所获得动画参数的参数值输入时态子状态机,时态子状态机判断所支持的第二动画状态中,是否存在处于活跃状态的第二动画状态,当判断存在处于活跃状态的第二动画状态时,确定该存在当前运行的第二动画状态,将该当前运行的第二动画状态,作为第一当前动画状态。当判断不存在处于活跃状态的第二动画状态时,将预先设置的入口动画状态作为当前运行的第二动画状态,进而作为第一当前动画状态。
后续的,动画控制器控制时态子状态机基于所获得的动画参数的参数值,以及第一当前动画状态所具备的过渡关系进行过渡所需的过渡条件,判断第一当前动画状态所具备的过渡关系中,是否存在所需的过渡条件均被满足的第一目标过渡关系;若判断第一当前动画状态所具备的过渡关系中,存在第一目标过渡关系;则可以确定所需的过渡条件均被满足的过渡关系,即目标过渡关系所表征的过渡可以发生;进而,时态子状态机根据第一当前动画状态,确定该目标过渡关系所关联的第一目标动画状态,即该第一目标动画状态为:该时态子状态机所支持的该第一当前动画状态所需过渡至的第二动画状态。
由于时态子状态机内未配置有各第二动画状态与动画片段的对应关系,此时,时态子状态机确定出第一当前动画状态及其运行进度信息、第一目标动画状态及其运行进度信息以及目标过渡关系及其过渡进度信息之后,可以将第一当前动画状态的运行进度信息、第一目标动画状态的运行进度信息以及目标过渡关系的过渡进度信息,通过状态监听器,同步至动画控制器,动画控制器可以继续根据第一当前动画状态,从目标动画状态机所支持的第一动画状态中,确定出当前运行的第一动画状态,作为第二当前动画状态,并且根据第一当前动画状态的运行进度信息,确定出第二当前动画状态的运行进度信息;并根据预存的第一动画状态与动画片段之间的对应关系,确定出当前运行的动画片段;进而,可以根据第二当前动画状态的运行进度信息,确定出当前运行的动画片段中的哪一帧动画。基于第一目标动画状态,从目标动画状态机所支持的第一动画状态中,确定第二目标动画状态,并且根据第一目标动画状态的运行进度信息,确定出第二目标动画状态的运行进度信息,并根据预存的第一动画状态与动画片段之间的对应关系,确定出所需过渡至的动画片段,进而,可以根据第二目标动画状态的运行进度信息,确定出可以过渡至动画片段中的哪一帧动画。
其中,上述根据第一当前动画状态,从目标动画状态机所支持的第一动画状态中,确定出当前运行的第一动画状态,作为第二当前动画状态的过程,可以是:根据第一当前动画状态的动画状态标识,及第一动画状态的动画状态标识和,第二动画状态的动画状态标识之间的对应关系,从目标动画状态机所支持的第一动画状态中,确定出当前运行的第一动画状态,作为第二当前动画状态。上述基于第一目标动画状态,从目标动画状态机所支持的第一动画状态中,确定第二目标动画状态的过程,可以是:根据第一目标动画状态的动画状态标识,及第一动画状态的动画状态标识,和第二动画状态的动画状态标识之间的对应关系,从目标动画状态机所支持的第一动画状态中,确定第二目标动画状态。
在一种情况中,该第一当前动画状态的动画状态标识与该第二当前动画状态的动画状态标识相同,该第一目标动画状态的动画状态标识与该第二目标动画状态的动画状态标识相同,此时,动画控制器在获得第一当前动画状态和第一目标动画状态之后,可以直接基于预存的第一动画状态与动画片段之间的对应关系,确定出当前运行的动画片段以及所需过渡至的动画片段。
本实现方式中,该状态监听器可以实现时态子状态机所支持的第二动画状态,与目标动画状态机所支持的第一动画状态之间的运行进度信息的同步。
上述第二动画状态具有状态时长属性,当时态子状态机检测出第一当前动画状态后,可以检测出该第一当前动画状态的运行进度信息,即可以检测出第一当前动画状态所运行到的状态时间,时态子状态机可以将该第一当前动画状态所运行到的状态时间,通过状态监控器,同步至动画控制器;动画控制器在确定出第二当前动画状态之后,可以基于该第一当前动画状态所运行到的状态时间,以及第二当前动画状态具有的播放速度参数属性,以及第二当前动画状态对应的动画片段的时长,确定出第二当前动画状态的运行进度信息,进而,可以基于该第二当前动画状态的运行进度信息,确定出当前运行到的该第二当前动画状态对应的动画片段的具体位置。
同理的,当时态子状态机确定出第一目标动画状态后,可以检测出该第一目标动画状态的运行进度信息,即可以检测出第一目标动画状态所运行到的状态时间,时态子状态机可以将该第一目标动画状态所运行到的状态时间,通过状态监控器,同步至动画控制器;动画控制器在确定出第二目标动画状态之后,可以基于该第一目标动画状态所运行到的状态时间,以及第二目标动画状态具有的播放速度参数属性,以及第二目标动画状态对应的动画片段的时长,确定出第二目标动画状态的运行进度信息,进而,可以基于该第二目标动画状态的运行进度信息,确定出该第二目标动画状态对应的动画片段的具体位置。
后续的,动画控制器可以基于目标过渡关系中所设置的过渡时长、当前运行到的该第二当前动画状态对应的动画片段的具体位置以及该第二目标动画状态对应的动画片段的具体位置,可以实现对第二当前动画状态对应的动画片段,向第二目标动画状态对应的动画片段进行过渡的控制。
在另一种实现方式中,若时态子状态机判断第一当前动画状态所具备的过渡关系中,不存在所需的过渡条件均被满足的过渡关系,则动画控制器可以直接控制时态子状态机确定第一当前动画状态的运行进度信息;进而通过状态监听器,将第一当前动画状态的运行进度信息,同步至动画控制器,动画控制器基于第一当前动画状态的运行进度信息,从目标动画状态机所支持的第一动画状态中,确定出第一当前动画状态对应的第二当前动画状态的运行进度信息此时,可以确定无需进行动画片段过渡,后续的,直接基于该第二当前动画状态的运行进度信息,控制该第二当前动画状态对应的动画片段的播放。
在一种实现方式中,在动画控制器控制时态子状态机检测当前运行的第二动画状态,作为第一当前动画状态的步骤之前,所述方法还可以包括:
动画控制器控制时态子状态机判断所支持的各第二动画状态所具备的过渡关系中,是否存在处于过渡状态的过渡关系;
若时态子状态机判断所支持的各第二动画状态所具备的过渡关系中,不存在处于过渡状态的过渡关系,控制时态子状态机执行检测当前运行的第二动画状态,作为第一当前动画状态的步骤。
目标动画状态机运行过程中,可能出现所支持的动画状态所具备的过渡关系中,存在处于过渡状态的过渡关系;也可能出现所支持的动画状态所具备的过渡关系中,不存在处于过渡状态的过渡关系,对于上述两种情况,目标动画状态机的动画控制流程,可能会存在不同。在一种情况中,目标动画状态机的动画控制器获得进行动画控制所需的动画参数的参数值之后,可以先控制时态子状态机判断所支持的各第二动画状态所具备的过渡关系中,是否存在处于过渡状态的过渡关系;若时态子状态机判断时态子状态机中各第二动画状态所具备的过渡关系中,不存在处于过渡状态的过渡关系,控制时态子状态机检测当前运行的第二动画状态,作为第一当前动画状态。
其中,时态子状态机可以通过检测所支持的第二动画状态中,处于活跃状态的第二动画状态的数量,来判断所支持的各第二动画状态所具备的过渡关系中,是否存在处于过渡状态的过渡关系。其中,当存在处于过渡状态的过渡关系时,时态子状态机中处于活跃状态的第二动画状态会存在两个,即该存在处于过渡状态的过渡关系所对应的第一过渡起始动画状态和第一过渡目标动画状态。当不存在处于过渡状态的过渡关系时,时态子状态机中处于活跃状态的第二动画状态会存在一个或0个;若存在一个,则可以表征该时态子状态机中存在当前运行的第二动画状态,若存在0个,则可以表征该时态子状态机开始启动,可以将预先设置的入口动画状态,作为当前运行的第二动画状态。
在另一种实现方式中,所述方法还可以包括:
若时态子状态机判断所支持的各第二动画状态所具备的过渡关系中,存在处于过渡状态的第三目标过渡关系,动画控制器控制时态子状态机确定第三目标过渡关系的第一过渡起始动画状态以及第一过渡目标动画状态;并控制时态子状态机通过状态监听器将第一过渡起始动画状态的运行进度信息、第一过渡目标动画状态的运行进度信息以及第三目标过渡关系的过渡进度信息,同步至动画控制器;
动画控制器根据第一过渡起始动画状态的运行进度信息,确定出第二过渡起始动画状态的运行进度信息;根据第一过渡目标动画状态的运行进度信息,确定出第二过渡目标动画状态的运行进度信息;基于第三目标过渡关系的过渡进度信息,确定出第四目标过渡关系的过渡进度信息;基于第二过渡起始动画状态的运行进度信息、第二过渡目标动画状态的运行进度信息以及第四目标过渡关系的过渡进度信息,控制第二过渡起始动画状态对应的动画片段向第二过渡目标动画状态对应的动画片段进行过渡。
本实现方式中,若时态子状态机判断所支持的各第二动画状态所具备的过渡关系中,存在处于过渡状态的第三目标过渡关系,时态子状态机确定第三目标过渡关系的第一过渡起始动画状态以及第一过渡目标动画状态,并确定第一过渡起始动画状态的运行进度信息、第一过渡目标动画状态的运行进度信息以及第三目标过渡关系的过渡进度信息。进而,通过状态监听器,将第一过渡起始动画状态的运行进度信息、第一过渡目标动画状态的运行进度信息以及第三目标过渡关系的过渡进度信息,同步至动画控制器。
动画控制器基于第一过渡起始动画状态,以及存储的第一动画状态和第二动画状态之间的对应关系,从目标动画状态机所支持的第一动画状态中,确定出第二过渡起始动画状态,基于该第一过渡起始动画状态的运行进度信息,确定出第二过渡起始动画状态的运行进度信息。并基于第一目标起始动画状态,以及存储的第一动画状态和第二动画状态之间的对应关系,从目标动画状态机所支持的第一动画状态中,确定出第二目标起始动画状态,基于该第一目标起始动画状态的运行进度信息,确定出第二目标起始动画状态的运行进度信息。
举例而言,可以设置动画状态的完整运行进度为1,此时,第一过渡起始动画状态、第二过渡起始动画状态、第一目标起始动画状态以及第二目标起始动画状态的运行进度信息可以取值为[0,1]。
在一种情况中,动画控制器根据第二过渡起始动画状态的运行进度信息、第二过渡目标动画状态的运行进度信息以及第四目标过渡关系的过渡进度信息,控制第二过渡起始动画状态对应的动画片段向第二过渡目标动画状态对应的动画片段进行过渡的过程,可以是:根据第二过渡起始动画状态的运行进度信息、第二过渡目标动画状态的运行进度信息以及第四目标过渡关系的过渡进度信息,对第二过渡起始动画状态对应的动画片段以及第二过渡目标动画状态对应的动画片段进行采样、融合,得到最终的动画,并输出,以进行显示,实现目标动画状态机对动画的控制。举例而言,当目标动画状态机确定出第四目标过渡关系为:从第二过渡起始动画状态A过渡至第二过渡目标动画状态B,第二过渡起始动画状态A对应的运行进度信息为pa,第二过渡目标动画状态B对应的运行进度信息为pb,第四目标过渡关系的过渡进度信息为进度t,第二过渡起始动画状态A、第二过渡目标动画状态B对应的动画片段分别为动画片段A和动画片段B,则只需以pa进度采样动画片段A,以pb进度采样动画片段B,再以t:(1-t)的比例对采样结果插值即得出最终动画姿态,即最终的动画。
其中,具体的以pa进度采样动画片段A,以pb进度采样动画片段B的具体实现方式,可以参考目前相关的采样方式,上述以t:(1-t)的比例对采样结果插值的具体实现方式,可以参考目前相关的采样结果插值方式。本公开实施例并不对上述采样方式和采样结果插值方式进行限定。
在一种实现方式中,若时态子状态机判断所支持的各第二动画状态所具备的过渡关系中,存在处于过渡状态的第三目标过渡关系,时态子状态机还可以继续判断第三目标过渡关系所表征的过渡是否完成,其中,可以通过检测第三目标过渡关系对应的过渡进度,来确定其所表征的过渡是否完成。一种情况中,当检测得到第三目标过渡关系对应的过渡进度为1时,可以确定第三目标过渡关系所表征的过渡完成,后续的,可以设置所表征的过渡过渡关系对应的过渡目标动画状态为当前运行状态;并结束运行所表征的过渡过渡关系对应的过渡起始动画状态。
相应于上述方法实施例,图3是根据一示例性实施例示出的一种动画状态机的创建装置框图。参照图3,该装置可以包括:获取模块301、转化模块302和创建模块303。
获取模块301,被配置为获取创建目标动画状态机所需的第一语言数据类型的配置信息,其中,配置信息包括:表示目标动画状态机的表征各动画片段的动画状态的第一配置信息,表示各动画状态之间的过渡关系的第二配置信息,表示具备过渡关系的动画状态之间进行过渡的过渡条件的第三配置信息,第三配置信息包括:创建各过渡条件所需的动画参数以及比较信息,第一语言数据类型为:轻量级的数据类型,比较信息包括比较运算符和/或比较阈值;
转化模块302,被配置为按照第一语言数据类型与第二语言数据类型之间的对应关系,将第一配置信息转化为第二语言数据类型的第四配置信息,将第二配置信息转化为第二语言数据类型的第五配置信息,将第三配置信息转化为第二语言数据类型的第六配置信息,第二语言数据类型为机器可识别语言类型;
创建模块303,被配置为通过第四配置信息,创建目标动画状态机所支持的动画状态;
创建模块303,还被配置为通过第五配置信息,建立各动画状态之间的过渡关系;
创建模块303,还被配置为通过第六配置信息包括的创建各过渡条件所需的动画参数以及比较信息,创建具备过渡关系的动画状态之间进行过渡的过渡条件,得到目标动画状态机。
在一种实现方式中,获取模块301,还被配置为获取预先建立的各动画参数的动画参数类型与比较信息之间的对应关系,以及动画参数集;
创建模块303,具体被配置为:针对每一过渡条件,若确定创建过渡条件所需的指定动画参数,属于动画参数集,且基于预先建立的动画参数类型与比较信息之间的对应关系,确定指定动画参数的动画参数类型与创建过渡条件所需的指定比较信息之间具备对应关系,则使用指定动画参数以及指定比较信息,创建过渡条件。
在一种实现方式中,配置信息还包括表示目标动画状态机所支持的动画参数的第七配置信息;
转化模块302,还被配置为按照第一语言数据类型与第二语言数据类型之间的对应关系,将第七配置信息转化为第二语言数据类型的第八数据类型;
创建模块303,还被配置为通过第八数据类型,创建目标动画状态机所支持的动画参数。
在一种实现方式中,该装置还包括:
展示模块,被配置为展示配置界面;
展示模块,还被配置为在监测到针对配置界面的第一操作时,在配置界面展示动画状态图标;
接收模块,被配置为在监测到针对所展示动画状态图标触发的第一配置操作后,接收第一配置操作对应的第一配置信息;
展示模块,还被配置为在监测到针对配置界面的第二操作时,在配置界面所展示的第一动画状态图标与第二动画状态图标之间,展示箭头图标,其中,箭头图标用于表征第一动画状态图标和第二动画状态图标之间的过渡关系;
接收模块,还被配置为在监测到针对所展示箭头图标的第二配置操作时,接收第二配置操作对应的配置操作信息;
生成模块,被配置为基于第一动画状态图标和第二动画状态图标之间的连接关系以及配置操作信息,生成表示第一动画状态和第二动画状态之间的过渡关系的第二配置信息,其中,第一动画状态为第一动画状态图标表示的动画状态,第二动画状态图标为第二动画状态图标表示的动画状态;
展示模块,还被配置为在监测到针对所展示箭头图标的第三操作时,在配置界面展示预先配置的动画参数集;
确定模块,被配置为在监测到针对动画参数集中的目标动画参数的选中操作时,基于目标动画参数,以及预先建立的各动画参数的动画参数类型与比较信息之间的对应关系,确定目标动画参数的动画参数类型对应的比较信息,作为待展示比较信息,待展示比较信息包括运算符和/或比较阈值;
展示模块,还被配置为在配置界面展示待展示比较信息;
生成模块,还被配置为在监测到针对待展示比较信息中的目标比较信息的选中操作时,基于目标动画参数和目标比较信息,生成表示所展示箭头图标对应的过渡关系的过渡条件的第三配置信息;在监测到针对配置界面触发的保存操作后,生成创建目标动画状态机所需的第一语言数据类型的配置信息。
在一种实现方式中,第一配置信息包括:表示各动画状态的动画状态标识、播放速度参数的参数值和播放方式的参数值,以及各动画状态对应的动画片段标识;
创建模块303,具体被配置为:
使用表示各动画状态的动画状态标识、播放速度参数的参数值以及播放方式的参数值,创建目标动画状态机所支持的各第一动画状态;并记录各第一动画状态与动画片段标识的对应关系;
使用表示各动画状态的动画片段标识对应的动画资源的时长以及播放速度参数的参数值,确定各动画状态的状态时长;
使用各动画状态的状态时长以及各第一动画状态,创建目标动画状态机的时态子状态机所支持的各第二动画状态。
在一种实现方式中,第二配置信息包括:表示各过渡关系的过渡关系标识、过渡时长的参数值、过渡时机的参数值、过渡起始动画状态的起始动画状态标识以及过渡目标动画状态的目标状态标识;
创建模块303,具体被配置为:
使用表示各过渡关系的过渡关系标识、过渡时长的参数值、过渡时机的参数值、起始动画状态标识以及目标动画状态标识,建立目标动画状态机所支持的各第一动画状态之间的过渡关系;
基于目标动画状态机所支持的各第一动画状态之间的过渡关系,建立时态子状态机所支持的各第二动画状态之间的过渡关系。
在一种实现方式中,第三配置信息包括创建各过渡条件所需的动画参数以及比较信息;
创建模块303,具体被配置为:
使用创建各过渡条件所需的动画参数以及比较信息,创建目标动画状态机所支持的具备过渡关系的第一动画状态之间进行过渡的过渡条件;
基于目标动画状态机所支持的具备过渡关系的第一动画状态之间进行过渡的过渡条件,创建时态子状态机所支持的具备过渡关系的第二动画状态之间进行过渡的过渡条件。
在一种实现方式中,目标动画状态机还设置有状态监听器以及动画控制器;
状态监听器用于:同步时态子状态机所支持的第二动画状态的运行进度信息,以及时态子状态机所支持的具备过渡关系的第二动画状态之间的过渡进度信息,至动画控制器,以使动画控制器基于时态子状态机所支持的第二动画状态的运行进度信息,以及时态子状态机所支持的具备过渡关系的第二动画状态之间的过渡进度信息,确定目标动画状态机所支持的第一动画状态的运行进度信息以及目标动画状态机所支持的具备过渡关系的第一动画状态之间的过渡进度信息。
在一种实现方式中,第一语言数据类型为Json格式的数据类型。
相应于上述方法实施例,本公开实施例还提供一种动画控制装置,应用于目标动画状态机,目标动画状态机设置有时态子状态机、状态监听器以及动画控制器,目标动画状态机为基于第一语言数据类型的配置信息创建得到的动画状态机,配置信息包括:表示目标动画状态机的表征各动画片段的动画状态的第一配置信息,表示各动画状态之间的过渡关系的第二配置信息,表示具备过渡关系的动画状态之间进行过渡的过渡条件的第三配置信息,第三配置信息包括:创建各过渡条件所需的动画参数以及比较信息,第一语言数据类型为:轻量级的数据类型,比较信息包括比较运算符和/或比较阈值;
目标动画状态机支持表征各动画片段的第一动画状态,各第一动画状态之间的过渡关系以及具备过渡关系的各第一动画状态进行过渡的过渡条件;
其中,第一动画状态基于第四配置信息创建,过渡关系基于第五配置信息建立,过渡条件基于第六配置信息创建;第四配置信息、第五配置信息以及第六配置信息均属于第二语言数据类型,分别由第一语言数据类型的第一配置信息、第二配置信息以及第三配置信息转化得到,第二语言数据类型为机器可识别语言类型;
时态子状态机支持第二动画状态,各第二动画状态之间的过渡关系以及具备过渡关系的各第二动画状态进行过渡的过渡条件。
图4是根据一示例性实施例示出的一种动画控制装置框图。参照图4,该装置可以包括:检测模块401、判断模块402、确定模块403、同步模块404和过渡模块405。
检测模块401,被配置为检测当前运行的第二动画状态,作为第一当前动画状态;
判断模块402,被配置为基于所获得的动画参数的参数值,以及第一当前动画状态所具备的过渡关系进行过渡所需的过渡条件的动画参数和比较信息,判断第一当前动画状态所具备的过渡关系中,是否存在所需的过渡条件均被满足的第一目标过渡关系;
确定模块403,被配置为若存在所需的过渡条件均被满足的第一目标过渡关系,则根据第一当前动画状态,确定第一目标过渡关系所对应的第一目标动画状态;
同步模块404,被配置为通过状态监听器将第一当前动画状态的运行进度信息、第一目标动画状态的运行进度信息以及第一目标过渡关系的过渡进度信息,同步至动画控制器;
确定模块403,还被配置为基于第一当前动画状态的运行进度信息,确定第二当前动画状态的运行进度信息;并基于第一目标动画状态的运行进度信息,确定第二目标动画状态的运行进度信息;基于第一目标过渡关系的过渡进度信息,确定第二目标过渡关系的过渡进度信息;
过渡模块405,被配置为基于第二当前动画状态的运行进度信息、第二目标动画状态的运行进度信息以及第二目标过渡关系的过渡进度信息,控制第二当前动画状态对应的动画片段向第二目标动画状态对应的动画片段进行过渡。
在一种实现方式中,判断模块402,还被配置为判断时态子状态机所支持的各第二动画状态所具备的过渡关系中,是否存在处于过渡状态的过渡关系;
检测模块401,还被配置为若时态子状态机所支持的各第二动画状态所具备的过渡关系中,不存在处于过渡状态的过渡关系,执行检测当前运行的第二动画状态,作为第一当前动画状态的步骤。
在一种实现方式中,确定模块403,还被配置为若时态子状态机所支持的各第二动画状态所具备的过渡关系中,存在处于过渡状态的第三目标过渡关系,确定第三目标过渡关系的第一过渡起始动画状态以及第一过渡目标动画状态;
同步模块404,还被配置为通过状态监听器,将第一过渡起始动画状态的运行进度信息、第一过渡目标动画状态的运行进度信息以及第三目标过渡关系的过渡进度信息,同步至动画控制器;
确定模块403,具体被配置为根据第一过渡起始动画状态的运行进度信息,确定第二过渡起始动画状态的运行进度信息;根据第一过渡目标动画状态的运行进度信息,确定第二过渡目标动画状态的运行进度信息;基于第三目标过渡关系的过渡进度信息,确定第四目标过渡关系的过渡进度信息;
过渡模块405,具体被配置为基于第二过渡起始动画状态的运行进度信息、第二过渡目标动画状态的运行进度信息以及第四目标过渡关系的过渡进度信息,控制第二过渡起始动画状态对应的动画片段向第二过渡目标动画状态对应的动画片段进行过渡。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
相应于上述方法实施例,本公开实施例提供了一种电子设备,如图5所示,包括:处理器510;用于存储处理器可执行指令的存储器510;其中,所述处理器510被配置为执行存储器520上所存放的可执行指令时,实现本公开实施例所提供的任一项所述的动画状态机的创建方法步骤。
相应于上述方法实施例,本公开实施例提供了一种电子设备,如图6所示,包括:处理器610;用于存储处理器可执行指令的存储器610;其中,所述处理器610被配置为执行存储器620上所存放的可执行指令时,实现本公开实施例所提供的任一项所述的动画控制方法步骤。
图7是根据一示例性实施例示出的一种用于动画状态机的创建的装置700的框图。例如,装置700可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图7,装置700可以包括以下一个或多个组件:处理组件702,存储器704,电力组件706,多媒体组件708,音频组件710,输入/输出(I/O)的接口712,传感器组件714,以及通信组件716。
处理组件702通常控制装置700的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件702可以包括一个或多个处理器720来执行指令,以完成上述的动画状态机的创建方法的全部或部分步骤。此外,处理组件702可以包括一个或多个模块,便于处理组件702和其他组件之间的交互。例如,处理组件702可以包括多媒体模块,以方便多媒体组件708和处理组件702之间的交互。
存储器704被配置为存储各种类型的数据以支持在设备700的操作。这些数据的示例包括用于在装置700上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器704可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件706为装置700的各种组件提供电力。电源组件706可以包括电源管理系统,一个或多个电源,及其他与为装置700生成、管理和分配电力相关联的组件。
多媒体组件708包括在所述装置700和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当装置700处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件710被配置为输出和/或输入音频信号。例如,音频组件710包括一个麦克风(MIC),当装置700处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器704或经由通信组件716发送。在一些实施例中,音频组件710还包括一个扬声器,用于输出音频信号。
I/O接口712为处理组件702和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件714包括一个或多个传感器,用于为装置700提供各个方面的状态评估。例如,传感器组件714可以检测到设备700的打开/关闭状态,组件的相对定位,例如所述组件为装置700的显示器和小键盘,传感器组件714还可以检测装置700或装置700一个组件的位置改变,用户与装置700接触的存在或不存在,装置700方位或加速/减速和装置700的温度变化。传感器组件714可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件714还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件716被配置为便于装置700和其他设备之间有线或无线方式的通信。装置700可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。在一个示例性实施例中,通信组件716经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件716还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置700可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述动画状态机的创建方法步骤。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器704,上述指令可由装置700的处理器720执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图8是根据一示例性实施例示出的一种用于动画控制的装置800的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图8,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电力组件806,多媒体组件808,音频组件810,输入/输出(I/O)的接口812,传感器组件814,以及通信组件816。
处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的动画控制方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在设备800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件806为装置800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当装置800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到设备800的打开/关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述动画控制方法步骤。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (10)
1.一种动画状态机创建方法,其特征在于,所述方法包括:
获取创建目标动画状态机所需的第一语言数据类型的配置信息,其中,所述配置信息包括:表示所述目标动画状态机的表征各动画片段的动画状态的第一配置信息,表示各所述动画状态之间的过渡关系的第二配置信息,表示具备过渡关系的动画状态之间进行过渡的过渡条件的第三配置信息,所述第三配置信息包括:创建各过渡条件所需的动画参数以及比较信息,所述第一语言数据类型为:轻量级的数据类型,所述比较信息包括比较运算符和/或比较阈值;
按照所述第一语言数据类型与第二语言数据类型之间的对应关系,将所述第一配置信息转化为所述第二语言数据类型的第四配置信息,将所述第二配置信息转化为所述第二语言数据类型的第五配置信息,将所述第三配置信息转化为所述第二语言数据类型的第六配置信息,所述第二语言数据类型为机器可识别语言类型;
通过所述第四配置信息,创建所述目标动画状态机所支持的动画状态;
通过所述第五配置信息,建立各所述动画状态之间的过渡关系;
通过所述第六配置信息包括的创建各过渡条件所需的动画参数以及所述比较信息,创建具备过渡关系的动画状态之间进行过渡的过渡条件,得到所述目标动画状态机。
2.根据权利要求1所述的方法,其特征在于,在所述通过所述第六配置信息包括的创建各过渡条件所需的动画参数以及比较信息,创建具备过渡关系的动画状态之间进行过渡的过渡条件的步骤之前,所述方法还包括:
获取预先建立的各动画参数的动画参数类型与比较信息之间的对应关系,以及动画参数集;
所述通过所述第六配置信息包括的创建各过渡条件所需的动画参数以及比较信息,创建具备过渡关系的动画状态之间进行过渡的过渡条件的步骤,包括:
针对每一过渡条件,若确定创建所述过渡条件所需的指定动画参数,属于所述动画参数集,且基于预先建立的动画参数类型与比较信息之间的对应关系,确定所述指定动画参数的动画参数类型与创建所述过渡条件所需的指定比较信息之间具备对应关系,则使用所述指定动画参数以及所述指定比较信息,创建所述过渡条件。
3.根据权利要求1所述的方法,其特征在于,所述配置信息还包括表示所述目标动画状态机所支持的动画参数的第七配置信息;
在所述得到所述目标动画状态机的步骤之前,所述方法还包括:
按照第一语言数据类型与第二语言数据类型之间的对应关系,将所述第七配置信息转化为所述第二语言数据类型的第八数据类型;
通过所述第八数据类型,创建所述目标动画状态机所支持的动画参数。
4.一种动画控制方法,其特征在于,应用于目标动画状态机,所述目标动画状态机设置有时态子状态机、状态监听器以及动画控制器,所述目标动画状态机为基于第一语言数据类型的配置信息创建得到的动画状态机,所述配置信息包括:表示所述目标动画状态机的表征各动画片段的动画状态的第一配置信息,表示各所述动画状态之间的过渡关系的第二配置信息,表示具备过渡关系的动画状态之间进行过渡的过渡条件的第三配置信息,所述第三配置信息包括:创建各过渡条件所需的动画参数以及比较信息,所述第一语言数据类型为:轻量级的数据类型,所述比较信息包括比较运算符和/或比较阈值;
所述目标动画状态机支持表征各动画片段的第一动画状态,各第一动画状态之间的过渡关系以及具备过渡关系的各第一动画状态进行过渡的过渡条件;
其中,所述第一动画状态基于第四配置信息创建,所述过渡关系基于第五配置信息建立,所述过渡条件基于第六配置信息创建;所述第四配置信息、所述第五配置信息以及所述第六配置信息均属于第二语言数据类型,分别由第一语言数据类型的第一配置信息、第二配置信息以及第三配置信息转化得到,所述第二语言数据类型为机器可识别语言类型;
所述时态子状态机支持第二动画状态,各第二动画状态之间的过渡关系以及具备过渡关系的各第二动画状态进行过渡的过渡条件;
所述方法包括:
所述动画控制器控制所述时态子状态机检测当前运行的第二动画状态,作为第一当前动画状态;
所述动画控制器控制所述时态子状态机基于所获得的动画参数的参数值,以及所述第一当前动画状态所具备的过渡关系进行过渡所需的过渡条件的动画参数和比较信息,判断所述第一当前动画状态所具备的过渡关系中,是否存在所需的过渡条件均被满足的第一目标过渡关系;
若存在所需的过渡条件均被满足的第一目标过渡关系,则所述动画控制器控制所述时态子状态机根据所述第一当前动画状态,确定所述第一目标过渡关系所对应的第一目标动画状态;
所述动画控制器控制所述时态子状态机通过所述状态监听器将所述第一当前动画状态的运行进度信息、所述第一目标动画状态的运行进度信息以及所述第一目标过渡关系的过渡进度信息,同步至所述动画控制器;
所述动画控制器基于所述第一当前动画状态的运行进度信息,确定所述第二当前动画状态的运行进度信息;并基于所述第一目标动画状态的运行进度信息,确定所述第二目标动画状态的运行进度信息;基于所述第一目标过渡关系的过渡进度信息,确定第二目标过渡关系的过渡进度信息;
所述动画控制器基于所述第二当前动画状态的运行进度信息、所述第二目标动画状态的运行进度信息以及所述第二目标过渡关系的过渡进度信息,控制所述第二当前动画状态对应的动画片段向所述第二目标动画状态对应的动画片段进行过渡。
5.一种动画状态机的创建装置,其特征在于,所述装置包括:
获取模块,被配置为获取创建目标动画状态机所需的第一语言数据类型的配置信息,其中,所述配置信息包括:表示所述目标动画状态机的表征各动画片段的动画状态的第一配置信息,表示各所述动画状态之间的过渡关系的第二配置信息,表示具备过渡关系的动画状态之间进行过渡的过渡条件的第三配置信息,所述第三配置信息包括:创建各过渡条件所需的动画参数以及比较信息,所述第一语言数据类型为:轻量级的数据类型,所述比较信息包括比较运算符和/或比较阈值;
转化模块,被配置为按照所述第一语言数据类型与第二语言数据类型之间的对应关系,将所述第一配置信息转化为所述第二语言数据类型的第四配置信息,将所述第二配置信息转化为所述第二语言数据类型的第五配置信息,将所述第三配置信息转化为所述第二语言数据类型的第六配置信息,所述第二语言数据类型为机器可识别语言类型;
创建模块,被配置为通过所述第四配置信息,创建所述目标动画状态机所支持的动画状态;
所述创建模块,还被配置为通过所述第五配置信息,建立各所述动画状态之间的过渡关系;
所述创建模块,还被配置为通过所述第六配置信息包括的创建各过渡条件所需的动画参数以及所述比较信息,创建具备过渡关系的动画状态之间进行过渡的过渡条件,得到所述目标动画状态机。
6.一种动画控制装置,其特征在于,应用于目标动画状态机,所述目标动画状态机设置有时态子状态机、状态监听器以及动画控制器,所述目标动画状态机为基于第一语言数据类型的配置信息创建得到的动画状态机,所述配置信息包括:表示所述目标动画状态机的表征各动画片段的动画状态的第一配置信息,表示各所述动画状态之间的过渡关系的第二配置信息,表示具备过渡关系的动画状态之间进行过渡的过渡条件的第三配置信息,所述第三配置信息包括:创建各过渡条件所需的动画参数以及比较信息,所述第一语言数据类型为:轻量级的数据类型,所述比较信息包括比较运算符和/或比较阈值;
所述目标动画状态机支持表征各动画片段的第一动画状态,各第一动画状态之间的过渡关系以及具备过渡关系的各第一动画状态进行过渡的过渡条件;
其中,所述第一动画状态基于第四配置信息创建,所述过渡关系基于第五配置信息建立,所述过渡条件基于第六配置信息创建;所述第四配置信息、所述第五配置信息以及所述第六配置信息均属于第二语言数据类型,分别由第一语言数据类型的第一配置信息、第二配置信息以及第三配置信息转化得到,所述第二语言数据类型为机器可识别语言类型;
所述时态子状态机支持第二动画状态,各第二动画状态之间的过渡关系以及具备过渡关系的各第二动画状态进行过渡的过渡条件;
所述装置包括:
检测模块,被配置为检测当前运行的第二动画状态,作为第一当前动画状态;
判断模块,被配置为基于所获得的动画参数的参数值,以及所述第一当前动画状态所具备的过渡关系进行过渡所需的过渡条件的动画参数和比较信息,判断所述第一当前动画状态所具备的过渡关系中,是否存在所需的过渡条件均被满足的第一目标过渡关系;
确定模块,被配置为若存在所需的过渡条件均被满足的第一目标过渡关系,则根据所述第一当前动画状态,确定所述第一目标过渡关系所对应的第一目标动画状态;
同步模块,被配置为通过所述状态监听器将所述第一当前动画状态的运行进度信息、所述第一目标动画状态的运行进度信息以及所述第一目标过渡关系的过渡进度信息,同步至所述动画控制器;
所述确定模块,还被配置为基于所述第一当前动画状态的运行进度信息,确定所述第二当前动画状态的运行进度信息;并基于所述第一目标动画状态的运行进度信息,确定所述第二目标动画状态的运行进度信息;基于所述第一目标过渡关系的过渡进度信息,确定第二目标过渡关系的过渡进度信息;
过渡模块,被配置为基于所述第二当前动画状态的运行进度信息、所述第二目标动画状态的运行进度信息以及所述第二目标过渡关系的过渡进度信息,控制所述第二当前动画状态对应的动画片段向所述第二目标动画状态对应的动画片段进行过渡。
7.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行存储器上所存放的可执行指令时,实现权利要求1-3任一项所述的动画状态机的创建方法步骤。
8.一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行权利要求1-3任一项所述的动画状态机的创建方法步骤。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行存储器上所存放的可执行指令时,实现权利要求4所述的动画控制方法步骤。
10.一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行权利要求4所述的动画控制方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910364450.1A CN111862272B (zh) | 2019-04-30 | 2019-04-30 | 动画状态机创建方法、动画控制方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910364450.1A CN111862272B (zh) | 2019-04-30 | 2019-04-30 | 动画状态机创建方法、动画控制方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111862272A true CN111862272A (zh) | 2020-10-30 |
CN111862272B CN111862272B (zh) | 2023-06-20 |
Family
ID=72965098
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910364450.1A Active CN111862272B (zh) | 2019-04-30 | 2019-04-30 | 动画状态机创建方法、动画控制方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111862272B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112433698A (zh) * | 2020-11-30 | 2021-03-02 | 上海米哈游天命科技有限公司 | 一种资源展示方法、装置、电子设备及存储介质 |
CN113687894A (zh) * | 2021-08-13 | 2021-11-23 | 支付宝(杭州)信息技术有限公司 | 一种针对动画条目的过渡处理方法、装置以及设备 |
WO2022213615A1 (zh) * | 2021-04-06 | 2022-10-13 | 成都完美时空网络技术有限公司 | 一种动画状态机的实现方法、装置、存储介质和电子装置 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101021953A (zh) * | 2007-02-15 | 2007-08-22 | 北京航空航天大学 | 基于高层状态机的三维动画的生成方法 |
CN104076763A (zh) * | 2013-03-12 | 2014-10-01 | 洛克威尔自动控制技术股份有限公司 | 状态机配置器 |
CN105678828A (zh) * | 2015-12-30 | 2016-06-15 | 合一网络技术(北京)有限公司 | 一种创建过渡动画的方法及装置 |
CN106681593A (zh) * | 2016-12-30 | 2017-05-17 | 北京优朋普乐科技有限公司 | 一种用户界面ui控件的显示控制方法及装置 |
CN106887029A (zh) * | 2016-06-14 | 2017-06-23 | 阿里巴巴集团控股有限公司 | 动画控制方法、装置及终端 |
CN107180444A (zh) * | 2017-05-11 | 2017-09-19 | 腾讯科技(深圳)有限公司 | 一种动画生成方法、装置、终端和系统 |
CN108038894A (zh) * | 2017-12-11 | 2018-05-15 | 武汉斗鱼网络科技有限公司 | 动画创建方法、装置、电子设备及计算机可读存储介质 |
CN109086105A (zh) * | 2018-08-14 | 2018-12-25 | 北京奇艺世纪科技有限公司 | 一种页面布局转换方法、装置及电子设备 |
CN109242934A (zh) * | 2017-07-06 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 一种动画代码的生成方法及设备 |
CN109300179A (zh) * | 2018-09-28 | 2019-02-01 | 南京蜜宝信息科技有限公司 | 动画制作方法、装置、终端和介质 |
CN109493120A (zh) * | 2018-10-19 | 2019-03-19 | 微梦创科网络科技(中国)有限公司 | 一种在线编辑视频广告的方法与装置 |
-
2019
- 2019-04-30 CN CN201910364450.1A patent/CN111862272B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101021953A (zh) * | 2007-02-15 | 2007-08-22 | 北京航空航天大学 | 基于高层状态机的三维动画的生成方法 |
CN104076763A (zh) * | 2013-03-12 | 2014-10-01 | 洛克威尔自动控制技术股份有限公司 | 状态机配置器 |
CN105678828A (zh) * | 2015-12-30 | 2016-06-15 | 合一网络技术(北京)有限公司 | 一种创建过渡动画的方法及装置 |
CN106887029A (zh) * | 2016-06-14 | 2017-06-23 | 阿里巴巴集团控股有限公司 | 动画控制方法、装置及终端 |
CN106681593A (zh) * | 2016-12-30 | 2017-05-17 | 北京优朋普乐科技有限公司 | 一种用户界面ui控件的显示控制方法及装置 |
CN107180444A (zh) * | 2017-05-11 | 2017-09-19 | 腾讯科技(深圳)有限公司 | 一种动画生成方法、装置、终端和系统 |
CN109242934A (zh) * | 2017-07-06 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 一种动画代码的生成方法及设备 |
CN108038894A (zh) * | 2017-12-11 | 2018-05-15 | 武汉斗鱼网络科技有限公司 | 动画创建方法、装置、电子设备及计算机可读存储介质 |
CN109086105A (zh) * | 2018-08-14 | 2018-12-25 | 北京奇艺世纪科技有限公司 | 一种页面布局转换方法、装置及电子设备 |
CN109300179A (zh) * | 2018-09-28 | 2019-02-01 | 南京蜜宝信息科技有限公司 | 动画制作方法、装置、终端和介质 |
CN109493120A (zh) * | 2018-10-19 | 2019-03-19 | 微梦创科网络科技(中国)有限公司 | 一种在线编辑视频广告的方法与装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112433698A (zh) * | 2020-11-30 | 2021-03-02 | 上海米哈游天命科技有限公司 | 一种资源展示方法、装置、电子设备及存储介质 |
WO2022213615A1 (zh) * | 2021-04-06 | 2022-10-13 | 成都完美时空网络技术有限公司 | 一种动画状态机的实现方法、装置、存储介质和电子装置 |
CN113687894A (zh) * | 2021-08-13 | 2021-11-23 | 支付宝(杭州)信息技术有限公司 | 一种针对动画条目的过渡处理方法、装置以及设备 |
CN113687894B (zh) * | 2021-08-13 | 2024-02-09 | 支付宝(杭州)信息技术有限公司 | 一种针对动画条目的过渡处理方法、装置以及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111862272B (zh) | 2023-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3817395A1 (en) | Video recording method and apparatus, device, and readable storage medium | |
CN106469054B (zh) | 通知消息控制方法、装置及终端 | |
CN111862272A (zh) | 动画状态机创建方法、动画控制方法、装置、设备及介质 | |
CN109951379B (zh) | 消息处理方法及装置 | |
CN110636382A (zh) | 在视频中添加可视对象的方法、装置、电子设备及存储介质 | |
US20210389856A1 (en) | Method and electronic device for displaying interactive content | |
WO2022142871A1 (zh) | 视频录制方法及装置 | |
CN105930213A (zh) | 应用运行方法及装置 | |
KR20180037235A (ko) | 정보 처리 방법 및 장치 | |
CN111970561B (zh) | 视频封面生成方法、系统、装置、电子设备及存储介质 | |
CN110971974B (zh) | 配置参数创建方法、装置、终端及存储介质 | |
CN113238752A (zh) | 代码生成方法、装置、电子设备及存储介质 | |
CN107272896B (zh) | Vr模式与非vr模式之间切换的方法及装置 | |
CN110908638A (zh) | 一种操作流创建方法及电子设备 | |
CN113010157A (zh) | 一种代码生成方法及装置 | |
CN109976618B (zh) | 新功能的提示方法和提示装置以及计算机可读存储介质 | |
CN108829473B (zh) | 事件响应方法、装置及存储介质 | |
CN113905192B (zh) | 一种字幕编辑方法、装置、电子设备及存储介质 | |
CN111596980B (zh) | 一种信息处理方法及装置 | |
EP2924568A1 (en) | Execution method and device for program string | |
CN112769681B (zh) | 会话显示方法、装置、电子设备及存储介质 | |
CN114247133B (zh) | 一种游戏视频合成方法、装置、电子设备及存储介质 | |
CN111538544B (zh) | 配置数据的显示方法、装置、电子设备及存储介质 | |
CN115937350A (zh) | 图片编辑方法、装置、电子设备及存储介质 | |
CN115291763A (zh) | 组件成分的展示方法、装置、电子设备及存储介质 |
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 |