掌桥专利:专业的专利平台
掌桥专利
首页

动画生成方法及装置

文献发布时间:2023-06-19 13:45:04


动画生成方法及装置

技术领域

本申请涉及计算机技术领域,特别涉及一种动画生成方法及装置。

背景技术

随着动画技术的发展,对于动画场景的设计越来越复杂。目前处理复杂动画场景的时候,动画场景中使用的动画轨道是分散的。需要用户主动对动画轨道进行排版,或者主动对动画轨道进行分组,以此表明这些动画轨道之间功能的关联性。这种情况下,不仅影响动画创建的效率,也影响用户的动画创建体验。

发明内容

有鉴于此,本申请实施例提供了一种动画生成方法及装置、计算设备和计算机可读存储介质,以解决现有技术中存在的技术缺陷。

根据本申请实施例的第一方面,提供了一种动画生成方法,包括:

基于接收的动画创建指令,确定动画对象;

读取针对所述动画对象对应的动画轨道预先创建的动画事件;

基于所述动画对象、所述动画轨道以及所述动画事件创建目标动画文件。

可选地,所述读取针对所述动画对象对应的动画轨道预先创建的动画事件,包括:

读取针对所述动画对象对应的主动画轨道预先创建的基础动画事件,并读取针对目标动画对象关联的子动画轨道预先创建的扩展动画事件,其中,所述目标动画对象为所述动画对象中关联子动画轨道的动画对象;

相应地,所述基于所述动画对象、所述动画轨道以及所述动画事件创建目标动画文件,包括:

基于所述动画对象、所述主动画轨道、所述基础动画事件、所述子动画轨道以及所述扩展动画事件创建目标动画文件。

可选地,在预先配置预设类型的动画资源的情况下,所述基于所述动画对象、所述动画轨道以及所述动画事件创建目标动画文件之前,还包括:

将所述动画对象、所述动画轨道以及所述动画事件作为动画元素;

确定与所述动画元素中至少一个目标动画元素关联的所述预设类型的目标动画资源,并读取所述目标动画资源的资源信息;

按照所述目标动画资源与所述至少一个目标动画元素之间的关联关系,通过所述资源信息对所述至少一个目标动画元素进行更新;

基于更新后的至少一个目标动画元素对所述动画对象、所述动画轨道以及所述动画事件进行更新;

将更新后的动画对象、动画轨道以及动画事件作为所述动画对象、所述动画轨道以及所述动画事件。

可选地,所述至少一个目标动画元素,通过如下方式确定:

在所述动画对象、所述动画轨道以及所述动画事件中选择与所述预设类型的动画资源关联的动画元素作为至少一个目标动画元素。

可选地,在预先配置预制件资源的情况下,所述基于所述动画对象、所述动画轨道以及所述动画事件创建目标动画文件之前,还包括:

将所述动画对象、所述动画轨道以及所述动画事件作为动画元素;

确定与所述动画元素中至少一个预制件动画元素关联的目标预制件资源,并确定所述目标预制件资源的资源路径;

按照所述目标预制件资源与所述至少一个预制件动画元素之间的关联关系,通过所述资源路径对所述至少一个预制件动画元素进行更新;

基于更新后的至少一个预制件动画元素对所述动画对象、所述动画轨道以及所述动画事件进行更新;

将更新后的动画对象、动画轨道以及动画事件作为所述动画对象、所述动画轨道以及所述动画事件。

可选地,所述动画事件中的任意一个动画子事件,通过如下方式查询:

接收用户在事件操作区域内提交的事件查询指令;

通过对所述事件操作区域对应的事件四叉树进行遍历,将所述事件查询指令中的位置信息与所述事件四叉树中节点对应的事件操作子区域进行对比;

其中,所述事件操作子区域为所述动画事件中动画子事件对应的操作子区域的位置;

根据对比结果在所述动画子事件中确定目标动画子事件并展示。

可选地,所述事件四叉树,通过如下方式进行更新:

在创建所述动画事件中任意一个动画子事件之后,确定所述任意一个动画子事件的事件操作子区域在所述事件四叉树中对应的目标节点;

根据所述任意一个动画子事件的事件操作子区域对所述目标节点进行更新,获得更新后的事件四叉树。

可选地,所述动画对象中的任意一个动画对象,通过如下方式创建:

响应于接收的对象创建指令,展示动画对象类型列表,其中,所述动画对象类型列表中包括并不限于导演类型、摄像机类型、演员类型、特效类型以及灯光类型;

基于在所述动画对象类型列表中选择的目标动画对象类型创建所述目标动画对象类型对应的动画对象。

可选地,所述子动画轨道中任意一个子动画轨道,通过如下方式创建:

接收针对所述动画对象中任意一个动画对象的子轨道创建指令;

响应于所述子轨道创建指令,展示与所述任意一个动画对象的对象属性关联的子轨道类型列表;

基于在所述子轨道类型列表中选择的目标子轨道类型创建所述目标子轨道类型对应的子动画轨道。

可选地,所述目标动画对象,通过如下方式进行确定:

从所述动画对象中选择关联子动画轨道的动画对象确定为目标动画对象。

可选地,所述基础动画事件中任意一个基础动画子事件,通过如下方式创建:

针对所述动画对象中任意一个动画对象,接收针对所述任意一个动画对象对应的主动画轨道的基础子事件创建指令;

响应于所述基础子事件创建指令,展示所述任意一个动画对象对应的主动画轨道对应的基础子事件类型列表;

基于在所述基础子事件类型列表中选择的目标基础子事件类型创建所述目标基础子事件类型对应的基础动画子事件。

可选地,所述扩展动画事件中任意一个扩展动画子事件,通过如下方式创建:

针对所述目标动画对象中任意一个目标动画对象,接收针对所述任意一个目标动画对象关联的子动画轨道的扩展子事件创建指令;

响应于所述扩展子事件创建指令,展示所述任意一个目标动画对象关联的子动画轨道的对应的扩展子事件类型列表;

基于在所述扩展子事件类型列表中选择的目标扩展子事件类型创建所述目标扩展子事件类型对应的扩展动画子事件。

根据本申请实施例的第二方面,提供了一种动画生成装置,包括:

确定模块,被配置为基于接收的动画创建指令,确定动画对象;

