CN116309973A - 动画数据的处理方法及装置 - Google Patents
动画数据的处理方法及装置 Download PDFInfo
- Publication number
- CN116309973A CN116309973A CN202211626898.4A CN202211626898A CN116309973A CN 116309973 A CN116309973 A CN 116309973A CN 202211626898 A CN202211626898 A CN 202211626898A CN 116309973 A CN116309973 A CN 116309973A
- Authority
- CN
- China
- Prior art keywords
- animation
- track data
- data
- track
- file
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本公开提供了一种动画数据的处理方法及装置,涉及人工智能技术领域,尤其涉及增强现实、虚拟现实、计算机视觉。方案包括:获取第一动画文件,其中,第一动画文件包括描述对象模型的第一模型数据和多个第一轨道数据;从第一动画文件中导出多个第一轨道数据,以作为待处理的动画数据;以及对待处理的动画数据中的多个第一轨道数据进行动画帧序列的补充,以得到补充后的动画数据,其中,针对多个第一轨道数据中的每个第一轨道数据:响应于确定该第一轨道数据在多个第一动画片段中的至少一个第一动画片段中不存在动画帧序列,为该第一轨道数据在至少一个第一动画片段中添加动画帧序列。
Description
技术领域
本公开涉及人工智能技术领域,尤其涉及增强现实、虚拟现实、计算机视觉,具体涉及一种动画数据的处理方法及装置、电子设备、计算机可读存储介质和计算机程序产品。
背景技术
GLTF(Graphics Language Transmission Format)为一种图形语言传输格式。这种跨平台格式已成为Web上的3D对象标准。GLTF由OpenGL和Vulkan背后的3D图形标准组织Khronos所定义,这使得GLTF基本上成为3D模型的一种非常通用的标准格式。目前存在的加载GLTF格式文件的方法的加载效率普遍较低,导致加载耗时较长。
发明内容
本公开提供了一种动画数据的处理方法及装置、电子设备、计算机可读存储介质和计算机程序产品。
根据本公开的一方面,提供了一种动画数据的处理方法,包括:获取第一动画文件,其中,第一动画文件包括描述对象模型的第一模型数据和多个第一轨道数据,多个第一轨道数据中的每个第一轨道数据用于描述关于对象模型相应部分的运动的多个第一动画片段;从第一动画文件中导出多个第一轨道数据,以作为待处理的动画数据;以及对待处理的动画数据中的多个第一轨道数据进行动画帧序列的补充,以得到补充后的动画数据,其中,针对多个第一轨道数据中的每个第一轨道数据:响应于确定该第一轨道数据在多个第一动画片段中的至少一个第一动画片段中不存在动画帧序列,为该第一轨道数据在至少一个第一动画片段中添加动画帧序列。
根据本公开的另一方面,提供了一种动画数据的处理装置,包括:获取单元,配置成获取第一动画文件,其中,第一动画文件包括描述对象模型的第一模型数据和多个第一轨道数据,多个第一轨道数据中的每个第一轨道数据用于描述关于对象模型相应部分的运动的多个第一动画片段;导出单元,配置成从第一动画文件中导出多个第一轨道数据,以作为待处理的动画数据;以及补充单元,配置成对待处理的动画数据中的多个第一轨道数据进行动画帧序列的补充,以得到补充后的动画数据,其中,针对多个第一轨道数据中的每个第一轨道数据:响应于确定该第一轨道数据在多个第一动画片段中的至少一个第一动画片段中不存在动画帧序列,为该第一轨道数据在至少一个第一动画片段中添加动画帧序列。
根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述的方法。
根据本公开的又一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行上述的方法。
根据本公开的又一方面,提供了一种计算机程序产品,包括计算机程序,其中,计算机程序在被处理器执行时实现上述的方法。
根据本公开的一个或多个实施例,可以将导出的多个轨道数据中空白的动画片段进行动画帧序列的补充,确保每个轨道数据在多个动画片段中的帧序列是连续的。在动画进行帧间插值播放时,动画播放软件可以准确选取当前时刻前后两帧的图像内容做插值,从而避免了后续动画片段对当前动画播放的干扰,提高了动画图像播放的准确性。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起用于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
图1示出了根据本公开的实施例的动画数据的处理方法的流程图;
图2a示出了根据本公开的实施例的第一动画文件的多个第一轨道数据的示意图;
图2b示出了根据本公开的实施例的待处理的动画数据的示意图;
图2c示出了根据本公开的实施例的补充后的动画数据的示意图;
图3示出了根据本公开另一实施例的动画数据的处理方法的流程图;
图4示出了根据本公开的实施例的将第一轨道数据添加到第二动画文件中的方法的流程图;
图5示出了将补充后的动画数据重新导入第二动画文件中的原理示意图;
图6示出了根据本公开实施例的确定在第二动画文件中与该第一轨道数据处于相同轨道的第二轨道数据的方法的流程图;
图7示出了根据本公开的实施例的动画数据的处理装置的结构框图;
图8示出了根据本公开另一实施例的动画数据的处理装置的结构框图;
图9示出了能够用于实现本公开的实施例的示例性电子设备的结构框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个要素与另一要素区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。
在本公开中对各种示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。除非上下文另外明确地表明,如果不特意限定要素的数量,则该要素可以是一个也可以是多个。此外,本公开中所使用的术语“和/或”涵盖所列出的项目中的任何一个以及全部可能的组合方式。
下面将结合附图详细描述本公开的实施例。图1示出了根据本公开实施例的动画数据的处理方法100的流程图。该处理方法100可以用于与处理动画相关的服务器,这些服务器可以是用于接收用户上传的动画,并对动画进行修改;这些服务器还可以是向用户进行动画播放的相关网站。
如图1所示,该方法100包括:
步骤110获取第一动画文件,其中,第一动画文件包括描述对象模型的第一模型数据和多个第一轨道数据201,多个第一轨道数据201中的每个第一轨道数据201用于描述关于对象模型相应部分的运动的多个第一动画片段;
步骤120,从第一动画文件中导出多个第一轨道数据201,以作为待处理的动画数据;以及
步骤130,对待处理的动画数据中的多个第一轨道数据201进行动画帧序列的补充,以得到补充后的动画数据,其中,针对多个第一轨道数据201中的每个第一轨道数据201:响应于确定该第一轨道数据201在多个第一动画片段中的至少一个第一动画片段中不存在动画帧序列,为该第一轨道数据201在至少一个第一动画片段中添加动画帧序列。
在详细介绍方法100之前,首先对方法100的应用场景进行简单介绍。目前,GLTF格式的动画文件基本上成为3D模型的一种非常通用的标准格式。gltf格式的动画文件中包括了对象模型的全部信息,根据这些信息就可以构造渲染出一个完整的3d模型。
动画文件一般包括模型数据和多个轨道数据。模型数据描述对象模型的各种参数信息,如模型的尺寸大小、骨骼、蒙皮等信息,多个轨道数据用于描述关于对象模型相应部分的运动的多个动画片段。以对象模型为人体为例,多个轨道数据可以是手部的轨道数据、头部的轨道数据或腿部的轨道数据等等。手部的轨道数据则用于描述关于人体手部的运动的多个动画片段;头部的轨道数据则用于描述关于人体头部的运动的多个动画片段。在一些实施例中,对象模型还可以包括树形结构的多个节点,多个节点位于树形结构的不同层级上,上述每个轨道数据与其中一个节点相关联,以用于。例如,手部可以是对象模型中第一层级的节点,该节点还可以进一步细分为手掌、手臂等第二层级的节点,手掌还可以进一步细分为手指等第三层级的节点。手部的轨道数据则与上述手部的第一层级的节点相关联,用于描述人体手部整体的动画;手指的轨道数据则与上述手指的第三层级的节点相关联,用于描述人体手指的细节动画。动画片段为展示对象模型的一套完整动作的时间区段,上述每个轨道数据可以在一个特定的动画片段中存在一组动画帧序列,以用于播放对象模型的相应部分的动画。上述多个轨道数据组合在一起构成了gltf动画文件中的动画内容。
当一个gltf格式的动画文件加载时,会将全部的内容创建成对应的组件(Component)信息加载到内存中,因此对于一个庞大的复杂模型,加载gltf格式的文件时不仅加载缓慢还占用大量内存。因此,针对上述问题,目前提出了多种仅加载gltf文件中动画内容的方案,以优化初始化时的内存和耗时等情况。在这些方案中,主要是将动画数据从gltf文件中导出,这样,在后续的动画制作或动画播放中可以仅加载动画数据,去除掉模型的尺寸大小、骨骼、蒙皮等信息。
在将动画数据从gltf格式的动画文件中导出时,相关的动画软件还会对导出的轨道数据进行优化。动画软件一般会对轨道数据在一个动画片段中的第一帧和最后一帧进行比较,若这两帧中的对象模型的位置和姿态没有变化,则认为轨道数据在该动画片段中没有动画帧序列,因此,导致导出的轨道数据在某些动画片段中不存在动画帧序列的数据。
现有的3D模型动画大多为关键帧动画,即,在动画播放时采用的是帧间插值的方法确定当前动画图像的。该方法选取当前播放时刻前后相邻两帧的图像做插值得到当前时刻的图像。这样引入了一个新的技术问题是:若当前时刻所在的动画片段中某轨道数据没有动画帧序列,相关的动画软件将自动向后查找存在动画帧序列的动画片段的第一帧作为进行插值的图像,从而导致当前时刻的动画片段显示的图像不准确,混入了后面的动画片段的内容。
本公开实施例的方法将导出的多个轨道数据中空白的动画片段进行动画帧序列的补充,确保每个轨道数据在多个动画片段中是连续的,在动画进行帧间插值播放时,动画软件可以准确选取当前时刻前后两帧的图像内容做插值,提高了动画图像播放的准确性。
在步骤110中,第一动画文件可以为上述gltf格式的动画文件,其包括第一模型数据和多个第一轨道数据201。图2a示出了根据本公开实施例的第一动画文件的多个第一轨道数据201的示意图。如图2a所示,该动画文件包含两个动画片段,即,动画片段1和动画片段2,该动画文件还包含三个轨道,即,轨道1、轨道2和轨道3。
在步骤120中,进行动画数据导出的相关软件对第一轨道数据201在每一个动画片段中的第一帧和最后一帧进行比较,若这两帧中的对象模型的位置和姿态没有变化,则认为轨道数据在该动画片段中没有动画帧序列。如图2a所示,通过两帧比对发现轨道2在动画片段1中没有发生变化。图2b示出了根据本公开实施例的待处理的动画数据的示意图,如图2b所示,由于轨道2在动画片段1中没有发生变化,因此,相关软件对轨道2数据进行了优化,使其在动画片段1中不存在动画帧序列,在图2b中,动画片段2中的第一轨道数据前移到了数据开头的位置,从而形成了图2b的数据形式。上述第一轨道数据201是通过数组的方式记录的,数组中包含多个元素,每个元素用于记录每一帧对象模型的姿态,例如,第一个元素记录第一帧的对象模型的姿态;第二个元素记录第二帧的对象模型的姿态等。若假设多个动画片段均包括100帧,那么,图2b所示的轨道2的第一个元素是从第101帧开始记录的,之前的1-100帧不存在;与之形成对照,图2b所示的轨道3的元素是完整的,记录了所有0-200帧的对象模型的姿态。
图2c示出了根据本公开实施例的补充后的动画数据的示意图,如图2c所示,在步骤130中,将轨道2缺失的动画片段1中的1-100帧数据进行补充(如图2c中的虚线框所示)。这1-100帧的数据可以是相同的,即,均为对象模型的相应部分在动画片段2开始时的姿态。
利用方法100可以得到纯动画播放的动画数据,该动画数据不包含对象模型的模型数据,因此,在利用相关的动画播放软件对其进行播放时,无需额外加载模型的骨骼、蒙皮等数据,减少了动画播放的缓冲时间。本公开实施例的方法还将导出的多个轨道数据中空白的动画片段进行动画帧序列的补充,确保每个轨道数据在多个动画片段中的帧序列是连续的。在动画进行帧间插值播放时,动画播放软件可以准确选取当前时刻前后两帧的图像内容做插值,从而避免了后续动画片段对当前动画播放的干扰,提高了动画图像播放的准确性。
图3示出了根据本公开另一实施例的动画数据的处理方法300的流程图。该方法300用于将上述补充后的动画数据重新导入到包含模型数据的动画文件中,从而实现动画数据在多个动画文件中的通用性。如图3所示,该方法300包括:
步骤310,针对第一动画文件中的多个第一轨道数据201中的每个第一轨道数据201,将该第一轨道数据201与对象模型中对应的节点的节点名建立映射关系。
步骤320,从第一动画文件中导出多个第一轨道数据201,以作为待处理的动画数据;
步骤330,对待处理的动画数据中的多个第一轨道数据201进行动画帧序列的补充,以得到补充后的动画数据;
步骤340,将补充后的动画数据导入第二动画文件,其中,第二动画文件包括描述对象模型的第二模型数据和多个第二轨道数据202,多个第二轨道数据202中的每个第二轨道数据202用于描述关于对象模型的相应部分运动的多个第二动画片段。导入过程包括:将补充后的动画数据的多个第一轨道数据201分别添加到第二动画文件的多个第二轨道数据202的相对应的第二轨道数据202之后。
步骤310在从第一动画文件中导出多个第一轨道数据201之前执行。该步骤用于将第一轨道数据201与模型节点名相关联,以便于后续将动画数据再导入到第二动画文件中时,第一轨道数据201可以对应到第二动画文件的相同轨道中。在相关技术中,轨道数据一般仅与对象模型对应节点的节点ID相关联,例如,在一些示例中,人体模型的手部节点的节点ID可以由数字编号表示。但是,发明人意识到,若用户对对象模型进行修改(例如,删除了部分模型节点,或增加了另外一部分模型时),节点ID值会变化。因此,第一轨道数据201与对象模型对应节点的节点ID的关联性较弱,导致后续将动画数据再次导入到第二动画文件中时,动画数据中的第一轨道数据201可能会被错误地添加到其他轨道中,导致动画播放出现错乱。为了解决上述问题,可以将多个第一轨道数据201中的每个第一轨道数据201与对象模型中对应的节点的节点名建立映射关系,例如,在人体模型中,手部的节点会命名为“手部”,而节点名在对象模型修改时也不会轻易发生改变。因此,将第一轨道数据201与对象模型的节点名相关联,以便于后续将动画数据再导入到第二动画文件中,第一轨道数据201可以对应到第二动画文件的相同轨道中。
上述步骤320和步骤330与方法100中的步骤120和130类似,这里不再赘述。
在步骤340中,第二动画文件和第一动画文件为相同类型的文件,例如,均为gltf格式的文件。第二动画文件同样包括第二模型数据和多个第二轨道数据202,第二模型数据与第一模型数据描述相同的对象模型,例如:人体。但是,第二模型数据与第一模型数据的不同之处在于,第二模型数据描述的对象模型的节点相较于第一模型数据描述的对象模型进行了少量修改,例如,新增了对象模型的多个节点,或删除了部分节点等。这种修改导致对象模型的部分节点的节点ID发生变化,但是这部分节点的节点名保持不变。
因此,可以理解,第一轨道数据201与相应节点的节点名关联度较强,后续可以基于第一轨道数据201所对应的节点名将补充后的动画数据的多个第一轨道数据201分别添加到第二动画文件的多个第二轨道数据202的相对应的第二轨道数据202之后。
在本实施例中,根据第一轨道数据201与节点名之间映射关系将补充后的动画数据再导入到动画文件中,第一轨道数据201可以准确添加到第二动画文件的相同轨道中,防止第一轨道数据201的错误导入。
图4示出了根据本公开实施例的将第一轨道数据201添加到第二动画文件中的方法400的流程图。如图4所示,该方法400包括:针对多个第一轨道数据201中的每个第一轨道数据201:
步骤410,根据映射关系,确定与该第一轨道数据201对应的对象模型的节点名;
步骤420,根据该节点名确定在第二动画文件中与该第一轨道数据201处于相同轨道的第二轨道数据202;以及
步骤430,将该第一轨道数据201添加到处于相同轨道的第二轨道数据202之后。
如上文所述,第一动画文件和第二动画文件均以对象模型为播放动画的基础,但是第一动画文件和第二动画文件中的对象模型略有不同,导致这两个模型的节点ID改变,但是相应节点的节点名没有发生变化。图5示出了将补充后的动画数据重新导入第二动画文件中的原理示意图。如图5所示,第二动画文件同样包括三个轨道,即轨道1、轨道2和轨道3,第二轨道数据202存在于上述三个轨道上。根据上文关于方法100所描述的,补充后的动画数据中包括的三个第一轨道数据201也分别隶属于轨道1、轨道2和轨道3。为了使得隶属于轨道1的第一轨道数据201添加到第二动画文件中同样隶属于轨道1的第二轨道数据202之后,在步骤410,首先根据映射关系,确定与该第一轨道数据201对应的对象模型的节点名。上述映射关系可以是在方法300的步骤310中生成的映射关系。示例性的,若该节点名为“手部”,那么在步骤420中,在第二动画文件中查找到同样与“手部”节点名相关联的第二轨道数据202,查找到的第二轨道数据202同样隶属于轨道1,如此可以得到共同与节点名“手部”相关联的第一轨道数据201和第二轨道数据202,这两个数据均是用于描述人体手部运动的轨道数据。后续可以将第一轨道数据201添加到第二轨道数据202之后。
图6示出了根据本公开实施例的确定在第二动画文件中与该第一轨道数据201处于相同轨道的第二轨道数据202的方法600的流程图,如图6所示,该方法600包括:
步骤610,在第二动画文件中查找与该节点名对应的多个候选第二轨道数据202;以及
步骤620,根据与各候选第二轨道数据202相关联的节点在树形结构中的层级对多个候选第二轨道数据202进行验证,以从多个候选第二轨道数据202中选取与该第一轨道数据201处于相同轨道的第二轨道数据202。
在一些情况下,可能存在多个节点具有相同节点名的情况,例如对于人体模型而言,可能存在两个节点名均为“手部”的节点(即,与左手相关的节点和与右手相关的节点)。在这种情况下,需要对这两个节点进行进一步验证,以确定出第二动画文件中真正和第一轨道数据201相对应的轨道。
如上文所述,对象模型可以包括树形结构的多个节点,多个节点位于树形结构的不同层级上,上述每个轨道数据与其中一个节点相关联,以用于。例如,手部可以是对象模型中第一层级的节点,该节点还可以进一步细分为手掌、手臂等第二层级的节点,手掌还可以进一步细分为手指等第三层级的节点。手部的轨道数据则与上述手部的第一层级的节点的节点相关联,用于描述人体手部整体的动画;手指的轨道数据则与上述手指的第三层级的节点的节点相关联,用于描述人体手指的细节动画。
在步骤610中,先查找到第二动画文件中与确定出的节点名对应的多个候选第二轨道数据202。在步骤620中,分别确定各候选第二轨道数据202相关联的节点在树形结构中的层级,然后根据层级以从多个候选第二轨道数据202中选取与该第一轨道数据201处于相同轨道的第二轨道数据202。例如,可以在从第一动画文件中提取多个第一轨道之前,记录下每个第一轨道对应的节点的层级,在步骤620中,可以通过上述记录确定该第一轨道数据201对应的节点所处的层级,例如该第一轨道数据201对应的节点在第4层级。然后分别确定各候选第二轨道数据202相关联的节点在树形结构中的层级,并选出同为第4层级的候选第二轨道数据202以作为与该第一轨道数据201处于相同轨道的第二轨道数据202。
由于节点名可能存在重复的情况,也就是同一个对象模型可能存在两个相同的节点名。例如人体模型可能存在两个名称为“手”的节点,在这种情况下,本实施例的方法进一步验证第二轨道数据202对应的节点的层级,当该节点的层级与第一轨道数据201所对应的层级一致时,确定为与该第一轨道数据201处于相同的轨道。
在一些实施例中,将该第一轨道数据201添加到处于相同轨道的第二轨道数据202之后包括:间隔第一帧间时长,将该第一轨道数据201的第一帧设置到处于相同轨道的第二轨道数据202的最后一帧之后,其中,第一帧间时长根据该第一轨道数据201的动画帧序列的平均帧间时长确定。通过上述方法导入的动画数据的帧序列需要和当前轨道的先前的动画帧的尾帧错开一帧,例如当前第二轨道数据202的最后一帧是80帧,那么补充的第一轨道数据201的第一帧需要是81帧。但是换算成对应的时间戳会出现问题,这是因为第一轨道数据201和第二轨道数据202的帧率有可能不同,此时,第二动画文件还无法确定后导入的动画的帧率,例如,后导入的第一轨道数据201有可能是24也有可能是30帧,那么对于上述第一轨道数据201和第二轨道数据202之间的这81帧来说,就无法计算出对应的时间戳。
本实施例采用计算第一轨道数据201的动画帧序列的平均帧间时长的方式来确定上述第81帧的时长。动画里面关键帧的时间戳是一个近似值,以30帧动画中关键帧的帧间差值为例,一帧可能是0.033334s,也有可能是0.03331s,这种差值在经过多次拆分动画追加后会被无限放大导致影响到了最终的帧间取值,因此方法600采用是取当前第一轨道数据201所有的帧间时长的平均值,因为总的动画时长是固定的,帧间的范围不会影响到总的动画,这样个别的差值波动就会被无限缩小,从而使得动画在动画片段之间的播放更加平滑。
在一些实施例中,为该第一轨道数据201在至少一个第一动画片段中添加动画帧序列包括:为至少一个第一动画片段中的每个第一动画片段分别添加动画帧序列,其中,在每个第一动画片段中添加的动画帧序列的第二帧间时长根据在该第一动画片段中的其他第一轨道数据201的动画帧序列的帧间时长确定。
可以理解,虽然不同的动画片段中的帧间时长可以不等,但是处于同一动画片段中不同轨道的动画帧序列的帧间时长需要相同,以使得对象模型的各个部分同步播放。在方法600中,添加的动画帧序列的相邻帧之间的第二帧间时长根据其他轨道的帧间时长确定,提高了动画播放的一致性。例如,如图2c所示,轨道2上的第一轨道数据201在动画片段1中补充的动画帧序列的帧间时长可以和轨道1上的第一轨道数据201的帧间时长相同。
根据本公开的另一方面,还提供了一种动画数据的处理装置,图7示出了根据本公开实施例的动画数据的处理装置700的结构框图。如图7所示,该装置700包括:获取单元710,配置成获取第一动画文件,其中,第一动画文件包括描述对象模型的第一模型数据和多个第一轨道数据201,多个第一轨道数据201中的每个第一轨道数据201用于描述关于对象模型相应部分的运动的多个第一动画片段;导出单元720,配置成从第一动画文件中导出多个第一轨道数据201,以作为待处理的动画数据;以及补充单元730,配置成对待处理的动画数据中的多个第一轨道数据201进行动画帧序列的补充,以得到补充后的动画数据,其中,针对多个第一轨道数据201中的每个第一轨道数据201:响应于确定该第一轨道数据201在多个第一动画片段中的至少一个第一动画片段中不存在动画帧序列,为该第一轨道数据201在至少一个第一动画片段中添加动画帧序列。
图8示出了根据本公开另一实施例的动画数据的处理装置800的结构框图。如图8所示。在一些实施例中,对象模型具有多个节点,多个第一轨道数据201中的每个第一轨道数据201与对应的节点相关联,其中,装置还包括:建立单元840,配置成针对第一动画文件中的多个第一轨道数据201中的每个第一轨道数据201,将该第一轨道数据201与对象模型中对应的节点的节点名建立映射关系。
在一些实施例中,处理装置800还包括:导入单元850,配置成将补充后的动画数据导入第二动画文件,其中,第二动画文件包括描述对象模型的第二模型数据和多个第二轨道数据202,多个第二轨道数据202中的每个第二轨道数据202用于描述关于对象模型的相应部分运动的多个第二动画片段,其中,导入过程包括:将补充后的动画数据的多个第一轨道数据201分别添加到第二动画文件的多个第二轨道数据202的相对应的第二轨道数据202之后。
在一些实施例中,导入单元850包括:第一确定模块851,配置成针对多个第一轨道数据201中的每个第一轨道数据201,根据映射关系,确定与该第一轨道数据201对应的对象模型的节点名;第二确定模块852,配置成根据该节点名确定在第二动画文件中与该第一轨道数据201处于相同轨道的第二轨道数据202;以及添加模块853,配置成将该第一轨道数据201添加到处于相同轨道的第二轨道数据202之后。
在一些实施例中,多个节点为具有多个层级的树形结构,第二确定模块852还配置成:在第二动画文件中查找与该节点名对应的多个候选第二轨道数据202;以及根据与各候选第二轨道数据202相关联的节点在树形结构中的层级对多个候选第二轨道数据202进行验证,以从多个候选第二轨道数据202中选取与该第一轨道数据201处于相同轨道的第二轨道数据202。
在一些实施例中,添加模块853还配置成:间隔第一帧间时长,将该第一轨道数据201的第一帧设置到处于相同轨道的第二轨道数据202的最后一帧之后,其中,第一帧间时长根据该第一轨道数据201的动画帧序列的平均帧间时长确定。
在一些实施例中,补充单元830还配置成:为至少一个第一动画片段中的每个第一动画片段分别添加动画帧序列,其中,在每个第一动画片段中添加的动画帧序列的第二帧间时长根据在该第一动画片段中的其他第一轨道数据201的动画帧序列的帧间时长确定。
应当理解,图6中所示装置600的各个单元可以与参考图1描述的方法100中的各个步骤相对应;图7中所示装置700的各个单元可以与参考图2-图4描述的方法中的各个步骤相对应。由此,上面针对方法100-400描述的操作、特征和优点同样适用于装置600、装置700及其包括的单元和模块。为了简洁起见,某些操作、特征和优点在此不再赘述。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
参考图9,现将描述可以作为本公开的服务器或客户端的电子设备900的结构框图,其是可以应用于本公开的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图9所示,电子设备900包括计算单元901,其可以根据存储在只读存储器(ROM)902中的计算机程序或者从存储单元908加载到随机访问存储器(RAM)903中的计算机程序,来执行各种适当的动作和处理。在RAM903中,还可存储电子设备900操作所需的各种程序和数据。计算单元901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
电子设备900中的多个部件连接至I/O接口905,包括:输入单元906、输出单元907、存储单元909以及通信单元909。输入单元906可以是能向电子设备900输入信息的任何类型的设备,输入单元906可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入,并且可以包括但不限于鼠标、键盘、触摸屏、轨迹板、轨迹球、操作杆、麦克风和/或遥控器。输出单元907可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元908可以包括但不限于磁盘、光盘。通信单元909允许电子设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙TM设备、802.11设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
计算单元901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元901的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元901执行上文所描述的各个方法和处理,例如动画数据的处理方法。例如,在一些实施例中,动画数据的处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到电子设备900上。当计算机程序加载到RAM903并由计算单元901执行时,可以执行上文描述的动画数据的处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行动画数据的处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行、也可以顺序地或以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
虽然已经参照附图描述了本公开的实施例或示例,但应理解,上述的方法、系统和设备仅仅是示例性的实施例或示例,本发明的范围并不由这些实施例或示例限制,而是仅由授权后的权利要求书及其等同范围来限定。实施例或示例中的各种要素可以被省略或者可由其等同要素替代。此外,可以通过不同于本公开中描述的次序来执行各步骤。进一步地,可以以各种方式组合实施例或示例中的各种要素。重要的是随着技术的演进,在此描述的很多要素可以由本公开之后出现的等同要素进行替换。
Claims (17)
1.一种动画数据的处理方法,包括:
获取第一动画文件,其中,所述第一动画文件包括描述对象模型的第一模型数据和多个第一轨道数据,所述多个第一轨道数据中的每个第一轨道数据用于描述关于所述对象模型相应部分的运动的多个第一动画片段;
从所述第一动画文件中导出所述多个第一轨道数据,以作为待处理的动画数据;以及
对所述待处理的动画数据中的多个第一轨道数据进行动画帧序列的补充,以得到补充后的动画数据,其中,针对所述多个第一轨道数据中的每个第一轨道数据:
响应于确定该第一轨道数据在所述多个第一动画片段中的至少一个第一动画片段中不存在动画帧序列,为该第一轨道数据在所述至少一个第一动画片段中添加动画帧序列。
2.根据权利要求1所述的方法,其中,所述对象模型具有多个节点,所述多个第一轨道数据中的每个第一轨道数据与对应的节点相关联,其中,所述从所述第一动画文件中导出所述多个第一轨道数据之前还包括:
针对所述第一动画文件中的多个第一轨道数据中的每个第一轨道数据,将该第一轨道数据与所述对象模型中对应的节点的节点名建立映射关系。
3.根据权利要求2所述的方法,还包括:
将所述补充后的动画数据导入第二动画文件,其中,所述第二动画文件包括描述所述对象模型的第二模型数据和多个第二轨道数据,所述多个第二轨道数据中的每个第二轨道数据用于描述关于所述对象模型的相应部分运动的多个第二动画片段,其中,导入过程包括:
将所述补充后的动画数据的多个第一轨道数据分别添加到所述第二动画文件的多个第二轨道数据的相对应的第二轨道数据之后。
4.根据权利要求3所述的方法,其中,所述将所述补充后的动画数据的多个第一轨道数据分别添加到所述第二动画文件的多个第二轨道数据的相对应的第二轨道数据之后包括:
针对所述多个第一轨道数据中的每个第一轨道数据:
根据所述映射关系,确定与该第一轨道数据对应的所述对象模型的节点名;
根据该节点名确定在所述第二动画文件中与该第一轨道数据处于相同轨道的第二轨道数据;以及
将该第一轨道数据添加到处于相同轨道的第二轨道数据之后。
5.根据权利要求4所述的方法,其中,所述多个节点为具有多个层级的树形结构,所述根据该节点名确定在所述第二动画文件中与该第一轨道数据处于相同轨道的第二轨道数据包括:
在所述第二动画文件中查找与该节点名对应的多个候选第二轨道数据;以及
根据与各候选第二轨道数据相关联的节点在所述树形结构中的层级对所述多个候选第二轨道数据进行验证,以从所述多个候选第二轨道数据中选取与该第一轨道数据处于相同轨道的第二轨道数据。
6.根据权利要求4所述的方法,其中,所述将该第一轨道数据添加到处于相同轨道的第二轨道数据之后包括:
间隔第一帧间时长,将该第一轨道数据的第一帧设置到所述处于相同轨道的第二轨道数据的最后一帧之后,其中,所述第一帧间时长根据该第一轨道数据的动画帧序列的平均帧间时长确定。
7.根据权利要求1-6中任一项所述的方法,其中,所述为该第一轨道数据在所述至少一个第一动画片段中添加动画帧序列包括:
为所述至少一个第一动画片段中的每个第一动画片段分别添加动画帧序列,其中,在每个第一动画片段中添加的动画帧序列的第二帧间时长根据在该第一动画片段中的其他第一轨道数据的动画帧序列的帧间时长确定。
8.一种动画数据的处理装置,包括:
获取单元,配置成获取第一动画文件,其中,所述第一动画文件包括描述对象模型的第一模型数据和多个第一轨道数据,所述多个第一轨道数据中的每个第一轨道数据用于描述关于所述对象模型相应部分的运动的多个第一动画片段;
导出单元,配置成从所述第一动画文件中导出所述多个第一轨道数据,以作为待处理的动画数据;以及
补充单元,配置成对所述待处理的动画数据中的多个第一轨道数据进行动画帧序列的补充,以得到补充后的动画数据,其中,针对所述多个第一轨道数据中的每个第一轨道数据:响应于确定该第一轨道数据在所述多个第一动画片段中的至少一个第一动画片段中不存在动画帧序列,为该第一轨道数据在所述至少一个第一动画片段中添加动画帧序列。
9.根据权利要求8所述的装置,其中,所述对象模型具有多个节点,所述多个第一轨道数据中的每个第一轨道数据与对应的节点相关联,其中,所述装置还包括:
建立单元,配置成针对所述第一动画文件中的多个第一轨道数据中的每个第一轨道数据,将该第一轨道数据与所述对象模型中对应的节点的节点名建立映射关系。
10.根据权利要求9所述的装置,还包括:
导入单元,配置成将所述补充后的动画数据导入第二动画文件,其中,所述第二动画文件包括描述所述对象模型的第二模型数据和多个第二轨道数据,所述多个第二轨道数据中的每个第二轨道数据用于描述关于所述对象模型的相应部分运动的多个第二动画片段,其中,导入过程包括:将所述补充后的动画数据的多个第一轨道数据分别添加到所述第二动画文件的多个第二轨道数据的相对应的第二轨道数据之后。
11.根据权利要求10所述的装置,其中,所述导入单元包括:
第一确定模块,配置成针对所述多个第一轨道数据中的每个第一轨道数据,根据所述映射关系,确定与该第一轨道数据对应的所述对象模型的节点名;
第二确定模块,配置成根据该节点名确定在所述第二动画文件中与该第一轨道数据处于相同轨道的第二轨道数据;以及
添加模块,配置成将该第一轨道数据添加到处于相同轨道的第二轨道数据之后。
12.根据权利要求11所述的装置,其中,所述多个节点为具有多个层级的树形结构,所述第二确定模块还配置成:
在所述第二动画文件中查找与该节点名对应的多个候选第二轨道数据;以及
根据与各候选第二轨道数据相关联的节点在所述树形结构中的层级对所述多个候选第二轨道数据进行验证,以从所述多个候选第二轨道数据中选取与该第一轨道数据处于相同轨道的第二轨道数据。
13.根据权利要求11所述的装置,其中,所述添加模块还配置成:
间隔第一帧间时长,将该第一轨道数据的第一帧设置到所述处于相同轨道的第二轨道数据的最后一帧之后,其中,所述第一帧间时长根据该第一轨道数据的动画帧序列的平均帧间时长确定。
14.根据权利要求8-13中任一项所述的装置,其中,所述补充单元还配置成:
为所述至少一个第一动画片段中的每个第一动画片段分别添加动画帧序列,其中,在每个第一动画片段中添加的动画帧序列的第二帧间时长根据在该第一动画片段中的其他第一轨道数据的动画帧序列的帧间时长确定。
15.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-7中任一项所述的方法。
17.一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被处理器执行时实现权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211626898.4A CN116309973A (zh) | 2022-12-16 | 2022-12-16 | 动画数据的处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211626898.4A CN116309973A (zh) | 2022-12-16 | 2022-12-16 | 动画数据的处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116309973A true CN116309973A (zh) | 2023-06-23 |
Family
ID=86824691
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211626898.4A Pending CN116309973A (zh) | 2022-12-16 | 2022-12-16 | 动画数据的处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116309973A (zh) |
-
2022
- 2022-12-16 CN CN202211626898.4A patent/CN116309973A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109300179B (zh) | 动画制作方法、装置、终端和介质 | |
US8649573B1 (en) | Method and apparatus for summarizing video data | |
CN113365110B (zh) | 模型训练、视频插帧方法,装置,设备以及存储介质 | |
CN111832449B (zh) | 工程图纸的显示方法及相关装置 | |
CN104995662A (zh) | 基于化身的传输协议、图标生成和玩偶动画 | |
KR20210040882A (ko) | 동영상을 생성하기 위한 방법 및 장치 | |
CN111832445B (zh) | 工程图纸的定位方法及相关装置 | |
CN114492599B (zh) | 基于傅里叶域自适应的医疗影像预处理方法和装置 | |
CN109271929B (zh) | 检测方法和装置 | |
CN112785493A (zh) | 模型的训练方法、风格迁移方法、装置、设备及存储介质 | |
CN112714337A (zh) | 视频处理方法、装置、电子设备和存储介质 | |
JP2021089711A (ja) | 動画ブレの検出方法及び装置 | |
CN116309973A (zh) | 动画数据的处理方法及装置 | |
CN114202605B (zh) | 3d视频生成方法、模型训练方法、装置、设备和介质 | |
CN115457174A (zh) | 模型训练、动作映射方法、装置、电子设备及存储介质 | |
JP2023070068A (ja) | 動画結合方法、装置、電子機器および記憶媒体 | |
CN115665363A (zh) | 一种视频会议方法、装置、设备和存储介质 | |
CN113724355A (zh) | 用于视频的图表绘制方法、装置及电子设备 | |
CN113556575A (zh) | 用于压缩数据的方法、装置、设备、介质和产品 | |
CN113361519A (zh) | 目标处理方法、目标处理模型的训练方法及其装置 | |
CN113438428B (zh) | 用于视频自动化生成的方法、装置、设备和计算机可读存储介质 | |
CN113076828B (zh) | 视频编辑方法和装置以及模型训练方法和装置 | |
CN115661308B (zh) | 驱动数字人的方法、装置、电子设备和存储介质 | |
CN114202728B (zh) | 一种视频检测方法、装置、电子设备及介质 | |
US11687176B2 (en) | Methods and apparatuses for producing smooth representations of input motion in time and space |
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 |