CN116228942B - 角色动作提取方法、设备和存储介质 - Google Patents

角色动作提取方法、设备和存储介质 Download PDF

Info

Publication number
CN116228942B
CN116228942B CN202310274735.2A CN202310274735A CN116228942B CN 116228942 B CN116228942 B CN 116228942B CN 202310274735 A CN202310274735 A CN 202310274735A CN 116228942 B CN116228942 B CN 116228942B
Authority
CN
China
Prior art keywords
data
animation
skeleton
character
target type
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.)
Active
Application number
CN202310274735.2A
Other languages
English (en)
Other versions
CN116228942A (zh
Inventor
李禹�
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Youku Technology Co Ltd
Original Assignee
Beijing Youku Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Youku Technology Co Ltd filed Critical Beijing Youku Technology Co Ltd
Priority to CN202310274735.2A priority Critical patent/CN116228942B/zh
Publication of CN116228942A publication Critical patent/CN116228942A/zh
Application granted granted Critical
Publication of CN116228942B publication Critical patent/CN116228942B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Psychiatry (AREA)
  • Social Psychology (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本申请提供一种角色动作提取方法、设备和存储介质,其中方法包括:获取待处理的动画文件,所述动画文件中包括至少一个虚拟角色的骨架信息和运动参数;根据所述骨架信息,从所述至少一个虚拟角色中筛选出目标类型角色;解析所述目标类型角色的运动参数,得到所述目标类型角色的有效动作数据,所述有效动作数据中包括预设类型骨骼的动作;输出所述目标类型角色的有效动作数据。本申请实现了自动从动画文件中提取特定类型角色的有效动作,减少人为参与,提高动作数据提取效率。

Description

角色动作提取方法、设备和存储介质
技术领域
本申请涉及信息处理技术领域,尤其涉及一种角色动作提取方法、设备和存储介质。
背景技术
随着计算机三维影像技术的不断发展,三维图形技术越来越被人们所看重。三维动画因为它比平面图更直观,更能给观赏者以身临其境的感觉。角色动画是三维动画的一种,是通过将角色模型绑定骨骼蒙皮后,在一个时间段里,通过骨骼pose(姿势)到pose的制作方法使角色运动起来的一种模型动画方式。
在动画制作项目中,往往需要使用到大量的角色动作资产,作为制作角色动画的基础素材。而通过人工提取角色动作的方式,效率极低,因此亟需一种自动化的方式,来完成对角色的识别和有效动作的筛选工作,提升工作效率。
发明内容
本申请实施例的主要目的在于提供一种角色动作提取方法、设备和存储介质,实现了自动从动画文件中提取角色的有效动作,减少人为参与,提高有效动作数据提取效率。
第一方面,本申请实施例提供一种角色动作提取方法,包括:获取待处理的动画文件,所述动画文件中包括至少一个虚拟角色的骨架信息和运动参数;根据所述骨架信息,从所述至少一个虚拟角色中筛选出目标类型角色;解析所述目标类型角色的运动参数,得到所述目标类型角色的有效动作数据,所述有效动作数据中包括预设类型骨骼的动作数据;输出所述目标类型角色的有效动作数据。
于一实施例中,所述骨架信息中包括:对应虚拟角色的至少一个角色骨骼;所述根据所述骨架信息,从所述动画文件中筛选出目标类型角色,包括:解析所述动画文件,确定所述动画文件中包含的各个虚拟角色;根据所述各个虚拟角色的角色骨骼,从所述各个虚拟角色中选出属于目标类型的虚拟角色作为所述目标类型角色。
于一实施例中,所述解析所述目标类型角色的骨架信息,得到所述目标类型角色的有效动作数据,包括:根据所述运动参数判断所述目标类型角色的角色骨骼上是否配置有骨骼动画数据;若所述角色骨骼上有骨骼动画数据,从所述各个目标类型角色的所述骨骼动画数据中筛选出有效骨骼动画数据,所述有效骨骼动画数据包括预设类型骨骼的动作;根据所述有效骨骼动画数据生成所述目标类型角色的有效动作数据。
于一实施例中,所述从所述各个目标类型角色的所述骨骼动画数据中筛选出有效骨骼动画数据,包括:根据所述骨骼动画数据确定所述各个目标类型角色对应关键帧数据,所述关键帧数据中包括所述目标类型角色运动变化中的关键动作;根据所述关键帧数据,判断对应的所述目标类型角色的预设类型骨骼活动范围是否在预设范围内;若所述预设类型骨骼活动范围在所述预设范围内,确定所述关键帧数据为所述有效骨骼动画数据,否则,剔除对应的目标类型角色。
于一实施例中,所述根据所述有效骨骼动画数据生成所述目标类型角色的有效动作数据,包括:针对所述各个目标类型角色,分别判断对应的所述有效骨骼动画数据是否为满帧动画;若所述有效骨骼动画数据为满帧动画,将所述有效骨骼动画数据作为对应所述目标类型角色的有效动作数据;若所述有效骨骼动画数据为不满帧动画,则将所述不满帧动画烘焙成满帧动画后,将满帧的有效骨骼动画数据作为对应所述目标类型角色的有效动作数据。
于一实施例中,所述解析所述目标类型角色的运动参数,得到所述目标类型角色的有效动作数据,还包括:判断所述目标类型角色上是否存在控制器动画数据;若所述目标类型角色上存在控制器动画数据,从所述各个目标类型角色的所述控制器动画数据中筛选出有效控制器动画数据,所述有效控制器动画数据中被控制骨骼包括所述预设类型骨骼;根据所述有效控制器动画数据生成所述目标类型角色的有效动作数据。
于一实施例中,所述运动参数中包括对应虚拟角色的角色控制器和所述角色控制器对角色骨骼的驱动关系;所述从所述各个目标类型角色的所述控制器动画数据中筛选出有效控制器动画数据,包括:根据所述控制器动画数据确定所述各个目标类型角色对应关键帧数据,所述关键帧数据中包括所述目标类型角色运动变化中的关键动作;根据所述关键帧数据确定目标控制器对应的动作范围,所述目标控制器为驱动所述预设类型骨骼的角色控制器;判断所述目标控制器的动作范围是否在预设范围内;若所述目标控制器的动作范围在所述预设范围内,确定所述关键帧数据为有效控制器动画数据,否则,剔除对应的目标类型角色;
于一实施例中,所述根据所述有效控制器动画数据生成所述目标类型角色的有效动作数据,包括:将所述有效控制器动画数据转换成骨骼动画,根据转换后骨骼动画数据确定所述目标类型角色的有效动作数据。
于一实施例中,所述确定所述各个目标类型角色对应关键帧数据,包括:若所述目标类型角色的关键帧数据中存在动作偏离值不在预设阈值范围内的异常帧,采用所述关键帧数据中距离所述异常帧最近的正常帧代替所述异常帧,其中所述正常帧的动作值在所述预设阈值范围内。
于一实施例中,所述获取待处理的动画文件,包括:响应于用户的动作提取请求,获取所述动作提取请求指定的待处理的动画文件。
于一实施例中,在所述输出所述目标类型角色的有效动作数据之前,还包括:对所述有效动作数据进行欧拉角过滤处理;或者对所述有效动作数据进行校准,校准后的有效动作数据中目标类型角色位于指定位置,并面向指定方向。
第二方面,本申请实施例提供一种动漫数据生成方法,包括:获取用于动漫制作的基础动画文件;采用如上述任一方面所述的方法,从所述基础动画文件中提取目标类型角色的有效动作数据;根据所述目标类型角色的有效动作数据,生成新的动漫数据。
第三方面,本申请实施例提供一种角色动作提取装置,包括:
获取模块,用于获取待处理的动画文件,所述动画文件中包括至少一个虚拟角色的骨架信息和运动参数;
筛选模块,用于根据所述骨架信息,从所述至少一个虚拟角色中筛选出目标类型角色;
解析模块,用于解析所述目标类型角色的运动参数,得到所述目标类型角色的有效动作数据,所述有效动作数据中包括预设类型骨骼的动作数据;
输出模块,用于输出所述目标类型角色的有效动作数据。
于一实施例中,所述骨架信息中包括:对应虚拟角色的至少一个角色骨骼;所述筛选模块,用于解析所述动画文件,确定所述动画文件中包含的各个虚拟角色;根据所述各个虚拟角色的角色骨骼,从所述各个虚拟角色中选出属于目标类型的虚拟角色作为所述目标类型角色。
于一实施例中,所述解析模块,用于根据所述运动参数判断所述目标类型角色的角色骨骼上是否配置有骨骼动画数据;若所述角色骨骼上有骨骼动画数据,从所述各个目标类型角色的所述骨骼动画数据中筛选出有效骨骼动画数据,所述有效骨骼动画数据包括预设类型骨骼的动作数据;根据所述有效骨骼动画数据生成所述目标类型角色的有效动作数据。
于一实施例中,所述解析模块,具体用于根据所述骨骼动画数据确定所述各个目标类型角色对应关键帧数据,所述关键帧数据中包括所述目标类型角色运动变化中的关键动作;根据所述关键帧数据,判断对应的所述目标类型角色的预设类型骨骼活动范围是否在预设范围内;若所述预设类型骨骼活动范围在所述预设范围内,确定所述关键帧数据为所述有效骨骼动画数据,否则,剔除对应的目标类型角色。
于一实施例中,所述根据所述有效骨骼动画数据生成所述目标类型角色的有效动作数据,包括:针对所述各个目标类型角色,分别判断对应的所述有效骨骼动画数据是否为满帧动画;若所述有效骨骼动画数据为满帧动画,将所述有效骨骼动画数据作为对应所述目标类型角色的有效动作数据;若所述有效骨骼动画数据为不满帧动画,则将所述不满帧动画烘焙成满帧动画后,将满帧的有效骨骼动画数据作为对应所述目标类型角色的有效动作数据。
于一实施例中,所述解析模块,还用于判断所述目标类型角色上是否存在控制器动画数据;若所述目标类型角色上存在控制器动画数据,从所述各个目标类型角色的所述控制器动画数据中筛选出有效控制器动画数据,所述有效控制器动画数据中被控制骨骼包括所述预设类型骨骼;根据所述有效控制器动画数据生成所述目标类型角色的有效动作数据。
于一实施例中,所述运动参数中包括对应虚拟角色的角色控制器和所述角色控制器对角色骨骼的驱动关系;所述解析模块,具体用于根据所述控制器动画数据确定所述各个目标类型角色对应关键帧数据,所述关键帧数据中包括所述目标类型角色运动变化中的关键动作;根据所述关键帧数据确定目标控制器对应的动作范围,所述目标控制器为驱动所述预设类型骨骼的角色控制器;判断所述目标控制器的动作范围是否在预设范围内;若所述目标控制器的动作范围在所述预设范围内,确定所述关键帧数据为有效控制器动画数据,否则,剔除对应的目标类型角色;
于一实施例中,所述根据所述有效控制器动画数据生成所述目标类型角色的有效动作数据,包括:将所述有效控制器动画数据转换成骨骼动画,根据转换后骨骼动画数据确定所述目标类型角色的有效动作数据。
于一实施例中,所述确定所述各个目标类型角色对应关键帧数据,包括:若所述目标类型角色的关键帧数据中存在动作偏离值不在预设阈值范围内的异常帧,采用所述关键帧数据中距离所述异常帧最近的正常帧代替所述异常帧,其中所述正常帧的动作值在所述预设阈值范围内。
于一实施例中,所述获取模块,用于响应于用户的动作提取请求,获取所述动作提取请求指定的待处理的动画文件。
于一实施例中,还包括:过滤模块,用于在所述输出所述目标类型角色的有效动作数据之前,对所述有效动作数据进行欧拉角过滤处理;
于一实施例中,还包括:校准模块,用于在所述输出所述目标类型角色的有效动作数据之前,对所述有效动作数据进行校准,校准后的有效动作数据中目标类型角色位于指定位置,并面向指定方向。
第四方面,本申请实施例提供一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述电子设备执行上述任一方面所述的方法。
第五方面,本申请实施例提供一种云设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述云设备执行上述任一方面所述的方法。
第六方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现上述任一方面所述的方法。
第七方面,本申请实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一方面所述的方法。
本申请实施例提供的角色动作提取方法、设备和存储介质,通过对待处理的动画文件进行角色识别,根据骨架信息筛选出符合目标类型的目标类型角色,然后解析目标类型角色的运动参数,确定目标类型角色的预设类型骨骼对应的有效动作数据,输出有效动作数据。如此,实现了自动从动画文件中根据骨架信息提取特定类型角色的有效动作,减少人为参与,相比于人工提取动作数据,大大提高了动作数据提取效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种电子设备的结构示意图;
图2为本申请实施例提供的一种角色动作提取系统的架构示意图;
图3为本申请实施例提供的一种角色动作提取方法的流程示意图;
图4为本申请实施例提供的一种角色动作提取方法的流程示意图;
图5为本申请实施例提供的一种动漫数据生成方法的流程示意图;
图6为本申请实施例提供的一种角色动作提取装置的结构示意图;
图7为本申请实施例提供的一种云设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。
本文中术语“和/或”,用于描述关联对象的关联关系,具体表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
为了清楚地描述本申请实施例的技术方案,首先对本申请所涉及的名词进行释义:
骨骼动画:是模型动画中的一种,在骨骼动画中,模型具有互相连接的“骨骼”组成的骨架结构,通过改变根骨骼的朝向和位置、或者改变其他骨骼的旋转信息来为模型生成动画。骨骼动画是计算机动画中的一种技术,其将角色分为两个部分:用于绘制角色的表面表示(称为网格或蒙皮)和一组互连的部分骨骼,并共同形成骨骼或装备,是一种用于对网格进行动画处理(姿势和关键帧)的虚拟骨架。
角色控制器:Character Controller,用来控制虚拟角色的组件,当角色控制器与虚拟角色的骨骼建立驱动关系后,可用来驱动对应的骨骼进行运动。
蒙皮,是三维动画的一种制作技术。在三维软件中创建的模型基础上,为模型添加骨骼。由于骨骼与模型是相互独立的,为了让骨骼驱动模型产生合理的运动。把模型绑定到骨骼上的技术叫做蒙皮。
欧拉角:Euler angles,用来确定定点转动刚体位置的3个一组独立角参量。在骨骼动画中,每根骨骼的旋转欧拉角代表每个坐标轴旋转对应角度
关键帧:指角色或者物体运动变化中关键动作所处的那一帧。
烘焙模拟:在内存中缓存计算角色的每根骨骼的运动数据。
动画工程文件:是一种用于存储动画项目的文件类型,它们可以包含多种不同的动画数据,如三维模型、纹理、光照、声音等。它们是动画行业标准文件格式,可以在多种不同的动画软件中打开和编辑。
帧,是动画中最小单位的单幅影像画面,相当于电影胶片上的每一格镜头,在动画软件的时间轴上,帧表现为一格或者一个标记。
如图1所示,本实施例提供一种电子设备1,包括:至少一个处理器11和存储器12,图1中以一个处理器为例。处理器11和存储器12通过总线10连接。存储器12存储有可被处理器11执行的指令,指令被处理器11执行,以使电子设备1可执行下述的实施例中方法的全部或部分流程,以实现自动从动画文件中提取角色的有效动作,减少人为参与,提高动作数据提取效率。
于一实施例中,电子设备1可以是手机、平板电脑、笔记本电脑、台式计算机或者多个计算机组成的大型运算系统。
本申请实施例提供的方法可由电子设备1执行相应的软件代码实现,通过和服务器进行数据交互来实现。其中,电子设备1可以为本地终端设备或者是服务器。当该方法运行于服务器时,该方法则可以基于云交互系统来实现与执行,其中,云交互系统包括服务器和客户端设备。
在一可选的实施方式中,云交互系统下可以运行各种云应用,例如:动画数据管理平台。以云平台为例,云平台是指以云计算为基础的动画数据处理方式。在动画数据管理平台的运行模式下,动画数据处理程序的运行主体和交互画面呈现主体是分离的,本申请实施例的方法的储存与运行是在动画数据管理平台服务器上完成的,客户端设备的作用用于数据的接收、发送以及交互画面的呈现,举例而言,客户端设备可以是靠近用户侧的具有数据传输功能的显示设备,如,移动终端、电视机、计算机、掌上电脑等。但是进行动画数据处理的电子设备为云端的服务器。在进行动画数据处理时,用户操作客户端设备向动画数据管理平台服务器发送操作指令,动画数据管理平台服务器根据操作指令运行账号处理方法,将交互画面等数据进行编码压缩,通过网络返回客户端设备,最后,通过客户端设备进行解码并输出交互画面。
在一可选的实施方式中,本地终端设备存储有动画数据处理程序并用于呈现动画数据处理画面。本地终端设备用于通过图形用户界面与玩家进行交互,即,常规的通过电子设备下载安装动画数据处理程序并运行。该本地终端设备将图形用户界面提供给用户的方式可以包括多种,例如,可以渲染显示在终端的显示屏上,或者,通过全息投影提供给用户。举例而言,本地终端设备可以包括显示屏和处理器,该显示屏用于呈现图形用户界面,该图形用户界面包括动画数据处理画面,该处理器用于运行该动画数据处理程序、生成图形用户界面以及控制图形用户界面在显示屏上的显示。
在一种可能的实施方式中,本发明实施例提供的方法,通过终端设备提供图形用户界面,其中,终端设备可以是前述提到的本地终端设备,也可以是前述提到的云交互系统中的客户端设备。
图2为本申请实施例提供的一种角色动作提取系统200的示意图。如图2所示,该系统包括:服务器210和终端220,其中:
服务器210可以是提供角色动作提取服务的数据平台,比如可以是提供动画数据管理服务的平台。实际场景中,一个动画数据管理平台可能有多个服务器210,图2中以1个服务器210为例。
终端220可以是用户登录动画数据管理平台时使用的电脑、手机、平板等设备,终端220也可以有多个,图2中以2个终端220为例进行示意。
终端220与服务器210之间可以通过互联网进行信息传输,以使终端220可以访问服务器210上的数据。上述终端220和/或者服务器210均可以由电子设备1来实现。
本申请实施例的角色动作提取方式可以应用于任意需要提取角色动作数据的领域。
以三维动画领域为例,随着计算机三维影像技术的不断发展,三维图形技术越来越被人们所看重。三维动画因为它比平面图更直观,更能给观赏者以身临其境的感觉。角色动画是三维动画的一种,是通过将角色模型绑定骨骼蒙皮后,在一个时间段里,通过骨骼pose(姿势)到pose的制作方法使角色运动起来的一种模型动画方式。
在动画制作项目中,往往需要使用到大量的角色动作资产,作为制作角色动画的基础素材。而通过人工提取角色动作的方式,效率极低,因此亟需一种自动化的方式,来完成对角色的识别和有效动作的筛选工作,提升工作效率。
为了解决上述问题,本申请实施例提供一种角色动作提取方案,通过对待处理的动画文件进行角色识别,根据骨架信息筛选出符合目标类型的目标类型角色,然后解析目标类型角色的运动参数,确定目标类型角色的预设类型骨骼对应的有效动作数据,输出有效动作数据。如此,实现了自动从动画文件中提取特定类型角色的有效动作,减少人为参与,提高动作数据提取效率。
上述角色动作提取方案可以部署在服务器210上,也可以部署在终端220上,或者部分部署在服务器210上,部分部署在终端220上。实际场景中可以基于实际需求选择,本实施例不做限定。
当角色动作提取方案全部或者部分部署在服务器210上时,可以对终端220开放调用接口,以对终端220提供算法支持。
下面结合附图,对本申请的一些实施方式作详细说明。在各实施例之间不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
请参看图3,其为本申请一实施例的角色动作提取方法,该方法可由图1所示的电子设备1来执行,并可以应用于图2所示的三维动画角色动作提取的应用场景中,以实现自动从动画文件中提取角色动作,减少人为参与,提高动作数据提取效率。本实施例以终端220为执行端为例,该方法包括如下步骤:
步骤301:获取待处理的动画文件。
在本步骤中,动画文件可以是三维动画的数据文件,比如可以包括一段或多段三维动画的视频文件,或者可以是三维游戏中的动画文件。可以是采用某种动画制作软件生成的动画工程文件,该动画文件是用于表现虚拟角色动作的工程文件。动画工程文件可以用于存储动画项目的元数据,比如角色信息、场景描述等。动画文件中包含但不限于至少一个虚拟角色的骨架信息和运动参数,骨架信息用于表征对应虚拟角色的骨骼结构特征,骨架信息可以包括对应虚拟角色所有骨骼以及各个骨骼之间的结构信息,比如三维动画文件中,虚拟角色是人物角色,则该人物角色具有人体三维模型,人体三维模型中包括人物的骨骼以及各个骨骼的结构特征。运动参数用于表征对应虚拟角色是如何运动的,运动参数可以包括:角色控制器与各个角色骨骼之间的绑定关系,角色控制器的动画数据、角色骨骼的动画数据以及角色骨骼与蒙皮之间的关联关系中的一种或多种,当角色控制器驱动对应的骨骼运动时,可以驱动蒙皮进行运动。
因此,动画文件可以使动画项目的信息更加清晰,方便动画制作人员更好地管理动画项目,从而提高动画制作效率。待处理的动画文件可以从服务器获取,也可以从本地存储器或者移动存储器中读取。在动画文件获取过程中,可以根据指定的目录,选择待处理动画工程所在的目录,进而获取到动画文件。可以批量读取指定目录下的多分动画工程文件。
于一实施例中,步骤301具体可以包括:响应于用户的动作提取请求,获取动作提取请求指定的待处理的动画文件。
在本实施例中,角色动作提取可以由用户触发,比如用户通过终端触发对指定目录的动画工程文件的动作提取请求,响应于该请求,触发获取该指定目录下的动画工程文件作为待处理的动画文件。
步骤302:根据骨架信息,从至少一个虚拟角色中筛选出目标类型角色。
在本步骤中,动画文件中描述了一个或多个虚拟角色的骨架信息,虚拟角色的骨架信息可以是指该虚拟角色的多个骨骼构成的整体,可以包括各个骨骼的长度信息、颜色信息、初始位置、初始旋转角度等基础信息,可以用于表征虚拟角色的初始姿态。骨架信息包含但不限于:虚拟角色对应的角色骨骼,比如可以是人体三维模型包含的骨骼,人物角色骨骼可以包括:头骨、胸骨、四肢骨骼等信息。可以对动画文件进行识别,从中确定各个虚拟角色的骨架信息,此处虚拟角色可以是人物角色、动物角色等等。用户可以指定要提取动作的角色的类型,比如用户指定人物角色为目标类型角色,则可以将动画文件中各个虚拟角色的骨架信息与人物的骨骼特征进行对比,从至少一个虚拟角色中筛选出人物角色。目标类型角色可以为一个或多个,比如目标类型角色是人物角色,则可以将动画文件中所有符合人物的骨骼特征的人物角色筛选出来。
于一实施例中,步骤302具体可以包括:解析动画文件,确定动画文件中包含的各个虚拟角色。根据各个虚拟角色的角色骨骼,从各个虚拟角色中选出属于目标类型的虚拟角色作为目标类型角色。
在本实施例中,骨架信息中包括:对应虚拟角色的至少一个角色骨骼。角色骨架是驱动角色动画的底层结构,与现实中的骨架具备类似的功能,角色骨架由一根根角色骨骼构成,骨架中的每一根骨骼都会影响角色的皮肤,也就是蒙皮的形状和位置。数学上,角色骨骼可以由变换矩阵来描述的,通过调整变换矩阵也可以相应的改变角色皮肤的几何形状。不同物种对应的角色骨骼结构是不相同的,因此通过角色骨骼可以判别角色的物种类型,比如人物的骨骼与动物的骨骼具有明显的区别,可以基于这种区别,准确的从中分辨出目标类型的目标类型角色。比如目标类型是人物,则从至少一个角色中识别出人物角色。
于一实施例中,假设目标类型角色是人物角色,可以根据动画场景中每个虚拟角色的骨骼树结构,判断动画文件中的各个角色是否为人物角色,如果不是人物角色,则将其剔除,如果是人物角色,则保留进入下一步解析。
步骤303:解析目标类型角色的运动参数,得到目标类型角色的有效动作数据。
在本步骤中,有效动作数据中包括预设类型骨骼的动作数据,预设类型骨骼可以是目标类型角色的某些关键骨骼,比如人物角色的手肘、手腕或者膝盖中的一个或多个。找到目标类型角色后,可以对运动参数进行解析,分析其中包含的目标类型角色的有效动作数据。这里有效动作数据是指描述目标类型角色作出的行为动作的数据,比如可以是目标类型角色的抬起手、跑步、跳跃等动作的数据,可以包含目标类型角色在作出这些动作时的角色骨骼的变化、蒙皮变化等信息。
于一实施例中,步骤303具体可以包括:根据运动参数判断目标类型角色的角色骨骼上是否配置有骨骼动画数据;若角色骨骼上有骨骼动画数据,从各个目标类型角色的骨骼动画数据中筛选出有效骨骼动画数据,有效骨骼动画数据包括预设类型骨骼的动作数据。根据有效骨骼动画数据生成目标类型角色的有效动作数据。
在本步骤中,动画数据可以用于表征虚拟角色对应的三维模型、以及三维模型的运动参数。动画数据的配置类型可以包括骨骼动画数据和/或控制器动画数据。运动参数中可以包括虚拟角色的动画数据配置方式,动画配置方式可以包括:将动画数据配置给骨架节点,比如节点的动画属性引用一个动画参数列表。或者将动画数据配置给角色控制器节点,比如控制器节点的动画属性引用一个动画参数表。
骨骼动画是模型动画中的一种,在骨骼动画中,模型具有互相连接的“骨骼”组成的骨架结构,通过改变骨骼的朝向和位置来为模型生成动画。骨骼动画可以更容易、更快捷地创建,不同的骨骼动画可以被结合到一起,比如,模型可以转动头部、射击并且同时也在走路。在实际场景中,一些引擎可以实时操纵单个骨骼,这样就可以和动画场景的环境更加准确地进行交互,比如模型可以俯身并向某个方向观察或射击,或者从地上的某个地方捡起一个东西。
因此骨骼动画数据可以丰富且准确的表现角色动作,在确定目标类型角色的有效动作数据时,可以根据动画文件中的节点类型,先判断该动画文件是否为骨骼动画,具体地,可以判断角色骨骼上是否有骨骼动画数据;若角色骨骼上有骨骼动画数据,比如判断角色骨骼上是否有关键帧数据,如果说明动画文件是骨骼动画,则从各个目标类型角色的骨骼动画数据中筛选出有效骨骼动画数据,此处有效骨骼动画数据中包含预设类型骨骼作出的动作数据。预设类型骨骼可以是目标类型角色的某些关键骨骼,比如人物角色的手肘、手腕或者膝盖中的一个或多个,这些关键骨骼通常与人物角色的动作有紧密联系,往往是人物角色作出动作的主要参与部分,因此如果目标类型角色的骨骼动画数据中包含这些关键骨骼的骨骼动画,则可以根据这些关键骨骼的骨骼动画来生成该目标类型角色的有效动作数据。预设类型骨骼可以基于实际需求设定,本实施例不做限定。
于一实施例中,从各个目标类型角色的骨骼动画数据中筛选出目标类型角色的有效骨骼动画数据,包括:根据骨骼动画数据确定各个目标类型角色对应关键帧数据,关键帧数据中包括目标类型角色运动变化中的关键动作。根据关键帧数据,判断对应的目标类型角色的预设类型骨骼活动范围是否在预设范围内。若目标类型角色的预设类型骨骼活动范围在预设范围内,确定关键帧数据为有效骨骼动画数据,否则,剔除对应的目标类型角色。
在本实施例中,关键帧指角色或者物体运动变化中关键动作所处的那一帧,关键帧与关键帧之间的动画可以由软件创建添加,叫做过渡帧或者中间帧。动画文件中一般可以包含关键帧和过渡帧,关键帧一般可以预先打上标记,因此可以基于关键帧标记,确定各个目标类型角色的关键帧数据,一个角色的关键帧数据通常可以包含多个关键帧,多个关键帧可以表征该角色的动作范围。骨骼动画中,动画数据可以是角色骨骼的某个属性值的动画序列,这些动画序列的每一帧可以称为关键帧,该关键帧定义了特定骨骼在特定时间点的关键动作。
针对一个目标类型角色,关键帧数据包括多个关键帧,基于关键帧数据可以确定该角色的动作范围。读取角色骨骼的关键帧数据,判断该关键帧数据中的角色动作是否为有效动作,若目标类型角色的动作仅为部分非关键骨骼的动作,或者关键骨骼的小范围动作,则认为该动作无效,将该角色予以剔除。此处有效动作是指目标类型角色的预设类型骨骼参与的、并且预设类型骨骼的活动范围在预设范围内的动作。此处活动范围可以是指该动作的边界能够触达的范围,预设范围可以基于实际需求设定,不同类型的骨骼可以对应不同大小的预设范围,原则是保证有效动作的活动范围是明显的。如果目标类型角色的一组关键帧数据中预设类型骨骼活动范围在预设范围内,则确定该关键帧数据就是该角色对应的有效骨骼动画数据,将该角色的关键帧数据保留下来,否则说明该关键帧数据包含的动作是无效的,剔除该组关键帧数据对应的角色的数据。
于一实施例中,骨骼运动,在3D(Three Dimensions,三维)软件中常用动作曲线图进行展示。判断动作是否有效的具体方法可以为,对于目标类型角色中的一个角色,首先根据角色的骨架信息计算出角色的空间位置信息,由此确定当前角色边界的几何信息,并根据当前动画剧集积累的大量动作样本数据以及角色特点,确定角色动作的边界数据,根据该角色对应的关键帧数据确定关键骨骼的动作范围,当该角色的当前动作中关键骨骼(即预设类型骨骼)具有动作数据且一定占比的动作数据处于在预设范围内,则保留当前动作的关键帧数据。如果该角色的当前动作中关键骨骼没有动作数据或一定占比的动作数据偏离预设范围之外,则认为当前动作无效,将该角色的数据予以剔除。也就是说,有效骨骼动画数据的筛选过程可以针对角色做筛选,如果一个角色的骨骼动画数据是有效的,则直接提取该角色所有的骨骼动画数据作为有效动作数据,有的角色的骨骼上没有有效的骨骼动画,这样的角色数据予以剔除。以确保提取出的角色动作是有效的。
实际场景中,以人物角色作为目标类型角色为例,一个动画工程文件中可以包含多个人物角色,有的角色有动作,在数据上体现为该角色的骨骼上有对应的关键帧数据,但该角色的动作不一定有效,所以可以进一步判断角色的几个关键骨骼,如肩膀、手肘、手腕、膝盖等的动作是否有效,有的角色是群众演员,在场景中只是简单晃动了身体,该动作属于无效数据,需要剔除这样的角色。最后仅保留具有有效动作的角色,最终提取的有效动作数据也就是作出该有效动作的角色骨骼上的关键帧数据。
于一实施例中,在确定目标类型角色对应关键帧数据的过程中,可以包括:若目标类型角色的关键帧数据中存在动作偏离值不在预设阈值范围内的异常帧,采用关键帧数据中距离异常帧最近的正常帧代替异常帧,其中正常帧的动作值在预设阈值范围内。
在本实施例中,关键帧数据可以为多帧,当关键帧数据包括多帧时,可以对异常帧进行滤除处理,以保证角色不出现动作的突变,保证动作的连贯。动作偏离值用于表征当前帧中角色动作与其相邻的前后帧中角色动作之间的偏离程度,偏离值越大,说明当前帧中的角色动作与前后帧中角色动作之间的偏离程度越大。如果偏离值超出预设阈值范围,则说明当前帧中的角色动作与前后帧中角色动作之间的偏离程度过大,导致角色动作不连贯,这种当前帧就是异常帧。比如人物角色抬起手肘的动作是一个关键动作,对应的预设类型骨骼是手肘(即关键骨骼),描述这个关键动作的关键帧数据共10帧,其中第4帧和第6帧,人物角色的手肘朝向第一方向,而第5帧中人物角色的手肘朝向第二方向,其中第二方向偏离第一方向较大,偏离值超出了预设阈值范围,这种情况的第5帧就是异常帧,可以丢弃该第5帧,采用与其相邻的第4帧或者第6帧来代替第5帧的数据,以使抬起手肘这个关键动作看起来是连贯的。如此,少部分关键帧数据明显异常,其中包含的动作偏离值较大的情况下,则可以将最近的正常帧代替该异常帧,确保动作尽可能连贯。预设阈值范围可以基于实际需求设定,不同的动作对应的预设阈值范围可以不相同,原则是保证偏离值在预设阈值范围内的关键帧数据可以保证角色动作的足够连贯。
于一实施例中,为了增加动作的平滑度,可以将关键帧数据重新烘焙成更高帧率的动画文件。
于一实施例中,根据有效骨骼动画数据生成目标类型角色的有效动作数据,包括:针对各个目标类型角色,分别判断对应的有效骨骼动画数据是否为满帧动画。若对应的有效骨骼动画数据为满帧动画,将有效骨骼动画数据作为对应目标类型角色的有效动作数据。若有效骨骼动画数据为不满帧动画,则将不满帧动画烘焙成满帧动画后,将满帧的有效骨骼动画数据作为对应目标类型角色的有效动作数据。
在本实施例中,如果角色骨骼上有骨骼动画数据,说明目标类型角色的动画数据是骨骼动画,筛选出各个目标类型角色的有效骨骼动画数据后,由于可能存在某些角色的有效骨骼动画数据是不满帧的情况,不满帧的情况会造成动画数据不完整,比如角色A的有效骨骼动画数据中缺少第2帧,这种情况容易造成动画中角色动作的卡顿,因此首先对每个目标类型角色的有效骨骼动画数据进行是否满帧判断,如果存在某个或者某些角色的有效骨骼动画数据为不满帧动画,则将不满帧动画重新进行烘焙模拟处理,烘焙成满帧动画后,将满帧动画作为对应目标类型角色的有效动作数据输出。对于有效骨骼动画数据是满帧动画的目标类型角色,则可以直接将该角色对应的有效骨骼动画数据作为该角色的有效动作数据输出。比如角色B的有效骨骼动画数据中包括100帧,每一帧都不缺失,则可以将该100帧数据作为角色B的有效动作数据。如此,保证输出的角色有效动作数据是连贯流畅的。
于一实施例中,步骤303具体还包括:若角色骨骼上没有骨骼动画数据,判断目标类型角色上是否存在控制器动画数据;若目标类型角色上存在控制器动画数据,从各个目标类型角色的控制器动画数据中筛选出有效控制器动画数据,有效控制器动画数据中被控制骨骼包括预设类型骨骼。根据有效控制器动画数据生成目标类型角色的有效动作数据。
在本实施例中,骨骼控制器在动画制作中用来控制角色模型骨骼的节点,通过控制器可以带动被控制的骨骼进行运动。一个骨骼控制器可以控制一个或者多个骨骼。控制器动画就是采用骨骼控制器来控制角色骨骼运动的动画。预设类型骨骼可以由用户指定,比如可以是角色的手肘、手腕、膝盖等关键骨骼。动画工程文件中,角色骨骼会对应有控制器,预设类型的关键骨骼也会存在对应的控制器。如果目标类型角色的骨骼上没有骨骼动画数据,比如骨骼上没有关键帧数据,说明目标类型角色不是骨骼动画,可以进一步查找角色骨骼对应的控制器,判断该控制器上是否存在关键帧数据,从而进一步判断动画工程文件中是否存在有效的角色动画。具体可以从各个目标类型角色的控制器动画数据中筛选出关键骨骼的控制器动画作为有效控制器动画数据,进而根据有效控制器动画数据中包含的角色动作,来确定目标类型角色的有效动作数据。
于一实施例中,运动参数中包括对应虚拟角色的角色控制器和角色控制器对角色骨骼的驱动关系。从各个目标类型角色的控制器动画数据中筛选出有效控制器动画数据,包括:根据控制器动画数据确定各个目标类型角色对应关键帧数据,关键帧数据中包括目标类型角色运动变化中的关键动作。根据关键帧数据确定目标控制器对应的动作范围,目标控制器为驱动预设类型骨骼的角色控制器。判断目标控制器的动作范围是否在预设范围内。若目标控制器的动作范围在预设范围内,确定关键帧数据为有效控制器动画数据,否则,剔除对应的目标类型角色。
在本实施例中,对于控制器动画,控制器的动画数据也就是控制器的某个属性值的动画序列,这些动画序列的每一帧可以称为关键帧,该关键帧定义了特定控制器在特定时间点的关键动作。如前述,关键帧指角色或者物体运动变化中关键动作所处的那一帧,关键帧与关键帧之间的动画可以由软件创建添加,叫做过渡帧或者中间帧。动画文件中一般可以包含关键帧和过渡帧,关键帧一般可以预先打上标记,因此可以基于关键帧标记,确定各个目标类型角色的关键帧数据,关键帧数据可以包括多帧关键帧,关键帧数据的具体确定过程可以参阅前述相关实施例的描述,此处不再赘述。
在筛选目标类型角色的有效控制器动画数据过程中,需要根据当前控制器控制的骨骼是否为关键骨骼,以及控制器的运动范围,来判断控制器动画是否有效。具体地,假设预设类型骨骼对应的控制器为目标控制器,若目标类型角色的角色骨骼上没有骨骼动画数据,比如角色骨骼上没有关键帧数据,进一步查找该角色的目标控制器是否有动画数据,比如判断该角色的预目标控制器上是否有关键帧数据,如果有,进一步判断该目标控制器上的关键帧数据是否有效。
具体地查找预设类型骨骼(即关键骨骼)对应的目标控制器,判断目标控制器是否存在动画,如果存在,则根据目标控制器对应的关键帧数据确定目标控制器的活动范围,如果目标控制器的动作范围在预设范围内,则说明对应的当前关键帧数据中包含关键骨骼的有效动作。则将该关键帧数据筛选出来作为对应角色的有效控制器动画数据。如果某些角色的目标控制器的动作范围不在预设范围内,则说明该角色的动作是无效的,将该角色进行剔除,如此保留下有效动作的关键帧数据作为对应角色的有效控制器动画数据。
上述实施例中,如果人物角色的骨骼上不包含关键帧数据,则进一步判断人物角色的指定关键控制器(即目标控制器)是否包含关键帧数据,此处关键控制器与关键骨骼(即目标类型骨骼)相对应,假设关键骨骼是手肘、手腕等骨骼,则关键控制器就是控制手肘、手腕等骨骼的控制器。如果某个人物角色关键控制器的动作有效,则说明该角色的动作是有效的,该角色所有的控制器动画都会保留,否则,如果某个人物角色关键控制器的动作无效,则说明该角色的动作是无效的,剔除该角色。
于一实施例中,判断控制器动作是否有效的具体方法可以为,首先根据角色的骨架信息计算出角色的空间位置信息,由此确定当前角色边界的几何信息,并根据当前动画剧集积累的大量动作样本数据以及角色特点,确定角色动作的边界数据,当目标类型角色的当前动作中关键骨骼对应的目标控制器具有动作曲线数据,且大部分有效动作数据处于在预设范围内,则说明当前在动作有效,保留当前动作。如果目标类型角色的当前动作中目标控制器没有动作曲线数据或大部分有效动作数据偏离预设范围之外,则认为当前动作无效,当前动作对应的角色予以剔除。以确保提取出的动作是有效的。
于一实施例中,根据有效控制器动画数据生成目标类型角色的有效动作数据,包括:将有效控制器动画数据转换成骨骼动画,根据转换后骨骼动画数据得到目标类型角色的有效动作数据。
在本实施例中,针对有效的有效控制器动画数据可以进行关键帧烘焙模拟,将有效控制器动画数据转化为骨骼动画,转换后骨骼动画数据可以直接作为目标类型角色的有效动作数据输出,给动画制作过程提供准确丰富、适用性高的基础素材。
步骤304:输出目标类型角色的有效动作数据。
在本步骤中,可以按照一定的帧率或者格式,输出目标类型角色的有效动作数据,比如可以由用户指定输出的帧率,按照指定帧率输出有效动作数据。或者用户也可以指定输出的文件格式,比如FBX(Filmbox,贮片箱)是一个保存三维模型的文件格式,它可以在各种数字建模和内容创建程序中使用和共享,包括Autodesk的应用程序套件。影视、动漫、游戏中经常使用FBX文件来传递模型、动画、材质等信息。用户可以选择使用FBX格式输出角色动作的文件,便于在各种不同的场景下使用。
于一实施例中,如果目标类型角色有多个,比如多个人物角色,每个角色的动作是不一致的,则可以分别输出各个角色对应的有效动作数据。
于一实施例中,在步骤304之前,还可以包括:对有效动作数据进行欧拉角过滤处理。
在本实施例中,在骨骼动画中,每根骨骼的旋转欧拉角代表每个坐标轴旋转对应角度。角色的骨骼在不停的旋转,绕某个轴从-180°一直转到180°,每帧+1°,刚好转完一周,下一帧就是应该是181°。但是在标记关键帧动画时,当该下一帧作为当前帧时,设成了-179°,那么虽然该当前帧中角色的动画看起来没有变化,但该当前帧与上一帧的过渡就会产生问题。正确的情况下,从上一帧的180°到当前帧的181°,中间过渡时应该是180.5°,但现在从上一帧的180°到当前帧的-179°,中间过渡时会变成0.5°,刚好差了180°,如果进行慢放,会很明显看到角色模型在过渡过程中,会往反方向异常摆动一下,这种当前帧就是异常帧。步骤303中得到的有效动作数据是骨骼动画,可以在输出有效动作数据前,对其进行欧拉角过滤处理,欧拉角过滤就是将这种异常帧进行滤除,以保持动作的平滑。
于一实施例中,在步骤304之前,还可以包括:对有效动作数据进行校准,校准后的有效动作数据中目标类型角色位于指定位置,并面向指定方向。
在本实施例中,动画工程中的角色动作应用在特定场景中,因此角色的位置往往不在原点,且角色的朝向往往不是面向正前方,在输出目标类型角色的有效动作数据之前,可以对目标类型角色的动作进行重新校准,使目标类型角色位于指定的位置,面向指定的方向,比如可以校准以使目标类型角色位于原点位置,并且面向正前方(画面显示时,目标类型角色面向用户),如此校准后的有效动作数据更加规范,适用场景更广泛。
上述角色动作提取方法,通过批量读取待处理的动画工程文件,识别角色的骨架信息,判断动画工程文件中的目标类型角色,比如自动识别人物角色。如果该人物角色的骨骼上存在关键帧数据,进一步判断关键骨骼的关键帧数据是否有效。如果角色的关键骨骼上不存在关键帧数据,则进一步判断关键骨骼对应的目标控制器是否存在关键帧数据,如果存在,则进一步判断该目标控制器的关键帧数据是否有效。如果目标控制器的关键帧数据有效,则使用烘焙模拟将该人物角色的有效控制器动画数据转换为骨骼动画。根据动画场景中的角色数量以及用户选择的帧率,导出各个角色的有效动作的FBX数据文件。
上述角色动作提取方法至少具备如下有益效果:
1、高度自动化:利用程序和算法自动识别场景中的人物角色,筛选出有效的角色动画,并对其中的异常帧进行过滤和修复,确保动作的平滑。
2、高效:使用该工具,只需要指定动画工程文件所在目录和动作文件导出帧率,程序就能在后台执行,批量读取数据,导出有效动作数据,快速高效。
请参看图4,其为本申请一实施例的角色动作提取方法,该方法可由图1所示的电子设备1来执行,并可以应用于图2所示的三维动画角色动作提取的应用场景中,以实现自动从动画文件中提取角色动作,减少人为参与,提高动作数据提取效率。本实施例以终端220为执行端为例,以人物角色作为目标类型角色,以指定的关键骨骼作为目标类型骨骼为例,该方法包括如下步骤:
步骤401:响应于用户的动作提取请求,获取动作提取请求指定的待处理的动画文件。比如提取请求中指定了待会粗粒动画工程文件的目录,则选择该目录,批量读取该目录下的动画工程文件。详细过程可以参阅前述实施例中对步骤301的描述。
步骤402:解析动画文件,确定动画文件中包含的各个虚拟角色。详细过程可以参阅前述实施例中对步骤302的描述。
步骤403:根据各个虚拟角色的角色骨骼,从各个虚拟角色中选出属于人物类型的虚拟角色作为目标类型角色。详细过程可以参阅前述实施例中对步骤302的描述。
步骤404:针对各个人物角色,分别判断关键骨骼上是否存在骨骼动画数据,若是进入步骤405,否则进入步骤409。
步骤405:若关键骨骼上存在骨骼动画数据,则判断关键骨骼的动画数据是否为有效骨骼动画数据,如果有效进入步骤406,否则剔除该关键骨骼对应的人物角色。
步骤406:判断有效骨骼动画数据中是否均为满帧动画。若是进入步骤407,否则进入步骤408。
步骤407:若有效骨骼动画数据中均为满帧动画,将有效骨骼动画数据作为对应人物角色的有效动作数据。然后进入步骤411。
步骤408:若有效骨骼动画数据中存在不满帧动画,则将不满帧动画烘焙成满帧动画后,将满帧的有效骨骼动画数据作为对应人物角色的有效动作数据。然后进入步骤411。
步骤409:若某个人物角色的关键骨骼上不存在骨骼动画数据,比如关键骨骼上不存在关键帧数据,则进一步判断关键骨骼对应的目标控制器是否存在关键帧数据,如果存在,则进一步判断该关键帧数据是否有效。如果目标控制器的关键帧数据有效,保留该关键帧数据作为对应人物角色的有效控制器动画数据,然后进入步骤410。如果目标控制器的关键帧数据无效,剔除对应的人物角色。
步骤410:使用烘焙模拟技术将有效控制器动画数据转换成骨骼动画,转换后骨骼动画数据确定为对应人物角色的有效动作数据。然后进入步骤411。
步骤411:对有效动作数据进行欧拉角过滤处理。
步骤412:对有效动作数据进行校准,校准后的有效动作数据中人物角色位于指定位置,并面向指定方向。
步骤413:输出对应人物角色的有效动作数据。详细过程可以参阅前述实施例中对步骤304的描述。
于一实施例中,如果一份动画工程文件中经过识别,不存在预设类型的目标类型角色,则可以发出提示信息,比如不存在人物角色,发出对应提示,用于提示用户不存在人物角色。如果动画工程文件中即不存在有效骨骼动画数据,也不存在有效控制器动画数据,则也可以发出提示信息,提示有效动作不存在,便于用户及时发现。
上述角色动作提取方法的各个步骤,详细可以参阅上述实施例的相关描述,此处不再赘述。
请参看图5,其为本申请一实施例的动漫数据生成方法,该方法可由图1所示的电子设备1来执行,并可以应用于三维动画制作的应用场景中,以实现自动从动画文件中提取角色动作,根据提取的角色动作来制作新的动漫数据,提高动漫数据制作效率。本实施例以终端220为执行端为例,该方法包括如下步骤:
步骤501:获取用于动漫制作的基础动画文件。
步骤502:采用如前述任一实施例中的方法,从基础动画文件中提取目标类型角色的有效动作数据,有效动作数据中包括预设类型骨骼的动作。
步骤503:根据目标类型角色的有效动作数据,生成新的动漫数据。
上述动漫数据生成方法的各个步骤,详细可以参阅上述实施例的相关描述,此处不再赘述。
请参看图6,其为本申请一实施例的角色动作提取装置600,该装置可应用于图1所示的电子设备1,并可以应用于图2所示的三维动画角色动作提取的应用场景中,以实现自动从动画文件中提取角色动作,减少人为参与,提高动作数据提取效率。该装置包括:获取模块601、筛选模块602、解析模块603和输出模块604,各个模块的功能原理如下:
获取模块601,用于获取待处理的动画文件,动画文件中包括至少一个虚拟角色的骨架信息和运动参数;
筛选模块602,用于根据骨架信息,从至少一个虚拟角色中筛选出目标类型角色;
解析模块603,用于解析目标类型角色的运动参数,得到目标类型角色的有效动作数据,有效动作数据中包括预设类型骨骼的动作数据;
输出模块604,用于输出目标类型角色的有效动作数据。
于一实施例中,骨架信息中包括:对应虚拟角色的至少一个角色骨骼;筛选模块602,用于解析动画文件,确定动画文件中包含的各个虚拟角色;根据各个虚拟角色的角色骨骼,从各个虚拟角色中选出属于目标类型的虚拟角色作为目标类型角色。
于一实施例中,解析模块603,用于根据运动参数判断目标类型角色的角色骨骼上是否配置有骨骼动画数据;若角色骨骼上有骨骼动画数据,从各个目标类型角色的骨骼动画数据中筛选出有效骨骼动画数据,有效骨骼动画数据包括预设类型骨骼的动作;根据有效骨骼动画数据生成目标类型角色的有效动作数据。
于一实施例中,解析模块603,具体用于根据骨骼动画数据确定各个目标类型角色对应关键帧数据,关键帧数据中包括目标类型角色运动变化中的关键动作;根据关键帧数据,判断对应的目标类型角色的预设类型骨骼活动范围是否在预设范围内;若预设类型骨骼活动范围在预设范围内,确定关键帧数据为有效骨骼动画数据,否则,剔除对应的目标类型角色。
于一实施例中,根据有效骨骼动画数据生成目标类型角色的有效动作数据,包括:针对各个目标类型角色,分别判断对应的有效骨骼动画数据是否为满帧动画;若有效骨骼动画数据为满帧动画,将有效骨骼动画数据作为对应目标类型角色的有效动作数据;若有效骨骼动画数据为不满帧动画,则将不满帧动画烘焙成满帧动画后,将满帧的有效骨骼动画数据作为对应目标类型角色的有效动作数据。
于一实施例中,解析模块603,还用于判断目标类型角色上是否存在控制器动画数据;若目标类型角色上存在控制器动画数据,从各个目标类型角色的控制器动画数据中筛选出有效控制器动画数据,有效控制器动画数据中被控制骨骼包括预设类型骨骼;根据有效控制器动画数据生成目标类型角色的有效动作数据。
于一实施例中,运动参数中包括对应虚拟角色的角色控制器和角色控制器对角色骨骼的驱动关系;解析模块603,具体用于根据控制器动画数据确定各个目标类型角色对应关键帧数据,关键帧数据中包括目标类型角色运动变化中的关键动作;根据关键帧数据确定目标控制器对应的动作范围,目标控制器为预设类型骨骼对应的控制器;判断目标控制器的动作范围是否在预设范围内;若目标控制器的动作范围在预设范围内,确定关键帧数据为有效控制器动画数据,否则,剔除对应的目标类型角色;
于一实施例中,根据有效控制器动画数据生成目标类型角色的有效动作数据,包括:将有效控制器动画数据转换成骨骼动画,根据转换后骨骼动画数据确定目标类型角色的有效动作数据。
于一实施例中,确定各个目标类型角色对应关键帧数据,包括:若目标类型角色的关键帧数据中存在动作偏离值不在预设阈值范围内的异常帧,采用关键帧数据中距离异常帧最近的正常帧代替异常帧,其中正常帧的动作值在预设阈值范围内。
于一实施例中,获取模块601,用于响应于用户的动作提取请求,获取动作提取请求指定的待处理的动画文件。
于一实施例中,还包括:过滤模块,用于在输出目标类型角色的有效动作数据之前,对有效动作数据进行欧拉角过滤处理。
于一实施例中,还包括:校准模块,用于在输出目标类型角色的有效动作数据之前,对有效动作数据进行校准,校准后的有效动作数据中目标类型角色位于指定位置,并面向指定方向。
上述角色动作提取装置600的详细描述,请参见上述实施例中相关方法步骤的描述,其实现原理和技术效果类似,本实施例此处不再赘述。
图7为本申请示例性实施例提供的一种云设备70的结构示意图。该云设备70可以用于运行上述任一实施例所提供的方法。如图7所示,该云设备70可以包括:存储器704和至少一个处理器705,图7中以一个处理器为例。
存储器704,用于存储计算机程序,并可被配置为存储其它各种数据以支持在云设备70上的操作。该存储器704可以是对象存储(Object Storage Service,OSS)。
存储器704可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器705,与存储器704耦合,用于执行存储器704中的计算机程序,以用于实现上述任一方法实施例所提供的方案,具体功能和所能实现的技术效果此处不再赘述。
进一步地,如图7,该云设备还包括:防火墙701、负载均衡器702、通信组件706、电源组件703等其它组件。图7中仅示意性给出部分组件,并不意味着云设备只包括图7所示组件。
于一实施例中,上述图7中的通信组件706被配置为便于通信组件706所在设备和其他设备之间有线或无线方式的通信。通信组件706所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G/LTE、5G等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件706经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件706还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
于一实施例中,上述图7的电源组件703,为电源组件703所在设备的各种组件提供电力。电源组件703可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现前述任一实施例的方法。
本申请实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现前述任一实施例的方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例方法的部分步骤。
应理解,上述处理器可以是中央处理单元(Central Processing Unit,简称CPU),还可以是其它通用处理器、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(Application Specific Integrated Circuits,简称ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例的方法。
本申请的技术方案中,所涉及的用户数据等信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (9)

1.一种角色动作提取方法,其特征在于,所述方法包括:
获取待处理的动画文件,所述动画文件中包括至少一个虚拟角色的骨架信息和运动参数;
根据所述骨架信息,从所述至少一个虚拟角色中筛选出目标类型角色;
解析所述目标类型角色的运动参数,得到所述目标类型角色的有效动作数据,所述有效动作数据中包括预设类型骨骼的动作数据;
输出所述目标类型角色的有效动作数据;
所述解析所述目标类型角色的运动参数,得到所述目标类型角色的有效动作数据,包括:
根据所述运动参数判断所述目标类型角色的角色骨骼上是否配置有骨骼动画数据;
若所述角色骨骼上有骨骼动画数据,从各个目标类型角色的所述骨骼动画数据中筛选出有效骨骼动画数据,所述有效骨骼动画数据包括预设类型骨骼的动作数据;
针对所述各个目标类型角色,分别判断对应的所述有效骨骼动画数据是否为满帧动画;若所述有效骨骼动画数据为满帧动画,将所述有效骨骼动画数据作为对应所述目标类型角色的有效动作数据;若所述有效骨骼动画数据为不满帧动画,则将所述不满帧动画烘焙成满帧动画后,将满帧的有效骨骼动画数据作为对应所述目标类型角色的有效动作数据;
若所述角色骨骼上没有骨骼动画数据,判断所述目标类型角色上是否存在控制器动画数据;若所述目标类型角色上存在所述控制器动画数据,从各个目标类型角色的控制器动画数据中筛选出有效控制器动画数据,有效控制器动画数据中被控制骨骼包括预设类型骨骼;根据有效控制器动画数据生成目标类型角色的有效动作数据。
2.根据权利要求1所述的方法,其特征在于,所述骨架信息中包括:对应虚拟角色的至少一个角色骨骼;所述根据所述骨架信息,从所述动画文件中筛选出目标类型角色,包括:
解析所述动画文件,确定所述动画文件中包含的各个虚拟角色;
根据所述各个虚拟角色的角色骨骼,从所述各个虚拟角色中选出属于目标类型的虚拟角色作为所述目标类型角色。
3.根据权利要求1所述的方法,其特征在于,所述从所述各个目标类型角色的所述骨骼动画数据中筛选出有效骨骼动画数据,包括:
根据所述骨骼动画数据确定所述各个目标类型角色对应关键帧数据,所述关键帧数据中包括所述目标类型角色运动变化中的关键动作;
根据所述关键帧数据判断对应的所述目标类型角色的预设类型骨骼活动范围是否在预设范围内;
若所述预设类型骨骼活动范围在所述预设范围内,确定所述关键帧数据为所述有效骨骼动画数据,否则,剔除对应的目标类型角色。
4.根据权利要求1所述的方法,其特征在于,所述解析所述目标类型角色的运动参数,得到所述目标类型角色的有效动作数据,还包括:
判断所述目标类型角色上是否存在控制器动画数据;
若所述目标类型角色上存在控制器动画数据,从各个目标类型角色的所述控制器动画数据中筛选出有效控制器动画数据,所述有效控制器动画数据中被控制骨骼包括所述预设类型骨骼;
根据所述有效控制器动画数据生成所述目标类型角色的有效动作数据。
5.根据权利要求4所述的方法,其特征在于,所述运动参数中包括对应虚拟角色的角色控制器和所述角色控制器对角色骨骼的驱动关系;所述从所述各个目标类型角色的所述控制器动画数据中筛选出有效控制器动画数据,包括:
根据所述控制器动画数据确定所述各个目标类型角色对应关键帧数据,所述关键帧数据中包括所述目标类型角色运动变化中的关键动作;
根据所述关键帧数据确定目标控制器对应的动作范围,所述目标控制器为驱动所述预设类型骨骼的角色控制器;
判断所述目标控制器的动作范围是否在预设范围内;
若所述目标控制器的动作范围在所述预设范围内,确定所述关键帧数据为有效控制器动画数据,否则,剔除对应的目标类型角色;
所述根据所述有效控制器动画数据生成所述目标类型角色的有效动作数据,包括:
将所述有效控制器动画数据转换成骨骼动画,根据转换后骨骼动画数据确定所述目标类型角色的有效动作数据。
6.根据权利要求3或5所述的方法,其特征在于,所述确定所述各个目标类型角色对应关键帧数据,还包括:
若所述目标类型角色的关键帧数据中存在动作偏离值不在预设阈值范围内的异常帧,采用所述关键帧数据中距离所述异常帧最近的正常帧代替所述异常帧,其中所述正常帧的动作值在所述预设阈值范围内。
7.一种动漫数据生成方法,其特征在于,包括:
获取用于动漫制作的基础动画文件;
采用如权利要求1-6中任一项所述的方法,从所述基础动画文件中提取目标类型角色的有效动作数据;
根据所述目标类型角色的有效动作数据,生成新的动漫数据。
8.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述电子设备执行权利要求1-7任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1-7任一项所述的方法。
CN202310274735.2A 2023-03-17 2023-03-17 角色动作提取方法、设备和存储介质 Active CN116228942B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310274735.2A CN116228942B (zh) 2023-03-17 2023-03-17 角色动作提取方法、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310274735.2A CN116228942B (zh) 2023-03-17 2023-03-17 角色动作提取方法、设备和存储介质

Publications (2)

Publication Number Publication Date
CN116228942A CN116228942A (zh) 2023-06-06
CN116228942B true CN116228942B (zh) 2024-02-06

Family

ID=86575108

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310274735.2A Active CN116228942B (zh) 2023-03-17 2023-03-17 角色动作提取方法、设备和存储介质

Country Status (1)

Country Link
CN (1) CN116228942B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109816773A (zh) * 2018-12-29 2019-05-28 深圳市瑞立视多媒体科技有限公司 一种虚拟人物的骨骼模型的驱动方法、插件及终端设备
CN111659115A (zh) * 2020-07-02 2020-09-15 腾讯科技(深圳)有限公司 虚拟角色控制方法、装置、计算机设备和存储介质
CN112001989A (zh) * 2020-07-28 2020-11-27 完美世界(北京)软件科技发展有限公司 虚拟对象的控制方法及装置、存储介质、电子装置
CN112215930A (zh) * 2020-10-19 2021-01-12 珠海金山网络游戏科技有限公司 一种数据处理方法与装置
CN112241203A (zh) * 2020-10-21 2021-01-19 广州博冠信息科技有限公司 三维虚拟角色的控制装置及方法、存储介质及电子设备
WO2021143289A1 (zh) * 2020-01-15 2021-07-22 腾讯科技(深圳)有限公司 动画处理方法、装置、计算机存储介质及电子设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109816773A (zh) * 2018-12-29 2019-05-28 深圳市瑞立视多媒体科技有限公司 一种虚拟人物的骨骼模型的驱动方法、插件及终端设备
WO2021143289A1 (zh) * 2020-01-15 2021-07-22 腾讯科技(深圳)有限公司 动画处理方法、装置、计算机存储介质及电子设备
CN111659115A (zh) * 2020-07-02 2020-09-15 腾讯科技(深圳)有限公司 虚拟角色控制方法、装置、计算机设备和存储介质
CN112001989A (zh) * 2020-07-28 2020-11-27 完美世界(北京)软件科技发展有限公司 虚拟对象的控制方法及装置、存储介质、电子装置
CN112215930A (zh) * 2020-10-19 2021-01-12 珠海金山网络游戏科技有限公司 一种数据处理方法与装置
CN112241203A (zh) * 2020-10-21 2021-01-19 广州博冠信息科技有限公司 三维虚拟角色的控制装置及方法、存储介质及电子设备

Also Published As

Publication number Publication date
CN116228942A (zh) 2023-06-06

Similar Documents

Publication Publication Date Title
CN112037311B (zh) 一种动画生成的方法、动画播放的方法以及相关装置
WO2022037260A1 (zh) 基于人工智能的多媒体处理方法、装置及电子设备
CN103258338A (zh) 利用真实数据来驱动仿真的虚拟环境的方法和系统
CN109035415B (zh) 虚拟模型的处理方法、装置、设备和计算机可读存储介质
CN111708563B (zh) 游戏中ui控件进行更新的方法及装置
CN102957748A (zh) 三维场景动态更新方法和系统
US11443450B2 (en) Analyzing screen coverage of a target object
CN112669414B (zh) 动画数据的处理方法及装置、存储介质、计算机设备
CN111553967A (zh) 一种基于Unity的动画资源文件制作方法、模块及存储介质
CN113822970A (zh) 直播控制方法、装置、存储介质与电子设备
CN113760161A (zh) 数据生成、图像处理方法、装置、设备及存储介质
KR101977893B1 (ko) 영상컨텐츠 적용 디지털액터의 운용방법
CN116228942B (zh) 角色动作提取方法、设备和存储介质
US20120021827A1 (en) Multi-dimensional video game world data recorder
CN109816744B (zh) 一种基于神经网络的二维特效图片生成方法和装置
CN113556578B (zh) 视频生成方法、装置、终端及存储介质
CN114820895A (zh) 动画数据处理方法、装置、设备及系统
CN114241099A (zh) 动画数据批量归零方法、装置和计算机设备
CN108846897B (zh) 三维模型表面材质模拟方法、装置、存储介质及电子设备
CN114219924B (zh) 虚拟场景的适配显示方法、装置、设备、介质及程序产品
CN116193098B (zh) 一种三维视频生成方法、装置、设备及存储介质
CN115937371B (zh) 人物模型的生成方法和系统
US11170553B1 (en) Methods and systems for generating an animation control rig
CN118154732A (zh) 动画数据的处理方法及装置、存储介质、计算机设备
CN117011428A (zh) 一种运动重定向的方法和相关装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant