CN117095086A - 动画处理方法、装置、设备及存储介质 - Google Patents
动画处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117095086A CN117095086A CN202311344823.1A CN202311344823A CN117095086A CN 117095086 A CN117095086 A CN 117095086A CN 202311344823 A CN202311344823 A CN 202311344823A CN 117095086 A CN117095086 A CN 117095086A
- Authority
- CN
- China
- Prior art keywords
- curve
- animation
- sampling
- sampling point
- global
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 28
- 238000005070 sampling Methods 0.000 claims abstract description 627
- 238000012545 processing Methods 0.000 claims abstract description 197
- 238000000034 method Methods 0.000 claims abstract description 63
- 238000006243 chemical reaction Methods 0.000 claims abstract description 39
- 230000007704 transition Effects 0.000 claims description 8
- 230000009191 jumping Effects 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 5
- 230000000694 effects Effects 0.000 abstract description 13
- 239000000523 sample Substances 0.000 description 57
- 230000008569 process Effects 0.000 description 18
- 238000006073 displacement reaction Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 14
- 238000004590 computer program Methods 0.000 description 12
- 230000009466 transformation Effects 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 10
- 238000013473 artificial intelligence Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 5
- 238000010801 machine learning Methods 0.000 description 4
- 238000011160 research Methods 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000012067 mathematical method Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 239000013074 reference sample Substances 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开一种动画处理方法、装置、设备及存储介质,方法包括:当需在局部动画系统和全局动画系统之间进行动画转换时,从局部动画系统中获取目标对象的局部动画曲线,该目标对象的局部动画曲线包括:目标对象在多个时间点处的局部位姿数据;基于目标对象的局部动画曲线进行全局采样,得到多个采样点;不同采样点对应不同时间点,任一采样点包括:目标对象在相应时间点处的全局位姿数据;对多个采样点进行曲线拟合处理,得到处理结果;将处理结果适配至全局动画系统,以使全局动画系统基于适配的处理结果中的各个数据构建目标对象的全局动画曲线。通过本申请,可以提升局部动画曲线的转换效果以及节省处理资源。
Description
技术领域
本申请涉及互联网技术领域,具体涉及图像技术领域,尤其涉及一种动画处理方法、装置、设备及存储介质。
背景技术
随着图像处理技术的不断发展,多种类型的动画系统被提出,如局部动画系统和全局动画系统。局部动画系统是指带有父子transform(转换)关系的动画系统,该系统中的动画曲线(可称为局部动画曲线)记录的是对象在局部坐标系下的位姿数据;而全局动画系统则是无父子transform(转换)关系的动画系统,该系统中的动画曲线(可称为全局动画曲线)记录的是对象在全局坐标系下的位姿数据。
目前,在需将局部动画系统中的某对象的局部动画曲线转换至全局动画系统时,通常是直接在该对象的局部动画曲线上叠加其祖辈的局部动画曲线,来得到该对象的全局动画曲线,从而将该全局动画曲线传输至全局动画系统中。经实践表明:通过在对象的局部动画曲线叠加其祖辈的局部动画曲线的方式,会使得全局动画系统得到的全局动画曲线的表现与该对象的局部动画曲线的表现之间存在较大的差距;基于此,如何提升局部动画曲线的转换效果成为了研究热点。
发明内容
本申请实施例提供了一种动画处理方法、装置、设备及存储介质,可提升局部动画曲线的转换效果以及节省处理资源。
一方面,本申请实施例提供了一种动画处理方法,所述方法包括:
当需在局部动画系统和全局动画系统之间进行动画转换时,从所述局部动画系统中获取目标对象的局部动画曲线,所述目标对象是指场景动画中存在父对象的对象;所述目标对象的局部动画曲线包括:所述目标对象在多个时间点处的局部位姿数据;
基于所述目标对象的局部动画曲线进行全局采样,得到多个采样点;不同采样点对应不同时间点,任一采样点包括:所述目标对象在相应时间点处的全局位姿数据;任一采样点是根据所述目标对象在相应时间点处的局部位姿数据以及所述父对象在相应时间点处的全局位姿数据确定的;
对所述多个采样点进行曲线拟合处理,得到处理结果;所述处理结果包括:拟合出的至少一条曲线的曲线描述信息;
将所述处理结果适配至所述全局动画系统,以使所述全局动画系统基于适配的处理结果中的各个数据构建所述目标对象的全局动画曲线。
另一方面,本申请实施例提供了一种动画处理装置,所述装置包括:
获取单元,用于当需在局部动画系统和全局动画系统之间进行动画转换时,从所述局部动画系统中获取目标对象的局部动画曲线,所述目标对象是指场景动画中存在父对象的对象;所述目标对象的局部动画曲线包括:所述目标对象在多个时间点处的局部位姿数据;
处理单元,用于基于所述目标对象的局部动画曲线进行全局采样,得到多个采样点;不同采样点对应不同时间点,任一采样点包括:所述目标对象在相应时间点处的全局位姿数据;任一采样点是根据所述目标对象在相应时间点处的局部位姿数据以及所述父对象在相应时间点处的全局位姿数据确定的;
所述处理单元,还用于对所述多个采样点进行曲线拟合处理,得到处理结果;所述处理结果包括:拟合出的至少一条曲线的曲线描述信息;
所述处理单元,还用于将所述处理结果适配至所述全局动画系统,以使所述全局动画系统基于适配的处理结果中的各个数据构建所述目标对象的全局动画曲线。
再一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括输入接口和输出接口,所述计算机设备还包括:
处理器以及计算机存储介质;
其中,所述处理器适于实现一条或多条指令,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由所述处理器加载并执行上述所提及的动画处理方法。
再一方面,本申请实施例提供了一种计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由处理器加载并执行上述所提及的动画处理方法。
再一方面,本申请实施例提供了一种计算机程序产品,该计算机程序产品包括一条或多条指令;所述计算机程序产品中的一条或多条指令被处理器执行时,实现上述所提及的动画处理方法。
本申请实施例针对局部动画系统中的目标对象的局部动画曲线,可以基于该目标对象的局部动画曲线进行全局采样,并对采样出的多个采样点进行曲线拟合处理,从而将相应的处理结果适配至全局动画系统,以使全局动画系统基于适配的处理结果中的各个数据构建目标对象的全局动画曲线。相较于在目标对象的局部动画曲线上直接叠加其祖辈的局部动画曲线,以得到目标对象的全局动画曲线的方式,本申请实施例通过结合全局采样和曲线拟合的方式,来将局部动画曲线转换为全局动画曲线,可减少对局部动画曲线中的局部位姿数据的使用,从而减少因叠加其祖辈的局部动画曲线所带来的不准确的影响,进而提升局部动画曲线的转换效果。并且,由于本申请实施例是将拟合出的至少一条曲线的曲线描述信息等处理结果,适配至全局动画系统的,这些处理结果所需的存储空间以及传输资源等处理资源,远小于整个全局动画曲线所需的存储空间和传输资源等处理资源,因此可见本申请实施例还可有效节省处理资源。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本申请实施例提供的一种动画曲线图;
图1b是本申请实施例提供的一种终端和服务器共同执行动画处理方法的示意图;
图2是本申请实施例提供的一种动画处理方法的流程示意图;
图3a是本申请实施例提供的一种全局采样的逻辑示意图;
图3b是本申请实施例提供的另一种全局采样的逻辑示意图;
图3c是本申请实施例提供的一种极值点的示意图;
图4是本申请另一实施例提供的一种动画处理方法的流程示意图;
图5a是本申请实施例提供的一种采样点的示意图;
图5b是本申请实施例提供的一种针对采样点的分段过程的示意图;
图5c是本申请实施例提供的一种针对非线性序列段的拟合过程的示意图;
图5d是本申请实施例提供的一种多段拟合的示意图;
图5e是本申请实施例提供的一种全局动画曲线的对比示意图;
图5f是本申请实施例提供的一种简化模式和非简化模式的效果对比图;
图6是本申请实施例提供的一种动画处理装置的结构示意图;
图7是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在本申请实施例中,涉及局部动画系统和全局动画系统,这两个动画系统可以是不同的图形处理引擎基于关键帧动画所实现的动画系统。此处的图形处理引擎是一种支持互动内容创作和运营的引擎,其可支持游戏开发、美术、建筑、汽车设计和影视在内的各个创作者,将创意变成现实;具体的,该图形处理引擎可包括但不限于:unity(游戏引擎)或者虚幻引擎(Unreal Engine,UE)等。所谓的关键帧动画是一种基于关键帧图像的动画制作技术,通过在关键帧图像上设置场景动画(或称为计算机动画)中的虚拟对象(后续简称为对象)的transform信息,然后由计算机设备插值计算出对象在中间帧图像(即位于两个关键帧图像之间的帧图像)中的transform信息,从而基于对象在各帧图像中的transform信息来实现动画效果。此处提及的插值是一种数学方法,用于在已知数据点之间估计未知数据点的值;插值的目的是通过已知数据点之间的连续性,推断出未知数据点的值。插值通常用于数据处理、图像处理、计算机图形学等领域。
transform信息是计算机图形学中用于描述对象的位姿的信息,对象的位姿涉及位移(Translate)、旋转(Rotate)和缩放(Scale)等三个维度。其中,位移、旋转和缩放中的每个维度均包括X轴(横轴)、Y(纵轴)和Z轴(竖轴)等三个轴,因此任一对象的transform信息可通过九个变量(又称为通道)来描述,这九个通道具体可以是:第一位移通道(TranslateX通道)、第二位移通道(TranslateY通道)、第三位移通道(TranslateZ通道)、第一旋转通道(Rotate X通道)、第二旋转通道(Rotate Y通道)、第三旋转通道(RotateZ通道)、第一缩放通道(Scale X通道)、第二缩放通道(Scale Y通道)以及第三缩放通道(ScaleZ通道)。那么可知,任一对象的transform信息可包括以下九种位姿数据:对象分别在TranslateX通道、TranslateY通道和TranslateZ通道下的位移值;对象分别在Rotate X通道、Rotate Y通道和Rotate Z通道下的旋转角度以及对象分别在ScaleX通道、ScaleY通道和ScaleZ通道下的缩放参数值。
可理解的是,针对任一位姿数据而言,其可进一步分为局部位姿数据和全局位姿数据。所谓的局部位姿数据是指:在局部坐标系(以对象的中心点为坐标原点所构建的坐标系)下的位姿数据。如若上述提及的各个位移通道下的位移值是在局部坐标系下确定的,则其可称为局部位移值;若上述提及的各个旋转通道下的旋转角度是在局部坐标系下确定的,则其可称为局部旋转角度;若上述提及的各个缩放通道下的缩放参数值是在局部坐标系下确定的,则其可称为局部缩放参数值。相应的,所谓的全局位姿数据是指:在全局坐标系(基于场景动画的三维空间所构建的坐标系)下的位姿数据。如若上述提及的各个位移通道下的位移值是在全局坐标系下确定的,则其可称为全局位移值;若上述提及的各个旋转通道下的旋转角度是在全局坐标系下确定的,则其可称为全局旋转角度;若上述提及的各个缩放通道下的缩放参数值是在全局坐标系下确定的,则其可称为全局缩放参数值。
另外,在任一坐标系(如局部坐标系或全局坐标系)下,对象的一种位姿数据可通过一条动画曲线进行描述;基于此,若任一对象的transform信息包括九种位姿数据,则在任一坐标系下,该对象可对应有九条动画曲线。本申请实施例对动画曲线的表现形式不作限定,其可以是基于三次多项式的多项式曲线,也可以是基于线性方程式的曲线等。所谓的三次多项式是指未知数(或称为自变量)的次数为3的多项式函数,其一元的一般形式可以为f(x) = Ax3+Bx2+Cx+D;其中X为未知数,A、B、C、D均为常数。三次多项式是一种常见的函数形式,可以用于生成平滑的曲线和曲面,其可细分为一元三次多项式(即包含一个未知数的三次多项式)、二元三次多项式(即包含一个未知数的三次多项式)等。线性方程式是指未知数的次数为1的方程,其中一元的一般形式为:f(x)=Ax+B,A、B均为常数。
示例性地,图1a展示了某对象在RotateY通道下的局部旋转角度在18秒之内的变化;图1a所示的动画曲线图中存储了一系列的关键帧图像上所设定的对象在RotateY通道下的局部旋转角度(如图1a中的圆点所示,每个圆点包括该点对应的时间点和RotateY通道下的局部旋转角度),且记录了对象在RotateY通道下的局部动画曲线,该局部动画曲线表现为一元三次多项式的多项式曲线,其自变量是时间t,可通过存储构成该多项式曲线的A、B、C、D四个常数以及该多项式曲线对应的起始时间点,来实现对象在RotateY通道下的局部动画曲线的存储。除了RotateY这一通道外,对象在Translate、Rotate和Scale等维度下的其他通道下的局部动画曲线或全局动画曲线均可通过这样的方式来存储的。
基于上述描述,局部动画系统和全局动画系统的定义如下:
①局部动画系统是指带有父子关系(即父子transform关系)的动画系统,其认为场景动画中的各个对象之间是存在父子关系的,因此该系统存储的是对象的多条局部动画曲线,所谓的局部动画曲线是指用于记录对象在局部坐标系下的位姿数据(即局部位姿数据)的曲线,其具体包括对象在多个时间点处的局部位姿数据。在局部动画系统中,在场景动画实际运行时,想得到除根对象以外的某对象在全局坐标系下的某个时刻的位姿数据(即全局位姿数据),则需从该对象的局部动画曲线中获取对象在该时刻的局部位姿数据,然后在获取到的局部位姿数据上乘上它父对象在该时刻的全局位姿数据才可以得到;而它父对象在该时刻的全局位姿数据从它父对象的父对象处计算得到,即它父对象(设对象a)在该时刻的全局位姿数据是在该父对象(对象a)在该时刻的局部位姿数据上乘上该父对象(对象a)的父对象(如对象b)在该时刻的全局位姿数据得到的,以此类推。其中,前述提及的根对象是指场景动画中的其他对象的祖先对象,其没有父对象;在局部动画系统中,根对象在某时刻的全局位姿数据可基于局部坐标系和全局坐标系之间的映射关系,将根对象在该时刻的局部位姿数据映射到全局坐标系中来得到。
②全局动画系统是指无父子关系的动画系统,其认为场景动画中的各个对象之间是无父子关系的,因此该系统存储的是对象的多条全局动画曲线,所谓的全局动画曲线是指用于记录对象在全局坐标系下的位姿数据(即全局位姿数据)的曲线,其具体包括对象在多个时间点处的全局位姿数据。在全局动画系统中,对于每个对象而言,它们的全局动画曲线虽然也可以表现为图1a所示的形式,但实际意义不同:全局动画系统中的对象的局部transform信息和全局transform信息是一体的,即局部transform信息就是全局transform信息,因此不需要再乘上父对象的全局transform信息,且全局动画系统中也没有父对象这一概念。
为了可以更好地在局部动画系统和全局动画系统之间进行动画转换,本申请实施例提出了一种动画处理方法;该方法可将局部动画曲线(即带有父子关系的动画曲线)转换成全局动画曲线(即不带父子关系的动画曲线);并且,通过利用采样和拟合等方法,尽可能复原出原动画曲线的数据,做到转换后的全局动画曲线的表现与原局部动画曲线的表现基本一致,即基于转换后的全局动画曲线所呈现的场景动画(即计算机动画)与基于原局部动画曲线所呈现的场景动画基本一致。其中,此处提及的拟合是一种数学方法,其可用于在已知数据点之间找到一个函数或曲线,使得该函数或曲线能够最好地描述这些数据点之间的关系。在拟合中,已知数据点称为样本点,拟合函数或曲线称为拟合模型;拟合的目的是通过拟合模型,找到一个能够最好地描述样本点之间关系的函数或曲线;且拟合的过程可使用最小二乘法,通过最小化样本点与拟合模型之间的误差,来确定拟合模型的参数。
具体的,该动画处理方法的大致原理如下:当需在局部动画系统和全局动画系统之间进行动画转换时,从局部动画系统中获取目标对象的局部动画曲线,目标对象是指场景动画中存在父对象的对象,该目标对象的局部动画曲线包括:目标对象在多个时间点处的局部位姿数据。基于目标对象的局部动画曲线进行全局采样,得到多个采样点;不同采样点对应不同时间点,任一采样点包括:目标对象在相应时间点处的全局位姿数据;任一采样点是根据目标对象在相应时间点处的局部位姿数据以及所述父对象在相应时间点处的全局位姿数据确定的。然后,可对多个采样点进行曲线拟合处理,得到处理结果(包含拟合出的至少一条曲线的曲线描述信息),并将该处理结果适配至全局动画系统,以使全局动画系统基于适配的处理结果中的各个数据构建目标对象的全局动画曲线。
在具体实现中,上述动画处理方法可由局部动画系统执行;可理解的是,局部动画系统具体是借助其对应的图形处理引擎(如unity)来执行任一操作的。或者,该动画处理方法可由一个计算机设备执行,该计算机设备可以是终端或者服务器,即该动画处理方法可由终端或者服务器执行。又或者,该动画处理方法可由局部动画系统(局部动画系统对应的图形处理引擎)和服务器(或终端)共同执行,或者由终端和服务器共同执行等。以终端和服务器共同执行该动画处理方法为例,例如可以由负责从局部动画系统中获取目标对象的局部动画曲线,并基于该目标对象的局部动画曲线进行全局采样来得到多个采样点,然后将多个采样点发送至服务器,由服务器对该多个采样点进行曲线拟合处理,从而将处理结果适配至全局动画系统,如图1b所示。在其他实施例中,也可由服务器将处理结果返回给终端,由终端将处理结果适配至全局动画系统;或者,也可由终端将局部动画曲线发送至服务器,由服务器负责全局采样的工作等。
其中,上述提及的终端可以是智能手机、电脑(如平板电脑、笔记本电脑、台式计算机等)、智能穿戴设备(如智能手表、智能眼镜)、智能语音交互设备、智能家电(如智能电视)、车载终端或飞行器等;服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器,等等。进一步的,终端和服务器可位于区块链网络内或区块链网络外,对此不作限定;更进一步的,终端和服务器还可将内部所存储的任一数据上传至区块链网络进行存储,以防止内部所存储的数据被篡改,提升数据安全性。
基于上述描述,下面结合图2所示的方法流程图,且以计算机设备为执行主体为例,对本申请实施例提出的动画处理方法的具体实施过程进行阐述。参见图2所示,该动画处理方法可包括以下步骤S201-S204:
S201,当需在局部动画系统和全局动画系统之间进行动画转换时,从局部动画系统中获取目标对象的局部动画曲线。
其中,目标对象是指场景动画中存在父对象的对象。此处提及的场景动画可以是指任一虚拟场景的动画,而虚拟场景可理解成是支持在屏幕中进行显示的场景。具体的,该虚拟场景可以是对真实世界中的场景进行仿真所得到的场景,例如对真实世界中的自动驾驶场景或景区游玩场景进行仿真所得到的场景;在此情况下,场景动画可以例如是自动驾驶动画或者景区游玩动画。或者,该虚拟场景也可以是半仿真半虚构的场景,例如在真实世界对应的仿真世界中叠加了虚构人物的场景;在此情况下,场景动画可以例如是仿真世界中的虚构人物进行运动的动画。又或者,该虚拟场景还可以是纯虚构的场景,例如游戏场景、影视剧或电影中的场景等;在此情况下,场景动画可以例如是游戏动画、影视剧动画或者电影动画等。此处提及的游戏动画基于动画技术所制作出的动画,而在游戏中,动画技术是指用于制作和呈现游戏中角色、场景等动态元素的技术;游戏中常用的动画技术包括关键帧动画、骨骼动画、物理动画等,这些动画技术在游戏中应用广泛,可以实现各种不同类型的动画效果。
目标对象的局部动画曲线可以包括:目标对象在多个时间点处的局部位姿数据。基于前述描述可知,基于前述描述可知,目标对象的局部transform信息可通过如下九个通道进行描述:TranslateX通道、TranslateY通道和TranslateZ通道等三个位移通道,RotateX通道、Rotate Y通道和Rotate Z通道等三个旋转通道,以及ScaleX通道、ScaleY通道和ScaleZ通道等三个缩放通道;并且,目标对象可在每个通道下具有一种位姿数据。基于此,本申请实施例提出的任一局部位姿数据可以是目标位移通道下的局部位移值,该目标位移通道可以是前述三个位移通道中的任一个;相应的,在此情况下,本申请实施例提及的局部动画曲线可以是局部TranslateX动画曲线、局部TranslateY动画曲线或者局部TranslateZ动画曲线。或者,本申请实施例提出的任一局部位姿数据可以是目标旋转通道下的局部旋转角度,该目标旋转通道可以是前述三个旋转通道中的任一个;相应的,在此情况下,本申请实施例提及的局部动画曲线可以是局部RotateX动画曲线、局部RotateY动画曲线或者局部RotateZ动画曲线。又或者,本申请实施例提出的任一局部位姿数据可以是目标缩放通道下的局部缩放参数值,该目标缩放通道可以是前述三个缩放通道中的任一个;相应的,在此情况下,本申请实施例提及的局部动画曲线可以是局部ScaleX动画曲线、局部ScaleY动画曲线或者局部ScaleZ动画曲线。
S202,基于目标对象的局部动画曲线进行全局采样,得到多个采样点。
其中,全局采样是指:采样出目标对象在至少两个时间点处的全局位姿数据的处理。由此可知,在通过全局采样所得到的多个采样点中,不同采样点对应不同时间点,且任一采样点包括:目标对象在相应时间点处的全局位姿数据。由前述关于局部动画系统的相关描述可知,任一采样点是根据目标对象在相应时间点处的局部位姿数据以及父对象在相应时间点处的全局位姿数据确定的;而此处的父对象在相应时间点处的全局位姿数据,则是进一步基于该父对象在相应时间点处的局部位姿数据和该父对象的父对象的全局位姿数据确定的,以此类推。
在步骤S202的一种实施方式中,计算机设备可先根据目标对象的局部动画曲线和父对象的全局动画曲线,对目标对象的全局动画曲线进行计算,得到计算出的全局动画曲线,该计算出的全局动画曲线包括目标对象在多个时间点处的全局位姿数据,任一时间点处的全局位姿数据根据局部动画曲线所包括的目标对象在相应时间点的局部位姿数据和父对象的全局动画曲线所包括的父对象在相应时间点的全局位姿数据计算得到。然后,计算机设备可按照预设采样频率对计算出的全局动画曲线进行均匀采样,得到多个采样点,如图3a所示。可见,通过先计算出全局动画曲线再直接对该全局动画曲线进行采样的方式来实现全局采样,可无需在执行采样操作时执行其他操作,可提升采样的便捷性。
在步骤S202的另一种实施方式中,计算机设备可按照预设采样频率对目标对象的局部动画曲线进行均匀采样;每采样出一个时间点对应的局部位姿数据,则根据当前采样出的时间点对应的局部位姿数据和父对象在相应时间点的全局位姿数据,计算目标对象在相应时间点处的全局位姿数据,得到一个采样点,如图3b所示。其中,在无法按照预设采样频率再从目标对象的局部动画曲线中采样出局部位姿数据时,可认为目标对象的局部动画曲线被采样完,此时便可得到多个采样点。目标对象的局部动画曲线所涉及的多个时间点所构成的时长范围,可称为一个动画时间;此处的预设采样频率可以根据实际需求进行设置,例如可设置预设采样频率为在动画时间内每秒钟采样25次或者每秒钟采样20次等。可见,通过边采样边计算全局位姿数据的方式来实现全局采样,可无需在全局采样的过程中,计算目标对象在每个时间点处的全局位姿数据,这样可节省处理资源且提升采样效率。
可选的,在本申请实施例提及的任一局部位姿数据为目标旋转通道下的局部旋转角度,任一采样点中的全局位姿数据为目标旋转角度下的全局旋转角度这一情况下,考虑到目标旋转通道为Rotate X通道、Rotate Y通道和Rotate Z通道中的任一个,而对于RotateX/Y/Z三个旋转通道而言,每个旋转通道中存储的任一旋转角度的取值范围位于第一角度(如0°)和第二角度(如360°)之间,即旋转角度的取值范围可以是[0°,360°]。由于在数学上,虽然0°(即第一角度)和360°(即第二角度)是两个不同的角度,但其表示同一个旋转位置,即0°和360°是一个概念,这样会使得通过上一步全局采样所得到的采样点中的全局旋转角度可能会产生混淆(例如将360°当成0°输出);因此,为了保证场景动画的连贯性,需要对目标旋转通道中的数据(即采样点中的全局旋转角度)进行预处理。基本思路就是:对于每一个采样点,如果该采样点中的全局旋转角度为0°或者360°,则可将该采样点中的全局旋转角度和相邻时间段的采样点之间进行比较:如果采样点中的全局旋转角度的值是0°,但是该采样点附近的采样点中的全局旋转角度都在300多度以上,那说明这个场景动画中,目标对象在此刻的全局旋转角度(即该采样点中的全局旋转角度)应当是360°而不是0°;相反,如果该采样点中的全局旋转角度是360°而周围的采样点中的全局旋转角度都在0°附近,那么说明目标对象在此刻的全局旋转角度应该为0°。这样的话才能保证场景动画的连贯性,防止出现跳变的现象。
基于此,若本申请实施例提及的任一局部位姿数据为目标旋转通道下的局部旋转角度,任一采样点中的全局位姿数据为目标旋转角度下的全局旋转角度,则计算机设备在执行步骤S203之前,可对各个采样点中的全局旋转角度进行校准。具体的,针对第j个采样点,计算机设备可比较第j个采样点中的全局旋转角度和第一角度是否相同,且比较第j个采样点中的全局旋转角度和第二角度是否相同。其中,j的取值为正整数且小于或等于采样点的数量。若第j个采样点中的全局旋转角度和第一角度以及第二角度均不相同,则可认为第j个采样点中的全局旋转角度未存在混淆,此时可保持第j个采样点中的全局旋转角度不变。若第j个采样点中的全局旋转角度和第一角度或者第二角度相同,则可认为第j个采样点中的全局旋转角度可能存在混淆,此时可进一步从多个采样点中确定出参考采样点,并确定第j个采样点中的全局旋转角度与参考采样点中的全局旋转角度之间的角度差值,从而基于该角度差值和默认阈值之间的大小关系,对第j个采样点中的全局旋转角度进行校准。
其中,默认阈值可根据实际经验值进行设定,例如可设置默认阈值为300°或者280°等。参考采样点是指:与第j个采样点相距K个时间点的采样点,K为正整数。例如K=1,则参考采样点可以是第j-1个采样点。基于角度差值和默认阈值之间的大小关系,对第j个采样点中的全局旋转角度进行校准的实施方式可以是:如果第j个采样点中的全局旋转角度与参考采样点中的全局旋转角度之间的角度差值小于或等于默认阈值,则可确定第j个采样点中的全局旋转角度未存在混淆,此时可保持第j个采样点中的全局旋转角度不变。如果该角度差值大于默认阈值,则可确定第j个采样点中的全局旋转角度存在混淆,此时可将第j个采样点中的全局旋转角度更新为另一个角度;该另一个角度是指第一角度和第二角度中,与第j个采样点中的全局旋转角度不同的角度。也就是说,若第j个采样点中的全局旋转角度与第一角度相同,则在角度差值大于默认阈值的情况下,可将第j个采样点中的全局旋转角度更新成第二角度;若第j个采样点中的全局旋转角度与第二角度相同,则在角度差值大于默认阈值的情况下,可将第j个采样点中的全局旋转角度更新成第一角度。
S203,对多个采样点进行曲线拟合处理,得到处理结果。
其中,通过步骤S203所得到的处理结果可至少包括:拟合出的至少一条曲线的曲线描述信息。任一条曲线的曲线描述信息包括:相应曲线的起始时间点以及相应曲线的方程式参数,该方程式参数是指可用于绘制出相应曲线的参数。以任一条曲线为基于三次多项式的多项式曲线为例,由于基于三次多项式中的A、B、C、D这四个常数,便可确定出相应的多项式曲线,因此任一条曲线的方程式参数可包括A、B、C、D这四个常数。
在一种实施方式中,计算机设备可从多个采样点中查找出极值点。其中,极值点的定义如下:若位于任一采样点两侧且与相应采样点相邻的两个采样点中的全局位姿数据,均大于或均小于任一采样点中的全局位姿数据,则任一采样点为极值点;即可知,极值点中的全局位姿数据大于或小于位于极值点两侧的采样点中的全局位姿数据。如参见图3c所示,位于采样点31两侧且与采样点31相邻的采样点32和采样点33中的全局位姿数据,均大于采样点31中的全局位姿数据,因此采样点31为一个极值点。在查找出L个极值点后,L为正整数,则可基于查找出的L个极值点,将多个采样点分割成多个采样点组;其中,一个极值点作为一个分割点,任一极值点两侧的采样点被分割至不同的采样点组,例如设总共查找出4个极值点(如图3c中所示的4个实心圆点),则基于这4个极值点将多个采样点分割成如图3c所示的5个采样点组。在得到多个采样点组后,可调用曲线拟合工具分别对每个采样点组进行曲线拟合处理,得到每个采样点组对应的至少一条曲线。
进一步的,可预先设置一个预期曲线数量,使得曲线拟合工具在对任一采样点组进行曲线拟合处理的过程中,可将该任一采样点组拟合成预期曲线数量条曲线。或者,可预先设置一个最大曲线数量,使得曲线拟合工具在对任一采样点组进行曲线拟合处理的过程中,可对该任一采样点组执行一次或多次曲线拟合处理,以拟合得到精度较高的曲线。具体的,曲线拟合工具可先将多个采样点拟合成一条曲线并得到相应的拟合精度,若该拟合精度大于或等于精度阈值,则可停止拟合,将当前拟合成的曲线作为多个采样点对应的曲线;若该拟合精度小于精度阈值,则可调用曲线拟合工具将多个采样点拟合成两条曲线并得到相应的拟合精度,若该拟合精度大于或等于精度阈值,则可停止拟合,将当前拟合成的曲线作为多个采样点对应的曲线;若该拟合精度小于精度阈值,则调用曲线拟合工具将多个采样点拟合成两条曲线并得到相应的拟合精度,以此类推,直至拟合出的曲线对应的拟合精度大于或等于精度阈值,或者当前拟合出的曲线数量为最大曲线数量时,停止拟合。通过此方式,可使得最终得到的曲线的精度较高,保证处理结果的准确性,从而使得全局动画系统可以基于较为准确的处理结果构建出较为准确的全局动画曲线。
另一种实施方式中,考虑到多个采样点中可能存在呈线性关系的相邻采样点,所谓的线性关系可理解成是形成直线的关系;由于对于这些采样点而言,仅基于这些采样点中的第一个采样点和最后一个采样点,便可绘制出这些采样点所在的直线,无需进行曲线拟合,因此本申请实施例可将多个采样点分段成至少一个线性序列段(即线性的BreakSegment)和至少一个非线性序列段(即非线性的BreakSegment),从而对各个非线性序列段进行曲线拟合处理,然后采用每个非线性序列段的曲线拟合结果和各个线性序列段中的第一个采样点和最后一个采样点,构建处理结果。通过此实施方式,可以有效减少曲线拟合的采样点,从而提升拟合效率和节省处理资源。其中,对各个非线性序列段进行曲线拟合处理的具体方式,可以与前述提及的对任一采样点组进行曲线拟合处理的具体方式,在此不作赘述。
S204,将处理结果适配至全局动画系统,以使全局动画系统基于适配的处理结果中的各个数据构建目标对象的全局动画曲线。
在具体实现中,可按照全局动画系统所支持的数据格式,对处理结果中的各个数据(如拟合出的至少一条曲线的曲线描述信息)进行格式转换,得到与全局动画系统适配的处理结果,从而将适配的处理结果加载至全局动画系统中。
本申请实施例针对局部动画系统中的目标对象的局部动画曲线,可以基于该目标对象的局部动画曲线进行全局采样,并对采样出的多个采样点进行曲线拟合处理,从而将相应的处理结果适配至全局动画系统,以使全局动画系统基于适配的处理结果中的各个数据构建目标对象的全局动画曲线。相较于在目标对象的局部动画曲线上直接叠加其祖辈的局部动画曲线,以得到目标对象的全局动画曲线的方式,本申请实施例通过结合全局采样和曲线拟合的方式,来将局部动画曲线转换为全局动画曲线,可减少对局部动画曲线中的局部位姿数据的使用,从而减少因叠加其祖辈的局部动画曲线所带来的不准确的影响,进而提升局部动画曲线的转换效果。并且,由于本申请实施例是将拟合出的至少一条曲线的曲线描述信息等处理结果,适配至全局动画系统的,这些处理结果所需的存储空间以及传输资源等处理资源,远小于整个全局动画曲线所需的存储空间和传输资源等处理资源,因此可见本申请实施例还可有效节省处理资源。
基于上述图2所示的方法实施例的相关描述,本申请实施例进一步提出了另一种动画处理方法;在本申请实施例中,仍以计算机设备执行该动画处理方法为例进行阐述。请参见图4所示,该动画处理方法包括以下步骤S401-S406:
S401,当需在局部动画系统和全局动画系统之间进行动画转换时,从局部动画系统中获取目标对象的局部动画曲线;该目标对象是指场景动画中存在父对象的对象,目标对象的局部动画曲线包括:目标对象在多个时间点处的局部位姿数据。
S402,基于目标对象的局部动画曲线进行全局采样,得到多个采样点;不同采样点对应不同时间点,任一采样点包括:目标对象在相应时间点处的全局位姿数据;任一采样点是根据目标对象在相应时间点处的局部位姿数据以及父对象在相应时间点处的全局位姿数据确定的。步骤S402的具体实施方式可参见前述步骤S202的相关描述,在此不作赘述。
S403,将多个采样点划分成多个序列段。
其中,多个采样点按照时间点先后顺序进行排列;将多个采样点划分成多个序列段中的每个序列段,可包括连续的至少两个采样点。并且,任一序列段为线性序列段或者非线性序列段;所谓的线性序列段是指各个采样点之间呈线性关系(即形成直线的关系)的序列段,所谓的非线性序列段是指各个采样点之间呈非线性关系(即未形成直线的关系)的序列。
进一步的,针对任意两个相邻的采样点而言,若这两个采样点处的斜率相同或相近,则可认为这两个采样点位于同一直线上;若这两个采样点处的斜率相差过大,则可认为这个两个采样点未位于同一直线上。基于此,计算机设备在执行步骤S403时,可以执行如下步骤:
s11,将多个采样点中的各个采样点映射至目标坐标系中,得到相应采样点的位置坐标。其中,目标坐标系可以是目标对象的局部动画曲线所处的坐标系,也可以是其他的坐标系等;任一采样点的位置坐标中的x坐标值根据相应采样点对应的时间点确定,y坐标值根据相应采样点中的全局位姿数据确定。
s12,根据多个采样点中的各个采样点的位置坐标,确定相应采样点的斜率。其中,在多个采样点中,位于非首位的任一采样点的斜率是根据相应采样点的位置坐标和前一采样点的位置坐标确定的,所谓的前一采样点是指多个采样点中位于任一采样点之前且与任一采样点相邻的采样点。例如,设多个采样点依次为:采样点a、采样点b、采样点c;则针对采样点c而言,其前一采样点为采样点b,若采样点c为位置坐标为(3,5),该采样点b的位置坐标为(2,4),则采样点c的斜率为:(4-5)/(2-3)=1。需说明的是,由于多个采样点中位于首位的采样点,不存在前一采样点,但基于两点成线的定律,位于首位的采样点和位于第二位的采样点可认为是同一条直线上的,因此为了便于在后续根据采样点的斜率进行分段时,可将位于首位的采样点和位于第二位的采样点分割至同一个线性序列段中,本申请实施例可认为位于首位的采样点的斜率与位于第二位的采样点斜率是相同的。
s13,基于多个采样点中的每个采样点的斜率,将多个采样点划分成多个序列段。其中,该多个序列段中包括线性序列段和非线性序列段;线性序列段中的任意两个相邻采样点的斜率之间的差值绝对值小于第一阈值,非线性序列段中的任意两个相邻采样点的斜率之间的差值绝对值大于或等于第一阈值。此处提及的第一阈值可以根据实际需求进行设定,例如若想要使得划分出的序列段具有较高精度,则可设置第一阈值为一个较小的数值,如0.00001。
具体的,计算机设备在执行步骤s13时,可以基于多个采样点中未被搜索的首个采样点开始当前轮搜索,将当前搜索的采样点作为当前采样点,并计算当前采样点的斜率和待搜索的下一个采样点的斜率之间的差值绝对值;若计算出的差值绝对值小于第一阈值,则继续搜索,直至计算出的差值绝对值大于或等于第一阈值时,结束当前轮搜索,并采用当前轮搜索的起始点和结束点构建一个序列段(或者采用当前轮搜索被搜索的各个采样点构建一个序列段),且构建的序列段被确定为线性序列段;若计算出的差值绝对值大于或等于第一阈值,则继续搜索,直至计算出的差值绝对值小于第一阈值时,结束当前轮搜索,并采用在当前轮搜索中被搜索的各个采样点构建一个序列段,且构建的序列段被确定为非线性序列段;在结束当前轮搜索后,若多个采样点中存在至少一个采样点未被搜索,则进入下一轮搜索(下一轮搜索的处理逻辑与当前轮搜索的处理逻辑相同),直至多个采样点均被搜索,得到多个序列段。
举例说明,设总共有采样点1-10这10个采样点,且斜率依次为:0.1、0.1、0.1、0.1、0.3、0.5、0.6、0.7、0.7、0.7。那么搜索逻辑如下:
首先进入第一轮搜索,此时这10个采样点中未被搜索的首个采样点为采样点1,因此可基于采样点1开始第一轮搜索:先搜索采样点1以将采样点1作为当前采样点,发现其斜率与待搜索的下一个采样点2的斜率之间的差值绝对值(0)小于第一阈值(0.00001),因此继续搜索采样点2以将采样点2作为当前采样点,发现其斜率和下一个采样点3的斜率之间的差值绝对值(0)小于第一阈值(0.00001),因此继续搜索采样点3,以此类推,直至搜索到采样点4时,发现其斜率和下一个采样点5的斜率之间的差值绝对值(0.2)大于第一阈值(0.00001),此时结束第一轮搜索,采用第一轮搜索的起始点(采样点1)和结束点(采样点4)构建一个线性序列段。
然后进入第二轮搜索,此时这10个采样点中未被搜索的首个采样点为采样点5,因此可基于采样点5开始第二轮搜索:先搜索采样点5以将采样点5作为当前采样点,发现其斜率与待搜索的下一个采样点6的斜率之间的差值绝对值(0.2)大于第一阈值(0.00001),因此继续搜索采样点6以将采样点6作为当前采样点,发现其斜率和下一个采样点7的斜率之间的差值绝对值(0.1)大于第一阈值(0.00001),因此继续搜索采样点7,以此类推,直至搜索到采样点8时,发现其斜率和下一个采样点9的斜率之间的差值绝对值(0)小于第一阈值(0.00001),此时结束第二轮搜索,采用在第二轮搜索中被搜索到的采样点5-8构建一个非线性序列段。
然后进入第三轮,此时这10个采样点中未被搜索的首个采样点为采样点9,因此可基于采样点9开始第三轮搜索:先搜索采样点9以将采样点9作为当前采样点,发现其斜率与待搜索的下一个采样点10的斜率之间的差值绝对值(0)小于第一阈值(0.00001),因此继续搜索采样点10以将采样点10作为当前采样点,发现采样点10已是最后一个采样点,即10个采样点均被搜索,此时可结束第三轮搜索,采用第三轮搜索的起始点(采样点9)和结束点(采样点10)构建一个线性序列段。至此,针对10个采样点的划分过程结束,得到3个序列段,具体包括2个线性序列段和1个非线性序列段。
需要说明的是,上述只是示例性地阐述了步骤s13的一种实施方式,并非穷举。例如,在其他实施例中,步骤s13的实施方式也可以是:调用预训练的分段模型基于多个采样点中的每个采样点的斜率,将多个采样点划分成多个序列段。该目标分段模型可以是基于机器学习技术/深度学习技术,采用批量的训练数据进行预训练所得到的神经网络模型,本申请实施例对目标分段模型的工作原理和训练过程不作限定。
其中,此处提及的机器学习是AI(Artificial Intelligence,人工智能)的核心,是使计算机设备具有智能的根据途径;机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科,其专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。相应的,深度学习则是一种利用深层神经网络系统,进行机器学习的技术。所谓的AI是指:利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统;换句话说,AI是计算机科学的一个综合技术,其主要通过了解智能的实质,生产出一种新的能以人类智能相似的方式做出反应的智能机器,使得智能机器具有感知、推理与决策等多种功能;可见,AI也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
S404,分别对多个序列段中的各个非线性序列段进行曲线拟合处理,得到各个非线性序列段的曲线拟合结果。
其中,任一非线性序列段的曲线拟合结果包括:基于相应非线性序列段所拟合出的至少一条曲线的曲线描述信息。在步骤S404的具体实施过程中,针对第i个非线性序列段而言,i为正整数且小于或等于非线性序列段的数量,计算机设备可对其进行曲线拟合处理的实施方式可以包括以下步骤s21-s24:
s21,从第i个非线性序列段包括的采样点中,查找出至少一个极值点;其中,若位于任一采样点两侧且与相应采样点相邻的两个采样点中的全局位姿数据,均大于或均小于任一采样点中的全局位姿数据,则任一采样点为极值点。在一种实施方式中,计算机设备可依次遍历第i个非线性序列段中的各个采样点,若当前遍历的采样点中的全局位姿数据,大于或小于位于该当前遍历的采样点两侧且与当前遍历的采样点相邻的两个采样点中的全局位姿数据,则将当前遍历的采样点作为极值点,继续遍历,直至第i个非线性序列段中的各个采样点。
另一种实施方式中,计算机设备可对第i个非线性序列段中的各个采样点进行一阶导数计算,得到第i个非线性序列段中的各个采样点的一阶导数值;任一采样点的一阶导数值可以是以下任一类型的数值:正数(即大于0的数)、0和负数(即小于0的数)。然后,可依次轮询第i个非线性序列段中的各个采样点,并将当前轮询的采样点作为基准采样点;若基准采样点的一阶导数值和第i个非线性序列段中的下一个采样点的一阶导数值属于同类型的数值,则继续轮询第i个非线性序列段中的各个采样点;若基准采样点的一阶导数值和第i个非线性序列段中的下一个采样点的一阶导数值属于不同类型的数值,则将基准采样点作为一个极值点,并继续轮询第i个非线性序列段中的各个采样点;直至第i个非线性序列段中的各个采样点均被轮询后,得到至少一个极值点。
举例说明:设第i个非线性序列段中共包括10个采样点,其一阶导数值分别是:0.3,0.2,0.1,-0.3,-0.2,-0.1,0.2,0.4,0.6,0.7。则依次轮询这10个采样点,即先轮询这10个采样点中的第1个采样点作为基准采样点,由于其一阶导数值和下一个采样点(即第2个采样点)的一阶导数值均属于同一类型的数值(两个一阶导数值均为正数),因此可继续轮询第2个采样点作为基准采样点,由于其一阶导数值和下一个采样点(即第3个采样点)的一阶导数值均属于同一类型的数值(两个一阶导数值均为正数),因此可继续轮询第3个采样点作为基准采样点,由于其一阶导数值和下一个采样点(即第4个采样点)的一阶导数值属于不同类型的数值(第3个采样点的一阶导数值为正整数,第4个采样点的一阶导数值为负数),因此可将第3个采样点作为一个极值点。然后,可继续轮询第4个采样点作为基准采样点,以此类推,直至这10个采样点中的每个采样点均被轮询后,便可得到2个极值点:一个极值点是前述提及的第3个采样点,另一个极值点是第6个采样点。
基于此可见,本申请实施例基于一阶导数值来寻找极值点的方式,可以从第i个非线性序列段中寻找出一阶导数值最接近0的采样点作为极值点,这样可提升极值点的准确性。可理解的是:一阶导数值的定义以及一阶导数值的计算方式在任一本数值分析教材中均有讲解,在此不作赘述。
s22,基于查找出的各个极值点,将第i个非线性序列段分割成多个子序列段。其中,一个极值点作为一个分割点,任一极值点两侧的采样点被分割至不同的子序列段中,分割得到子序列段的具体方式可以参见前述提及的分割得到采样点组的具体方式,在此不作赘述。
在具体实现中,通过步骤s22得到多个子序列段后,可直接执行步骤s23;可选的,本申请实施例还可提供简化模式和非简化模式两种转换模式,以提升曲线转换的灵活性。其中,简化模式是指:基于子序列段中的第一个采样点和最后一个采样点构建一条直线,作为相应子序列段对应的曲线的模式;非简化模式是指:对子序列段进行拟合来得到子序列段对应的曲线的模式。那么此情况下,通过步骤s22得到多个子序列段后,可确定局部动画系统和全局动画系统之间的动画转换模式;若该动画转换模式为非简化模式,则触发执行步骤s23;若动画转换模式为简化模式,则可分别采用各个子序列段中的第一个采样点和最后一个采样点,构建一条直线作为相应子序列段对应的曲线,从而触发执行步骤s24。
s23,调用曲线拟合工具分别对每个子序列段进行曲线拟合处理,得到每个子序列段对应的至少一条曲线。
在具体实现中,可预先设置每个子序列段被允许拟合出的曲线数量阈值,从而使得曲线拟合工具在不超过该曲线数量阈值的情况下,分别对每个子序列段进行一次或多次曲线拟合处理,以拟合得到精度较高的曲线。
具体的,针对任一子序列段,计算机设备可确定曲线数量阈值为G以及设定当前需拟合出的曲线数量c的取值;其中,G为正整数,c从1开始取值,且c小于或等于G。每次设定c的取值后,则调用曲线拟合工具对任一子序列段进行曲线拟合处理,得到c条曲线以及c条曲线的拟合精度。若c条曲线的拟合精度小于精度阈值且c<G,则对c执行加一操作,以重新设定c的取值,并跳转至调用曲线拟合工具对任一子序列段进行曲线拟合处理,得到c条曲线以及c条曲线的拟合精度的步骤。若c条曲线的拟合精度大于或等于精度阈值。
举例说明:设曲线数量阈值G=3,那么针对任一子序列段而言,计算机设备可先设定c的取值为1,从而调用曲线拟合工具对该任一子序列段进行曲线拟合处理,得到1条曲线(设曲线a)以及这1条曲线的拟合精度(设0.6),由于该拟合精度(0.6)小于精度阈值(设0.9),因此对c进行加一操作以重新设定c的取值为2,从而调用曲线拟合工具对该任一子序列段进行曲线拟合处理,得到2条曲线(设曲线b和曲线c)以及这2条曲线的拟合精度。若这两条曲线的拟合精度为0.95,则由于该拟合精度大于精度阈值(设0.9),因此可将曲线b和曲线c这2条曲线作为该任一子序列段对应的曲线;若这两条曲线的拟合精度为0.8,则由于该拟合精度小于精度阈值(设0.9),因此可再次对c进行加一操作以重新设定c的取值为3,从而调用曲线拟合工具对该任一子序列段进行曲线拟合处理,得到3条曲线(设曲线d、曲线e和曲线f)以及这3条曲线的拟合精度,此时无论这3条曲线的拟合精度大于、等于或者小于精度阈值,均可将曲线d、曲线e和曲线f这3条曲线作为任一子序列段对应的曲线。
应理解的是,上述只是示例性地阐述了如何对任一子序列段进行曲线拟合处理,得到任一子序列段对应的至少一条曲线的一种实施方式,并非穷举。例如,在其他实施例中,若c条曲线的拟合精度小于精度阈值且c=G,则可从每次设定c的取值后所拟合出的c条曲线的拟合精度中确定最大的拟合精度,从而将该最大的拟合精度对应的各条曲线作为任一子序列段对应的曲线。例如设G=3,在设定c的取值为1时,拟合出的1条曲线的拟合精度为0.7,在设定c的取值为2时,拟合出的2条曲线的拟合精度为0.78,在设定c的取值为3时,拟合出的3条曲线的拟合精度为0.75。由于在设定c的取值为3时,c=G,因此可停止拟合,并从c的三个取值所对应的三个精度中,确定出最大的拟合精度为0.78,从而将0.78这一拟合精度对应的2条曲线作为相应子序列段对应的曲线。
s24,采用每个子序列段对应的各条曲线的曲线描述信息,构建第i个非线性序列段的曲线拟合结果。
其中,第i个非线性序列段的曲线拟合结果包括:由第i个非线性序列段分割出的各个子序列段对应的各条曲线的曲线描述信息;任一条曲线的曲线描述信息包括相应曲线的起始时间点和相应曲线的方程式参数。可理解的是,针对任一子序列段而言,若是通过步骤s23来得到该子序列段对应的各条曲线的,则各条曲线可以是一元三次多项式的多项式曲线;那么,此情况下,针对任一子序列段,便可得到一系列一元三次多项式的组合,一个一元三次多项式对应一条曲线,则任一条曲线的方程式参数可包括相应曲线对应的一元三次多项式中的四个常数。若是通过采用该子序列段中的第一个采样点和最后一个采样点构建一条直线的方式,来得到该子序列段对应的曲线的,则任一条曲线的方程式参数可包括用于构成确定相应直线所需的常数。
S405,采用多个序列段中的各个线性序列段中的第一个采样点和最后一个采样点,以及各个非线性序列段的曲线拟合结果,构建处理结果。
其中,构建的处理结果包括如下数据:各个线性序列段中的第一个采样点和最后一个采样点,以及各个非线性序列段的曲线拟合结果(即由各个非线性序列段分割出的各个子序列段对应的各条曲线的曲线描述信息)。
在一种实施方式中,计算机设备在通过步骤S404得到各个非线性序列段的曲线拟合结果后,可直接执行步骤S405;在此情况下,执行步骤S405时所涉及的线性序列段和前述通过步骤S403所得到的线性序列段相同。例如,若前述通过步骤S403得到了3个线性序列段:线性序列段a、线性序列段b和线性序列段c;则执行步骤S405时所涉及的线性序列段包括线性序列段a、线性序列段b和线性序列段c;即此情况下所得到的处理结果包括:线性序列段a中的第一采样点和最后一个采样点、线性序列段b中的第一个采样点和最后一个采样点、线性序列段c中的第一个采样点和最后一个采样点,以及各个非线性序列段的曲线拟合结果。
另一种实施方式中,考虑到在前述步骤S403的执行过程中,是通过将相邻的采样点的斜率之间的差值与第一阈值进行比较,来实现对多个采样点进行分段,从而划分出至少一个线性序列段和至少一个非线性序列段的;基于此方式,当第一阈值设置得过小时,则可能导致划分出的线性序列段的数量较多。基于此,计算机设备在执行步骤S405之前,可采用分段合并逻辑对通过步骤S403所得到的至少一个线性序列段进行处理,以减少线性序列段的数量,从而减少后续基于线性序列段所得到的处理结果的数据量,从而节省存储资源。在此情况下,执行步骤S405时所涉及的线性序列段和前述通过步骤S403所得到的线性序列段可能不同。例如,若前述通过步骤S403得到了3个线性序列段:线性序列段a、线性序列段b和线性序列段c;且对线性序列段a和线性序列段b进行了合并,得到了线性系列段d,则执行步骤S405时所涉及的线性序列段包括线性序列段d和线性序列段c;即此情况下所得到的处理结果包括:线性序列段d中的第一采样点和最后一个采样点,以及各个非线性序列段的曲线拟合结果。
其中,分段合并逻辑的思路可以是:设置一个比第一阈值大一点的第二阈值,并在相邻线性序列段之间比较斜率,从而小于第二阈值的斜率差所对应的相邻线性序列段合并成一个线性序列段。基于此,计算机设备在执行步骤S405之前,可以在至少一个线性序列段中,查找需合并的序列段组;该序列段组中包括连续相邻的线性序列段,且任意两个相邻的序列段之间的斜率差小于第二阈值;其中,两个相邻的线性序列段满足如下条件:一个线性序列段中的最后一个采样点与另一个线性序列段中的第一个采样点,即一个线性序列段中的最后一个采样点为另一个线性序列段中的第一个采样点的前一采样点。若查找到序列段组,则可将该序列段组中的各个线性序列段,合并成一个线性序列段。可理解的是,序列段组的数量可以是一个或多个,若找到多个(例如3个)序列段组,则可一个序列段组中的各个线性序列段被合并成一个线性序列段,不同序列段组中的线性序列段被合并至不同的线性序列段,从而合并得到3个线性序列段。
S406,将处理结果适配至全局动画系统,以使全局动画系统基于适配的处理结果中的各个数据构建目标对象的全局动画曲线。
本申请实施例针对局部动画系统中的目标对象的局部动画曲线,可以基于该目标对象的局部动画曲线进行全局采样,并对采样出的多个采样点进行曲线拟合处理,从而将相应的处理结果适配至全局动画系统,以使全局动画系统基于适配的处理结果中的各个数据构建目标对象的全局动画曲线。相较于在目标对象的局部动画曲线上直接叠加其祖辈的局部动画曲线,以得到目标对象的全局动画曲线的方式,本申请实施例通过结合全局采样和曲线拟合的方式,来将局部动画曲线转换为全局动画曲线,可减少对局部动画曲线中的局部位姿数据的使用,从而减少因叠加其祖辈的局部动画曲线所带来的不准确的影响,进而提升局部动画曲线的转换效果。并且,由于本申请实施例是将拟合出的至少一条曲线的曲线描述信息等处理结果,适配至全局动画系统的,这些处理结果所需的存储空间以及传输资源等处理资源,远小于整个全局动画曲线所需的存储空间和传输资源等处理资源,因此可见本申请实施例还可有效节省处理资源。
基于上述图2和图4所示的动画处理方法,本申请实施例针对游戏场景,提出了一种游戏动画转换方法,可以将带有父子关系的游戏动画的Transform动画曲线转换成不带父子关系的Transform动画曲线,此处的Transform动画曲线可以包括但不限于:Translate维度下的各个通道涉及的动画曲线、Rotate维度下的各个通道涉及动画曲线,和Scale维度下的各个通道涉及的动画曲线。且该游戏转换方法可以利用采样和拟合等方法,尽可能复原原始动画曲线的数据,做到转换后的计算机动画与原始数据表现基本一致,大大方便跨引擎之间的动画转换。
下面以局部动画系统为unity涉及的动画系统,全局动画系统为本申请实施例自研引擎涉及的动画系统为例,对本申请实施例提出的游戏动画转换方法的相关内容进行阐述。具体的,对于游戏动画中的某游戏对象(即目标对象)的Transform所涉及的TranslateX/Y/Z、RotateX/Y/Z和ScaleX/Y/Z等共九个通道中的局部动画曲线,均要经历以下步骤处理,共输出九条通道存储到自研引擎涉及的动画系统中:
5.1、全局transform均匀采样:
具体的,可以对游戏对象的transform涉及的各个通道下的局部动画曲线,在动画时间内进行均匀采样,具体可以按照一秒钟采样25次的频率进行。每次采样的时候,可计算该游戏对象在此刻时间下的全局transform数值(即全局位姿数据),并记录下来,从而得到每条局部动画曲线所对应的多个采样点。以游戏对象在rotateY通道下的局部动画曲线进行均匀采样为例,采样出的部分采样点的示意图可以参见图5a中的圆点所示。
5.2、预处理:
对于RotateX/Y/Z三个通道而言,每个通道存储的是旋转角度,旋转角度的取值范围是0°-360°。因为在数学上0°和360°是一个概念,因此在上一步对RotateX/Y/Z三个通道下的局部动画曲线进行全局采样所得到的采样点中的全局旋转角度(即全局位姿数据)有可能会产生混淆(例如将360°当成0°输出)。基于此,为了保证游戏动画的连贯性,可以对RotateX/Y/Z三个通道下所采样得到的采样点中的全局旋转角度进行预处理。基本思路就是对于每一个采样点中的全局旋转角度,和相邻时间段的采样点中的全局旋转角度之间进行比较:如果采样点中的全局旋转角度本身的值是0°,但是采样点附近的其他采样点中的全局旋转角度都在300多度以上,那说明在这个游戏动画中,此刻这个采样点中的全局旋转角度实际上应当是360°而不是0°;相反,如果采样点中的全局旋转角度是360°而周围的其他采样点中的全局旋转角度都在0°附近,那需要将这个采样点中的全局旋转角度设置为0°。这样的话,才能保证游戏动画的连贯性,防止出现跳变的现象。
5.3分段检测:
接下来,分别将每个通道对应的这些采样点进行分段,每一个序列段可称之为BreakSegment。每一个BreakSegment中记录了以下信息:①段类型,用于指示BreakSegment是线性序列段还是非线性序列段;②按照时间点先后顺序排列的采样点;如果是线性序列段,则包含的采样点的数量为两个,如果是非线性序列段,则包含的采样点的数量不定。
参见图5b所示,对任一通道对应的采样点进行分段的过程大致如下:对于每个采样点,根据其前一个采样点的位置坐标和自己的位置坐标,记录相应采样点的斜率L。搜索所有的采样点,并确定当前搜索的采样点的斜率和下一个采样点的斜率之间的误差(即差值绝对值|d|),从而判断|d|是否小于0.00001(第一阈值)。若是,则当前搜索的采样点可能属于线性序列段,所以不断比较后续相邻采样点的斜率之间的误差,直到误差足够大(如大于或等于0.00001),停止搜索,记录一个线性序列段,该线性序列段包含本轮搜索的起始点和结束点(即首尾两个采样点),然后可继续搜索剩下未被搜索的采样点,直至所有采样点均被搜索了。若否,则当前搜索的采样点可能属于非线性序列段,所以不断比较后续相邻采样点的斜率之间的误差,直到误差足够小(如小于0.00001),停止搜索,记录一个非线性序列段,该非线性序列段包含本轮搜索中被搜索到的各个采样点,然后可继续搜索剩下未被搜索的采样点,直至所有采样点均被搜索了。迭代执行多轮搜索后,便可得到了按时间点先后顺序排列的,首尾相接的BreakSegment序列(即多个序列段依次排列构成的序列)。
5.4线性序列段合并:
由于上一个步骤为了能够尽可能将非线性序列段识别出来,第一阈值可能设的非常小,这样会导致生成的线性序列段比较多,因此本步骤的目的是将线性序列段尽可能合并,缩减数量。具体思路如下:再次对相邻的线性序列段之间的斜率差和第二阈值进行比较,这次可以将第二阈值设置得更大一些(推荐0.01),从而将斜率差低于第二阈值的相邻线性序列段进行合并,进而缩减线性序列段的数量,节省存储资源。
5.5多段多项式拟合:
经过前述步骤,可以得到一系列首尾相接的序列段。对于这些序列段中的非线性序列段,可以调用曲线拟合工具采用多段拟合算法来寻找最优的曲线。本申请实施例中的曲线拟合工具可以是pwlf库来实现,所谓pwlf库是一个Python(一种跨平台的计算机程序设计语言)库,其输入拟合的曲线数量阈值G、曲线形式(在这里是一元三次方程)以及待拟合的采样点,就可以输出相应的拟合结果。
参见图5c所示,对任一非线性序列段的拟合过程大致如下:对非线性序列段中的各个采样点,计算其一阶导数值;按照前述方法实施例中的步骤S404中的s21所提及的具体实施方式,寻找一阶导数值最接近0的采样点作为极值点,按时间顺序将查找到的极值点依次记录为n0,n1,…,nm,m为正整数。对于nq和nq+1两个极值点,采用经过这两个极值点之间的采样点构建一个子序列段,作为pwlf库的输入,使得pwlf库可将当前需拟合的曲线数量c的取值设定为1(即c=1),并执行pwlf库中的多段拟合工具将输入的子序列段拟合成c条曲线,并得到相应的拟合精度。判断c是否小于G(例如G=3)且拟合精度小于精度阈值(例如0.999);若c<3且拟合精度<0.999,则可对c执行加一操作(即c=c+1)以重新设定c的取值,并跳转至执行pwlf库中的多段拟合工具将输入的子序列段拟合成c条曲线的步骤;否则(即若c=3或者c<3但拟合精度>0.999),则将当前拟合出的c条曲线作为输入的子序列段对应的拟合结果进行输出。
其中,上述提及的q的初始值为0,且pwlf库每结束一个子序列段的拟合操作后,便可对q的取值进行加一,以进入下一个子序列段的拟合。另外,还可采用非线性序列段中的第一个采样点和第1个极值点之间的采样点构建一个子序列段,输入至pwlf库中进行拟合;以及,还可采用第m个极值点和非线性序列段中的最后一个采样点之间的采样点构建一个子序列段,输入至pwlf库中进行拟合。
基于上述,最终可对于每个非线性序列段,得到一系列的一元三次多项式的多项式曲线的组合,那么可以记录下每条多项式曲线的起始时间点和方程式参数,得到每个非线性序列段的曲线拟合结果。示例性的,图5d给出了一种多段拟合的示例,不同线条表示不同的一元三次多项式的多项式曲线;从图5d可以看出,基于极值点进行拟合的效果是非常好的。
5.6输出转换:
最后,将每个线性系列段中的第一个采样点和最后一个采样带你,以及非线性序列段的曲线拟合结果(即记录的每条曲线的起始时间点和方程式参数)等处理结果转换成自研引擎对应的动画系统可接受的格式,从而将转换后的数据加载至自研引擎对应的动画系统中进行采样数据的重建,尽可能还原原始动画曲线,得到游戏对象的全局动画曲线。
示例性的,图5e的左侧图展示了游戏对象应该具有的全局动画曲线,右侧图展示了自研引擎对应的动画系统中所得到的全局动画曲线的示意图;由于在输出转换这一步中,将处理结果中的数据做了一些transform坐标系转换,所以右侧图和左侧图的曲线形状并不完全一样,但是可以看出是右侧图中的曲线形态是左侧图中的曲线倒过来的样子。由此可说明,采用本申请实施例提出的游戏动画转换方法,可以尽可能地还原原始动画曲线的数据,确保转换后的计算机动画与原始数据的表现几乎一致;并且,这种方法极大地简化了不同游戏引擎之间的动画转换过程,可以提升转换效率。
进一步的,基于上述游戏动画转换方法,本申请实施例还提供了将游戏对象的局部transform曲线转换到自研引擎涉及的动画系统(即无父子关系的动画系统)中全局transform曲线的工具,使得美术制作者可以方便地进行一键转换。并且,还进一步提供了简化模式和非简化模式这两种转换模式,以供美术制作者根据实际需求进行选择,提升转换的灵活性。其中,简化模式可将非线性序列段中的各个采样点拟合为直线,非简化模式则可将非线性序列段中的各个采样点拟合为多段一元三次多项式的多项式曲线。示例性地,图5f对比展示了简化模式和非简化模式的转换效果;图5f中的直线表示通过简化模式所得到的全局动画曲线,图5f中的虚线表示通过非简化模式所得到的全局动画曲线。
基于上述动画处理方法实施例的描述,本申请实施例还公开了一种动画处理装置;所述动画处理装置可以是运行于计算机设备中的一个计算机程序(包括一条或多条指令),且该动画处理装置可以执行图2或图4所示的方法流程中的各个步骤。请参见图6,所述动画处理装置可以运行如下单元:
获取单元601,当需在局部动画系统和全局动画系统之间进行动画转换时,从所述局部动画系统中获取目标对象的局部动画曲线,所述目标对象是指场景动画中存在父对象的对象;所述目标对象的局部动画曲线包括:所述目标对象在多个时间点处的局部位姿数据;
处理单元602,用于基于所述目标对象的局部动画曲线进行全局采样,得到多个采样点;不同采样点对应不同时间点,任一采样点包括:所述目标对象在相应时间点处的全局位姿数据;任一采样点是根据所述目标对象在相应时间点处的局部位姿数据以及所述父对象在相应时间点处的全局位姿数据确定的;
所述处理单元602,还用于对所述多个采样点进行曲线拟合处理,得到处理结果;所述处理结果包括:拟合出的至少一条曲线的曲线描述信息;
所述处理单元602,还用于将所述处理结果适配至所述全局动画系统,以使所述全局动画系统基于适配的处理结果中的各个数据构建所述目标对象的全局动画曲线。
在一种实施方式中,处理单元602在用于基于所述目标对象的局部动画曲线进行全局采样时,可具体用于:
按照预设采样频率对所述目标对象的局部动画曲线进行均匀采样;
每采样出一个时间点对应的局部位姿数据,则根据当前采样出的时间点对应的局部位姿数据和所述父对象在相应时间点的全局位姿数据,计算所述目标对象在相应时间点处的全局位姿数据,得到一个采样点。
另一种实施方式中,任一局部位姿数据为目标旋转通道下的局部旋转角度,任一采样点中的全局位姿数据为所述目标旋转通道下的全局旋转角度;任一旋转角度的取值范围位于第一角度和第二角度之间,所述第一角度和所述第二角度是两个不同的角度,但所述第一角度和所述第二角度表示同一个旋转位置;
相应的,处理单元602在用于在对所述多个采样点进行曲线拟合处理,得到处理结果之前,还可用于:
针对第j个采样点,若所述第j个采样点中的全局旋转角度和所述第一角度或者所述第二角度相同,则从所述多个采样点中确定出参考采样点;其中,j的取值为正整数且小于或等于采样点的数量;所述参考采样点是指:与所述第j个采样点相距K个时间点的采样点,K为正整数;
确定所述第j个采样点中的全局旋转角度与所述参考采样点中的全局旋转角度之间的角度差值;
根据所述角度差值和默认阈值之间的大小关系,对所述第j个采样点中的全局旋转角度进行校准。
另一种实施方式中,处理单元602在用于根据所述角度差值和默认阈值之间的大小关系,对所述第j个采样点中的全局旋转角度进行校准时,可具体用于:
如果所述角度差值小于或等于默认阈值,则保持所述第j个采样点中的全局旋转角度不变;
如果所述角度差值大于默认阈值,则将所述第j个采样点中的全局旋转角度更新为另一个角度;所述另一个角度是指:所述第一角度和所述第二角度中,与所述第j个采样点中的全局旋转角度不同的角度。
另一种实施方式中,所述多个采样点按照时间点先后顺序进行排列;相应的,处理单元602在用于所述对所述多个采样点进行曲线拟合处理,得到处理结果时,可具体用于:
将所述多个采样点划分成多个序列段,每个序列段均包括连续的至少两个采样点;任一序列段为线性序列段或者非线性序列段,所述线性序列段是指各个采样点之间呈线性关系的序列段,所述非线性序列段是指各个采样点之间呈非线性关系的序列;
分别对所述多个序列段中的各个非线性序列段进行曲线拟合处理,得到所述各个非线性序列段的曲线拟合结果;任一非线性序列段的曲线拟合结果包括:基于相应非线性序列段所拟合出的至少一条曲线的曲线描述信息;
采用所述多个序列段中的各个线性序列段中的第一个采样点和最后一个采样点,以及所述各个非线性序列段的曲线拟合结果,构建处理结果。
另一种实施方式中,处理单元602在用于将所述多个采样点划分成多个序列段时,可具体用于:
将所述多个采样点中的各个采样点映射至目标坐标系中,得到相应采样点的位置坐标;
根据所述多个采样点中的各个采样点的位置坐标,确定相应采样点的斜率;其中,在所述多个采样点中,位于非首位的任一采样点的斜率是根据相应采样点的位置坐标和前一采样点的位置坐标确定的;
基于所述多个采样点中的每个采样点的斜率,将所述多个采样点划分成多个序列段;
其中,线性序列段中的任意两个相邻采样点的斜率之间的差值绝对值小于第一阈值,非线性序列段中的任意两个相邻采样点的斜率之间的差值绝对值大于或等于第一阈值。
另一种实施方式中,处理单元602在用于基于所述多个采样点中的每个采样点的斜率,将所述多个采样点划分成多个序列段时,可具体用于:
基于所述多个采样点中未被搜索的首个采样点开始当前轮搜索,将当前搜索的采样点作为当前采样点,并计算所述当前采样点的斜率和待搜索的下一个采样点的斜率之间的差值绝对值;
若计算出的差值绝对值小于所述第一阈值,则继续搜索,直至计算出的差值绝对值大于或等于所述第一阈值时,结束所述当前轮搜索,并采用所述当前轮搜索的起始点和结束点构建一个序列段,构建的序列段被确定为线性序列段;
若计算出的差值绝对值大于或等于所述第一阈值,则继续搜索,直至计算出的差值绝对值小于所述第一阈值时,结束所述当前轮搜索,并采用在所述当前轮搜索中被搜索的各个采样点构建一个序列段,构建的序列段被确定为非线性序列段;
在结束所述当前轮搜索后,若所述多个采样点中存在至少一个采样点未被搜索,则进入下一轮搜索,直至所述多个采样点均被搜索,得到多个序列段。
另一种实施方式中,处理单元602在用于在采用各个线性序列段中的第一个采样点和最后一个采样点,以及所述各个非线性序列段的曲线拟合结果,构建处理结果之前,还可用于:
在所述至少一个线性序列段中,查找需合并的序列段组;所述序列段组中包括连续相邻的线性序列段,且任意两个相邻的序列段之间的斜率差小于第二阈值;其中,两个相邻的线性序列段满足如下条件:一个线性序列段中的最后一个采样点与另一个线性序列段中的第一个采样点相邻;
若查找到所述序列段组,则将所述序列段组中的各个线性序列段,合并成一个线性序列段。
另一种实施方式中,处理单元602在用于分别对所述多个序列段中的各个非线性序列段进行曲线拟合处理,得到所述各个非线性序列段的曲线拟合结果时,可具体用于:
从第i个非线性序列段包括的采样点中,查找出至少一个极值点;其中,若位于任一采样点两侧且与相应采样点相邻的两个采样点中的全局位姿数据,均大于或均小于所述任一采样点中的全局位姿数据,则所述任一采样点为极值点;
基于查找出的各个极值点,将所述第i个非线性序列段分割成多个子序列段;调用曲线拟合工具分别对每个子序列段进行曲线拟合处理,得到每个子序列段对应的至少一条曲线;
采用所述每个子序列段对应的各条曲线的曲线描述信息,构建所述第i个非线性序列段的曲线拟合结果;
其中,i为正整数且小于或等于非线性序列段的数量;任一条曲线的曲线描述信息包括:相应曲线的起始时间点以及相应曲线的方程式参数。
另一种实施方式中,处理单元602在用于从第i个非线性序列段包括的采样点中,查找出至少一个极值点时,可具体用于:
对第i个非线性序列段中的各个采样点进行一阶导数计算,得到所述第i个非线性序列段中的各个采样点的一阶导数值;
依次轮询所述第i个非线性序列段中的各个采样点,并将当前轮询的采样点作为基准采样点;
若所述基准采样点的一阶导数值和第i个非线性序列段中的下一个采样点的一阶导数值属于同类型的数值,则继续轮询所述第i个非线性序列段中的各个采样点;
若所述基准采样点的一阶导数值和第i个非线性序列段中的下一个采样点的一阶导数值属于不同类型的数值,则将所述基准采样点作为一个极值点,并继续轮询所述第i个非线性序列段中的各个采样点;
直至所述第i个非线性序列段中的各个采样点均被轮询后,得到至少一个极值点。
另一种实施方式中,处理单元602在用于调用曲线拟合工具分别对每个子序列段进行曲线拟合处理,得到每个子序列段对应的至少一条曲线时,可具体用于:
针对任一子序列段,确定曲线数量阈值为G以及设定当前需拟合出的曲线数量c的取值;其中,G为正整数,c从1开始取值,且c小于或等于G;
每次设定c的取值后,则调用曲线拟合工具对所述任一子序列段进行曲线拟合处理,得到c条曲线以及所述c条曲线的拟合精度;
若所述c条曲线的拟合精度小于精度阈值且c<G,则对c执行加一操作,以重新设定c的取值,并跳转至所述调用曲线拟合工具对所述任一子序列段进行曲线拟合处理,得到c条曲线以及所述c条曲线的拟合精度的步骤;
若所述c条曲线的拟合精度大于或等于精度阈值,或者所述c条曲线的拟合精度小于精度阈值且c=G,则将所述c条曲线作为所述任一子序列段对应的至少一条曲线。
另一种实施方式中,处理单元602还可用于:
确定所述局部动画系统和所述全局动画系统之间的动画转换模式;
若所述动画转换模式为非简化模式,则触发执行所述调用曲线拟合工具分别对每个子序列段进行曲线拟合处理,得到每个子序列段对应的至少一条曲线的步骤;
若所述动画转换模式为简化模式,则分别采用各个子序列段中的第一个采样点和最后一个采样点,构建一条直线作为相应子序列段对应的曲线。
根据本申请的另一个实施例,图6所示的动画处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,基于动画处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图2或图4中所示的相应方法所涉及的各步骤的计算机程序(包括一条或多条指令),来构造如图6中所示的动画处理装置设备,以及来实现本申请实施例的动画处理方法。所述计算机程序可以记载于例如计算机可读存储介质上,并通过计算机可读存储介质装载于上述计算设备中,并在其中运行。
本申请实施例针对局部动画系统中的目标对象的局部动画曲线,可以基于该目标对象的局部动画曲线进行全局采样,并对采样出的多个采样点进行曲线拟合处理,从而将相应的处理结果适配至全局动画系统,以使全局动画系统基于适配的处理结果中的各个数据构建目标对象的全局动画曲线。相较于在目标对象的局部动画曲线上直接叠加其祖辈的局部动画曲线,以得到目标对象的全局动画曲线的方式,本申请实施例通过结合全局采样和曲线拟合的方式,来将局部动画曲线转换为全局动画曲线,可减少对局部动画曲线中的局部位姿数据的使用,从而减少因叠加其祖辈的局部动画曲线所带来的不准确的影响,进而提升局部动画曲线的转换效果。并且,由于本申请实施例是将拟合出的至少一条曲线的曲线描述信息等处理结果,适配至全局动画系统的,这些处理结果所需的存储空间以及传输资源等处理资源,远小于整个全局动画曲线所需的存储空间和传输资源等处理资源,因此可见本申请实施例还可有效节省处理资源。
基于上述方法实施例以及装置实施例的描述,本申请实施例还提供一种计算机设备。请参见图7,该计算机设备至少包括处理器701、输入接口702、输出接口703以及计算机存储介质704。其中,计算机设备内的处理器701、输入接口702、输出接口703以及计算机存储介质704可通过总线或其他方式连接。计算机存储介质704可以存储在计算机设备的存储器中,所述计算机存储介质704用于存储计算机程序,所述计算机程序包括一条或多条指令,所述处理器701用于执行所述计算机存储介质704存储的计算机程序中的一条或多条指令。处理器701(或称CPU(Central Processing Unit,中央处理器))是计算机设备的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行一条或多条指令从而实现相应方法流程或相应功能。
在一个实施例中,本申请实施例所述的处理器701可以用于进行一系列的动画处理,具体包括:当需在局部动画系统和全局动画系统之间进行动画转换时,从所述局部动画系统中获取目标对象的局部动画曲线,所述目标对象是指场景动画中存在父对象的对象;所述目标对象的局部动画曲线包括:所述目标对象在多个时间点处的局部位姿数据;基于所述目标对象的局部动画曲线进行全局采样,得到多个采样点;不同采样点对应不同时间点,任一采样点包括:所述目标对象在相应时间点处的全局位姿数据;任一采样点是根据所述目标对象在相应时间点处的局部位姿数据以及所述父对象在相应时间点处的全局位姿数据确定的;对所述多个采样点进行曲线拟合处理,得到处理结果;所述处理结果包括:拟合出的至少一条曲线的曲线描述信息;将所述处理结果适配至所述全局动画系统,以使所述全局动画系统基于适配的处理结果中的各个数据构建所述目标对象的全局动画曲线,等等。
本申请实施例还提供了一种计算机存储介质(Memory),所述计算机存储介质是计算机设备中的记忆设备,用于存放计算机程序和数据。可以理解的是,此处的计算机存储介质既可以包括计算机设备中的内置存储介质,当然也可以包括计算机设备所支持的扩展存储介质。计算机存储介质提供存储空间,该存储空间存储了计算机设备的操作系统。并且,在该存储空间中还存放了计算机程序,该计算机程序包括适于被处理器701加载并执行的一条或多条的指令,这些指令可以是一个或一个以上的程序代码。需要说明的是,此处的计算机存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器;可选的,还可以是至少一个位于远离前述处理器的计算机存储介质。
在一个实施例中,可由处理器加载并执行计算机存储介质中存放的一条或多条指令,以实现上述有关图2或图4所示的方法实施例中的相应步骤;具体实现中,计算机存储介质中的一条或多条指令可由处理器加载并执行如下步骤:
当需在局部动画系统和全局动画系统之间进行动画转换时,从所述局部动画系统中获取目标对象的局部动画曲线,所述目标对象是指场景动画中存在父对象的对象;所述目标对象的局部动画曲线包括:所述目标对象在多个时间点处的局部位姿数据;
基于所述目标对象的局部动画曲线进行全局采样,得到多个采样点;不同采样点对应不同时间点,任一采样点包括:所述目标对象在相应时间点处的全局位姿数据;任一采样点是根据所述目标对象在相应时间点处的局部位姿数据以及所述父对象在相应时间点处的全局位姿数据确定的;
对所述多个采样点进行曲线拟合处理,得到处理结果;所述处理结果包括:拟合出的至少一条曲线的曲线描述信息;
将所述处理结果适配至所述全局动画系统,以使所述全局动画系统基于适配的处理结果中的各个数据构建所述目标对象的全局动画曲线。
在一种实施方式中,在基于所述目标对象的局部动画曲线进行全局采样时,所述一条或多条指令可由处理器加载并具体执行:
按照预设采样频率对所述目标对象的局部动画曲线进行均匀采样;
每采样出一个时间点对应的局部位姿数据,则根据当前采样出的时间点对应的局部位姿数据和所述父对象在相应时间点的全局位姿数据,计算所述目标对象在相应时间点处的全局位姿数据,得到一个采样点。
另一种实施方式中,任一局部位姿数据为目标旋转通道下的局部旋转角度,任一采样点中的全局位姿数据为所述目标旋转通道下的全局旋转角度;任一旋转角度的取值范围位于第一角度和第二角度之间,所述第一角度和所述第二角度是两个不同的角度,但所述第一角度和所述第二角度表示同一个旋转位置;
相应的,在对所述多个采样点进行曲线拟合处理,得到处理结果之前,所述一条或多条指令可由处理器加载并具体执行:
针对第j个采样点,若所述第j个采样点中的全局旋转角度和所述第一角度或者所述第二角度相同,则从所述多个采样点中确定出参考采样点;其中,j的取值为正整数且小于或等于采样点的数量;所述参考采样点是指:与所述第j个采样点相距K个时间点的采样点,K为正整数;
确定所述第j个采样点中的全局旋转角度与所述参考采样点中的全局旋转角度之间的角度差值;
根据所述角度差值和默认阈值之间的大小关系,对所述第j个采样点中的全局旋转角度进行校准。
另一种实施方式中,在根据所述角度差值和默认阈值之间的大小关系,对所述第j个采样点中的全局旋转角度进行校准时,所述一条或多条指令可由处理器加载并具体执行:
如果所述角度差值小于或等于默认阈值,则保持所述第j个采样点中的全局旋转角度不变;
如果所述角度差值大于默认阈值,则将所述第j个采样点中的全局旋转角度更新为另一个角度;所述另一个角度是指:所述第一角度和所述第二角度中,与所述第j个采样点中的全局旋转角度不同的角度。
另一种实施方式中,所述多个采样点按照时间点先后顺序进行排列;相应的,在对所述多个采样点进行曲线拟合处理,得到处理结果时,所述一条或多条指令可由处理器加载并具体执行:
将所述多个采样点划分成多个序列段,每个序列段均包括连续的至少两个采样点;任一序列段为线性序列段或者非线性序列段,所述线性序列段是指各个采样点之间呈线性关系的序列段,所述非线性序列段是指各个采样点之间呈非线性关系的序列;
分别对所述多个序列段中的各个非线性序列段进行曲线拟合处理,得到所述各个非线性序列段的曲线拟合结果;任一非线性序列段的曲线拟合结果包括:基于相应非线性序列段所拟合出的至少一条曲线的曲线描述信息;
采用所述多个序列段中的各个线性序列段中的第一个采样点和最后一个采样点,以及所述各个非线性序列段的曲线拟合结果,构建处理结果。
另一种实施方式中,在将所述多个采样点划分成多个序列段时,所述一条或多条指令可由处理器加载并具体执行:
将所述多个采样点中的各个采样点映射至目标坐标系中,得到相应采样点的位置坐标;
根据所述多个采样点中的各个采样点的位置坐标,确定相应采样点的斜率;其中,在所述多个采样点中,位于非首位的任一采样点的斜率是根据相应采样点的位置坐标和前一采样点的位置坐标确定的;
基于所述多个采样点中的每个采样点的斜率,将所述多个采样点划分成多个序列段;
其中,线性序列段中的任意两个相邻采样点的斜率之间的差值绝对值小于第一阈值,非线性序列段中的任意两个相邻采样点的斜率之间的差值绝对值大于或等于第一阈值。
另一种实施方式中,在基于所述多个采样点中的每个采样点的斜率,将所述多个采样点划分成多个序列段时,所述一条或多条指令可由处理器加载并具体执行:
基于所述多个采样点中未被搜索的首个采样点开始当前轮搜索,将当前搜索的采样点作为当前采样点,并计算所述当前采样点的斜率和待搜索的下一个采样点的斜率之间的差值绝对值;
若计算出的差值绝对值小于所述第一阈值,则继续搜索,直至计算出的差值绝对值大于或等于所述第一阈值时,结束所述当前轮搜索,并采用所述当前轮搜索的起始点和结束点构建一个序列段,构建的序列段被确定为线性序列段;
若计算出的差值绝对值大于或等于所述第一阈值,则继续搜索,直至计算出的差值绝对值小于所述第一阈值时,结束所述当前轮搜索,并采用在所述当前轮搜索中被搜索的各个采样点构建一个序列段,构建的序列段被确定为非线性序列段;
在结束所述当前轮搜索后,若所述多个采样点中存在至少一个采样点未被搜索,则进入下一轮搜索,直至所述多个采样点均被搜索,得到多个序列段。
另一种实施方式中,在采用各个线性序列段中的第一个采样点和最后一个采样点,以及所述各个非线性序列段的曲线拟合结果,构建处理结果之前,所述一条或多条指令可由处理器加载并具体执行:
在所述至少一个线性序列段中,查找需合并的序列段组;所述序列段组中包括连续相邻的线性序列段,且任意两个相邻的序列段之间的斜率差小于第二阈值;其中,两个相邻的线性序列段满足如下条件:一个线性序列段中的最后一个采样点与另一个线性序列段中的第一个采样点相邻;
若查找到所述序列段组,则将所述序列段组中的各个线性序列段,合并成一个线性序列段。
另一种实施方式中,在分别对所述多个序列段中的各个非线性序列段进行曲线拟合处理,得到所述各个非线性序列段的曲线拟合结果时,所述一条或多条指令可由处理器加载并具体执行:
从第i个非线性序列段包括的采样点中,查找出至少一个极值点;其中,若位于任一采样点两侧且与相应采样点相邻的两个采样点中的全局位姿数据,均大于或均小于所述任一采样点中的全局位姿数据,则所述任一采样点为极值点;
基于查找出的各个极值点,将所述第i个非线性序列段分割成多个子序列段;调用曲线拟合工具分别对每个子序列段进行曲线拟合处理,得到每个子序列段对应的至少一条曲线;
采用所述每个子序列段对应的各条曲线的曲线描述信息,构建所述第i个非线性序列段的曲线拟合结果;
其中,i为正整数且小于或等于非线性序列段的数量;任一条曲线的曲线描述信息包括:相应曲线的起始时间点以及相应曲线的方程式参数。
另一种实施方式中,在从第i个非线性序列段包括的采样点中,查找出至少一个极值点时,所述一条或多条指令可由处理器加载并具体执行:
对第i个非线性序列段中的各个采样点进行一阶导数计算,得到所述第i个非线性序列段中的各个采样点的一阶导数值;
依次轮询所述第i个非线性序列段中的各个采样点,并将当前轮询的采样点作为基准采样点;
若所述基准采样点的一阶导数值和第i个非线性序列段中的下一个采样点的一阶导数值属于同类型的数值,则继续轮询所述第i个非线性序列段中的各个采样点;
若所述基准采样点的一阶导数值和第i个非线性序列段中的下一个采样点的一阶导数值属于不同类型的数值,则将所述基准采样点作为一个极值点,并继续轮询所述第i个非线性序列段中的各个采样点;
直至所述第i个非线性序列段中的各个采样点均被轮询后,得到至少一个极值点。
另一种实施方式中,在调用曲线拟合工具分别对每个子序列段进行曲线拟合处理,得到每个子序列段对应的至少一条曲线时,所述一条或多条指令可由处理器加载并具体执行:
针对任一子序列段,确定曲线数量阈值为G以及设定当前需拟合出的曲线数量c的取值;其中,G为正整数,c从1开始取值,且c小于或等于G;
每次设定c的取值后,则调用曲线拟合工具对所述任一子序列段进行曲线拟合处理,得到c条曲线以及所述c条曲线的拟合精度;
若所述c条曲线的拟合精度小于精度阈值且c<G,则对c执行加一操作,以重新设定c的取值,并跳转至所述调用曲线拟合工具对所述任一子序列段进行曲线拟合处理,得到c条曲线以及所述c条曲线的拟合精度的步骤;
若所述c条曲线的拟合精度大于或等于精度阈值,或者所述c条曲线的拟合精度小于精度阈值且c=G,则将所述c条曲线作为所述任一子序列段对应的至少一条曲线。
另一种实施方式中,所述一条或多条指令可由处理器加载并具体执行:
确定所述局部动画系统和所述全局动画系统之间的动画转换模式;
若所述动画转换模式为非简化模式,则触发执行所述调用曲线拟合工具分别对每个子序列段进行曲线拟合处理,得到每个子序列段对应的至少一条曲线的步骤;
若所述动画转换模式为简化模式,则分别采用各个子序列段中的第一个采样点和最后一个采样点,构建一条直线作为相应子序列段对应的曲线。
本申请实施例针对局部动画系统中的目标对象的局部动画曲线,可以基于该目标对象的局部动画曲线进行全局采样,并对采样出的多个采样点进行曲线拟合处理,从而将相应的处理结果适配至全局动画系统,以使全局动画系统基于适配的处理结果中的各个数据构建目标对象的全局动画曲线。相较于在目标对象的局部动画曲线上直接叠加其祖辈的局部动画曲线,以得到目标对象的全局动画曲线的方式,本申请实施例通过结合全局采样和曲线拟合的方式,来将局部动画曲线转换为全局动画曲线,可减少对局部动画曲线中的局部位姿数据的使用,从而减少因叠加其祖辈的局部动画曲线所带来的不准确的影响,进而提升局部动画曲线的转换效果。并且,由于本申请实施例是将拟合出的至少一条曲线的曲线描述信息等处理结果,适配至全局动画系统的,这些处理结果所需的存储空间以及传输资源等处理资源,远小于整个全局动画曲线所需的存储空间和传输资源等处理资源,因此可见本申请实施例还可有效节省处理资源。
需要说明的是,根据本申请的一个方面,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括一条或多条指令,该一条或多条指令存储在计算机存储介质中。计算机设备的处理器从计算机存储介质读取一条或多条指令,处理器执行该一条或多条指令,使得该计算机设备执行上述图2或图4所示的方法实施例方面的各种可选方式中提供的方法。应理解的是,以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (15)
1.一种动画处理方法,其特征在于,包括:
当需在局部动画系统和全局动画系统之间进行动画转换时,从所述局部动画系统中获取目标对象的局部动画曲线,所述目标对象是指场景动画中存在父对象的对象;所述目标对象的局部动画曲线包括:所述目标对象在多个时间点处的局部位姿数据;
基于所述目标对象的局部动画曲线进行全局采样,得到多个采样点;不同采样点对应不同时间点,任一采样点包括:所述目标对象在相应时间点处的全局位姿数据;任一采样点是根据所述目标对象在相应时间点处的局部位姿数据以及所述父对象在相应时间点处的全局位姿数据确定的;
对所述多个采样点进行曲线拟合处理,得到处理结果;所述处理结果包括:拟合出的至少一条曲线的曲线描述信息;
将所述处理结果适配至所述全局动画系统,以使所述全局动画系统基于适配的处理结果中的各个数据构建所述目标对象的全局动画曲线。
2.如权利要求1所述的方法,其特征在于,所述基于所述目标对象的局部动画曲线进行全局采样,包括:
按照预设采样频率对所述目标对象的局部动画曲线进行均匀采样;
每采样出一个时间点对应的局部位姿数据,则根据当前采样出的时间点对应的局部位姿数据和所述父对象在相应时间点的全局位姿数据,计算所述目标对象在相应时间点处的全局位姿数据,得到一个采样点。
3.如权利要求2所述的方法,其特征在于,任一局部位姿数据为目标旋转通道下的局部旋转角度,任一采样点中的全局位姿数据为所述目标旋转通道下的全局旋转角度;任一旋转角度的取值范围位于第一角度和第二角度之间,所述第一角度和所述第二角度是两个不同的角度,但所述第一角度和所述第二角度表示同一个旋转位置;
在对所述多个采样点进行曲线拟合处理,得到处理结果之前,所述方法还包括:
针对第j个采样点,若所述第j个采样点中的全局旋转角度和所述第一角度或者所述第二角度相同,则从所述多个采样点中确定出参考采样点;其中,j的取值为正整数且小于或等于采样点的数量;所述参考采样点是指:与所述第j个采样点相距K个时间点的采样点,K为正整数;
确定所述第j个采样点中的全局旋转角度与所述参考采样点中的全局旋转角度之间的角度差值;
根据所述角度差值和默认阈值之间的大小关系,对所述第j个采样点中的全局旋转角度进行校准。
4.如权利要求3所述的方法,其特征在于,所述根据所述角度差值和默认阈值之间的大小关系,对所述第j个采样点中的全局旋转角度进行校准,包括:
如果所述角度差值小于或等于默认阈值,则保持所述第j个采样点中的全局旋转角度不变;
如果所述角度差值大于默认阈值,则将所述第j个采样点中的全局旋转角度更新为另一个角度;所述另一个角度是指:所述第一角度和所述第二角度中,与所述第j个采样点中的全局旋转角度不同的角度。
5.如权利要求1所述的方法,其特征在于,所述多个采样点按照时间点先后顺序进行排列;所述对所述多个采样点进行曲线拟合处理,得到处理结果,包括:
将所述多个采样点划分成多个序列段,每个序列段均包括连续的至少两个采样点;任一序列段为线性序列段或者非线性序列段,所述线性序列段是指各个采样点之间呈线性关系的序列段,所述非线性序列段是指各个采样点之间呈非线性关系的序列;
分别对所述多个序列段中的各个非线性序列段进行曲线拟合处理,得到所述各个非线性序列段的曲线拟合结果;任一非线性序列段的曲线拟合结果包括:基于相应非线性序列段所拟合出的至少一条曲线的曲线描述信息;
采用所述多个序列段中的各个线性序列段中的第一个采样点和最后一个采样点,以及所述各个非线性序列段的曲线拟合结果,构建处理结果。
6.如权利要求5所述的方法,其特征在于,所述将所述多个采样点划分成多个序列段,包括:
将所述多个采样点中的各个采样点映射至目标坐标系中,得到相应采样点的位置坐标;
根据所述多个采样点中的各个采样点的位置坐标,确定相应采样点的斜率;其中,在所述多个采样点中,位于非首位的任一采样点的斜率是根据相应采样点的位置坐标和前一采样点的位置坐标确定的;
基于所述多个采样点中的每个采样点的斜率,将所述多个采样点划分成多个序列段;
其中,线性序列段中的任意两个相邻采样点的斜率之间的差值绝对值小于第一阈值,非线性序列段中的任意两个相邻采样点的斜率之间的差值绝对值大于或等于第一阈值。
7.如权利要求6所述的方法,其特征在于,所述基于所述多个采样点中的每个采样点的斜率,将所述多个采样点划分成多个序列段,包括:
基于所述多个采样点中未被搜索的首个采样点开始当前轮搜索,将当前搜索的采样点作为当前采样点,并计算所述当前采样点的斜率和待搜索的下一个采样点的斜率之间的差值绝对值;
若计算出的差值绝对值小于所述第一阈值,则继续搜索,直至计算出的差值绝对值大于或等于所述第一阈值时,结束所述当前轮搜索,并采用所述当前轮搜索的起始点和结束点构建一个序列段,构建的序列段被确定为线性序列段;
若计算出的差值绝对值大于或等于所述第一阈值,则继续搜索,直至计算出的差值绝对值小于所述第一阈值时,结束所述当前轮搜索,并采用在所述当前轮搜索中被搜索的各个采样点构建一个序列段,构建的序列段被确定为非线性序列段;
在结束所述当前轮搜索后,若所述多个采样点中存在至少一个采样点未被搜索,则进入下一轮搜索,直至所述多个采样点均被搜索,得到多个序列段。
8.如权利要求5所述的方法,其特征在于,在采用各个线性序列段中的第一个采样点和最后一个采样点,以及所述各个非线性序列段的曲线拟合结果,构建处理结果之前,所述方法还包括:
在所述至少一个线性序列段中,查找需合并的序列段组;所述序列段组中包括连续相邻的线性序列段,且任意两个相邻的序列段之间的斜率差小于第二阈值;其中,两个相邻的线性序列段满足如下条件:一个线性序列段中的最后一个采样点与另一个线性序列段中的第一个采样点相邻;
若查找到所述序列段组,则将所述序列段组中的各个线性序列段,合并成一个线性序列段。
9.如权利要求5所述的方法,其特征在于,所述分别对所述多个序列段中的各个非线性序列段进行曲线拟合处理,得到所述各个非线性序列段的曲线拟合结果,包括:
从第i个非线性序列段包括的采样点中,查找出至少一个极值点;其中,若位于任一采样点两侧且与相应采样点相邻的两个采样点中的全局位姿数据,均大于或均小于所述任一采样点中的全局位姿数据,则所述任一采样点为极值点;
基于查找出的各个极值点,将所述第i个非线性序列段分割成多个子序列段;调用曲线拟合工具分别对每个子序列段进行曲线拟合处理,得到每个子序列段对应的至少一条曲线;
采用所述每个子序列段对应的各条曲线的曲线描述信息,构建所述第i个非线性序列段的曲线拟合结果;
其中,i为正整数且小于或等于非线性序列段的数量;任一条曲线的曲线描述信息包括:相应曲线的起始时间点以及相应曲线的方程式参数。
10.如权利要求9所述的方法,其特征在于,所述从第i个非线性序列段包括的采样点中,查找出至少一个极值点,包括:
对第i个非线性序列段中的各个采样点进行一阶导数计算,得到所述第i个非线性序列段中的各个采样点的一阶导数值;
依次轮询所述第i个非线性序列段中的各个采样点,并将当前轮询的采样点作为基准采样点;
若所述基准采样点的一阶导数值和第i个非线性序列段中的下一个采样点的一阶导数值属于同类型的数值,则继续轮询所述第i个非线性序列段中的各个采样点;
若所述基准采样点的一阶导数值和第i个非线性序列段中的下一个采样点的一阶导数值属于不同类型的数值,则将所述基准采样点作为一个极值点,并继续轮询所述第i个非线性序列段中的各个采样点;
直至所述第i个非线性序列段中的各个采样点均被轮询后,得到至少一个极值点。
11.如权利要求9所述的方法,其特征在于,所述调用曲线拟合工具分别对每个子序列段进行曲线拟合处理,得到每个子序列段对应的至少一条曲线,包括:
针对任一子序列段,确定曲线数量阈值为G以及设定当前需拟合出的曲线数量c的取值;其中,G为正整数,c从1开始取值,且c小于或等于G;
每次设定c的取值后,则调用曲线拟合工具对所述任一子序列段进行曲线拟合处理,得到c条曲线以及所述c条曲线的拟合精度;
若所述c条曲线的拟合精度小于精度阈值且c<G,则对c执行加一操作,以重新设定c的取值,并跳转至所述调用曲线拟合工具对所述任一子序列段进行曲线拟合处理,得到c条曲线以及所述c条曲线的拟合精度的步骤;
若所述c条曲线的拟合精度大于或等于精度阈值,或者所述c条曲线的拟合精度小于精度阈值且c=G,则将所述c条曲线作为所述任一子序列段对应的至少一条曲线。
12.如权利要求9所述的方法,其特征在于,所述方法还包括:
确定所述局部动画系统和所述全局动画系统之间的动画转换模式;
若所述动画转换模式为非简化模式,则触发执行所述调用曲线拟合工具分别对每个子序列段进行曲线拟合处理,得到每个子序列段对应的至少一条曲线的步骤;
若所述动画转换模式为简化模式,则分别采用各个子序列段中的第一个采样点和最后一个采样点,构建一条直线作为相应子序列段对应的曲线。
13.一种动画处理装置,其特征在于,包括:
获取单元,用于当需在局部动画系统和全局动画系统之间进行动画转换时,从所述局部动画系统中获取目标对象的局部动画曲线,所述目标对象是指场景动画中存在父对象的对象;所述目标对象的局部动画曲线包括:所述目标对象在多个时间点处的局部位姿数据;
处理单元,用于基于所述目标对象的局部动画曲线进行全局采样,得到多个采样点;不同采样点对应不同时间点,任一采样点包括:所述目标对象在相应时间点处的全局位姿数据;任一采样点是根据所述目标对象在相应时间点处的局部位姿数据以及所述父对象在相应时间点处的全局位姿数据确定的;
所述处理单元,还用于对所述多个采样点进行曲线拟合处理,得到处理结果;所述处理结果包括:拟合出的至少一条曲线的曲线描述信息;
所述处理单元,还用于将所述处理结果适配至所述全局动画系统,以使所述全局动画系统基于适配的处理结果中的各个数据构建所述目标对象的全局动画曲线。
14.一种计算机设备,包括输入接口和输出接口,其特征在于,还包括:处理器以及计算机存储介质;
其中,所述处理器适于实现一条或多条指令,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由所述处理器加载并执行如权利要求1-12任一项所述的动画处理方法。
15.一种计算机存储介质,其特征在于,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由处理器加载并执行如权利要求1-12任一项所述的动画处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311344823.1A CN117095086B (zh) | 2023-10-18 | 2023-10-18 | 动画处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311344823.1A CN117095086B (zh) | 2023-10-18 | 2023-10-18 | 动画处理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117095086A true CN117095086A (zh) | 2023-11-21 |
CN117095086B CN117095086B (zh) | 2024-02-09 |
Family
ID=88773712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311344823.1A Active CN117095086B (zh) | 2023-10-18 | 2023-10-18 | 动画处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117095086B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0785315A (ja) * | 1993-06-30 | 1995-03-31 | Hitachi Ltd | 三次元形状データ変形処理方法およびアニメーション作成方法 |
US20190156545A1 (en) * | 2017-11-21 | 2019-05-23 | Microsoft Technology Licensing, Llc | Animating three-dimensional models using preset combinations of animation features |
CN112509098A (zh) * | 2020-11-30 | 2021-03-16 | 北京百度网讯科技有限公司 | 动画形象生成方法、装置及电子设备 |
CN112634410A (zh) * | 2020-12-30 | 2021-04-09 | 平安证券股份有限公司 | 动画曲线插值器生成方法、装置、电子设备及可读存储介质 |
CN114782592A (zh) * | 2022-04-25 | 2022-07-22 | 中国平安人寿保险股份有限公司 | 基于图像的卡通动画生成方法、装置、设备及存储介质 |
WO2022171092A1 (zh) * | 2021-02-09 | 2022-08-18 | 北京天玛智控科技股份有限公司 | 定位方法、定位组件和定位系统 |
CN115035190A (zh) * | 2022-06-28 | 2022-09-09 | 影石创新科技股份有限公司 | 位姿定位方法、装置、计算机设备和存储介质 |
CN116342760A (zh) * | 2023-05-25 | 2023-06-27 | 南昌航空大学 | 三维面部动画合成方法、系统、电子设备及存储介质 |
CN116597056A (zh) * | 2023-07-14 | 2023-08-15 | 腾讯科技(深圳)有限公司 | 一种动画处理方法、装置、设备和存储介质 |
-
2023
- 2023-10-18 CN CN202311344823.1A patent/CN117095086B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0785315A (ja) * | 1993-06-30 | 1995-03-31 | Hitachi Ltd | 三次元形状データ変形処理方法およびアニメーション作成方法 |
US20190156545A1 (en) * | 2017-11-21 | 2019-05-23 | Microsoft Technology Licensing, Llc | Animating three-dimensional models using preset combinations of animation features |
CN112509098A (zh) * | 2020-11-30 | 2021-03-16 | 北京百度网讯科技有限公司 | 动画形象生成方法、装置及电子设备 |
CN112634410A (zh) * | 2020-12-30 | 2021-04-09 | 平安证券股份有限公司 | 动画曲线插值器生成方法、装置、电子设备及可读存储介质 |
WO2022171092A1 (zh) * | 2021-02-09 | 2022-08-18 | 北京天玛智控科技股份有限公司 | 定位方法、定位组件和定位系统 |
CN114782592A (zh) * | 2022-04-25 | 2022-07-22 | 中国平安人寿保险股份有限公司 | 基于图像的卡通动画生成方法、装置、设备及存储介质 |
CN115035190A (zh) * | 2022-06-28 | 2022-09-09 | 影石创新科技股份有限公司 | 位姿定位方法、装置、计算机设备和存储介质 |
CN116342760A (zh) * | 2023-05-25 | 2023-06-27 | 南昌航空大学 | 三维面部动画合成方法、系统、电子设备及存储介质 |
CN116597056A (zh) * | 2023-07-14 | 2023-08-15 | 腾讯科技(深圳)有限公司 | 一种动画处理方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117095086B (zh) | 2024-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020240809A1 (ja) | 学習装置、分類装置、学習方法、分類方法、学習プログラム、及び分類プログラム | |
CN112231582B (zh) | 一种基于变分自编码数据融合的网站推荐方法和设备 | |
Piergiovanni et al. | Adversarial generative grammars for human activity prediction | |
US20230401672A1 (en) | Video processing method and apparatus, computer device, and storage medium | |
CN103455555B (zh) | 基于移动终端相似度的推荐方法及推荐装置 | |
CN115601511B (zh) | 三维重建方法、装置、计算机设备及计算机可读存储介质 | |
CN114339362B (zh) | 视频弹幕匹配方法、装置、计算机设备和存储介质 | |
KR20190125029A (ko) | 시계열 적대적인 신경망 기반의 텍스트-비디오 생성 방법 및 장치 | |
CN112101344B (zh) | 一种视频文本跟踪方法及装置 | |
CN116958712B (zh) | 基于先验概率分布的图像生成方法、系统、介质及设备 | |
CN117095086B (zh) | 动画处理方法、装置、设备及存储介质 | |
CN111932438B (zh) | 图像风格迁移方法、设备及存储装置 | |
CN116467466A (zh) | 基于知识图谱的编码推荐方法、装置、设备及介质 | |
KR20230167746A (ko) | 메시 정점 위치에 대한 반복 및 루트 찾기를 사용하여 표면에 근사하는 폴리곤 메시를 생성하기 위한 방법 및 시스템 | |
CN115482557A (zh) | 人体图像生成方法、系统、设备及存储介质 | |
CN115170418A (zh) | 符合退化的低秩高维图像填充模型及其填充方法与系统 | |
US20220008826A1 (en) | Strand Simulation in Multiple Levels | |
CN114399708A (zh) | 一种视频动作迁移深度学习系统和方法 | |
CN114333069A (zh) | 对象的姿态处理方法、装置、设备及存储介质 | |
CN115937365A (zh) | 用于人脸重建的网络训练方法、装置、设备及存储介质 | |
CN115564803B (zh) | 一种动画处理方法、装置、设备、存储介质及产品 | |
CN115994541B (zh) | 界面语义数据生成方法、装置、计算机设备和存储介质 | |
CN114612510B (zh) | 图像处理方法、装置、设备、存储介质及计算机程序产品 | |
CN115953722B (zh) | 一种用于视频分类任务的处理方法、装置 | |
Zhu et al. | [Retracted] Deep Learning‐Based 3D Shape Feature Extraction on Flash Animation Style |
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 |