读取模块,被配置为读取针对所述动画对象对应的动画轨道预先创建的动画事件;

创建模块,被配置为基于所述动画对象、所述动画轨道以及所述动画事件创建目标动画文件。

根据本申请实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述计算机指令时实现所述动画生成方法的步骤。

根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,所述计算机指令被处理器执行时实现所述动画生成方法的步骤。

本申请实施例提供的动画生成方法,基于接收的动画创建指令,确定已创建的动画对象,并读取针对动画对象对应的动画轨道预先创建的动画事件;再按照动画对象、动画轨道、动画事件的层级结构,基于所述动画对象、所述动画轨道以及所述动画事件创建目标动画文件,实现了通过划分动画层级使动画创建过程更加直观,并且可解释性更强,也提高了动画的创建效率。

附图说明

图1是本申请实施例提供的计算设备的结构框图;

图2是本申请实施例提供的动画生成方法的流程图;

图3是本申请实施例提供的动画生成方法中动画编辑器的界面示意图;

图4是本申请实施例提供的动画生成方法中事件操作区域的示意图;

图5是本申请实施例提供的应用于动画编辑器的动画生成方法的处理流程图;

图6是本申请实施例提供的动画生成装置的结构示意图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。

在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

在本申请中,提供了一种动画生成方法及装置、计算设备和计算机可读存储介质,在下面的实施例中逐一进行详细说明。

图1示出了根据本申请一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110和处理器120。处理器120与存储器110通过总线130相连接,数据库150用于保存数据。

计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或多个网络160通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。

在本申请的一个实施例中,计算设备100的上述部件以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。

计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备100还可以是移动式或静止式的服务器。

其中,处理器120可以执行图2所示动画生成方法中的步骤。图2示出了根据本申请一实施例提供的动画生成方法的流程图,具体包括以下步骤:

步骤202:基于接收的动画创建指令,确定动画对象。

其中,动画创建指令,是指创建可播放的动画文件的指令;动画对象,可以理解为动画人物、摄像机、动画道具等动画资源。实际应用中,在动画编辑器接收到该动画创建指令的情况下,需要确定用于创建动画文件的动画数据,再基于这些动画数据创建动画文件。其中,动画编辑器可以是动画执行的动画编辑器,也可以是作为其他动画的动画编辑器中的插件编辑器,在此不做限制。

具体实施时,为了优化用户对动画的创建过程,并便于用户对动画中的动画元素(包括动画对象)进行管理,可以先创建动画对象,再基于创建的动画对象创建对动画对象施加影响的其他动画元素,以便基于动画对象对各种动画元素进行分类管理。

因此,如何创建动画对象对动画创建过程的影响较为重大,如果创建的动画对象可以很好地对动画元素进行分类,并满足创建需求,则可以大大提升用户创建动画的效率,具体实施时,可以将动画创建过程中主要或经常用到的一些动画资源按照功能或类别先进行类型划分,再基于划分的动画对象类型创建动画对象,本申请实施例,任意一个动画对象,通过如下方式创建:

响应于接收的对象创建指令,展示动画对象类型列表,其中,所述动画对象类型列表中包括并不限于导演类型、摄像机类型、演员类型、特效类型以及灯光类型;

基于在所述动画对象类型列表中选择的目标动画对象类型创建所述目标动画对象类型对应的动画对象。

其中,对象创建指令,是指创建动画对象的指令,实际应用中,在用户提交对象创建指令之后,向用户展示可以创建的动画对象类型,这些动画对象类型以动画对象列表的形式进行展示,具体的,动画对象类型列表中包括并不限于导演类型、摄像机类型、演员类型、特效类型以及灯光类型等动画对象类型。进一步的,导演类型的动画对象用于对整个动画进行控制,比如对动画中的镜头切换,动画播放速度等进行控制;摄像机类型的动画对象,决定播放动画的观察视角和显示范围;演员类型的动画对象是指动画中的虚拟物体;特效类型的动画对象决定动画中的特效效果;灯光类型的动画对象决定动画中的灯光效果;此外,动画对象类型列表中还可以包括用以场景设置的场景类型的动画对象类型等,在此不做限制。

基于此,用户可以在对动画对象类型列表中选择其想创建的动画对象类型(即目标动画对象类型),之后即可基于该目标动画对象类型创建动画对象。

具体实施时,在动画编辑器中抽象出了以上几种主要的动画对象类型,在动画编辑过程中可以根据这几种动画对象类型创建动画场景需求需要的动画对象。

比如:接收用户U在动画编辑器中提交的对象创建指令,响应于该对象创建指令展示在动画编辑器中预先设置的动画对象类型列表,该动画对象类型列表中包括:导演类型、摄像机类型、演员类型、特效类型以及灯光类型,接收用户U在动画对象类型列表中选择的演员类型作为目标动画对象类型,并创建演员类型的动画对象:演员1。

综上,响应于接收的对象创建指令,展示动画对象类型列表,并基于在动画对象类型列表中选择的目标动画对象类型创建目标动画对象类型对应的动画对象,实现了基于预先划分的动画对象类型,创建对应的动画对象,实现了对动画对象的类型划分,并实现了在多种动画对象类型中灵活地选择所需要的创建动画对象类型进行动画对象的创建,增加了创建动画对象的灵活性。

步骤204:读取针对所述动画对象对应的动画轨道预先创建的动画事件。具体的,在上述确定动画对象的基础上,由于在动画编辑期间为了避免动画对象之间彼此影响以及由于动画元素的管理不当增加动画创建的难度,动画编辑器在动画对象的基础上对其他动画元素进行了层级管理,因此在创建动画文件时,可以按照这些层级关系读取对应的动画元素,再进行动画文件的创建。

其中,动画轨道是指针对动画对象设置的时间轴,该动画轨道可以用以对动画对象的动画事件进行管理。其中,动画事件是指预先配置的用以使动画对象在特定时刻执行特定的动画功能的集合。

