CN111127598A - 动画播放速度的调整方法、装置、电子设备和介质 - Google Patents
动画播放速度的调整方法、装置、电子设备和介质 Download PDFInfo
- Publication number
- CN111127598A CN111127598A CN201911229230.4A CN201911229230A CN111127598A CN 111127598 A CN111127598 A CN 111127598A CN 201911229230 A CN201911229230 A CN 201911229230A CN 111127598 A CN111127598 A CN 111127598A
- Authority
- CN
- China
- Prior art keywords
- rhythm
- point
- animation
- time
- playing
- 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
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请提供了一种动画播放速度的调整方法、装置、电子设备和介质,涉及动画领域。本申请提供的动画播放速度的调整方法,用户可以通过输入用于表征第一节奏信息的指令,就可以实现利用第一节奏信息中的第一节奏点控制动画播放速度的目的,简化了用户的操作,并且,通过将第一节奏点与动画的第二节奏点进行了匹配,提高了控制的精确程度。
Description
技术领域
本申请涉及动画领域,具体而言,涉及动画播放速度的调整方法、装置、电子设备和介质。
背景技术
随着动画制作技术的进步,动画制作的手段越来越丰富,很多传统的制作流程得到了简化,甚至有些动画可以由没有动画制作经验的普通用户参与完成。
在普通用户参与制作动画的时候,可以根据自己的设想,对动画的播放速度进行调整,可以使用预定的对象模型来替换动画中的对象,也可以将用户自己所跳的舞蹈输入到预定的对象模型,来让对象模型做出相应的舞蹈动作。
发明内容
本申请的目的在于提供动画播放速度的调整方法、装置、电子设备和介质。
在一些实施例中,一种动画播放速度的调整方法,包括:
获取用于调整目标动画播放的第一节奏信息和目标动画的第二节奏信息;第一节奏信息中携带有每个第一节奏点的参考时间;第二节奏信息中携带有目标动画的每个第二节奏点的调整前的播放时间;
根据第一节奏点的参考时间和第二节奏点的调整前的播放时间,分别为每个第一节奏点匹配对应的第二节奏点;
针对每个第二节奏点,根据与该第二节奏点相匹配的第一节奏点的参考时间,确定该第二节奏点调整后的播放时间;
根据调整后的第二节奏点的播放时间调整目标动画的播放速度。
在一些实施例中,第一节奏点的参考时间是通过以下步骤确定的:
根据触控输入设备接收到输入指令的时间确定第一节奏点的参考时间。
在一些实施例中,第一节奏点的参考时间是通过以下步骤确定的:
获取目标音频数据;
根据目标音频数据的频谱信息的能量变化情况,确定目标音频数据中的第一节奏点;
将第一节奏点在目标音频数据中的播放时间作为第一节奏点的参考时间。
在一些实施例中,第一节奏点的参考时间是通过以下步骤确定的:
获取音乐选择指令;
根据音乐选择指令查找目标音乐;
根据目标音乐的频谱信息的能量变化情况,确定目标音乐中的第一节奏点;
将第一节奏点在目标音乐中的播放时间作为第一节奏点的参考时间。
在一些实施例中,第二节奏点是通过以下步骤确定的:
获取目标动画中目标对象的在每个播放时间点的移动变化量;移动变化量包括以下的任意一种或多种:目标对象的移动角加速度、目标对象的移动线加速度;
根据目标对象的在每个播放时间点的移动变化量,确定目标动画在每个播放时间点的节奏强度;
根据每个播放时间点的节奏强度,从多个播放时间点中选择第二节奏点。
在一些实施例中,根据第一节奏点的参考时间和第二节奏点的调整前的播放时间,分别为每个第一节奏点匹配对应的第二节奏点,包括:
针对每个第一节奏点,选择调整前的播放时间与该第一节奏点的参考时间相邻的至少一个第二节奏点作为与该第一节奏点相匹配的候选节奏点;
针对每个第一节奏点,从与该第一节奏点相匹配的候选节奏点中选择一个节奏强度最大的候选节奏点作为与该第一节奏点相匹配的第二节奏点;候选节奏点的节奏强度是根据目标动画中的目标对象在该候选节奏点所在的播放时间点的移动变化量确定的;移动变化量包括以下的任意一种或多种:目标对象的移动角加速度、目标对象的移动线加速度。
在一些实施例中,针对每个第一节奏点,从与该第一节奏点相匹配的候选节奏点中选择一个节奏强度最大的候选节奏点作为与该第一节奏点相匹配的第二节奏点,包括:
针对每个第一节奏点,若与该第一节奏点相匹配的候选节奏点中节奏强度最大的候选节奏点为多个,则从与该第一节奏点相匹配的候选节奏点中选择节奏强度最大,且调整前的播放时间与参考时间最接近的候选节奏点作为与该第一节奏点相匹配的第二节奏点;候选节奏点的节奏强度是根据目标动画中的目标对象在该候选节奏点的移动变化量确定的;移动变化量包括以下的任意一种或多种:目标对象的移动角加速度、目标对象的移动线加速度。
在一些实施例中,根据调整后的第二节奏点的播放时间调整目标动画的播放速度,包括:
采用线性插值的方式,根据每个第二节奏点的调整前的播放时间和调整后的播放时间调整目标动画中每一动画帧的播放时间,以调整目标动画的播放速度。
在一些实施例中,根据调整后的第二节奏点的播放时间确定目标动画的播放速度,包括:
根据每个第二节奏点的调整后的播放时间和第二节奏点所对应的动画帧播放速度,构建贝塞尔曲线;
根据构建的贝塞尔曲线,调整目标动画中每一动画帧的播放时间,以调整目标动画的播放速度。
在一些实施例中,根据每个第二节奏点的调整后的播放时间和第二节奏点所对应的动画帧播放速度,构建贝塞尔曲线,包括:
针对每个第二节奏点,根据与该第二节奏点在时间上相接近的其他第二节奏点的调整前的播放时间和调整后的播放时间,确定该第二节奏点所对应的动画帧播放速度;
根据每个第二节奏点的调整后的播放时间、调整前的播放时间和第二节奏点的动画帧播放速度,构建贝塞尔曲线。
在一些实施例中,所述用于调整目标动画播放的第一节奏信息为用户终端根据用户的动画播放调整操作确定的节奏信息。
在一些实施例中,一种动画播放速度的调整装置,包括:
第一获取模块,用于获取用于调整目标动画播放的第一节奏信息和目标动画的第二节奏信息;第一节奏信息中携带有每个第一节奏点的参考时间;第二节奏信息中携带有目标动画的每个第二节奏点的调整前的播放时间;
第一匹配模块,用于根据第一节奏点的参考时间和第二节奏点的调整前的播放时间,分别为每个第一节奏点匹配对应的第二节奏点;
第一确定模块,用于针对每个第二节奏点,根据与该第二节奏点相匹配的第一节奏点的参考时间,确定该第二节奏点调整后的播放时间;
第一调整模块,用于根据调整后的第二节奏点的播放时间调整目标动画的播放速度。
在一些实施例中,一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行时执行如动画播放速度的调整方法的步骤。
在一些实施例中,一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如动画播放速度的调整方法的步骤。
本申请实施例提供的动画播放速度的调整方法,在获取用于调整目标动画播放的第一节奏信息和目标动画的第二节奏信息之后,根据第一节奏信息中所携带的第一节奏点的参考时间和第二节奏信息中所携带的第二节奏点调整前的播放时间,分别为每个第一节奏点匹配对应的第二节奏点;而后,针对每个第二节奏点,根据与该第二节奏点相匹配的第一节奏点的参考时间,确定该第二节奏点调整后的播放时间;最后,根据调整后的第二节奏点的播放时间调整目标动画的播放速度。可见,利用本申请所提供的方法,可以通过先确定用于调整目标动画播放的第一节奏信息,就可以实现利用第一节奏信息中的第一节奏点控制动画播放速度的目的。如用户可以只通过输入第一节奏信息就可以调整动画播放速度,并且,通过将第一节奏点与第二节奏点进行了匹配,提高了调整的精确程度。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的动画播放速度的调整方法的基本流程图;
图2示出了本申请实施例所提供的动画播放速度的调整方法中,第一种确定第一节奏点的参考时间的细节流程图;
图3示出了本申请实施例所提供的动画播放速度的调整方法中,第二种确定第一节奏点的参考时间的细节流程图;
图4示出了本申请实施例所提供的动画播放速度的调整方法中,确定第二节奏点的细节流程图;
图5示出了本申请实施例所提供的电子设备的示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
近年来,动画制作技术越发成熟,动画制作水平越来越高,很多没有动画制作经验的普通用户都可以参与到动画制作中。由于普通用户的动画制作经验过少,因此,通常无法参与到对象模型构建、图像绘制等环节中。但这些用户可以对动画进行简单的设计,比如调整动画的播放速度。通过调整动画的播放速度,可以实现动画中的对象做出的每个动作的速度都是有差异的,以此来实现动画播放的艺术效果。具体如,通过降低动画对象的行走速度,来达到体现动画对象被施加了减速的效果;又如,通过提高动画对象的劈砍速度,来达到凸显动画对象具有较高身手的效果。
相关技术中,在调整动画播放速度的时候,通常需要用户向系统输入一些控制参量,比如“X帧至Y帧的播放时间调整为1秒”,而后系统会自动的在动画播放的时候,加快/放慢X帧至Y帧之间的播放速度,使得在1秒内能够完成X帧至Y帧的播放。
但本申请发明人认为,这种输入控制参量的方式依旧比较复杂,考虑到此,本申请提供了动画播放速度的调整方法,如图1所示,包括如下步骤:
S101,获取用于调整目标动画播放的第一节奏信息和目标动画的第二节奏信息;第一节奏信息中携带有每个第一节奏点的参考时间;第二节奏信息中携带有目标动画的每个第二节奏点的调整前的播放时间;
S102,根据第一节奏点的参考时间和第二节奏点的调整前的播放时间,分别为每个第一节奏点匹配对应的第二节奏点;
S103,针对每个第二节奏点,根据与该第二节奏点相匹配的第一节奏点的参考时间,确定该第二节奏点调整后的播放时间;
S104,根据调整后的第二节奏点的播放时间调整目标动画的播放速度。
步骤S101中,第一节奏信息反映了节奏强度符合预设要求的第一节奏点的时间信息(参考时间)。具体实现时,第一节奏信息有两种来源,第一种来源是用户输入的,第二种来源是独立于用户的电子设备(如某个上位机)所下达的,下面针对这两种来源分别进行说明:
当第一节奏信息是用户输入的情况下,第一节奏信息是受用户所控制的,第一节奏信息可以是用户直接手动输入的节奏信息,比如,可以是用户敲击按键的节奏(如用户敲击PC键盘的节奏、用户点击触控终端、触控输入设备上所显示的虚拟按键的节奏),可以是用户发出的声音的节奏(如用户唱出的一段歌曲的节奏);第一节奏信息还可以是用户通过下达选择指令来选择出的某一段音乐的节奏,比如,用户可以直接输入一个音乐的身份信息(如某个歌曲的名字,或编号),而后,系统(步骤S101-S104的执行主体,如服务器或某个智能终端)可以利用该音乐的身份信息在数据库中进行检索,以确定具体的音乐数据,而后将该音频数据的节奏信息作为第一节奏信息。可见,该种情况下,步骤S101是执行是受用户触发的。此种情况下,用于调整目标动画播放的第一节奏信息为用户终端根据用户的动画播放调整操作确定的节奏信息。其中,用户的动画播放调整操作可以是如点击按键的操作、用户演奏的音乐、用户发出的声音。
当第二节奏信息是上位机(如系统中的某个触发器)所下达的情况下,第一节奏信息的内容可以参照前一段的解释。但步骤S101不再是在用户触发后执行了,而是由上位机触发执行的。可见,此种情况下,系统可以自主的完成步骤S101-S104,而不需要受到用户的控制。进而,当第二节奏信息是上位机所下达的情况下,系统可以使用同一个第一节奏信息对不同的动画执行步骤S101-S104,以批量的完成对动画播放速度的调整。
对应的,第二节奏信息反映了目标动画中,节奏强度符合预设要求的第二节奏点的时间信息(调整前的播放时间)。该第二节奏信息通常是不受用户控制的。第二节奏信息通常是根据动画中指定目标对象(如动画中的某个人物)的运动变化情况来确定的。比如,动画中的某个人物在长时间静止之后突然发出了跳跃的动作,则可以认为发出跳跃动作的这一时刻是第二节奏点。可见,第二节奏点的确定主要是看在该时刻,目标对象的行为是否发生了突变,突变程度越大,则节奏越强,越应当将该突变的时刻作为第二节奏点。本方案中,可以是直接根据目标对象在每个时刻的移动变化量是否足够大,来确定该时刻是否可以作为第二节奏点。
一般来说,第二节奏点应当对应目标动画中的某个时刻(如某个动画帧),或者某个时间段(如某个动画帧集合)。也就是,第二节奏点反映了某个突变较大(瞬时加速度较大)的时刻,或时间段。也就是,本申请中所讨论的第二节奏点的调整前的播放时间指的就是第二节奏点所对应的动画帧/动画帧集合的调整前的播放时间;第二节奏点的调整后的播放时间指的就是第二节奏点所对应的动画帧/动画帧集合的调整后的播放时间。
步骤S102中,是将第一节奏点和第二节奏点进行配对。配对时,首先考虑的是时间因素。也就是如果某个第一节奏点的参考时间和某个第二节奏点调整前的播放时间是最接近的,就将该第一节奏点和该第二节奏点进行匹配。
具体实现时,可以是分别为每个第一节奏点匹配对应的第二节奏点。如针对每个第一节奏点,寻找调整前的播放时间与该第一节奏点的参考时间最接近的第二节奏点,作为与该第一节奏点相匹配的第二节奏点。如果对于某一个第一节奏点,该第一节奏点的参考时间附近没有第二节奏点,则可以放弃对该第一节奏点进行匹配。也就是,在对第一节奏点和第二节奏点进行匹配的时候,除了要保证匹配的两个节奏点的时间是最接近的之外,还要考虑匹配到一起的这两个节奏点的时间是否足够接近,如果不够接近,则不需要进行匹配了。此处,每个第一节奏点最多只能与一个第二节奏点进行匹配,每个第二节奏点最多只能与一个第一节奏点进行匹配。
如前文中所说,第一节奏点反映了用户认为的节奏重点,第二节奏点反映了动画的节奏重点,因此,将第一节奏点和第二节奏点进行匹配,就是将用户认为的节奏重点和动画的节奏点重点进行了匹配。
步骤S103中,主要是确定每个第二节奏点调整后的播放时间。实际处理的时候,可以是直接将与该第二节奏点相匹配的第一节奏点的参考时间作为该第二节奏点的调整后的播放时间。通过此种方式就可以做到用户可以主动的控制动画中的某个节奏重点的发生时间,从而达到用户对动画播放进行控制的目的。
在确定第二节奏点调整后的播放时间之后,步骤S104中就可以直接按照此种调节方式对目标动画的播放速度进行调节了。具体来说,可以是按照第二节奏点的播放时间调整方式(调整前的播放时间和调整后的播放时间的相对关系),对目标动画的中每一动画帧的播放时间进行调整,也就是重新确定目标动画中每个动画帧的播放时间(具体来说可以是以第二节奏点调整后的播放时间作为基准,对其他动画帧的播放时间进行拉伸)。通过此种方式就可以达到对目标动画的播放速度进行调整的目的了。
如前文中的描述,第二节奏点对应了目标动画中的某个动画帧,或者某个动画帧集合。进而,第二节奏点的调整前的播放时间就是该第二节奏点所对应的某个动画帧/动画帧集合的调整前的播放时间;第二节奏点的调整后的播放时间就是该第二节奏点所对应的某个动画帧/动画帧集合的调整后的播放时间。也就是对第二节奏点的播放时间进行调整,实际上是对第二节奏点所对应的动画帧/动画帧集合的播放时间进行调整。比如,对于第二节奏点A和第二节奏点B而言,调整前第二节奏点A对应的动画帧A的播放时间为1.1S;调整后第二节奏点A对应的动画帧A的播放时间为1.2S;调整前第二节奏点B对应的动画帧B的播放时间为1.9S;调整后第二节奏点B对应的动画帧B的播放时间为1.7S;那么,对于目标动画中播放次序排列在动画帧A和动画帧B之间的所有动画帧的调整后的播放时间都应当压缩在1.2S至1.7S之间,压缩的方式可以是等比例压缩,也可以是不等比例压缩。
采用本申请所提供的方法,用户可以通过输入用于表征第一节奏信息的指令,就可以实现利用第一节奏信息中的第一节奏点控制动画播放速度的目的,简化了用户的操作,并且提高了控制的精确程度(第一节奏点与第二节奏点进行了匹配)。系统也可以采用本申请所提供的方法,自主的使用第一节奏信息对动画的播放速度进行调整,尤其是可以使用同一个第一节奏信息对不同的动画进行调整,使得各个动画的播放节奏相近,这提高了各个动画的规整性、一致性。
如前文中所说,第一节奏信息可以是受用户控制的,具体来说,用户可以通过如下两种方式来控制第一节奏信息:第一种方式,用户主动输入第一节奏信息;第二种方式:用户通过指定第一节奏信息的来源,来使得系统能够查询到第一节奏信息。
针对第一种第一节奏信息的确定方式,具体实现时,有如下几种情况:
第一种情况,可以是用户通过敲击实体键盘上的按键来输入第一节奏点,此时,敲击实体键盘的时间也就是第一节奏点的参考时间。
第二种情况,如果用户终端是触控终端的话,可以是先在用户终端上显示虚拟按键(用于让用户输入第一节奏点的虚拟按键),而后,用户可以通过点击虚拟按键的方式,来输入第一节奏点。也就是,用户点击虚拟按键的时刻也就是第一节奏点的参考时间。
针对上述两种情况,第一节奏点的参考时间是通过以下步骤确定的:
根据触控输入设备接收到按键输入指令的时间确定第一节奏点的参考时间。
也就是,用户通过下达按键输入指令(用户点击触控输入设备上的虚拟按键或者是实体键盘上的按键来下达按键输入指令),下达按键输入指令的时刻也就是第一节奏点的参考时间。这两种情况主要应用于QTE(Quick Time Event,快速反应事件)游戏场景和具有连招功能的游戏场景中。在这两个场景中,系统已经预存好了虚拟对象的舞蹈动画(如虚拟人物的一套连续的动作),用户通过敲击按键来输入第一节奏点,使得虚拟人物可以随着第一节奏点来做出动作。比如,只有在用户点击按键的时候,虚拟人物的出拳行为会与该点击行为相适配,也就是当用户点击按键的时刻与出拳的时刻较为接近的时候,用户可以通过调整点击按键的时刻来调节出拳的时刻。如果在出拳时,用户没有点击按键,则虚拟人物就会按照既定的时刻出拳(按照制作完成的动画的正常速度进行播放)。
当然,上述这种方式也可以用来调节一般动画(非游戏中出现的动画)的播放速度,用户可以在通过点击按键(实体按键或者是虚拟按键),来让改变动画的播放速度。当用户点击按键的时刻与出拳的时刻较为接近的时候,如果用户点击按键的时刻在出拳的时刻之前,则出拳就会更早;如果用户点击按键的时刻在出拳的时刻之后,则出拳就会更晚。通过此种方式就可以调节虚拟人物做出指定动作的快慢。
第三种情况,用户可以是通过用户终端进行录音,比如用户可以弹奏某个乐器来发声、通过音乐播放器播放指定音频来发声,或者是用户可以通过唱歌,通过拍手等发声的方式发声,以让用户终端对发出的声音进行录音,进而得到目标音频数据。此时,该目标音频数据应当能够反应用户通过上述任意一种方式所发出的声音。
在确定了目标音频数据之后,系统可以根据目标音频数据的频谱信息的能量变化情况来从目标音频数据中确定第一节奏点。
此种情况下,如图2所示,第一节奏点的参考时间是通过以下步骤确定的:
步骤S201,获取目标音频数据;
步骤S202,根据目标音频数据的频谱信息的能量变化情况,确定目标音频数据中的第一节奏点;
步骤S203,将第一节奏点在目标音频数据中的播放时间作为第一节奏点的参考时间。
具体来说,在步骤S201获取到目标音频数据之后,就可以在步骤S202中提取目标音频数据的频谱信息了(可以以频谱曲线的形式来展现频谱信息)。在确定了频谱信息后,需要针对每个时刻,分别计算在该时刻的增量情况(用于反映能量变化情况);而后,可以使用预定的自相关函数对频谱信息进行分析,以确定预估节拍速度。最后,可以采用动态规划的方式,根据每个时间点的增量情况,和预估的节拍速度的相似度,确定目标音频数据中的第一节奏点。进而,该第一节奏点在目标音频数据中的播放时间也就是第一节奏点的参考时间。
更具体来说,在实现时,可以先确定目标音频数据的频谱(如短时傅里叶变换频谱或梅尔频谱),频谱的横坐标为时间,纵坐标为频率,每一个点的值则表示在该时刻下的该频率的分量大小。
然后,针对频谱中的每个时刻,计算同一频率上,后一时刻的分量,减去前一时刻的分量的值,就可以得到在每一时刻,对于不同频率的分量大小变化。然后可以将同一时刻的不同频率变化量累加,而且只保留正值,便可以得到对于任意时刻,不同频率的分量一共增加了多少。该不同频率分量的增量之和也就是节奏起始点包络信号。
然后利用节奏起始点包络信号的自相关函数,找到其本身在不同时间点的互相关来找出其重复模式,可以得到目标音频数据的节拍图,而后找到沿整个时间轴上值最大,并且持续时间最长的每分钟节拍数,便得到该目标音频数据的节拍速度。
在得到节拍速度之后,可以构建一个目标函数,作为动态规划算法的衡量方法,算法目标为找到一个时间集合,从空集开始每次添加一个新元素,每次寻找一个新元素,遵循贪心原则,使目标函数值尽量大。目标函数中自变量为时间的集合,应变量为在集合内所有时刻的节奏起始点包络信号之和减去节拍误差值,节拍误差值为集合中时间元素构成的节拍速度与预测的目标节拍速度的之差的2次指数。具体实现时,可以首先沿时间轴,每次取一个值,单独构成集合,计算其节奏起始点包络信号,取结果中的最大值作为初始节奏点集合。第一次遍历之后,集合中存在一个元素,即第一次遍历中Onset Envelop最大值对应时刻。之后,每次沿时间轴在预测节拍速度周围取一个新的时刻,判断在该时刻的节奏起始点包络信号加上之前得到的集合加上该时刻以后的目标函数结果,取其中最大值形成新的集合。在这样的递归过程中,每一次遍历时间轴的时候都会根据目标函数向集合添加一个新的时刻元素,目标函数指出添加的标准既要求新加的时刻节奏起始点包络信号要足够大,即在该时刻发生多频率上音量的突然增加,又需要新加的时刻与原有集合中的时刻之间的时间差与预测的节拍要足够接近。经过不断递归后,得到的集合便是所有的第一节奏点。
和前两种情况相比,第三种情况在实现的时候更加自由,不需要用户必须点击按键才能够调整动画的播放速度,但对系统的计算能力要求更高一些。
第二种第一节奏信息的确定方式,是用户指定第一节奏信息的来源,使得系统确定第一节奏点的方式。第二种第一节奏信息的确定方式和第一种方式相比,主要是用户不用自己发出声音信息或敲击信息来确定节奏,而是选择已经存在的音乐(如歌曲等已经存在的音频文件),并将这个用户选择的音乐中的节奏点作为第一节奏点。
在此种方式中,如图3所示,第一节奏点的参考时间是通过以下步骤确定的:
S301,获取音乐选择指令;
S302,根据音乐选择指令查找目标音乐;
S303,根据目标音乐的频谱信息的能量变化情况,确定目标音乐中的第一节奏点;
S304,将第一节奏点在目标音乐中的播放时间作为第一节奏点的参考时间。
步骤S301中,音乐选择指令是由用户所输入的,该音乐选择指令中可以携带有指定音乐的编号、名称等用于表征该音乐身份信息的信息。步骤S302中,系统可以直接根据该音乐选择指令在本地数据库,或者是指定的网络数据库(如某个音乐网站的数据库)中直接查找到目标音乐。
后续的步骤S303与步骤S202的实现方式相同,均是根据频谱信息的能量变化情况,确定目标音乐中的第一节奏点;步骤S304与步骤S203的实现方式相同,均是将第一节奏点在原音频中的时间作为该第一节奏点的参考时间。因此步骤S303和S304的具体实现策略可以参照前文中的介绍,此处不再重复说明。
第二种第一节奏信息的确定方式和第一种第一节奏信息的确定方式相比,第二种第一节奏信息的确定方式进一步减少了用户的操作量。但第二种第一节奏信息的确定方式的自由度相对较低,只能使用已经存在的音乐。
上述内容介绍了关于第一节奏信息的确定方式,下面对第二节奏信息的确定方式进行说明。
如前文中的说明,第二节奏信息反映了目标动画的每个第二节奏点的调整前的播放时间,此处的第二节奏点主要是根据动画图像的运动情况来确定的。具体来说,就是根据动画图像中指定对象的运动变化情况来确定,此处的运动变化情况如:指定对象在某个时刻从静止状态突然进行挥刀,那么这个对象的运动就发生了变化,运动变化前后的差别越大,则运动发生变化的时刻就越应当作为第二节奏点;又如,指定对象在某个时刻从向下挥刀突然改为向上挥刀,在这个时刻挥刀的速度(矢量)完全相反,那么该时刻就应当作为第二节奏点。可见,第二节奏点反映了目标动画中指定对象(可能是一个对象,也可能是多个对象)的运动突变时刻。
进而,如图4所示,第二节奏点可以是通过以下步骤确定的:
S401,获取目标动画中目标对象的在每个播放时间点的移动变化量;移动变化量包括以下的任意一种或多种:目标对象的移动角加速度、目标对象的移动线加速度;
S402,根据目标对象的在每个播放时间点的移动变化量,确定目标动画在每个播放时间点的节奏强度;
S403,根据每个播放时间点的节奏强度,从多个播放时间点中选择第二节奏点。
步骤S401中,通常会将目标动画中的某个人物,或者某个特定的主要物体作为目标对象。当目标动画中同时出现了大量的对象的时候,可以是设计人员预先设定好在某个时间段中,目标动画中的目标对象是具体是哪个。当然,目标对象也可以通过更为自动化的方式来确定,比如目标对象优选为在某个时间段中显示面积最大的对象。此处,显示面积指的是出现在动画中的对象在显示设备(播放目标动画的设备)中的面积,也就是用户肉眼直接能看到的对象的大小。显示面积越大,则该对象影响动画整体节奏的效果就越强。又比如,目标对象可以是指目标动画中的全部对象,也就是,在计算移动变化量的时候可以同时考虑目标动画中所出现的每个对象。
移动变化量指的是改变当前移动状态的幅度,即移动角加速度和移动线加速度。此处,移动角加速度反映了以某个点为转动轴,目标对象进行转动的变化情况(通常单位是弧度/秒平方)。线加速度则直接根据不同时刻(通常是邻近的两个时刻)的瞬时加速度的差值来确定。为了保证计算的准确性,移动角加速度和移动线加速度都应当是矢量。
播放时间点指的是某一个时刻,进而,移动角加速度和移动线加速度都反应了在某个时刻的瞬时值。一般来说,相邻的两个播放时间点的差值越小越好。
当目标动画是3D动画时,可以直接根据目标对象的骨骼关键点的移动参数来直接确定移动变化量。当目标动画是2D动画时,则需要采用逐帧对比的方式(计算两个图像的距离)来确定每个时间点的目标对象的位移量,并根据位移量的变化情况来确定移动变化量。
步骤S402中,主要是分别针对每个播放时间点,根据该播放时间点的移动变化量,计算目标动画在该播放时间点的节奏强度。通过这种方式就可以计算出目标动画在每个播放时间点的节奏强度了。一般来说,移动变化量的数值越大,则计算出的节奏强度就大。
步骤S403中,可以直接根据节奏强度的大小,从全部的播放时间点中选择出第二节奏点。通常是处理方式应当是设置一个固定的阈值,只要节奏强度超过该阈值,就将对应的播放时间点选为第二节奏点。
在确定了第一节奏点和第二节奏点之后,需要进行节奏点的匹配。由于第一节奏点可能是一个,也可能是多个,第二节奏点也可能是一个或多个,因此,需要将不同的节奏点进行匹配。
也就是,步骤S102可以按照如下方式实现:
步骤1021,针对每个第一节奏点,选择调整前的播放时间与该第一节奏点的参考时间相邻的至少一个第二节奏点作为与该第一节奏点相匹配的候选节奏点;
步骤1022,针对每个第一节奏点,从与该第一节奏点相匹配的候选节奏点中选择一个节奏强度最大的候选节奏点作为与该第一节奏点相匹配的第二节奏点;候选节奏点的节奏强度是根据目标动画中的目标对象在该候选节奏点所在的播放时间点的移动变化量确定的;移动变化量包括以下的任意一种或多种:目标对象的移动角加速度、目标对象的移动线加速度。
步骤1021中,主要目的是为每个第一节奏点选择候选节奏点,应当保证的是,第一节奏点的参考时间和与之相匹配的候选节奏点的调整前的播放时间应当是足够接近的。并且,一个候选节奏点只能与唯一的一个第一节奏点相匹配,以免出现不同的第一节奏点同时与某一个候选节奏点相匹配,使得后续确定第二节奏点调整后的播放时间出现问题。
步骤1021在具体实现时,可以是先设定一个阈值,然后针对每个第一节奏点,将与该第一节奏点的时间差小于阈值的第二节奏点都作为候选节奏点;此处的时间差是根据第一节奏点的参考时间和第二节奏点的调整前的播放时间确定的。如果发现了某一个第二节奏点同时与两个第一节奏点的时间差小于阈值,则可以直接比较该第二节奏点与哪个第一节奏点的时间差更小,并将该第二节奏点作为时间差更小的第一节奏点的候选节奏点。如果针对某个第一节奏点,没有与该第一节奏点的时间差小于阈值的第二节奏点,则可以不为该第一节奏点选择匹配的第二节奏点。
比如,第一节奏点A的参考时间为1.1S,第一节奏点B的参考时间为2.1S,第二节奏点A的调整前的播放时间是1.7S,阈值为0.7;则第一节奏点A与第二节奏点A的时间差为0.6,小于阈值;第一节奏点B与第二节奏点A的时间差为0.4,也小于阈值;但由于第一节奏点A与第二节奏点A的时间差0.6大于第一节奏点B与第二节奏点A的时间差0.4,因此,第二节奏点A应当作为第一节奏点B的候选节奏点。
步骤1022中,主要是针对当某个第一节奏点所匹配的候选节奏点有多个的时候,如何从这多个候选节奏点中选择出一个作为与该第一节奏点相匹配的第二节奏点。
具体来说,选择的方式主要是看哪个候选节奏点的节奏强度最大。如遇第一节奏点A相匹配的候选节奏点分别是第二节奏点A、第二节奏点B和第二节奏点C;并且,第二节奏点A的节奏强度为15,第二节奏点B的节奏强度为18,第二节奏点C的节奏强度为16;则应当选择第二节奏点B作为与第一节奏点A相匹配的节奏点。
此处,候选节奏点的节奏强度是根据目标动画中的目标对象在该候选节奏点所在的播放时间点的移动变化量确定的;移动变化量包括以下的任意一种或多种:目标对象的移动角加速度、目标对象的移动线加速度。移动角加速度和移动线加速度的含义在前文中已经进行过说明,此处不再重复说明。
一般来说,按照步骤1021和步骤1022的处理方式就可以为每个第一节奏点匹配对应的唯一一个第二节奏点了(前提是该第一节奏点有与之相匹配的候选节奏点),但在某些极端情况下,如某个第一节奏点所匹配的候选节奏点中节奏强度最大的候选节奏点为多个,则使用步骤1021和步骤1022的方式还是无法匹配出唯一的一个第二节奏点,因此,针对该种情况,本申请提供了一种细节优化的方案。
具体来说,步骤1022可以按照如下方式实现:
针对每个第一节奏点,若与该第一节奏点相匹配的候选节奏点中节奏强度最大的候选节奏点为多个,则从与该第一节奏点相匹配的候选节奏点中选择节奏强度最大,且调整前的播放时间与参考时间最接近的候选节奏点作为与该第一节奏点相匹配的第二节奏点;候选节奏点的节奏强度是根据目标动画中的目标对象在该候选节奏点的移动变化量确定的;移动变化量包括以下的任意一种或多种:目标对象的移动角加速度、目标对象的移动线加速度。
也就是,当与第一节奏点相匹配的候选节奏点中节奏强度最大的候选节奏点为多个的时候,则将这些节奏强度最大的候选节奏点中与第一节奏点的时间差最小的候选节奏点作为与该第一节奏点相匹配的第二节奏点。此处的时间差是根据该第一节奏点的参考时间和候选节奏点的调整前的播放时间计算得到的。
如前文中所说,在为每个第一节奏点匹配了唯一的一个第二节奏点之后,可以直接根据第一节奏点的参考时间来调整与之相匹配的第二节奏点的播放时间了。比如,可以直接将第一节奏点的参考时间作为第二节奏点调整后的播放时间。又比如,可以根据多个第一节奏点之间时间的相对差值,来调整多个第二节奏点之间时间的相对差值。也就是调整第二节奏点的播放时间主要是为了使第二节奏点播放的节奏与第一节奏点的节奏是相同或相似的。
在确定了第二节奏点调整后的播放时间之后,就可以根据第二节奏点调整播放时间的方式,来调整目标动画的播放速度了(更准确来说是调整目标动画的每个动画帧的播放时间)。
此处,调整目标动画的播放速度的方式大致可以分为两种,分别是线性调节(等比例压缩动画帧播放时间)和非线性调节(不等比例压缩动画帧播放时间)。
线性调节指的是根据相邻的两个第二节奏点的播放时间的调整方式,将在这两个第二节奏点之间的动画帧(播放顺序在这两个第二节奏点所对应的动画帧之间的动画帧)的播放时间进行调节。也就是,采用线性插值的方式,根据每个第二节奏点的调整前的播放时间和调整后的播放时间调整目标动画中每一动画帧的播放时间,以调整目标动画的播放速度。
具体实现时,可以先确定播放顺序在第二节奏点A对应的动画帧A和第二节奏点B对应的动画帧B之间的动画帧有哪些,如在动画帧A和动画帧B之间的动画帧依次为动画帧C、D和E,且第二节奏点A调整后的播放时间是1.1秒、第二节奏点B调整后的播放时间是1.5秒,则调整后的动画帧C的播放时间应当为1.2秒、调整后的动画帧D的播放时间应当为1.3秒、调整后的动画帧E的播放时间应当为1.4秒。可见,第二动画帧C、D和E的调整后的播放时间是均匀分布在第二动画帧A和B的播放时间之间的,即等比例压缩每个动画帧的播放时间。
非线性调节的方式指的是不采用等比例调节的方式对每个动画帧的播放时间进行调节。常见的非线性调节的方式是采用贝塞尔曲线的方式进行的,下面主要以利用贝塞尔曲线来调节目标动画中动画帧的播放时间的方式进行说明。
也就是,步骤S104可以按照如下方式实现:
步骤1041,根据每个第二节奏点的调整后的播放时间和第二节奏点所对应的动画帧播放速度,构建贝塞尔曲线;
步骤1042,根据构建的贝塞尔曲线,调整目标动画中每一动画帧的播放时间,以调整目标动画的播放速度。
在具体实现时,步骤1041中,可以先根据每个第二节奏点的调整后的播放时间、调整前的播放时间建立坐标系;坐标系中,横坐标为第二节奏点的调整后的播放时间,纵坐标为第二节奏点的调整前的播放时间;而后,根据预设的第二节奏点的斜率(第二节奏点所对应的动画帧播放速度)和每个第二节奏点的坐标,生成贝塞尔曲线(如三阶贝塞尔曲线)。
此处,贝塞尔曲线(Bézier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线。利用该曲线能够使求得动画帧播放时间更为平滑、合理。
在生成了贝塞尔曲线之后,在步骤1042中就可以根据每个动画帧的调整前的播放时间在贝塞尔曲线中查找动画帧调整后的播放时间了。之后,将查找到的播放时作为这个动画帧调整后的播放时间即可完成对动画帧播放时间的调整。
使用贝塞尔曲线的方式来确定动画帧的播放时间和使用线性调节的方式来确定动画帧的播放时间相比,使用贝塞尔曲线的方式所调整的动画帧的播放时间更为合理。主要是动画中的对象在动作发生突变的时候,发生突变的动作可能并不是匀速做出的,而是有速度的峰值,也有速度的低点。进而,如果采用线性调节的方式来确定动画帧的播放时间,在确定动画帧的播放时间之后,可能还需要人为的调节突变动作附近时间段的动画帧的播放速度,以使动画在播放的时候更加真实。而使用贝塞尔曲线的方式来确定动画帧的播放时间,则可以更为自动化的调节出足够真实的动画。
具体来说,构建的三阶贝塞尔曲线,实际上是由多个曲线段所组成的。如,共有10个目标第二节奏点(第二节奏点中播放时间被调整的节奏点),按照时间先后顺序排列为第二节奏点A-J,则应当是根据第二节奏点A和B生成第一段三阶贝塞尔曲线;根据第二节奏点B和C生成第二段三阶贝塞尔曲线;根据第二节奏点C和D生成第三段三阶贝塞尔曲线…根据第二节奏点I和J生成第九段三阶贝塞尔曲线。而后,将这九段三阶贝塞尔曲线合并到一起就成为了一条完整的三阶贝塞尔曲线(步骤1042中所要使用到的曲线)。
也就是,在具体构建贝塞尔曲线的时候,应当是按照如下方式实现:
步骤501,根据每个目标第二节奏点在目标动画中的播放次序,确定节奏点对;其中,目标第二节奏点是第二节奏点中匹配了第一节奏点的节奏点;一个节奏点对中的两个目标第二节奏点的播放次序是紧邻的;
步骤502,针对每个节奏点对,根据该节奏点对中的每个第二节奏点的调整后的播放时间、调整前的播放时间和第二节奏点的所对应的动画帧播放速度,构建三阶贝塞尔曲线段;
步骤503,将全部的三阶贝塞尔曲线段合成贝塞尔曲线。
通过上述内容可以看出,如果目标第二节奏点共有10个,则构建的三阶贝塞尔曲线段应当是9个,也就是有N个目标第二节奏点,就应当有N-1个节奏点对,有N-1个三阶贝塞尔曲线段。或者说,除了播放次序是第一个和最后一个的目标第二关键点外,其他目标第二关键点的参数(调整前的播放时间、调整后的播放时间和对应的动画帧播放速度)都应当在构建两个三阶贝塞尔曲线段的过程中被使用到;其他目标第二关键点都应当出现在两个关键点对中。
目标第二节奏点的播放次序可以是按照目标第二节奏点所对应的动画帧在目标动画播放时出现的先后顺序来确定。
在步骤502生成了多段三阶贝塞尔曲线段后,步骤503直接将这多段三阶贝塞尔曲线段进行首尾相接,就可以得到步骤1042中可以使用的贝塞尔曲线了。当然,由于三阶贝塞尔曲线段只是贝塞尔曲线的一部分,因此,也可以不执行步骤503,而是直接利用三阶贝塞尔曲线段来实现步骤1042。在具体实现的时候,也可以不采用三阶贝塞尔曲线的实现方式,还可以采用如五阶贝塞尔曲线的实现方式,对应的步骤502中所得到的也就是五阶贝塞尔曲线段了。
如前文中所说,步骤1041中,第二节奏点的斜率是预设的(如不同的第二节奏点的斜率是相同的),但通常情况下,第二节奏点的斜率是与该第二节奏点的动画帧中所反映的目标对象的动作突变程度相关的,突变程度越大,则斜率应当越大(斜率反映了单位时间内目标对象的动作变化幅度,或者说是单位时间内,动画帧的密集程度)。进而,为了提高动画的真实程度,应当将第二节奏点的斜率不设置为固定值,而是根据实际情况计算出来的值。进而,下面提供了一种确定第二节奏点所对应的动画帧播放速度的方式,也就是,步骤1041可以按照如下方式实现:
步骤10411,针对每个第二节奏点,根据与该第二节奏点在时间上相接近的其他第二节奏点的调整前的播放时间和调整后的播放时间,确定该第二节奏点所对应的动画帧播放速度;
步骤10412,根据每个第二节奏点的调整后的播放时间、调整前的播放时间和第二节奏点的动画帧播放速度,构建贝塞尔曲线。
也就是,在计算第二节奏点所对应的动画帧播放速度的时候,可以根据该第二节奏点前后的其他第二节奏点的位置(在构建的坐标系中的位置)来确定该第二节奏点所对应的动画帧播放速度(即斜率)。
在具体计算的时候,可以采用如下公式计算第二节奏点的斜率:
其中,τout及τin分别表示在第二节奏点之后和之前的一阶导数(斜率、动画帧播放速度);Pn-1为前一第二节奏点的调整前的播放时间。Pn+1为后一前一第二节奏点的调整前的播放时间。tn-1为前一第二节奏点的调整后的播放时间;tn+1为后一第二节奏点的调整后的播放时间。
α和β为调节系数,具体实现时,可以有用户手动输入该系统以控制斜率。
也就是,在具体实现的时候,在计算某个第二节奏点的斜率(动画帧播放速度)时,最好是根据与该第二节奏点相邻的两个(前一个和后一个)第二节奏点的播放时间来计算。如果是不使用与该第二节奏点相邻的两个第二节奏点计算的话,则准确度不容易得到保障。
在计算好斜率后,步骤10412中就可以直接利用调整后的播放时间、调整前的播放时间和第二节奏点的动画帧播放速度,构建贝塞尔曲线了,构建的方式与步骤1041相同,此处不再重复说明。
在利用上述公式求取斜率的时候,第二节奏点之后和之前的斜率可能是不同的,因此在利用上述公式计算出该第二节奏点之前和之后的斜率之后,还可以求取平均值,并将之前和之后的斜率的平均值作为该第二节奏点执行步骤10412中所使用的斜率。
与上述方法相对应的,本申请还提供了一种动画播放速度的调整装置,包括:
第一获取模块,用于获取用于调整目标动画播放的第一节奏信息和目标动画的第二节奏信息;第一节奏信息中携带有每个第一节奏点的参考时间;所述第二节奏信息中携带有目标动画的每个第二节奏点的调整前的播放时间;
第一匹配模块,用于根据第一节奏点的参考时间和第二节奏点的调整前的播放时间,分别为每个第一节奏点匹配对应的第二节奏点;
第一确定模块,用于针对每个第二节奏点,根据与该第二节奏点相匹配的第一节奏点的参考时间,确定该第二节奏点调整后的播放时间;
第一调整模块,用于根据所述调整后的第二节奏点的播放时间调整目标动画的播放速度。
在一些实施例中,第一节奏点的参考时间是通过以下装置确定的:
第二确定模块,用于根据触控输入设备接收到按键输入指令的时间确定第一节奏点的参考时间。
在一些实施例中,第一节奏点的参考时间是通过以下装置确定的:
第二获取模块,用于获取目标音频数据;
第三确定模块,用于根据所述目标音频数据的频谱信息的能量变化情况,确定所述目标音频数据中的第一节奏点;
第四确定模块,用于将所述第一节奏点在所述目标音频数据中的播放时间作为第一节奏点的参考时间。
在一些实施例中,第一节奏点的参考时间是通过以下装置确定的:
第三获取模块,用于获取音乐选择指令;
查找模块,用于根据所述音乐选择指令查找目标音乐;
第五确定模块,用于根据所述目标音乐的频谱信息的能量变化情况,确定所述目标音乐中的第一节奏点;
第六确定模块,用于将所述第一节奏点在所述目标音乐中的播放时间作为第一节奏点的参考时间。
在一些实施例中,第二节奏点是通过以下装置确定的:
第四获取模块,用于获取目标动画中目标对象的在每个播放时间点的移动变化量;所述移动变化量包括以下的任意一种或多种:目标对象的移动角加速度、目标对象的移动线加速度;
第七确定模块,用于根据目标对象的在每个播放时间点的移动变化量,确定目标动画在每个播放时间点的节奏强度;
选择模块,用于根据每个播放时间点的节奏强度,从多个播放时间点中选择第二节奏点。
在一些实施例中,第一匹配模块,包括:
第一选择单元,用于针对每个第一节奏点,选择所述调整前的播放时间与该第一节奏点的参考时间相邻的至少一个第二节奏点作为与该第一节奏点相匹配的候选节奏点;
第二选择单元,用于针对每个第一节奏点,从与该第一节奏点相匹配的候选节奏点中选择一个节奏强度最大的候选节奏点作为与该第一节奏点相匹配的第二节奏点;所述候选节奏点的节奏强度是根据目标动画中的目标对象在该候选节奏点所在的播放时间点的移动变化量确定的;所述移动变化量包括以下的任意一种或多种:目标对象的移动角加速度、目标对象的移动线加速度。
在一些实施例中,第二选择单元,包括:
第一选择子单元,用于针对每个第一节奏点,若与该第一节奏点相匹配的候选节奏点中节奏强度最大的候选节奏点为多个,则从与该第一节奏点相匹配的候选节奏点中选择节奏强度最大,且调整前的播放时间与参考时间最接近的候选节奏点作为与该第一节奏点相匹配的第二节奏点;所述候选节奏点的节奏强度是根据目标动画中的目标对象在该候选节奏点的移动变化量确定的;所述移动变化量包括以下的任意一种或多种:目标对象的移动角加速度、目标对象的移动线加速度。
在一些实施例中,第一调整模块,包括:
第一调整单元,用于采用线性插值的方式,根据每个第二节奏点的调整前的播放时间和调整后的播放时间调整目标动画中每一动画帧的播放时间,以调整目标动画的播放速度。
在一些实施例中,第一调整模块,包括:
构建单元,用于根据每个第二节奏点的调整后的播放时间和第二节奏点所对应的动画帧播放速度,构建贝塞尔曲线;
第二调整单元,用于根据所述构建的贝塞尔曲线,调整目标动画中每一动画帧的播放时间,以调整目标动画的播放速度。
在一些实施例中,构建单元,包括:
第一确定子单元,用于针对每个第二节奏点,根据与该第二节奏点在时间上相接近的其他第二节奏点的调整前的播放时间和调整后的播放时间,确定该第二节奏点所对应的动画帧播放速度;
第一构建子单元,用于根据每个第二节奏点的调整后的播放时间、调整前的播放时间和第二节奏点的动画帧播放速度,构建贝塞尔曲线。
在一些实施例中,用于调整目标动画播放的第一节奏信息为用户终端根据用户的动画播放调整操作确定的节奏信息。
与上述方法相对应的,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如动画播放速度的调整方法的步骤。
如图5所示,为本申请实施例所提供的电子设备示意图,该电子设备1000包括:处理器1001、存储器1002和总线1003,存储器1002存储有执行指令,当电子设备运行时,处理器1001与存储器1002之间通过总线1003通信,处理器1001执行存储器1002中存储的动画播放速度的调整方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (14)
1.一种动画播放速度的调整方法,其特征在于,包括:
获取用于调整目标动画播放的第一节奏信息和目标动画的第二节奏信息;第一节奏信息中携带有每个第一节奏点的参考时间;所述第二节奏信息中携带有目标动画的每个第二节奏点的调整前的播放时间;
根据第一节奏点的参考时间和第二节奏点的调整前的播放时间,分别为每个第一节奏点匹配对应的第二节奏点;
针对每个第二节奏点,根据与该第二节奏点相匹配的第一节奏点的参考时间,确定该第二节奏点调整后的播放时间;
根据所述调整后的第二节奏点的播放时间调整目标动画的播放速度。
2.根据权利要求1所述的方法,其特征在于,第一节奏点的参考时间是通过以下步骤确定的:
根据触控输入设备接收到输入指令的时间确定第一节奏点的参考时间。
3.根据权利要求1所述的方法,其特征在于,第一节奏点的参考时间是通过以下步骤确定的:
获取目标音频数据;
根据所述目标音频数据的频谱信息的能量变化情况,确定所述目标音频数据中的第一节奏点;
将所述第一节奏点在所述目标音频数据中的播放时间作为第一节奏点的参考时间。
4.根据权利要求1所述的方法,其特征在于,第一节奏点的参考时间是通过以下步骤确定的:
获取音乐选择指令;
根据所述音乐选择指令查找目标音乐;
根据所述目标音乐的频谱信息的能量变化情况,确定所述目标音乐中的第一节奏点;
将所述第一节奏点在所述目标音乐中的播放时间作为第一节奏点的参考时间。
5.根据权利要求1所述的方法,其特征在于,第二节奏点是通过以下步骤确定的:
获取目标动画中目标对象的在每个播放时间点的移动变化量;所述移动变化量包括以下的任意一种或多种:目标对象的移动角加速度、目标对象的移动线加速度;
根据目标对象的在每个播放时间点的移动变化量,确定目标动画在每个播放时间点的节奏强度;
根据每个播放时间点的节奏强度,从多个播放时间点中选择第二节奏点。
6.根据权利要求1所述的方法,其特征在于,根据第一节奏点的参考时间和第二节奏点的调整前的播放时间,分别为每个第一节奏点匹配对应的第二节奏点,包括:
针对每个第一节奏点,选择所述调整前的播放时间与该第一节奏点的参考时间相邻的至少一个第二节奏点作为与该第一节奏点相匹配的候选节奏点;
针对每个第一节奏点,从与该第一节奏点相匹配的候选节奏点中选择一个节奏强度最大的候选节奏点作为与该第一节奏点相匹配的第二节奏点;所述候选节奏点的节奏强度是根据目标动画中的目标对象在该候选节奏点所在的播放时间点的移动变化量确定的;所述移动变化量包括以下的任意一种或多种:目标对象的移动角加速度、目标对象的移动线加速度。
7.根据权利要求6所述的方法,其特征在于,针对每个第一节奏点,从与该第一节奏点相匹配的候选节奏点中选择一个节奏强度最大的候选节奏点作为与该第一节奏点相匹配的第二节奏点,包括:
针对每个第一节奏点,若与该第一节奏点相匹配的候选节奏点中节奏强度最大的候选节奏点为多个,则从与该第一节奏点相匹配的候选节奏点中选择节奏强度最大,且调整前的播放时间与参考时间最接近的候选节奏点作为与该第一节奏点相匹配的第二节奏点;所述候选节奏点的节奏强度是根据目标动画中的目标对象在该候选节奏点的移动变化量确定的;所述移动变化量包括以下的任意一种或多种:目标对象的移动角加速度、目标对象的移动线加速度。
8.根据权利要求1所述的方法,其特征在于,根据所述调整后的第二节奏点的播放时间调整目标动画的播放速度,包括:
采用线性插值的方式,根据每个第二节奏点的调整前的播放时间和调整后的播放时间调整目标动画中每一动画帧的播放时间,以调整目标动画的播放速度。
9.根据权利要求1所述的方法,其特征在于,根据所述调整后的第二节奏点的播放时间确定目标动画的播放速度,包括:
根据每个第二节奏点的调整后的播放时间和第二节奏点所对应的动画帧播放速度,构建贝塞尔曲线;
根据所述构建的贝塞尔曲线,调整目标动画中每一动画帧的播放时间,以调整目标动画的播放速度。
10.根据权利要求9所述的方法,其特征在于,根据每个第二节奏点的调整后的播放时间和第二节奏点所对应的动画帧播放速度,构建贝塞尔曲线,包括:
针对每个第二节奏点,根据与该第二节奏点在时间上相接近的其他第二节奏点的调整前的播放时间和调整后的播放时间,确定该第二节奏点所对应的动画帧播放速度;
根据每个第二节奏点的调整后的播放时间、调整前的播放时间和第二节奏点的动画帧播放速度,构建贝塞尔曲线。
11.根据权利要求1所述的方法,其特征在于,所述用于调整目标动画播放的第一节奏信息为用户终端根据用户的动画播放调整操作确定的节奏信息。
12.一种动画播放速度的调整装置,其特征在于,包括:
第一获取模块,用于获取用于调整目标动画播放的第一节奏信息和目标动画的第二节奏信息;第一节奏信息中携带有每个第一节奏点的参考时间;所述第二节奏信息中携带有目标动画的每个第二节奏点的调整前的播放时间;
第一匹配模块,用于根据第一节奏点的参考时间和第二节奏点的调整前的播放时间,分别为每个第一节奏点匹配对应的第二节奏点;
第一确定模块,用于针对每个第二节奏点,根据与该第二节奏点相匹配的第一节奏点的参考时间,确定该第二节奏点调整后的播放时间;
第一调整模块,用于根据所述调整后的第二节奏点的播放时间调整目标动画的播放速度。
13.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行时执行如权利要求1至11任一所述的动画播放速度的调整方法的步骤。
14.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至11任一所述的动画播放速度的调整方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911229230.4A CN111127598B (zh) | 2019-12-04 | 2019-12-04 | 动画播放速度的调整方法、装置、电子设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911229230.4A CN111127598B (zh) | 2019-12-04 | 2019-12-04 | 动画播放速度的调整方法、装置、电子设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111127598A true CN111127598A (zh) | 2020-05-08 |
CN111127598B CN111127598B (zh) | 2023-09-15 |
Family
ID=70497344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911229230.4A Active CN111127598B (zh) | 2019-12-04 | 2019-12-04 | 动画播放速度的调整方法、装置、电子设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111127598B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112738627A (zh) * | 2020-12-23 | 2021-04-30 | 上海哔哩哔哩科技有限公司 | 播放控制方法及装置 |
CN114005464A (zh) * | 2021-11-04 | 2022-02-01 | 深圳万兴软件有限公司 | 一种节拍速度估测方法、装置、计算机设备及存储介质 |
CN114329001A (zh) * | 2021-12-23 | 2022-04-12 | 游艺星际(北京)科技有限公司 | 动态图片的显示方法、装置、电子设备及存储介质 |
CN114449313A (zh) * | 2022-02-10 | 2022-05-06 | 上海幻电信息科技有限公司 | 视频的音画面播放速率调整方法及装置 |
CN117351120A (zh) * | 2023-12-06 | 2024-01-05 | 青岛蓝飞互娱科技股份有限公司 | 一种3d游戏动画生成方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101640057A (zh) * | 2009-05-31 | 2010-02-03 | 北京中星微电子有限公司 | 一种音视频匹配方法及装置 |
CN105550251A (zh) * | 2015-12-08 | 2016-05-04 | 小米科技有限责任公司 | 图片播放方法和装置 |
CN107124624A (zh) * | 2017-04-21 | 2017-09-01 | 腾讯科技(深圳)有限公司 | 视频数据生成的方法和装置 |
CN107967706A (zh) * | 2017-11-27 | 2018-04-27 | 腾讯音乐娱乐科技(深圳)有限公司 | 多媒体数据的处理方法、装置及计算机可读存储介质 |
CN110097618A (zh) * | 2019-05-09 | 2019-08-06 | 广州小鹏汽车科技有限公司 | 一种音乐动画的控制方法、装置、车辆及存储介质 |
-
2019
- 2019-12-04 CN CN201911229230.4A patent/CN111127598B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101640057A (zh) * | 2009-05-31 | 2010-02-03 | 北京中星微电子有限公司 | 一种音视频匹配方法及装置 |
CN105550251A (zh) * | 2015-12-08 | 2016-05-04 | 小米科技有限责任公司 | 图片播放方法和装置 |
CN107124624A (zh) * | 2017-04-21 | 2017-09-01 | 腾讯科技(深圳)有限公司 | 视频数据生成的方法和装置 |
CN107967706A (zh) * | 2017-11-27 | 2018-04-27 | 腾讯音乐娱乐科技(深圳)有限公司 | 多媒体数据的处理方法、装置及计算机可读存储介质 |
CN110097618A (zh) * | 2019-05-09 | 2019-08-06 | 广州小鹏汽车科技有限公司 | 一种音乐动画的控制方法、装置、车辆及存储介质 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112738627A (zh) * | 2020-12-23 | 2021-04-30 | 上海哔哩哔哩科技有限公司 | 播放控制方法及装置 |
CN114005464A (zh) * | 2021-11-04 | 2022-02-01 | 深圳万兴软件有限公司 | 一种节拍速度估测方法、装置、计算机设备及存储介质 |
CN114329001A (zh) * | 2021-12-23 | 2022-04-12 | 游艺星际(北京)科技有限公司 | 动态图片的显示方法、装置、电子设备及存储介质 |
CN114449313A (zh) * | 2022-02-10 | 2022-05-06 | 上海幻电信息科技有限公司 | 视频的音画面播放速率调整方法及装置 |
CN114449313B (zh) * | 2022-02-10 | 2024-03-26 | 上海幻电信息科技有限公司 | 视频的音画面播放速率调整方法及装置 |
CN117351120A (zh) * | 2023-12-06 | 2024-01-05 | 青岛蓝飞互娱科技股份有限公司 | 一种3d游戏动画生成方法 |
CN117351120B (zh) * | 2023-12-06 | 2024-03-19 | 青岛蓝飞互娱科技股份有限公司 | 一种3d游戏动画生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111127598B (zh) | 2023-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111127598B (zh) | 动画播放速度的调整方法、装置、电子设备和介质 | |
CN110955786A (zh) | 一种舞蹈动作数据的生成方法及装置 | |
CN109144610B (zh) | 音频播放方法、装置、电子装置及计算机可读存储介质 | |
US11679334B2 (en) | Dynamic gameplay session content generation system | |
CN107430781B (zh) | 计算机图形的数据结构、信息处理装置、信息处理方法以及信息处理系统 | |
US20110293144A1 (en) | Method and System for Rendering an Entertainment Animation | |
EP3546037B1 (en) | Content generation system | |
CN109413351B (zh) | 一种音乐生成方法及装置 | |
CN112764711A (zh) | 音乐交互方法、装置、设备以及存储介质 | |
CN113509713A (zh) | 一种人机对弈方法、装置、设备及存储介质 | |
CN109523614B (zh) | 一种3d动画导出方法、3d动画播放方法及装置 | |
CN112973130B (zh) | 虚拟场景的回放模型构建方法、装置、设备及存储介质 | |
CN114756706A (zh) | 一种资源合成方法、装置、设备及存储介质 | |
Jordan et al. | Beatthebeat music-based procedural content generation in a mobile game | |
CN114155325A (zh) | 一种虚拟角色动画生成方法和系统 | |
CN110781820B (zh) | 游戏角色的动作生成方法、装置、计算机设备及存储介质 | |
CN117520490A (zh) | 一种人机对话方法、系统以及相关装置 | |
CN110959172B (zh) | 演奏解析方法、演奏解析装置以及存储介质 | |
KR20130104572A (ko) | 리듬 액션 게임 서비스 제공 방법 및 서버 | |
KR20180081904A (ko) | 혼합 현실 기기를 이용한 체험형 리듬 액션 아케이드 게임 시스템 및 그 방법 | |
US8565906B1 (en) | Audio processing in a social environment | |
KR20070025384A (ko) | 춤추는 아바타를 생성하는 방법 및 서버와 춤추는 아바타를이용한 응용 서비스 제공 방법 | |
CN111506765A (zh) | 控制乐曲播放节奏的方法、装置、电子设备及存储介质 | |
CN109949406A (zh) | 模型的动作处理方法、装置、存储介质及电子设备 | |
WO2021101575A1 (en) | Prominent display of targeted game in search results |
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 |