具体实施时,由于动画事件集合中动画子事件的类型是多种多样的,这些动画子事件交织在一起,不利于进行动画创建以及对动画元素的管理,为了进一步提高动画创建的效率以及动画元素的管理便利程度,可以进一步对这些动画子事件进行分类管理,本申请实施例,具体采用如下方式实现:读取针对所述动画对象对应的主动画轨道预先创建的基础动画事件,并读取针对目标动画对象关联的子动画轨道预先创建的扩展动画事件,其中,所述目标动画对象为所述动画对象中关联子动画轨道的动画对象;具体的,将动画轨道分为主动画轨道以及子动画轨道两种轨道类型,并将动画事件分为基础动画事件以及扩展动画事件两种事件类型集合,其中,基础动画事件中任意一个基础动画子事件都是一个动画子事件,并且扩展动画事件中任意一个扩展动画子事件也是一个动画子事件。

实际应用中,将每个动画对象对应主动画轨道,该主动画轨道上可以创建或配置若干个基础动画子事件,这些基础动画子事件组成基础动画事件。此外,在基础动画事件不能满足对动画对象的配置需求时,还可以为动画对象创建或添加关联的至少一个子动画轨道,以便在每个子动画轨道上创建或配置对应的至少一个扩展动画子事件,这些子扩展动画子事件组成扩展动画事件。

其中,主动画轨道,是指针对动画对象设置的用于进行基础动画事件管理的基础时间轴,用以对动画对象在动画播放期间的基础动画事件进行时间管理。相应地,基础动画事件中的基础动画子事件用于使动画对象执行比如绑定物体、绑定演员、跟随等基础动画功能。子动画轨道,是指针对动画对象设置的用于进行扩展动画事件管理的扩展时间轴,用以对动画对象在动画播放期间的扩展动画事件进行时间管理。该子动画轨道的数量可以是一个,也可以是多个,在此不做限制。相应地,扩展动画事件中的扩展动画子事件用于使动画对象执行比如动作、骨骼动作、面部动画等扩展动画功能。实际应用中,哪些动画子事件属于基础动画子事件,以及哪些动画子事件属于扩展子事件,是根据动画子事件的类型预先在动画编辑器中设置的。

具体实施时,考虑到扩展动画子事件的类型也多种多样的,为了避免将多种类型的扩展动画子事件在一个子动画轨道上进行管理,从而影响动画的编辑效率,可以预先根据每种动画对象类型对应的扩展动画子事件的类型先设置子动画轨道类型,再根据子动画轨道类型创建子动画轨道,本申请实施例,任意一个子动画轨道,通过如下方式创建:

接收针对所述动画对象中任意一个动画对象的子轨道创建指令;

响应于所述子轨道创建指令,展示与所述任意一个动画对象的对象属性关联的子轨道类型列表;

基于在所述子轨道类型列表中选择的目标子轨道类型创建所述目标子轨道类型对应的子动画轨道。

其中,子轨道创建指令,是指创建子动画轨道的指令。实际应用中,由于子动画轨道是依赖于动画对象而存在,用以对动画对象的扩展动画事件进行管理。因此,可以针对配置创建扩展动画子事件的动画对象提交子轨道创建指令。而创建子动画轨道的目的,是在其上创建扩展动画子事件,并通过子动画轨道对扩展动画子事件进行管理。

进一步的,由于每种动画对象都可以对应多种类型的动画实现,而这些不同种类的动画实现通常与动画对象的对象属性(比如功能、对象部位等)有关。因此,可以预先根据每种动画对象的对象属性预先划分多种子动画轨道类型,将这些子动画轨道类型形成子动画轨道列表。以便在不同类型的子动画轨道上对相应类型的扩展动画事件进行管理。在针对任意一个动画对象创建子动画轨道时,即可展示任意一个动画对象的对象属性关联的子动画轨道列表。再基于用户在所述子轨道类型列表中选择的目标子轨道类型,创建目标子轨道类型对应的子动画轨道,并将创建的子动画轨道作为上述任意一个动画对象关联的子动画轨道。

沿用上例:在上述创建动画对象:演员1的基础上,接收用户U在动画编辑器中针对演员1提交的子轨道创建指令,响应于该子轨道创建指令展示在动画编辑器中预先设置与演员1的功能以及部位关联的子动画轨道类型列表,该子动画轨道类型列表中包括:动作类型、面部动作类型等。接收用户U在子动画轨道类型列表中选择的动作类型作为目标子动画轨道类型,并创建动作类型的子动画轨道:动作轨道,并将创建的动作轨道作为动画对象演员关联的子动画轨道。

综上,通过接收针对多个动画对象中任意一个动画对象的子轨道创建指令并响应于所述子轨道创建指令,展示与该任意一个动画对象的对象属性关联的子轨道类型列表,再基于在子轨道类型列表中选择的目标子轨道类型创建子动画轨道。实现了对子动画轨道的类型划分,并实现了在多种子动画轨道类型中灵活地选择所需要的子动画轨道类型进行子动画轨道的创建,增加了创建子动画轨道的灵活性。

实际应用中,由于动画对象中可能存在一些动画对象关联了子动画轨道,有一些动画对象并未创建关联的子动画轨道,因此为了读取子动画轨道上预先创建的扩展动画事件,需要先确定关联子动画轨道的动画对象(即目标动画对象),本申请实施例,从所述动画对象中选择关联子动画轨道的动画对象确定为目标动画对象,以便对这部分的动画对象读取子动画轨道相关的数据进行动画创建。

具体实施时,在创建动画对象的基础上,由于可以为每个动画对象实现不同的基础功能,为了避免不同基础功能之间的相互影响,可以预先将动画对象的不同的基础功能划分为不同基础子事件类型,再按照基础子事件类型创建基础动画子事件,本申请实施例,任意一个基础动画子事件,通过如下方式创建:

针对所述动画对象中任意一个动画对象,接收针对所述任意一个动画对象对应的主动画轨道的基础子事件创建指令;

响应于所述基础子事件创建指令,展示所述任意一个动画对象对应的主动画轨道对应的基础子事件类型列表;

基于在所述基础子事件类型列表中选择的目标基础子事件类型创建所述目标基础子事件类型对应的基础动画子事件。

其中,基础子事件添加指令,是指添加基础动画子事件的指令。实际应用中,由于任意一个基础动画子事件具有事件执行的时间区间,该时间区间由事件起始时间以及事件终止时间构成。该时间区间可以在动画时间轴上被体现出来。并且基础动画子事件是用以实现动画对象的基础功能,因此基础动画子事件是在动画对象对应的基础时间轴(主动画轨道)上进行创建。也因此在创建基础动画子事件时,需要针对基础时间轴(主动画轨道)提交基础子事件创建指令。

进一步的,由于每种动画对象对应的基础动画子事件的事件类型是多种多样的,而不同类型的基础动画子事件可能需要设置不同的属性。为了避免不同类型的基础动画子事件之间的相互影响,需要根据动画对象将基础动画子事件划分至少一个基础子事件类型,并将这些基础子事件类型形成基础子事件类型列表。则在针对任意一个动画对象对应的主动画轨道上创建基础动画子事件时,即可展示动画对象对应的主动画轨道对应的基础子事件类型列表。再基于用户在基础子事件类型列表中选择的目标基础子事件类型,创建目标基础子事件类型对应的基础动画子事件。需要说明的是,针对主动画轨道可以创建至少一个基础动画子事件,将这些基础动画子事件的集合称为基础动画事件。

沿用上例:在上述创建动画对象:演员1的基础上,接收用户U在动画编辑器中针对演员1对应的主动画轨道提交的基础子事件创建指令,响应于该基础子事件创建指令展示在动画编辑器中预先设置与演员1的主动画轨道对应的基础子事件类型列表,该基础子事件类型列表中包括:绑定物体类型、绑定演员类型、跟随类型。接收用户U在基础子事件类型列表中选择的绑定物体类型作为目标基础子事件类型,并创建绑定物体类型的基础动画子事件:绑定物体A,具体的,绑定物体A表示在事件对应的时间区间内,场景中会显示物体A。

综上,通过针对多个动画对象中任意一个动画对象,接收针对任意一个动画对象对应的主动画轨道的基础子事件创建指令,并响应于该基础子事件创建指令,通过在基础子事件类型列表中选择的目标基础子事件类型创建所述对应的基础动画子事件。实现了对动画对象的基础动画子事件的类型划分,并实现了在多种基础子事件类型中灵活地选择所需要的基础子事件类型进行基础动画子事件的创建,增加了创建基础动画子事件的灵活性。

类似的,在创建动画对象的基础上,由于可以为每个动画对象实现不同的扩展功能,为了避免不同扩展功能之间的相互影响,可以预先将动画对象的不同的扩展功能划分为不同的扩展子事件类型,再按照扩展子事件类型创建扩展动画子事件,本申请实施例,任意一个扩展动画子事件,通过如下方式创建:

针对所述目标动画对象中任意一个目标动画对象,接收针对所述任意一个目标动画对象关联的子动画轨道的扩展子事件创建指令;

响应于所述扩展子事件创建指令,展示所述任意一个目标动画对象关联的子动画轨道的对应的扩展子事件类型列表;

基于在所述扩展子事件类型列表中选择的目标扩展子事件类型创建所述目标扩展子事件类型对应的扩展动画子事件。

其中,扩展子事件创建指令,是指添加扩展动画子事件的指令。实际应用中,由于任意一个扩展动画子事件都具有事件执行的时间区间,该时间区间也是由事件起始时间以及事件终止时间构成的。该时间区间也需要在动画时间轴上被体现出来。并且扩展动画子事件是用以实现动画对象的扩展功能,因此扩展动画子事件是在动画对象关联的扩展时间轴(即子动画轨道)上进行创建。也因此,在创建扩展动画子事件时,需要针对子动画轨道提交扩展子事件创建指令。

进一步的,由于扩展动画子事件的事件类型是多种多样的,而不同类型的扩展动画子事件可能需要设置不同的属性。为了避免不同类型的扩展动画子事件之间的相互影响,需要根据动画对象将扩展动画子事件划分至少一个扩展子事件类型,并将这些扩展子事件类型形成扩展子事件类型列表。则在针对任意一个动画对象关联的子动画轨道上创建扩展动画子事件时,即可展示动画对象关联的子动画轨道对应的扩展子事件类型列表。再基于用户在扩展子事件类型列表中选择的目标扩展子事件类型,创建目标扩展子事件类型对应的扩展动画子事件。需要说明的是,针对子动画轨道也可以创建至少一个扩展动画子事件,将这些扩展动画子事件的集合称为扩展动画事件。

沿用上例:在上述创建动画对象:演员1的基础上,接收用户U在动画编辑器中针对演员1关联的动作轨道提交的扩展子事件创建指令,响应于该扩展子事件创建指令展示在动画编辑器中预先设置与演员1的动作轨道对应的扩展子事件类型列表,该扩展子事件类型列表中包括:腿部动作类型、手部动作类型、头部动作类型。接收用户U在扩展子事件类型列表中选择的腿部动作类型作为目标扩展子事件类型,并创建腿部动作类型的扩展动画子事件:踢腿子事件。该踢腿子事件表示在该事件对应的时间区间内,控制演员1进行踢腿动作。

具体的如图3所示的动画编辑器中已经创建了动画对象:演员1,该演员1的动画形象在动画编辑器的动画展示区域进行了展示。此外,演员1存在对应的主动画轨道以及子动画轨道,并且针对演员1对应的主动画轨道创建了基础动画子事件:绑定物体A,针对演员1关联的子动画轨道创建了扩展动画子事件:踢腿子事件。

综上,通过针对多个目标动画对象中任意一个目标动画对象,接收针对任意一个目标动画对象关联的子动画轨道的扩展子事件创建指令,并响应于该扩展子事件创建指令,通过在所述扩展子事件类型列表中选择的目标扩展子事件类型创建对应的扩展动画子事件。实现了对动画对象的扩展动画子事件的类型划分,并实现了在多种扩展子事件类型中灵活地选择所需要的扩展子事件类型进行扩展动画子事件的创建,增加了创建扩展动画子事件的灵活性。

实际应用中,可能需要对创建的动画子事件(基础动画子事件或扩展动画子事件)进行查看。在动画编辑器中编辑动画子事件时,若线性遍历每个动画子事件的事件操作子区域,以确定与用户点击匹配的动画子事件,耗时较长。因此可以采用四叉树的形式遍历每个动画子事件的事件操作子区域,本申请实施例,还包括:

接收用户在事件操作区域内提交的事件查询指令;

通过对所述事件操作区域对应的事件四叉树进行遍历,将所述事件查询指令中的位置信息与所述事件四叉树中节点对应的事件操作子区域进行对比;

其中,所述事件操作子区域为所述动画事件中动画子事件对应的操作子区域的位置;

根据对比结果在所述动画子事件中确定目标动画子事件并展示。

其中,事件操作区域,是指动画编辑器中包含的可以对至少一个动画子事件进行操作的界面区域。事件查询指令,是指对任意一个动画子事件(基础动画子事件或扩展动画子事件)进行查询的指令;每个事件操作子区域,是指已创建的动画子事件中任意一个子事件,在事件操作区域对应的操作子区域;该事件操作子区域也可以理解为事件包围盒。

实际应用中,为了对已经创建的动画子事件进行查询,通常将已经创建的动画子事件以事件操作子区域的方式映射在动画编辑器的编辑界面中,以便用户通过在任意一个动画子事件对应的事件操作子区域内进行操作提交事件查询指令时,对该任意一个动画子事件进行查看。但由于是根据用户操作位置确定用户想进行查看的动画子事件。因此,需要将用户的事件查询指令中携带的位置信息,与事件操作区域中包含的动画子事件的事件操作子区域进行对比,以确定与该位置信息匹配的事件操作子区域。并将匹配的事件操作子区域对应的动画子事件作为事件查询指令对应的动画子事件。

具体实施时,可以通过遍历事件四叉树,该事件四叉树基于已创建的动画子事件对应的事件操作子区域所形成的,即通过遍历事件操作区域对应的事件四叉树,将事件查询指令中携带的位置信息(比如通过点击提交的事件查询指令中携带的点击位置信息)与事件四叉树中各个叶子节点对应的事件操作子区域进行对比,确定该位置信息对应的事件操作子区域。并将该对应的事件操作子区域对应的动画子事件作为目标动画子事件,并展示该目标动画子事件(目标基础动画子事件或目标扩展动画子事件)。具体的,可以通过展示该目标动画子事件的事件面板对目标动画子事件进行展示。

进一步的,用户还可以在展示出的事件面板中对查询到的动画子事件进行编辑。编辑完成后,动画编辑器基于在事件面板中的事件信息对查询到的动画子事件进行更新。

沿用上例,假设已经针对演员1创建了两个基础动画子事件以及三个扩展动画子事件,这两个基础动画子事件分别为:绑定物体A以及跟随物体B;三个扩展动画子事件分别为:踢腿子事件、点头子事件以及摆手子事件。具体如图4所示的动画编辑器中的事件操作区域内,其中,绑定物体A对应事件操作子区域cr1,跟随物体B对应事件操作子区域cr2;踢腿子事件对应事件操作子区域cr3,点头子事件对应事件操作子区域cr4,摆手子事件对应事件操作子区域cr5。这些动画子事件以事件操作子区域的方式展示于动画编辑器的事件操作区域内。接收用户U在事件操作区域内提交的事件查询指令,通过对预先针对事件操作区域以及其中5个动画子事件的事件操作子区域创建的事件四叉树进行遍历,将根据该事件查询指令中携带的位置信息d1与事件四叉树的节点对应的这5个事件操作子区域进行对比,确定该位置信息d1与事件操作子区域cr4匹配,则展示事件操作子区域cr4对应的点头子事件对应的事件面板。

综上,通过对四叉树进行遍历的方式查询待查看的动画子事件,提高了查询事件查询指令对应的动画子事件的查询效率。

具体实施时,事件四叉树中需要包含每个已创建的动画子事件,为了避免每次创建一个新的动画子事件之后,都需要重新构建事件四叉树,可以每次创建一个新的动画子事件,基于新创建的动画子事件的事件操作子区域对已创建的事件四叉树进行更新即可,本申请实施例,所述事件四叉树通过如下方式进行更新:

在创建所述动画事件中任意一个动画子事件之后,确定所述任意一个动画子事件的事件操作子区域在所述事件四叉树中对应的目标节点;

根据所述任意一个动画子事件的事件操作子区域对所述目标节点进行更新,获得更新后的事件四叉树。

实际应用中,由于事件四叉树中每个叶子节点都对应事件操作区域内的一片节点区域,并且每个叶子节点对应在这片节点区域内包含的事件操作子区域。因此,需要确定新创建的动画子事件(基础动画子事件或扩展动画子事件)的操作事件子区域位置所在的节点区域,再确定所在的节点区域在事件四叉树中对应的目标节点。并通过将新创建的动画子事件的操作事件子区域位置添加至该目标节点进行更新的方式,对事件四叉树进行更新,获得更新后的事件四叉树。比如目标节点原本对应了1个事件操作子区域,通过新创建的动画子事件的操作事件子区域对目标节点进行更新后,目标节点对应了2个事件操作子区域。

沿用上例,假设事件四叉树中有4个叶子节点,这4个叶子节点分别为叶子节点A,叶子节点B,叶子节点C以及叶子节点D,其中,叶子节点A对应事件操作子区域cr1,叶子节点B对应事件操作子区域cr3,叶子节点C对应事件操作子区域cr2,叶子节点D对应事件操作子区域cr4。在创建了扩展动画子事件:摆手子事件之后,确定摆手子事件的事件操作子区域cr5在叶子节点C所对应的节点区域内,则将叶子节点C作为目标节点。该叶子节点C原本对应了跟随物体B的事件操作子区域cr2,则通过将事件操作子区域r5添加至叶子节点C方式对叶子节点C进行更新,更新后的叶子节点C对应了跟随物体B的事件操作子区域cr2以及摆手子事件的事件操作子区域cr5。进一步的,通过对事件四叉树中的叶子节点C进行更新,获得了更新后的事件四叉树。

综上,在首次创建事件四叉树之后,只需要在每次创建完动画子事件之后,通过新创建的动画子事件对应的事件操作子区域对事件四叉树进行更新即可,间接地提高了事件查看的效率。

步骤206:基于所述动画对象、所述动画轨道、所述动画事件创建目标动画文件。

具体的,在上述读取动画事件的基础上,为了使创建的目标动画文件中包含全部的动画元素,则基于动画对象、动画轨道、动画事件这些动画元素,创建可播放动画(即目标动画文件)。

具体实施时,可以先创建一个空白的初始动画文件,再从内存中读取动画对象、动画轨道、动画事件对应的动画数据,并将这些动画数据按照预设格式添加至该初始动画文件,生成目标动画文件。进一步的,还可以通过调用播放接口对该目标动画文件进行播放处理,以播放创建的目标动画。

在上述动画轨道分为主动画轨道以及子动画轨道,并且动画事件分为基础动画事件以及扩展动画事件的基础上,为了使创建的目标动画文件中包括动画编辑过程中创建的全部动画元素,本申请实施例,基于所述动画对象、所述主动画轨道、所述基础动画事件、所述子动画轨道以及所述扩展动画事件创建目标动画文件。使创建的目标动画文件中层级分明,可解释性更强。具体实施时,在通过动画编辑器对动画进行编辑创建的过程中,可能会引用动画编辑器中一些预设类型的动画资源,比如:预先导入或配置于动画编辑器的材质资源、贴图资源、动画剪辑资源等,如果在创建动画文件的过程中对这些资源直接只保存引用关系,则不利于对动画文件的移植,因此,可以直接在动画文件中保存这些被引用的原始资源的资源信息,本申请实施例,具体通过如下方式实现:

将所述动画对象、所述动画轨道以及所述动画事件作为动画元素;

确定与所述动画元素中至少一个目标动画元素关联的所述预设类型的目标动画资源,并读取所述目标动画资源的资源信息;

按照所述目标动画资源与所述至少一个目标动画元素之间的关联关系,通过所述资源信息对所述至少一个目标动画元素进行更新;

基于更新后的至少一个目标动画元素对所述动画对象、所述动画轨道以及所述动画事件进行更新;

将更新后的动画对象、动画轨道以及动画事件作为所述动画对象、所述动画轨道以及所述动画事件。

其中,预设类型,是指预先设置的动画资源的资源类型。实际应用中,可以将相对于动画编辑器较为独立的资源类型设置为预设类型,在这种情况下,读取其中的资源信息也较为简单,因此,可以直接读取这些动画资源的资源信息。

具体实施时,将创建的动画对象、动画轨道以及动画事件作为动画元素,这些动画元素中每个动画元素中都有可能引用动画资源,因此需要通过:在所述动画对象、所述动画轨道以及所述动画事件中选择与预设类型的动画资源关联的动画元素作为至少一个目标动画元素。以便读取这些目标动画元素关联(引用或依赖)的预设类型的动画资源(即目标动画资源),并读取这些目标动画资源的资源信息。

再按照目标动画资源与至少一个目标动画元素之间的关联关系(引用关系或依赖关系),通过读取的资源信息对其具有关联关系的目标动画元素进行更新。再基于更新的至少一个目标动画元素对所述动画对象、所述动画轨道以及所述动画事件中与其对应的动画元素进行更新,获得更新后的动画元素,以便基于更新后的这些动画元素创建目标动画文件。

沿用上例,接收用户U提交的动画创建指令,响应于该动画创建指令,确定在动画编辑器中创建的所有的动画对象,这些动画对象包括:演员1、导演1以及摄像机1,并读取针对这三个动画对象对应的主动画轨道预先创建的基础动画事件,基础动画事件中包括:绑定物体A(基础动画子事件)。并在这三个的动画对象中选择关联子动画轨道的动画对象:演员1,将该动画对象:演员1作为目标动画对象。并读取目标动画对象演员1关联的动作轨道(子动画轨道)预先创建的扩展动画事件,该扩展动画事件中包括:踢腿子事件(扩展动画子事件)。

将三个动画对象、这三个动画对象对应的主动画轨道、演员1关联的动作轨道、绑定物体A以及踢腿子事件作为动画元素,在这些动画元素中预先配置预设类型为:贴图类型以及材质类型的动画资源的情况下,确定这些动画元素中关联预设类型的动画资源的目标动画元素为:绑定物体A。并确定该绑定物体A中配置的(关联的)预设类型的目标动画资源为:文件A,并读取文件A中包含的文件信息。基于读取的文件信息对绑定物体A进行更新,获得更新后的绑定物体A。

综上,通过读取与目标动画元素关联的目标动画资源的资源信息,并基于资源信息更新目标动画元素,以便创建的目标动画文件中直接包含动画资源的资源信息,便于对目标动画文件进行移植。

此外,动画元素中还存在关联预制件资源的动画元素,这部分预制件资源由于其本身是通过动画编辑器进行预先创建的,存储的信息需要依赖动画编辑器进行解析,因此针对这种预制件资源,为了避免对其解析花费太长的时间和较多的资源,可以保存这些预制件资源的资源路径,本申请实施例,具体通过如下方式进行实现:

将所述动画对象、所述动画轨道以及所述动画事件作为动画元素;

确定与所述动画元素中至少一个预制件动画元素关联的目标预制件资源,并确定所述目标预制件资源的资源路径;

按照所述目标预制件资源与所述至少一个预制件动画元素之间的关联关系,通过所述资源路径对所述至少一个预制件动画元素进行更新;

基于更新后的至少一个预制件动画元素对所述动画对象、所述动画轨道以及所述动画事件进行更新;

将更新后的动画对象、动画轨道以及动画事件作为所述动画对象、所述动画轨道以及所述动画事件。

由于预制件资源对于动画编辑器的依赖性更大,读取其中的资源信息难度比较大,尤其是动画编辑器作为插件编辑器,而预制件资源是该插件编辑器对应的原始编辑器进行预先创建的情况下,很难对其中的资源信息进行解析,因此,可以直接确定这些预制件资源的资源路径。

具体实施时,将创建的动画对象、主动画轨道、基础动画事件、子动画轨道、扩展动画事件作为动画元素,这些动画元素中每个动画元素中也都有可能引用预制件资源,因此需要通过:在动画对象、主动画轨道、基础动画事件、子动画轨道以及扩展动画事件中选择与所述预制件资源关联的动画元素作为至少一个预制件动画元素。以便确定这些预制件动画元素关联(引用或依赖)的目标预制件资源的资源路径。

再按照目标预制件资源与至少一个预制件动画元素之间的关联关系(引用关系或依赖关系),通过确定的资源路径对其具有关联关系的预制件动画元素进行更新。再基于更新的至少一个预制件动画元素对所述动画对象、所述动画轨道以及所述动画事件中与其对应的动画元素进行更新,获得更新后动画元素,以便基于更新后的这些动画元素创建目标动画文件。

沿用上例,将三个动画对象、这三个动画对象对应的主动画轨道、演员1关联的动作轨道、绑定物体A以及踢腿子事件作为动画元素,确定这些动画元素中关联预制件资源的预制件元素为:演员1。确定该演员1中配置的(关联的)目标预制资源文件B,并确定目标预制资源文件B的资源路径p1。基于资源路径p1对演员1进行更新,获得更新后的演员1。

综上,通过确定与预制件动画元素关联的目标预制件资源的资源路径,并基于资源路径更新预制件动画元素,以便创建的目标动画文件中直接包含预制件资源的资源路径,保障了生成目标动画文件的生成效率。

综上所述,本申请实施例提供的动画生成方法,基于接收的动画创建指令,确定已创建的动画对象,并读取针对动画对象对应的动画轨道预先创建的动画事件;再按照动画对象、动画轨道、动画事件的层级结构,基于所述动画对象、所述动画轨道以及所述动画事件创建目标动画文件,实现了按照动画对象对应的动画轨道、动画事件的层级结构创建目标动画文件,使动画层级更加直观便于理解,提高了用户创建动画的效率,并提升了用户的创建体验。

图5示出了本申请一实施例提供的应用于动画编辑器的动画生成方法的处理流程图,该动画生成方法以动画编辑器为例进行描述,具体包括以下步骤:

步骤502:接收用户提交的对象创建指令。

具体的,该对象创建指令,是指用户通过对动画编辑器中的对象创建控件进行操作提交的对象创建指令。

步骤504:响应于该对象创建指令,展示动画对象类型列表,其中,动画对象类型列表中包括导演类型、摄像机类型、演员类型、特效类型以及灯光类型。

具体的,导演类型、摄像机类型、演员类型、特效类型以及灯光类型都是动画对象类型列表中动画类型。

步骤506:基于用户在该动画对象类型列表中选择的摄像机类型创建摄像机类型对应的摄像机01。

具体的,摄像机01是创建的摄像机类型对应的动画对象。实际应用中,创建的摄像机01直接对应一个主动画轨道。

步骤508:接收用户针对摄像机01的子轨道创建指令。

具体的,该子轨道创建指令,是指用户通过对动画编辑器中针对摄像机01的子轨道创建控件进行操作提交的子轨道创建指令。

步骤510:响应于该子轨道创建指令,展示与摄像机01的功能关联的子轨道类型列表。

具体的,该子轨道类型列表中可以包括移动轨道类型、显示轨道类型等子轨道类型。

步骤512:基于用户在该子轨道类型列表中选择的移动轨道类型创建移动轨道类型对应的移动轨道1。

步骤514:接收用户针对摄像机01对应的主动画轨道的基础子事件创建指令。

实际应用中,可以创建摄像机01时,自动创建其对应的主动画轨道。

步骤516:响应于该基础子事件创建指令,展示摄像机01对应的主动画轨道对应的基础子事件类型列表。

具体的,基础子事件类型列表中包括镜头参数类型、景深类型等基础子事件类型。

步骤518:基于用户在该基础子事件类型列表中选择的镜头参数类型创建镜头参数类型对应的镜头参数子事件。

步骤520:接收用户针对摄像机01关联的移动轨道1的扩展子事件创建指令。

步骤522:响应于该扩展子事件创建指令,展示摄像机01关联的移动轨道1对应的扩展子事件类型列表。

具体的,该扩展子事件类型列表中可以包括:位移类型、直行类型、转弯类型、变速位移等扩展子事件类型。

步骤524:基于用户在该扩展子事件类型列表中选择的转弯类型创建转弯类型对应的转弯子事件。

具体的,该转弯子事件即为扩展动画子事件。

步骤526:基于接收的动画创建指令,确定摄影机01、导演01以及演员01这三个动画对象。

具体实施时,除了上述在动画编辑器中创建的摄影机01之外,在接收动画创建指令之前,还在该动画编辑器中创建了导演01以及演员01这两个动画对象。

步骤528:读取针对每个动画对象对应的通用轨道预先创建的镜头参数子事件,并读取针对这三个动画对象中摄影机01关联的移动轨道1预先创建的转弯子事件。

步骤530:确定摄像机01、导演01以及演员01这三个动画对象,以及这三个动画对象各自对应的通用轨道、移动轨道1、镜头参数子事件、转弯子事件中关联预设类型的动画资源的是转弯子事件,并读取转弯子事件关联的目标动画资源的资源信息。

具体的,预设类型包括:材质类型、贴图类型和/或动画剪辑类型等资源类型,在此不做限制。目标动画资源为于转弯子事件关联的预设类型的动画资源。

步骤532:按照该目标动画资源与转弯子事件之间的关联关系,通过资源信息对转弯子事件进行更新。

步骤534:基于摄像机01、导演01以及演员01这三个动画对象,这三个动画对象各自对应的通用轨道,移动轨道1,镜头参数子事件,更新后的转弯子事件创建目标动画文件。

综上所述,本申请实施例提供的动画生成方法,在创建动画对象的基础上,针对动画对象对应的主动画轨道创建基础动画子事件,并针对动画轨道对应的子动画轨道创建扩展动画子事件。再基于接收的动画创建指令,按照动画对象、主动画轨道、基础动画事件的层级结构,以及按照动画对象、子动画轨道、扩展动画事件的层级结构,读取创建的动画对象、主动画轨道、基础动画事件、子动画轨道以及扩展动画事件,用以创建目标动画文件,实现了通过划分动画层级使动画创建过程更加直观,并且可解释性更强,也提高了动画的创建效率。

与上述方法实施例相对应,本申请还提供了动画生成装置实施例,图6示出了本申请一个实施例提供的动画生成装置的结构示意图。如图6所示,该装置600包括:

确定模块602,被配置为基于接收的动画创建指令,确定动画对象;

读取模块604,被配置为读取针对所述动画对象对应的动画轨道预先创建的动画事件;

创建模块606,被配置为基于所述动画对象、所述动画轨道以及所述动画事件创建目标动画文件。

可选地,所述读取模块604,进一步被配置为:

读取针对所述动画对象对应的主动画轨道预先创建的基础动画事件,并读取针对目标动画对象关联的子动画轨道预先创建的扩展动画事件,其中,所述目标动画对象为所述动画对象中关联子动画轨道的动画对象;

相应地,所述创建模块606,进一步被配置为:

基于所述动画对象、所述主动画轨道、所述基础动画事件、所述子动画轨道以及所述扩展动画事件创建目标动画文件。

可选地,在预先配置预设类型的动画资源的情况下,所述动画生成装置,包括:

读取信息模块,被配置为将所述动画对象、所述动画轨道以及所述动画事件作为动画元素;确定与所述动画元素中至少一个目标动画元素关联的所述预设类型的目标动画资源,并读取所述目标动画资源的资源信息;

第一更新模块,被配置为按照所述目标动画资源与所述至少一个目标动画元素之间的关联关系,通过所述资源信息对所述至少一个目标动画元素进行更新;

第二更新模块,被配置为基于更新后的至少一个目标动画元素对所述动画对象、所述动画轨道以及所述动画事件进行更新;将更新后的动画对象、动画轨道以及动画事件作为所述动画对象、所述动画轨道以及所述动画事件。

可选地,所述至少一个目标动画元素,通过运行如下模块确定:

选择模块,被配置为在所述动画对象、所述动画轨道以及所述动画事件中选择与所述预设类型的动画资源关联的动画元素作为至少一个目标动画元素。

可选地,在预先配置预制件资源的情况下,所述动画生成装置,包括:

确定路径模块,被配置为将所述动画对象、所述动画轨道以及所述动画事件作为动画元素;确定与所述动画元素中至少一个预制件动画元素关联的目标预制件资源,并确定所述目标预制件资源的资源路径;

第三更新模块,被配置为按照所述目标预制件资源与所述至少一个预制件动画元素之间的关联关系,通过所述资源路径对所述至少一个预制件动画元素进行更新;

第四更新模块,被配置为基于更新后的至少一个预制件动画元素对所述动画对象、所述动画轨道以及所述动画事件进行更新;将更新后的动画对象、动画轨道以及动画事件作为所述动画对象、所述动画轨道以及所述动画事件。

可选地,所述动画事件中的任意一个动画子事件,通过运行如下模块查询:

第一接收模块,被配置为接收用户在事件操作区域内提交的事件查询指令;

对比模块,被配置为通过对所述事件操作区域对应的事件四叉树进行遍历,将所述事件查询指令中的位置信息与所述事件四叉树中节点对应的事件操作子区域进行对比;其中,所述事件操作子区域为所述动画事件中动画子事件对应的操作子区域的位置;

确定子事件模块,被配置为根据对比结果在所述动画子事件中确定目标动画子事件并展示。

可选地,所述事件四叉树,通过运行如下模块更新:

确定节点模块,被配置为在创建所述动画事件中任意一个动画子事件之后,确定所述任意一个动画子事件的事件操作子区域在所述事件四叉树中对应的目标节点;

第五更新模块,被配置为根据所述任意一个动画子事件的事件操作子区域对所述目标节点进行更新,获得更新后的事件四叉树。

可选地,所述动画对象中的任意一个动画对象,通过运行如下模块创建:

第一展示模块,被配置为响应于接收的对象创建指令,展示动画对象类型列表,其中,所述动画对象类型列表中包括并不限于导演类型、摄像机类型、演员类型、特效类型以及灯光类型;

创建对象模块,被配置为基于在所述动画对象类型列表中选择的目标动画对象类型创建所述目标动画对象类型对应的动画对象。

可选地,所述子动画轨道中任意一个子动画轨道,通过如下方式创建:

第二接收模块,被配置为接收针对所述动画对象中任意一个动画对象的子轨道创建指令;

第二展示模块,被配置为响应于所述子轨道创建指令,展示与所述任意一个动画对象的对象属性关联的子轨道类型列表;

创建轨道模块,被配置为基于在所述子轨道类型列表中选择的目标子轨道类型创建所述目标子轨道类型对应的子动画轨道。

可选地,所述目标动画对象,通过运行如下模块确定:

选择对象模块,被配置为从所述动画对象中选择关联子动画轨道的动画对象确定为目标动画对象。

可选地,所述基础动画事件中任意一个基础动画子事件,通过运行如下模块创建:

第三接收模块,被配置为针对所述动画对象中任意一个动画对象,接收针对所述任意一个动画对象对应的主动画轨道的基础子事件创建指令;

第三展示模块,被配置为响应于所述基础子事件创建指令,展示所述任意一个动画对象对应的主动画轨道对应的基础子事件类型列表;

第一创建子事件模块,被配置为基于在所述基础子事件类型列表中选择的目标基础子事件类型创建所述目标基础子事件类型对应的基础动画子事件。

可选地,所述扩展动画事件中任意一个扩展动画子事件,通过运行如下模块创建:

第四接收模块,被配置为针对所述目标动画对象中任意一个目标动画对象,接收针对所述任意一个目标动画对象关联的子动画轨道的扩展子事件创建指令;

第四展示模块,被配置为响应于所述扩展子事件创建指令,展示所述任意一个目标动画对象关联的子动画轨道的对应的扩展子事件类型列表;

第二创建子事件模块,被配置为基于在所述扩展子事件类型列表中选择的目标扩展子事件类型创建所述目标扩展子事件类型对应的扩展动画子事件。

综上所述,本申请实施例提供的动画生成装置,基于接收的动画创建指令,确定已创建的动画对象,并读取针对动画对象对应的动画轨道预先创建的动画事件;再按照动画对象、动画轨道、动画事件的层级结构,基于所述动画对象、所述动画轨道以及所述动画事件创建目标动画文件,实现了通过划分动画层级使动画创建过程更加直观,并且可解释性更强,也提高了动画的创建效率。

上述为本实施例的一种动画生成装置的示意性方案。需要说明的是,该动画生成装置的技术方案与上述的动画生成方法的技术方案属于同一构思,动画生成装置的技术方案未详细描述的细节内容,均可以参见上述动画生成方法的技术方案的描述。

本申请一实施例中还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述计算机指令时实现所述的动画生成方法的步骤。

上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的动画生成方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述动画生成方法的技术方案的描述。

本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,所述计算机指令被处理器执行时实现如前所述动画生成方法的步骤。

上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的动画生成方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述动画生成方法的技术方案的描述。

上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。

相关技术
  • 动画生成服务器、动画生成程序、动画生成方法、动画生成系统
  • 动画数据生成系统、动画数据生成方法和动画数据生成程序以及信息记录介质
技术分类

06120113790918