CN115761074A - 动画数据处理方法、装置、电子设备及介质 - Google Patents

动画数据处理方法、装置、电子设备及介质 Download PDF

Info

Publication number
CN115761074A
CN115761074A CN202211449537.7A CN202211449537A CN115761074A CN 115761074 A CN115761074 A CN 115761074A CN 202211449537 A CN202211449537 A CN 202211449537A CN 115761074 A CN115761074 A CN 115761074A
Authority
CN
China
Prior art keywords
joint
target
model
source
sub
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
Application number
CN202211449537.7A
Other languages
English (en)
Other versions
CN115761074B (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 CN202211449537.7A priority Critical patent/CN115761074B/zh
Publication of CN115761074A publication Critical patent/CN115761074A/zh
Application granted granted Critical
Publication of CN115761074B publication Critical patent/CN115761074B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

本申请提供了一种动画数据处理方法、装置、电子设备及介质,该动画数据处理方法包括:获取源角色模型在执行指定动作时源角色模型的子关节在世界坐标系下的第一位移轨迹,和源角色模型的子关节在执行预设动作时相对于源角色模型的根关节的第一相对位移轨迹;获取目标角色模型的子关节相对于目标角色模型的根关节的第二相对位移轨迹;根据第一相对位移轨迹和第二相对位移轨迹,计算源角色模型与目标角色模型之间的第一映射参数;基于第一映射参数与第一位移轨迹,生成目标角色模型的目标平移数据。本申请的技术方案能够降低源角色模型和目标角色模型之间的尺寸差异对目标平移数据的影响,实现良好的动画重定向效果。

Description

动画数据处理方法、装置、电子设备及介质
技术领域
本申请涉及计算机技术领域,具体涉及一种动画数据处理方法、装置、电子设备及介质。
背景技术
动画重定向技术可以将某一角色模型的动画数据传递到另一角色模型上,实现同一动画数据的复用,省去为另一角色模型重新设计动画数据的过程。但是,由于不同的角色模型在尺寸等方面存在差异,直接将已有的动画数据传递到另一角色模型上,容易出现动作不协调、动画效果差的问题。
发明内容
有鉴于此,本申请实施例提供了一种动画数据处理方法、装置、电子设备及介质,能够降低源角色模型和目标角色模型之间的尺寸差异对目标平移数据的影响,实现良好的动画重定向效果。
第一方面,本申请的实施例提供了一种动画数据处理方法,包括:获取源角色模型在执行指定动作时源角色模型的子关节在世界坐标系下的第一位移轨迹,和源角色模型的子关节在执行预设动作时相对于源角色模型的根关节的第一相对位移轨迹,其中,源角色模型的子关节能相对源角色模型的根关节转动;获取目标角色模型的子关节相对于目标角色模型的根关节的第二相对位移轨迹,其中,第二相对位移轨迹与预设动作对应,目标角色模型的子关节能相对目标角色模型的根关节转动;根据第一相对位移轨迹和第二相对位移轨迹,计算源角色模型与目标角色模型之间的第一映射参数;基于第一映射参数与第一位移轨迹,生成目标角色模型的目标平移数据,其中,目标平移数据用于表示目标角色模型的根关节在执行指定动作时的平移位置变化。
第二方面,本申请的实施例提供了一种动画数据处理装置,包括:第一获取模块,用于获取源角色模型在执行指定动作时源角色模型的子关节在世界坐标系下的第一位移轨迹,和源角色模型的子关节在执行预设动作时相对于源角色模型的根关节的第一相对位移轨迹,其中,源角色模型的子关节能相对源角色模型的根关节转动;第二获取模块,用于获取目标角色模型的子关节相对于目标角色模型的根关节的第二相对位移轨迹,其中,第二相对位移轨迹与预设动作对应,目标角色模型的子关节能相对目标角色模型的根关节转动;计算模块,用于根据第一相对位移轨迹和第二相对位移轨迹,计算源角色模型与目标角色模型之间的第一映射参数;生成模块,用于基于第一映射参数与第一位移轨迹,生成目标角色模型的目标平移数据,其中,目标平移数据用于表示目标角色模型的根关节在执行指定动作时的平移位置变化。
第三方面,本申请的实施例提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器,其中,处理器用于执行上述第一方面所述的动画数据处理方法。
第四方面,本申请的实施例提供了一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序用于执行上述第一方面所述的动画数据处理方法。
第五方面,本申请的实施例提供了一种计算机程序产品,所述计算机程序产品中包括指令,所述指令被计算机设备的处理器执行时,使得所述计算机设备能够执行上述第一方面所述的动画数据处理方法。
第六方面,本申请的实施例提供了一种芯片,包括:处理器;用于存储处理器可执行指令的存储器,其中,处理器用于执行上述第一方面所述的动画数据处理方法。
本申请实施例提供了一种动画数据处理方法、装置、电子设备及介质,通过计算源角色模型的子关节相对于根关节的相对位移轨迹与目标角色模型的子关节相对于根关节的相对位移轨迹之间的映射参数,并基于映射参数以及源角色模型在执行指定动作时源角色模型的子关节在世界坐标系下的位移轨迹生成目标角色模型的目标平移数据,如此可以降低源角色模型和目标角色模型之间的尺寸差异对目标平移数据的影响,使得基于目标平移数据控制目标角色模型执行的动作可以与源角色模型的指定动作吻合良好,减小与指定动作之间的差距,减少出现如滑步等问题。
附图说明
图1所示为本申请一示例性实施例提供的动画数据处理系统的系统架构示意图。
图2所示为本申请一示例性实施例提供的动画数据处理方法的流程示意图。
图3所示为本申请一示例性实施例提供的第一相对位移轨迹和第二相对位移轨迹的示意图。
图4所示为本申请一示例性实施例提供的第一静止姿势和第二静止姿势的示意图。
图5所示为本申请一示例性实施例提供的采用循环坐标下降算法调整第二旋转数据的流程示意图。
图6所示为本申请一示例性实施例提供的采用前向后向抵达反向动力学算法调整第二旋转数据的流程示意图。
图7所示为本申请另一示例性实施例提供的动画数据处理方法的流程示意图。
图8所示为本申请一示例性实施例提供的动画数据处理装置的结构示意图。
图9所示为本申请一示例性实施例提供的用于执行动画数据处理方法的电子设备的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
申请概述
随着动画制作水平的不断提高,越来越多的角色模型被制作,且各种角色模型的形象越来越逼真,动作越来越流畅。针对不同的角色模型,可以单独为其设置对应一套动作的动画数据,基于该动画数据可控制角色模型执行这一套动作。动画的制作流程繁复冗杂,当不同的角色模型需要执行相同的动作时,为了避免重复为每个角色模型设置动画数据,可以将源角色模型的动画数据应用到目标角色模型上,使得目标角色模型可以执行与源角色模型相同的动作。具体地,可以采用动画重定向技术将源角色模型的动画数据应用到目标角色模型上。
动画重定向(Animation Retargeting)是一种动画复用的技术,通过该技术可以将源角色模型的动画数据传递到目标角色模型上,实现同一动画数据的复用,省去为目标角色模型重新设计动画数据的过程。但是,由于不同的角色模型在尺寸等方面存在差异,直接将已有的动画数据传递到目标角色模型上,容易出现动作不协调、动画效果差的问题。一般可以通过动画师对复用到目标角色模型的动画数据进行手动调整,但是这会耗费大量的时间成本,降低动画制作的整体效率。
针对上述技术问题,本申请实施例提供了一种动画数据处理方法,通过计算源角色模型中子关节相对于根关节的相对位移轨迹和目标角色模型中子关节相对于根关节的相对位移轨迹之间的映射参数,并基于该映射参数和源角色模型中子关节在世界坐标系下的位移轨迹可得到目标角色模型的根关节的平移数据,这样通过包括该平移数据的动画数据控制目标角色模型可以使得目标角色模型执行与源角色模型相同的动作,提高目标角色模型的动作流畅性,避免目标角色模型的动作变形。
示例性系统
图1所示为本申请一示例性实施例提供的动画数据处理系统的系统架构示意图,如图1所示,系统100包括:终端设备110和服务器120。终端设备110可以与服务器120通信连接。
终端设备110可以是个人计算机、移动终端或个人数字助理等设备;服务器120可以是云端服务器、服务器集群等。
在一应用场景中,终端设备110的用户界面上可以呈现目标角色模型以及动画数据复用按钮,操作人员可以在用户界面上点击动画数据复用按钮,终端设备110响应于操作人员的点击操作可在用户界面上呈现多个已经有动画数据的角色模型;此外,终端设备110可以向服务器发送触发信号以及目标角色模型的属性信息,该触发信号用于表示当前操作人员在执行动画数据复用操作,该属性信息用于表示动画数据复用操作的对象是目标角色模型。操作人员可从多个角色模型中选择一个角色模型作为源角色模型,终端设备110可将用户选择的源角色模型的动画数据发送给服务器120。服务器120可以根据目标角色模型的属性信息从服务器120的内存中获取目标角色模型的状态数据,基于状态数据对动画数据进行调整,并将调整后的动画数据发送给终端设备110。这里,状态数据可包括目标角色模型的骨骼数量、静止姿势等数据。终端设备110基于调整后的动画数据控制用户界面上的目标角色模型执行与源角色模型一致的动作。
可选地,在另一应用场景中,终端设备110可以根据目标角色模型的属性信息从终端设备110的内存中获取目标角色模型的状态数据,基于状态数据对动画数据进行调整,并基于调整后的动画数据控制用户界面上的目标角色模型执行与源角色模型一致的动作。
应理解,上述应用场景仅是为了便于理解本申请的精神和原理而示出,本申请的实施例并不限于此。相反,本申请的实施例可以应用于可能适用的任何场景。
示例性方法
图2所示为本申请一示例性实施例提供的动画数据处理方法的流程示意图。图2的方法可由计算设备(例如,图1中的用户终端或服务器)执行。如图2所示,该动画数据处理方法可以包括如下内容。
210:获取源角色模型在执行指定动作时源角色模型的子关节在世界坐标系下的第一位移轨迹,和源角色模型的子关节在执行预设动作时相对于源角色模型的根关节的第一相对位移轨迹,其中,源角色模型的子关节能相对源角色模型的根关节转动。
源角色模型可以是已经存在的,并具有指定动作的角色模型。具体的,源角色模型可以是网络游戏中的某个角色模型,或者是动画中的某个角色模型。指定动作可以是期望目标角色模型被赋予的动作。如此,使得目标角色模型可以执行与源角色模型相同的动作。指定动作可以是一段舞蹈,一个手势,等等。具体地,指定动作可对应源角色模型的一帧或多帧动画。应理解,指定动作的具体内容可根据实际情况设置。
角色模型可以包括骨骼链,骨骼链上可以包括多个关节,如根关节和子关节。子关节可以是骨骼链上的末端子关节或者是根关节和末端子关节之间的中间子关节,每个子关节的上一级关节可以是该子关节的父关节。这里应理解,在根关节到末端子关节的延伸方向上,与根关节连接的中间子关节可视为根关节的子关节,与该中间子关节连接的下一个中间子关节可视为该中间子关节的子关节。根关节可以位于骨骼链的核心位置,各个子关节可绕着对应的父关节旋转。具体的,以人物的角色模型为例,根关节可以是髋关节(hip),子关节可以是支撑角色模型的子关节(可称为定位器locator),如末端子关节,具体可以是脚后跟。或者,子关节可以是膝盖、手臂、手掌或其他位置的关节。根据角色模型的骨骼情况的不同,本实施例的子关节可以直接与根关节连接并可相对于根关节转动;或者,子关节可以和中间子关节连接,中间子关节与根关节连接,且中间子关节可以相对于根关节转动,子关节可以相对于中间子关节转动,即相当于子关节可以相对于根关节转动。
角色模型可以看成一个空间变换的层次树,每个关节可以为一个变换单元,子关节的变换可以是相对于其上一级关节(父关节)的局部变换。在骨骼动画中,变换一般包括平移变换和旋转变换。
在一示例中,角色模型的动画数据可以包括各个关节的旋转数据以及根关节的平移数据,即,子关节和根关节都有对应的旋转数据;根关节有对应的旋转数据以及平移数据。本实施例中源角色模型执行指定动作所依赖的动画数据可以是提前设置好的,是已知的。例如,一个关节的变化函数可以表示如下:
T(v)=JRv+P (1)
在上述变换函数中,R为旋转量,P为平移量,v为关节的顶点坐标,J为静止姿势下的预旋转量。根关节的R和P以及子关节的R是可变属性,用来控制角色模型的动画。静止姿势指的是可变属性为单位值(即R=I,P=0)时角色模型的姿势状态,这里I可以为单位矩阵。在动画制作过程中,可以以静止姿势为标准进行动画的制作。
在其他示例中,角色模型的动画数据可包括各个关节的旋转数据、子关节的平移数据以及其他子关节和根关节相对于该子关节的相对位置数据。
世界坐标系是系统的绝对坐标系,在没有建立用户坐标系之前画面上所有点的坐标可基于该坐标系的原点来确定各自的位置。绝对坐标系可以是所有坐标基于一个固定的坐标系原点的位置的描述的坐标系统。
获取源角色模型在执行指定动作时源角色模型的子关节在世界坐标系下的第一位移轨迹,可以通过获取源角色模型在执行指定动作时的动画数据,根据源角色模型的动画数据可获得第一位移轨迹,例如,可以获得源角色模型的脚后跟在世界坐标系下的第一位移轨迹。第一位移轨迹可视为子关节的绝对位移轨迹。
源角色模型的子关节相对于源角色模型的根关节的位移轨迹可以为相对位移轨迹。例如,可以将源角色模型在执行预设动作的过程中,子关节相对于根关节的位移轨迹作为第一相对位移轨迹。这里,预设动作可以是基本动作如脚迈开一步,或者预设动作可以是指定动作。
220:获取目标角色模型的子关节相对于目标角色模型的根关节的第二相对位移轨迹,其中,第二相对位移轨迹与预设动作对应,目标角色模型的子关节能相对目标角色模型的根关节转动。
在一些实施方式中,目标角色模型与源角色模型类似,可以是网络游戏或动画中的某个角色模型。目标角色模型与源角色模型所代表的角色的种类可以相同或不同,如源角色模型为人物,目标角色模型为动物;目标角色模型与源角色模型的子关节(末端关节)的数量可以相同;目标角色模型与源角色模型的尺寸大小可以不同,如两者的高度不同。
在一场景中,源角色模型代表大人,目标角色模型代表小孩。大人和小孩的身高不同导致两者的步长不同。因此直接将源角色模型根关节的平移数据复制到目标角色模型的根关节上,容易导致目标角色模型在执行指定动作时脚部出现滑步等动作怪异的情况。这里,滑步可以指目标角色模型在每次迈步过程中,脚部落地时容易出现脚部滑动的情况。
第二相对位移轨迹是目标角色模型的子关节相对于目标角色模型的根关节的相对位移轨迹,第二相对位移轨迹与预设动作对应。具体地,可以让源角色模型和目标角色模型分别执行相同的预设动作,进而分别得到两个角色模型中的子关节相对于各自的根关节的相对位移轨迹。
230:根据第一相对位移轨迹和第二相对位移轨迹,计算源角色模型与目标角色模型之间的第一映射参数。
相对位移轨迹的形状以及大小与角色模型的尺寸以及骨骼结构相关。不同角色模型子关节的相对位移轨迹之间的差异,可以通过第一映射参数表征。第一映射参数可以包括缩放因子和/或平移因子,缩放因子可以表征两个相对位移轨迹之间的大小差异,平移因子可以表征两个相对位移轨迹之间的形状差异。
例如,当源角色模型代表大人,目标角色模型代表小孩时,由于大人的步长大于小孩的步长,因此源角色模型对应的第一相对位移轨迹比目标角色模型对应的第二相对位移轨迹的覆盖范围大。例如,在一些情况下,第二相对位移轨迹可视为第一相对位移轨迹缩小一定倍数得到的。为了衡量两个角色模型之间的差异,可计算第一相对位移轨迹和第二相对位移轨迹之间的缩放因子,该缩放因子可视为源角色模型与目标角色模型之间的映射参数。
可选地,由于不同角色模型在骨骼构造上或行走习惯上有一定的差异,因此即使是两个高度相同的角色模型,两者的子关节(如脚后跟或膝盖)相对于各自的根关节的相对位移轨迹也可能不是完全吻合的,可能存在一定的偏移。为了衡量两个角色模型之间的差异,可计算第一相对位移轨迹和第二相对位移轨迹之间的平移因子。该平移因子可视为源角色模型与目标角色模型之间的映射参数。
可选地,源角色模型与目标角色模型之间的映射参数可同时包括上述的缩放因子和平移因子。例如,图3所示为本申请一示例性实施例提供的第一相对位移轨迹和第二相对位移轨迹的示意图。图3中左侧可以是源角色模型腿部的四个相连的关节,子关节位于最下方,子关节对应的第一相对位移轨迹(实线)是侧视图;类似地,图3中右侧是目标角色模型腿部的四个相连的关节,子关节位于最下方,子关节对应的第二相对位移轨迹(实线)是侧视图。由图3可以看出,左侧的源角色模型的步长小于右侧的目标角色模型的步长,因此,源角色模型中子关节的第一相对位移轨迹比目标角色模型中子关节的第二相对位移轨迹的覆盖范围小。
示例性地,通过最小二乘法可以求得第一相对位移轨迹和第二相对位移轨迹之间的缩放因子λ和平移因子α。具体地,第一相对位移轨迹可以用L表示,第二相对位移轨迹可以用U表示,给定变量λ和α,对L做缩放以及平移变换使得||L-U||最小,即实现以下优化问题,如式子(2):
Figure BDA0003950993180000071
上述式子中,E可为单位矩阵,上述式子的优选状态可以如图3中右侧的虚线位移轨迹所示。这个优化问题可通过最小二乘法求解,等价于求解方程组(3):
Figure BDA0003950993180000072
通过上述方程组可以求得缩放因子λ和平移因子α。当然也可以通过梯度下降法或其他方法计算映射参数。
240:基于第一映射参数与第一位移轨迹,生成目标角色模型的目标平移数据,其中,目标平移数据用于表示目标角色模型的根关节在执行指定动作时的平移位置变化。
目标平移数据可以是目标角色模型的根节点的平移数据,用于控制目标角色模型根关节的平移运动。基于目标平移数据以及目标角色模型各个关节的旋转数据可以控制目标角色模型执行指定动作。
第一位移轨迹和第一相对位移轨迹是针对同一个子关节而言的,所以基于第一相对位移轨迹和第二相对位移轨迹获得的第一映射参数可以用于第一位移轨迹。具体地,可以将第一映射参数与第一位移轨迹相乘,得到的乘积可以作为目标角色模型子关节在世界坐标系下的位移轨迹;将目标角色模型子关节在世界坐标系下的位移轨迹减去目标角色模型子关节相对于根关节的相对位移轨迹(与指定动作对应),得到的差值可以作为目标角色模型根关节的目标平移数据。
例如,大人的步长大于小孩的步长,因此大人每迈一步髋关节移动的距离应该大于小孩每迈一步髋关节移动的距离,而如果直接将大人髋关节(源角色模型根关节)的平移数据复制到小孩髋关节(目标角色模型根关节)上,则小孩每迈出一步时,为了使其髋关节达到平移数据所指定的位置,脚步会继续向前滑动,即出现滑步问题。
本实施例并不是直接将源角色模型的平移数据作为目标角色模型的平移数据,而是基于源角色模型子关节与目标角色模型子关节之间的映射参数和源角色模型子关节在世界坐标系下的位移轨迹生成目标角色模型的目标平移数据。
结合目标平移数据和目标角色模型各个关节的旋转数据,控制目标角色模型执行的动作可以与源角色模型的指定动作吻合良好,减小与指定动作之间的差距,缓解滑步等问题,且可以提高目标角色模型动作的协调性。
例如,动画数据包括各个关节的旋转数据、子关节的平移数据以及其他子关节和根关节相对于该子关节的相对位置数据。其他子关节和根关节相对于该子关节的相对位置数据可以是角色模型的本身属性,是在设计角色模型时即设置好的。根据源角色模型各关节的旋转数据可得到目标角色模型各个关节的旋转数据;根据映射参数和源角色模型子关节在世界坐标系下的位移轨迹可以得到目标角色模型子关节在世界坐标系下的位移轨迹,该位移轨迹可以作为目标角色模型子关节的平移数据。该目标角色模型子关节的平移数据结合根关节相对于该子关节的相对位置数据,可以表示目标角色模型的根关节在执行指定动作时的平移位置变化。如此,可以获得目标角色模型执行指定动作的动画数据:目标角色模型各个关节的旋转数据、子关节的平移数据以及其他子关节和根关节相对于该子关节的相对位置数据。
本申请实施例提供了一种动画数据处理方法,通过计算源角色模型的子关节相对于根关节的相对位移轨迹与目标角色模型的子关节相对于根关节的相对位移轨迹之间的映射参数,并基于映射参数以及源角色模型在执行指定动作时源角色模型的子关节在世界坐标系下的位移轨迹生成目标角色模型的目标平移数据,如此可以降低源角色模型和目标角色模型之间的尺寸差异对目标平移数据的影响,使得基于目标平移数据控制目标角色模型执行的动作可以与源角色模型的指定动作吻合良好,减小与指定动作之间的差距,减少出现如滑步等问题。
在本申请实施例中,第一相对位移轨迹对应的子关节在目标角色模型中的位置,和第二相对位移轨迹对应的子关节在源角色模型中的位置可以相同或相似。例如,当两个角色模型的骨骼数量相同时,两个子关节分别是各自角色模型中的脚后跟/脚踝/膝盖/手掌/肘部等;或者,一个子关节是对应角色模型中的脚后跟,另一个子关节是对应角色模型中的脚踝。当两个角色模型的骨骼数量不同时,两个子关节在各自角色模型中相对于根关节的位置可以相当。此外,本申请实施例中子关节的位移轨迹可以是基于多帧动画中子关节的位置所构成的,类似地,子关节的相对位移轨迹可以是基于多帧动画中子关节相对于根关节的位置所构成的。这里,多帧动画可以是角色模型完成指定动作所形成的。
根据本申请一实施例,预设动作与指定动作相同,其中,获取目标角色模型的子关节相对于目标角色模型的根关节的第二相对位移轨迹,包括:基于源角色模型中骨骼链上的各个关节对应的第一旋转数据确定目标角色模型中骨骼链上的各个关节对应的第二旋转数据;基于第二旋转数据中目标角色模型的根关节的旋转量以及目标角色模型的子关节的旋转量确定第二相对位移轨迹。
具体地,可以根据源角色模型在执行指定动作时的各个关节的旋转数据确定目标角色模型各个关节的旋转数据,进而基于目标角色模型各个关节的旋转数据确定目标角色模型的子关节相对于根关节的相对位移轨迹。
例如,源角色模型和目标角色模型的静止姿势以及骨骼数量均相同,此时第二旋转数据可以与第一旋转数据相同。根据目标角色模型的第二旋转数据可以确定目标角色模型中各个关节的旋转量,根据根关节和子关节各自的旋转量,可以得到子关节相对于根关节的旋转位置,因此可以得到目标角色模型中子关节相对于根关节的第二相对位移轨迹。
在一示例中,源角色模型和目标角色模型中的关节是一一对应的,两个角色模型的静止姿势可以相同。针对两个角色模型中相对应的两个当前关节在静止姿势下的世界旋转(旋转数据)表达式分别为式子(4)和(5)。
W=J0J1…Ji (4)
Figure BDA0003950993180000091
这里,J为静止姿势下的预旋转量,下标0表示根关节,下标i表示当前关节,0到i之间的下标表示根关节与当前关节之间的中间子关节。
若要这两个当前关节产生相同的姿态变化,本质上就是在静止姿势下对两个当前关节施加相同的世界旋转S,即参见式子(6)-(9):
Figure BDA0003950993180000092
Figure BDA0003950993180000093
Figure BDA0003950993180000094
Figure BDA0003950993180000095
记:
Figure BDA0003950993180000096
则有如下式子(10)。
Figure BDA0003950993180000097
这里,R为旋转量。通过上述计算可以得到每个关节逐帧的旋转量
Figure BDA0003950993180000098
即得到第二旋转数据,将第二旋转数据应用到目标角色模型,可以使得目标角色模型执行指定动作。在该示例中,当源角色模型和目标角色模型的静止姿势相同时,两者表示同一动作的旋转数据可能不同,这与模型初始构建(预旋转量不同或者说参考系不同)有关,因此,可以通过上述计算过程获取第二旋转数据。
再例如,源角色模型和目标角色模型在静止姿势和/或骨骼数量上不同,此时第二旋转数据与第一旋转数据不同,即对第一旋转数据做适当的调整后得到的第二旋转数据才能使得目标角色模型执行指定动作。
在本实施例中,通过获取源角色模型执行指定动作时子关节相对于根关节的第一相对位移轨迹,并基于源角色模型的旋转数据获取目标角色模型的旋转数据进而基于目标角色模型的旋转数据得到目标角色模型中子关节相对于根关节的第二相对位移轨迹,如此可以保证第一相对位移轨迹和第二相对位移轨迹是与指定动作对应的,这样可以提高第一映射参数的准确率,从而提高目标平移数据的精确度。
根据本申请一实施例,基于第一映射参数与第一位移轨迹,生成目标角色模型的目标平移数据,包括:基于第一映射参数与第一位移轨迹确定目标角色模型的子关节在世界坐标系下的第二位移轨迹;基于第二位移轨迹与第二相对位移轨迹之差确定目标平移数据。
具体地,获取源角色模型执行指定动作时子关节相对于根关节的第一相对位移轨迹,并基于目标角色模型的第二旋转数据得到目标角色模型中子关节相对于根关节的第二相对位移轨迹。基于第一相对位移轨迹和第二相对位移轨迹得到第一映射参数,将第一映射参数与第一位移轨迹相乘,得到的乘积可以作为目标角色模型子关节在世界坐标系下的第二位移轨迹。将第二位移轨迹减去第二相对位移轨迹,得到的差值可以作为目标平移数据。
例如,动画数据包括各个关节的旋转数据以及根关节的平移数据。根据源角色模型各关节的旋转数据可得到目标角色模型各个关节的旋转数据;根据映射参数和源角色模型子关节在世界坐标系下的位移轨迹可以得到目标角色模型子关节在世界坐标系下的位移轨迹,进而可以利用目标角色模型子关节的位移轨迹减去子关节相对于根关节的相对位移轨迹可得到根关节的平移数据。如此,可以获得目标角色模型执行指定动作的动画数据:目标角色模型各个关节的旋转数据以及根关节的平移数据。
在本实施例中,由于第一相对位移轨迹和第二相对位移轨迹是基于源角色模型的指定动作得到的,因此基于第一相对位移轨迹和第二相对位移轨迹得到的第一映射参数的可靠性高,进而可以提高第二位移轨迹和目标平移数据的精确度,保证目标角色模型基于目标平移数据执行的动作与源角色模型的指定动作吻合良好。
根据本申请一实施例,目标角色模型的子关节的数量是多个,目标角色模型的每个子关节与一个第二位移轨迹对应,且与一个第二相对位移轨迹对应,其中,基于第二位移轨迹与第二相对位移轨迹之差确定目标平移数据,包括:基于多个第二位移轨迹分别与多个第二相对位移轨迹的多个差的平均值确定目标平移数据。
具体地,子关节可以是支撑角色模型的末端关节。例如,当源角色模型执行的指定动作为直立行走时,子关节可以是源角色模型的脚后跟,子关节的数量为两个;当源角色模型执行的指定动作为倒立行走时,子关节可以是源角色模型的手掌,子关节的数量为两个;当源角色模型执行的指定动作为单脚蹦跳时,子关节可以是源角色模型的脚后跟,子关节的数量为一个;当源角色模型执行的指定动作为爬行时,子关节可以是源角色模型的脚后跟和手掌,子关节的数量为四个。
每个子关节在运动过程中都会受到来自根关节的支配,因此在确定目标角色模型的根关节的目标平移数据时,可以只获取目标角色模型的多个子关节中的一个子关节的第二相对位移轨迹,同时确定源角色模型中对应的子关节的第一相对位移轨迹。基于一组第一相对位移轨迹和第二相对位移轨迹可以得到一组第一映射参数。基于第一映射参数与第一位移轨迹可得到第二位移轨迹,基于第二位移轨迹和第二相对位移轨迹之间的差值可得到根关节的目标平移数据。
可选地,在确定目标角色模型的根关节的目标平移数据时,可以获取目标角色模型的每个子关节对应的第二相对位移轨迹,同时确定源角色模型中对应的子关节的第一相对位移轨迹。基于多组第一相对位移轨迹和第二相对位移轨迹可以得到多组第一映射参数。基于多组第一映射参数与多个第一位移轨迹可得到多个第二位移轨迹,基于多个第二位移轨迹和多个第二相对位移轨迹之间的多个差值的平均值可得到根关节的目标平移数据。
在本实施例中,当存在多个子关节时,根据每个子关节的第二位移轨迹可以反推得到根关节的一个平移数据。由于每个子关节都受根关节的支配,因此在确定根关节的平移数据时,可以综合考虑多个子关节的第二位移轨迹,这样可以使得得到的目标平移数据兼顾每个子关节的运动情况,提高目标角色模型基于目标平移数据执行的动作的流畅性,减少出现某个子关节运动正常,其他的子关节运动不正常的问题。
根据本申请一实施例,该动画数据处理方法还包括:基于源角色模型的根关节在世界坐标系下的源平移数据对目标平移数据做平滑处理得到平滑后的目标平移数据。
源平移数据是源角色模型在执行指定动作时,源角色模型的根关节的平移数据,用于表示源角色模型根关节的位移轨迹。
具体地,当子关节的数量是多个,且目标角色模型的根关节的目标平移数据是基于多个第二位移轨迹和多个第二相对位移轨迹之间的多个差值的平均值得到时,基于目标平移数据所呈现的目标角色模型根关节的位移轨迹可能与源角色模型根关节的位移轨迹匹配度或贴合度不高,例如,基于目标平移数据所呈现的目标角色模型根关节的位移轨迹可能平滑程度低。
为了提高目标平移数据与源平移数据的匹配度,可以根据源平移数据对目标平移数据做平滑处理,例如,可根据源平移数据的变化趋势对目标平移数据进行微调,使得微调的目标平移数据与源平移数据的匹配度高。
微调的过程即是在对目标平移数据做平滑处理,微调方法可以是各种数据拟合方法,如最小二乘法、梯度下降法等。
进一步地,基于源角色模型的根关节在世界坐标系下的源平移数据对目标平移数据做平滑处理得到平滑后的目标平移数据,包括:确定源平移数据与目标平移数据之间的第二映射参数;利用第二映射参数对目标平移数据做平滑处理得到平滑后的目标平移数据。
具体地,源平移数据和目标平移数据分别是源角色模型和目标角色模型中根关节的平移数据,因此当源角色模型和目标角色模型的尺寸不同时,两者的根关节的平移数据所呈现的根关节的位移轨迹的覆盖范围不同。例如,当源角色模型代表大人,目标角色模型代表小孩时,由于大人的步长大于小孩的步长,因此源角色模型对应的根关节的位移轨迹比目标角色模型对应的根关节的位移轨迹的覆盖范围大。为了衡量两个角色模型根关节的位移轨迹之间的差异,可计算源平移数据和目标平移数据之间的缩放因子,该缩放因子可视为源平移数据与目标平移数据之间的第二映射参数。
可选地,由于目标平移数据是根据多个第二位移轨迹和多个第二相对位移轨迹之间的多个差值的平均值得到的,因此,目标平移数据与源平移数据之间的匹配度可能不高,例如,源平移数据乘以缩放因子之后的数据与目标平移数据之间存在偏移。为了衡量源平移数据与目标平移数据之间的偏移,可计算源平移数据与目标平移数据之间的平移因子。该平移因子可视为源平移数据与目标平移数据之间的第二映射参数。
可选地,源平移数据与目标平移数据之间的第二映射参数可同时包括上述的缩放因子和平移因子。
在得到第二映射参数后,可利用第二映射参数对目标平移数据做平滑处理得到平滑后的目标平移数据。
在一示例中,第二映射参数中的缩放因子和平移因子是通过将目标平移数据与源平移数据做比较得到的,即第二映射参数体现的是目标平移数据相对于源平移数据的差异,因此可以将目标平移数据除以缩放因子再减去平移因子之后再乘以缩放因子,即可得到平滑后的目标平移数据。
在另一示例中,第二映射参数中的缩放因子和平移因子是通过将源平移数据与目标平移数据做比较得到的,即第二映射参数体现的是源平移数据相对于目标平移数据的差异,因此可以将源平移数据除以缩放因子再减去平移因子,即可得到平滑后的目标平移数据。
上述仅列举两种示例,应理解,本申请实施例还可以采用其他方式基于第二映射参数对目标平移数据做平滑处理得到平滑后的目标平移数据。
在本实施例中,通过利用源平移数据对目标平移数据进行校正,可以提高目标平移数据的平滑度,进一步提高目标角色模型基于平滑后的目标平移数据所做的动作的流畅性,以及该动作与指定动作的契合程度。
根据本申请一实施例,该动画数据处理方法还包括:确定源角色模型的第一静止姿势和目标角色模型的第二静止姿势之间的转换参数,其中,基于源角色模型中骨骼链上的各个关节对应的第一旋转数据确定目标角色模型中骨骼链上的各个关节对应的第二旋转数据,包括:基于第一旋转数据和转换参数确定第二旋转数据。
具体地,每个角色模型在设计时会有一个静止姿势,静止姿势可以是计算机动画中用于绑定3D骨骼模型的预设姿势。静止姿势是所有关节的旋转量为0(不包括预旋转)时的骨架状态。通常,一个制作流程里面会指定一种统一的静止姿势,但是对不同来源的角色模型来说,他们的静止姿势是没有同一标准的。这种差异主要体现在角色模型的手臂的倾斜角度以及脚的伸展角度。如图4所示,静止姿势可以是A-pose或T-pose。
在进行重定向之前,需要对两个角色模型的静止姿势进行对齐,否则会产生错误的重定向效果。
在一示例中,源角色模型的第一静止姿势为A-pose,目标角色模型的第二静止姿势为T-pose,基于两个角色模型的静止姿势可以确定两个静止姿势之间的转换参数。转换参数可以是矩阵,转换参数乘以源角色模型在某个姿势下的旋转数据后得到的旋转数据,用于到目标角色模型上,可以使得目标角色模型的姿势与源角色模型相同。
例如,某个子关节在世界坐标系下的旋转量可表示为:W=J′0R′0J′1R′1…J′iR′i,源角色模型静止姿势的手臂/腿的骨骼轴方向为向量l,目标角色模型静止姿势的手臂/腿的骨骼轴方向为向量
Figure BDA0003950993180000131
在向量l上施加旋转
Figure BDA0003950993180000132
得到如下式子(11)-(12)。
Figure BDA0003950993180000133
Figure BDA0003950993180000134
下标0表示根关节,下标i表示需要进行旋转修改的子关节,0到i之间的下标表示根关节与需要进行旋转修改的子关节之间的中间子关节。在需要旋转修改的子关节的预旋转量J′i上右乘
Figure BDA0003950993180000135
就可以使得两个角色模型对齐。此外,还可以修改该子关节的旋转数据,即式子(13)。
Figure BDA0003950993180000136
这里,R′i为源角色模型子关节的旋转量,
Figure BDA0003950993180000137
为源角色模型的静止姿势与目标角色模型的静止姿势对齐之后子关节的旋转量。
Figure BDA0003950993180000138
可以看作是转换参数。各个需要进行旋转修改的子关节的转换参数可以构成旋转矩阵。
进一步地,基于对齐之后的旋转量,可以按照静止姿势下旋转数据的传递方法获得目标角色模型的旋转数据。例如,可以用
Figure BDA0003950993180000139
替换上述式子(10)中的R,用
Figure BDA00039509931800001310
替换上述式子(10)中的Ji。即,上述式子(10)中的J以及可视为转换参数。
因此,在获得源角色模型和目标角色模型之间的转换参数后,可以将转换参数乘以源角色模型在执行指定动作时的第一旋转数据得到第二旋转数据,将第二旋转数据结合根关节的目标平移数据应用于目标角色模型上,可以保证目标角色模型执行与源角色模型的指定动作相同的动作。
在本实施例中,通过确定源角色模型的第一静止姿势和目标角色模型的第二静止姿势之间的转换参数,并基于转换参数和源角色模型的第一旋转数据确定目标角色模型的第二旋转数据,如此可以保证重定向过程的可靠性,减少出现错误的重定向效果。此外,通过转换参数可以实现两个静止姿势之间的自动化对齐,节省操作人员对第二静止姿势进行调整的工作,提高生产效率。
根据本申请一实施例,该动画数据处理方法还包括:利用反向运动学方法,基于第二位移轨迹调整第二旋转数据得到调整后的第二旋转数据,使得基于调整后的第二旋转数据和目标平移数据得到的目标角色模型的子关节在世界坐标系下的实际位移轨迹与第二位移轨迹之间的差距满足预设条件。
预设条件可以包括实际位移轨迹与第二位移轨迹之间的差距的约束条件,具体可以根据实际需要进行设置。实际位移轨迹与第二位移轨迹之间的差距越小越好。例如,预设条件可以包括具体的数值,该数值可以是实际位移轨迹中子关节的位置与第二位移轨迹中子关节的位置之间的距离的门槛值。当该距离小于该门槛值时,可以将此时的第二旋转数据确定为调整后的第二旋转数据。
具体地,在得到目标平移数据(可以是平滑处理前或平滑处理后的)后,可基于目标平移数据以及第二旋转数据控制目标角色模型的各个关节移动。由于各个子关节的移动受根关节的目标平移数据以及各个关节的旋转数据的影响,因此如果目标平移数据存在细小偏差,会导致子关节的实际位移轨迹产生大的偏差,导致目标角色模型的动作变形,即与源角色模型的指定动作之前存在差异。为了使得目标角色模型做出的动作与源角色模型的指定动作一致,且使得目标角色模型做出的动作更自然,可以基于第二位移轨迹对目标角色模型的各个关节的旋转数据进行调整。因为第二位移轨迹是根据第一映射参数与第一位移轨迹确定的,没有受到目标平移数据的影响,因此基于第二位移轨迹对目标角色模型的各个关节的旋转数据进行调整,可以提高目标角色模型中子关节的位移轨迹与源角色模型中子关节的位移轨迹之间的相似性,且可以进一步提高目标角色模型做出的动作与源角色模型的指定动作的一致性。
示例性地,可以采用反向动力学方法,基于第二位移轨迹调整第二旋转数据得到调整后的第二旋转数据。
反向动力学(Inverse Kinematics,IK)方法是一种通过先确定子骨骼/子关节的位置,然后反求推导出其所在骨骼链上n级父骨骼/父关节位置,从而确定整条骨骼链的位置的方法。这里,对于角色模型来说,关节可以位于骨骼之间,父关节是位于子关节和根关节之间的关节,父关节是相对于其控制的下一级关节而言的。
反向动力学方法有多种,例如,循环坐标下降(Cyclic Coordinate Decent,CCD)算法和前向后向抵达反向动力学(Forward And Backward Reaching InverseKinematics,FABRIK)算法。
图5所示为本申请一示例性实施例提供的采用循环坐标下降算法调整第二旋转数据的流程示意图。图5中示出了包括四个骨骼和五个关节的骨骼链。根关节为P1,子关节为E,中间关节包括P2、P3、P4。根据第二位移轨迹可以确定某一帧内子关节E的目标位置为T,即需要通过多次迭代调整使得子关节E不断接近目标位置T。在调整的目的过程中,需要保持骨骼链不变性,即保证关节之间的长度要与调整前一致。CCD算法的原理是保证每个关节到末端子关节的向量以及每个关节到目标位置T的向量之间的夹角,并按照夹角旋转对应关节。
如图5中a部分所示,从骨骼链的倒数第二个关节P4开始,关节P4到末端子关节E的向量为μ4,关节P4到目标位置T的向量为ν4,求出μ4和ν4之间的夹角θ4。让关节P4转θ4角度,末端子关节E到达靠近目标位置T的一个新的位置,如图5中b部分所示。类似地,针对递归向上的父关节都执行一遍此算法。例如,如图5中b部分所示,关节P3到末端子关节E的向量为μ3,关节P3到目标位置T的向量为ν3,求出μ3和ν3之间的夹角θ3。让关节P3转θ3角度,末端子关节E到达更靠近目标位置T的一个新的位置,如图5中c部分所示。如图5中c部分所示,关节P2到末端子关节E的向量为μ2,关节P2到目标位置T的向量为ν2,求出μ2和ν2之间的夹角θ2。让关节P2转θ2角度,末端子关节E到达更靠近目标位置T的一个新的位置,如图5中d部分所示。如图5中d部分所示,关节P1到末端子关节E的向量为μ1,关节P1到目标位置T的向量为ν1,求出μ1和ν1之间的夹角θ1。让关节P1转θ1角度,末端子关节E到达更靠近目标位置T的一个新的位置,如图5中e部分所示。这样,关节P1-P4都基于对应的夹角经历了一次旋转。但是从图5中e部分可以看出,子关节E与目标位置T之间还有一定的距离,因此可针对关节P1-P4按照倒序的方式重新执行上述的内容,如图5中的e和f部分所示,直至子关节E与目标位置T尽可能靠近为止。
图6所示为本申请一示例性实施例提供的采用前向后向抵达反向动力学算法调整第二旋转数据的流程示意图。图6中示出了包括四个关节的骨骼链。根关节为P1,子关节为P4,中间关节包括P2和P3。根据第二位移轨迹可以确定某一帧内子关节P4的目标位置为t,即需要通过多次迭代调整使得子关节P4不断接近目标位置t。在调整的目的过程中,FABRIK通过反向和正向两次遍历来将末端子关节向目标位置靠近,同时保持骨骼链不变形,即保证关节之间的长度要与调整前一致。
如图6中a和b部分所示,先将末端子关节P4的位置设置在目标位置t,即得到末端子关节P4’(该标记仅表示关节位置变化,后续标记与之类似),然后从末端子关节P4’的父关节开始往前遍历,求出末端子关节P4’到当前关节P3的方向,确定当前关节P3的位置为(末端子关节P4’位置+方向*当前关节P3到末端子关节P4的原始长度),即得到当前关节P3’,如图6中c部分所示。当前关节P3到末端子关节P4的原始长度为l3。类似地,针对递归向上的父关节都执行一遍此算法。例如,如图6中c和d部分所示,求出关节P3’到当前关节P2的方向,确定当前关节P2的位置为(关节P3’位置+方向*当前关节P2到关节P3的原始长度),即得到当前关节P2’,如图6中d部分所示。当前关节P2到关节P3的原始长度为l2。进一步地,求出关节P2’到当前关节P1的方向,确定当前关节P1的位置为(关节P2’位置+方向*当前关节P1到关节P2的原始长度),即得到当前关节P1’,如图6中d部分所示。当前关节P1到关节P2的原始长度为l1。这样,反向遍历过程完成了,从图6中d部分可以看出,末端子关节P4’与目标位置t重叠了,而根关节P1’离开了原来的位置。
因此可针对关节P1-P4按照正向遍历的方式重新执行上述的内容,如图6中的e和f部分所示,先将根关节P1’的位置设置在根关节的原始位置处,记为根关节P1”。然后求出根关节(父关节)P1”到当前关节P2’的方向,确定当前关节P2’的位置为(父关节P1”位置+方向*当前关节P2到父关节P1的原始长度),即得到当前关节P2”,如图6中f部分所示。类似地,可以得到关节P3”和P4”。经过多次迭代,可以实现末端子关节P4尽可能靠近目标位置t,根关节为P1在原始位置,关节之间的长度与调整前一致。
在本实施例中,通过利用反向运动学方法基于第二位移轨迹对目标角色模型中的各关节的旋转数据进行调整,使得目标角色模型中各关节基于各自的调整后的旋转数据得到的实际位移轨迹尽可能与第二位移轨迹吻合,如此可以提高目标角色模型中子关节的实际位移轨迹与源角色模型中子关节的位移轨迹之间的相似性,使得目标角色模型中子关节的运动过程与源角色模型中子关节的运动过程相仿,且可以提高目标角色模型的动作与周围环境的协调性,减少出现脚步滑动的问题。
进一步地,操作人员可以提前设置目标角色模型中各个关节的旋转约束条件,以避免某些关节产生不符合角色本身特质的姿态参数,如当角色为人时,避免产生不符合人体规律的姿态参数。
根据本申请一实施例,该动画数据处理方法还包括:确定源角色模型中骨骼链上的各个关节对应的第一数量;确定目标角色模型中骨骼链上的各个关节对应的第二数量。基于源角色模型中骨骼链上的各个关节对应的第一旋转数据确定目标角色模型中骨骼链上的各个关节对应的的第二旋转数据,包括:在第一数量与第二数量不等时,利用四元数插值算法,基于第一旋转数据、第一数量以及第二数量确定第二旋转数据。
具体地,角色模型的旋转数据可以包括角色模型中每个关节对应的旋转数据。当源角色模型和目标角色模型中的骨骼链所包含的关节数量相同时,可以将两个骨骼链中的关节一一对应,并将源角色模型中每个关节的旋转数据传递给目标角色模型中与该关节对应的关节,或者将源角色模型中每个关节的旋转数据乘以一定的转换参数之后的结果传递给目标角色模型中与该关节对应的关节。
而在一些情况下,不同角色模型的关节数量并不相同,例如,不同角色模型骨骼链上的脊椎、尾巴等部分的关节数量有可能不同。因此,当源角色模型和目标角色模型中的骨骼链所包含的关节数量不同时,为了保证良好的重定向效果,可以将源角色模型中各个关节的旋转量按照一定规则分配到目标角色模型中的各个关节上。
在一示例中,源角色模型中的骨骼链所包含的关节数量大于目标角色模型中的骨骼链所包含的关节数量。例如,源角色模型中的骨骼链所包含的关节数量为5,目标角色模型中的骨骼链所包含的关节数量为3,可以将源角色模型中5个关节的旋转数据乘以转换参数得到5个转换后的旋转数据。将5个转换后的旋转数据按照预设规则分配成3个旋转数据,并将3个旋转数据分别分配给目标角色模型中的3个关节。预设规则可以是等比例分配或非等比例分配,例如可以通过四元数插值算法或其他插值算法,将5个转换后的旋转数据分配成3个旋转数据。
在另一示例中,源角色模型中的骨骼链所包含的关节数量小于目标角色模型中的骨骼链所包含的关节数量。例如,源角色模型中的骨骼链所包含的关节数量为3,目标角色模型中的骨骼链所包含的关节数量为5,可以将源角色模型中3个关节的旋转数据乘以转换参数得到3个转换后的旋转数据。将3个转换后的旋转数据按照预设规则分配成5个旋转数据,并将5个旋转数据分别分配给目标角色模型中的5个关节。预设规则可以是等比例分配或非等比例分配,例如可以通过四元数插值算法,将3个转换后的旋转数据分配成5个旋转数据。
例如,源角色模型骨骼链上有n+1个关节;目标角色模型骨骼链上有m+1个关节。
Figure BDA0003950993180000171
骨骼链上关节的编号依次可以是i到j。
可以将源角色模型骨骼链上的姿态旋转(相对于静止姿势下的世界旋转)用四元数插值表示为分段函数:
Figure BDA0003950993180000172
在上述公式中,t的取值是0到1,表示骨骼链上的某个位置;I为单位矩阵。令
Figure BDA0003950993180000173
Figure BDA0003950993180000174
得到目标角色模型的姿态旋转
Figure BDA0003950993180000175
再将其转换为局部旋转数据
Figure BDA0003950993180000176
通过这些换算公式得到的局部旋转数据可以是目标角色模型的第二旋转数据。Si…Si+l―1为源角色模型中各个关节的世界旋转(旋转数据),
Figure BDA0003950993180000177
为目标角色模型中各个关节的世界旋转。
例如,源角色模型骨骼链上有3+1个关节,目标角色模型骨骼链上有5+1个关节。在计算目标角色模型上第二个关节(编号是i+1)的旋转数据时,有:
Figure BDA0003950993180000178
Figure BDA0003950993180000179
属于区间
Figure BDA00039509931800001710
可根据上面F(t)公式得到第二个关节的世界旋转
Figure BDA00039509931800001711
后续可以根据上面的换算公式计算局部旋转数据。
在本实施例中,通过利用四元数插值算法,基于源角色模型中多个第一关节的旋转数据确定目标角色模型中骨骼链上的多个第二关节的旋转数据,这样可以在第一关节的数量与第二关节的数量不等时,为目标角色模型中的每个第二关节分配合理的旋转数据,如此可以提高重定向效果。
图7所示为本申请另一示例性实施例提供的动画数据处理方法的流程示意图。图7实施例是图2实施例的例子,为避免重复,相同之处可参考上述实施例中的描述,此处不再赘述。如图7所示,该动画数据处理方法包括如下内容。
710:确定源角色模型的第一静止姿势和目标角色模型的第二静止姿势之间的转换参数。
720:基于转换参数和源角色模型在执行指定动作时的第一旋转数据确定转换后的旋转数据。
例如,可以计算目标角色模型从第二静止姿势变换到第一静止姿势时各个关节的旋转数据,实现这个变换过程的旋转数据可以作为转换参数,转换参数可以是矩阵。确定源角色模型在执行指定动作时各个关节的第一旋转数据,利用转换参数乘以第一旋转数据可以得到转换后的旋转数据。
可选地,可以计算源角色模型从第一静止姿势变换到第二静止姿势时各个关节的旋转数据,基于这个变换过程的旋转数据可以得到第一静止姿势到第二静止姿势的逆变换矩阵,逆变换矩阵可以作为转换参数。确定源角色模型在执行指定动作时各个关节的第一旋转数据,利用转换参数乘以第一旋转数据可以得到转换后的旋转数据。
730:利用四元数插值算法,基于源角色模型中骨骼链上的多个第一关节对应的转换后的旋转数据确定目标角色模型中骨骼链上的多个第二关节对应的第二旋转数据。
多个第一关节的数量与多个第二关节的数量不等。
740:基于第二旋转数据确定目标角色模型中多个子关节相对于根关节的多个第二相对位移轨迹。
目标角色模型中的每个子关节对应一个第二相对位移轨迹。第二相对位移轨迹与指定动作对应,目标角色模型的子关节能相对目标角色模型的根关节转动。
750:获取源角色模型在执行指定动作时源角色模型的多个子关节在世界坐标系下的多个第一位移轨迹,并获取源角色模型的多个子关节在执行指定动作时相对于源角色模型的根关节的多个第一相对位移轨迹。
源角色模型的子关节能相对源角色模型的根关节转动。源角色模型中的每个子关节对应一个第一位移轨迹,且每个子关节对应一个第一相对位移轨迹。
760:根据每个第一相对位移轨迹以及该第一相对位移轨迹对应的第二相对位移轨迹,计算第一映射参数。
770:基于第一映射参数与第一位移轨迹确定目标角色模型的每个子关节在世界坐标系下的第二位移轨迹,基于多个第二位移轨迹分别与多个第二相对位移轨迹之差的平均值确定目标角色模型的根关节的目标平移数据。
目标平移数据用于表示目标角色模型的根关节在执行指定动作时的平移位置变化。
780:确定源平移数据与目标平移数据之间的第二映射参数,利用第二映射参数对目标平移数据做平滑处理得到平滑后的目标平移数据。
790:利用反向运动学方法,基于第二位移轨迹调整第二旋转数据得到调整后的第二旋转数据。
基于调整后的第二旋转数据和平滑后的目标平移数据可控制目标角色模型执行指定动作,实现动画重定向效果。
在本申请实施例中,目标角色模型在静止姿势、尺寸以及骨骼数量方面可以与源角色模型的不同。通过本申请实施例提供的动画数据处理方法,可以降低目标角色模型的动作与指定动作之间的差异性,尽可能地减少动画师的后续修改,实现动画数据的高效复用。此外,本申请实施例提供的动画数据处理方法可以适用于不同类型或场景(如脚部着地或手部着地)的动作,具有较高的灵活性。本申请实施例提供的动画数据处理方法可实现用户高度可控的动画重定向效果,即用户可以自己设定一系列输入(如骨骼链的映射、子关节的设置)来适应不同类型、不同场景的动画。
进一步地,本申请实施例提供的动画数据处理方法,可以通过Maya三维动画软件将算法扩展到Adv控制器模型上,实现动画制作流程的提产提效。
示例性装置
图8所示为本申请一示例性实施例提供的动画数据处理装置800的结构示意图。如图8所示,动画数据处理装置800包括:第一获取模块810、第二获取模块820、计算模块830以及生成模块840。
第一获取模块810用于获取源角色模型在执行指定动作时源角色模型的子关节在世界坐标系下的第一位移轨迹,和源角色模型的子关节在执行预设动作时相对于源角色模型的根关节的第一相对位移轨迹,其中,源角色模型的子关节能相对源角色模型的根关节转动;第二获取模块820用于获取目标角色模型的子关节相对于目标角色模型的根关节的第二相对位移轨迹,其中,第二相对位移轨迹与预设动作对应,目标角色模型的子关节能相对目标角色模型的根关节转动;计算模块830用于根据第一相对位移轨迹和第二相对位移轨迹,计算源角色模型与目标角色模型之间的第一映射参数;生成模块840用于基于第一映射参数与第一位移轨迹,生成目标角色模型的目标平移数据,其中,目标平移数据用于表示目标角色模型的根关节在执行指定动作时的平移位置变化。
本申请实施例提供了一种动画数据处理装置,通过计算源角色模型的子关节相对于根关节的相对位移轨迹与目标角色模型的子关节相对于根关节的相对位移轨迹之间的映射参数,并基于映射参数以及源角色模型在执行指定动作时源角色模型的子关节在世界坐标系下的位移轨迹生成目标角色模型的目标平移数据,如此可以降低源角色模型和目标角色模型之间的尺寸差异对目标平移数据的影响,使得基于目标平移数据控制目标角色模型执行的动作可以与源角色模型的指定动作吻合良好,减小与指定动作之间的差距,减少出现如滑步等问题。
根据本申请一实施例,预设动作与指定动作相同,其中,第二获取模块820用于:基于源角色模型中骨骼链上的各个关节对应的第一旋转数据确定目标角色模型中骨骼链上的各个关节对应的第二旋转数据;基于第二旋转数据中目标角色模型的根关节的旋转量以及目标角色模型的子关节的旋转量确定第二相对位移轨迹。
根据本申请一实施例,生成模块840用于:基于第一映射参数与第一位移轨迹确定目标角色模型的子关节在世界坐标系下的第二位移轨迹;基于第二位移轨迹与第二相对位移轨迹之差确定目标平移数据。
根据本申请一实施例,目标角色模型的子关节的数量是多个,目标角色模型的每个子关节与一个第二位移轨迹对应,且与一个第二相对位移轨迹对应,其中,生成模块840用于:基于多个第二位移轨迹分别与多个第二相对位移轨迹的多个差的平均值确定目标平移数据。
根据本申请一实施例,生成模块840还用于:基于源角色模型的根关节在世界坐标系下的源平移数据对目标平移数据做平滑处理得到平滑后的目标平移数据。
根据本申请一实施例,生成模块840用于:确定源平移数据与目标平移数据之间的第二映射参数;利用第二映射参数对目标平移数据做平滑处理得到平滑后的目标平移数据。
根据本申请一实施例,动画数据处理装置800还包括调整模块850,用于:利用反向运动学方法,基于第二位移轨迹调整第二旋转数据得到调整后的第二旋转数据,使得基于调整后的第二旋转数据和目标平移数据得到的目标角色模型的子关节在世界坐标系下的实际位移轨迹与第二位移轨迹之间的差距满足预设条件。
根据本申请一实施例,动画数据处理装置800还包括确定模块860,用于:确定源角色模型的第一静止姿势和目标角色模型的第二静止姿势之间的转换参数,其中,第二获取模块820用于:基于第一旋转数据和转换参数确定第二旋转数据。
根据本申请一实施例,第一获取模块810还用于确定源角色模型中骨骼链上的各个关节对应的第一数量。第二获取模块820还用于确定目标角色模型中骨骼链上的各个关节对应的第二数量。第二获取模块820用于:在第一数量与第二数量不等时,利用四元数插值算法,基于第一旋转数据、第一数量以及第二数量确定第二旋转数据。
根据本申请一实施例,源角色模型的子关节包括源角色模型中支撑源角色模型的子关节;目标角色模型的子关节包括目标角色模型中支撑目标角色模型的子关节。
应当理解,上述实施例中的第一获取模块810、第二获取模块820、计算模块830、生成模块840、调整模块850以及确定模块860的操作和功能可以参考上述图2或图7实施例中提供的动画数据处理方法中的描述,为了避免重复,在此不再赘述。
图9所示为本申请一示例性实施例提供的用于执行动画数据处理方法的电子设备900的框图。
参照图9,电子设备900包括处理组件910,其进一步包括一个或多个处理器,以及由存储器920所代表的存储器资源,用于存储可由处理组件910执行的指令,例如应用程序。存储器920中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件910被配置为执行指令,以执行上述动画数据处理方法。
电子设备900还可以包括一个电源组件被配置为执行电子设备900的电源管理,一个有线或无线网络接口被配置为将电子设备900连接到网络,和一个输入输出(I/O)接口。可以基于存储在存储器920的操作系统操作电子设备900,例如Windows ServerTM,Mac OSXTM,UnixTM,LinuxTM,FreeBSDTM或类似。
一种非临时性计算机可读存储介质,当存储介质中的指令由上述电子设备900的处理器执行时,使得上述电子设备900能够执行一种动画数据处理方法。
上述所有可选技术方案,可采用任意结合形成本申请的可选实施例,在此不再一一赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序校验码的介质。
需要说明的是,在本申请的描述中,术语“第一”、“第二”、“第三”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种动画数据处理方法,其特征在于,包括:
获取源角色模型在执行指定动作时所述源角色模型的子关节在世界坐标系下的第一位移轨迹,和所述源角色模型的子关节在执行预设动作时相对于所述源角色模型的根关节的第一相对位移轨迹,其中,所述源角色模型的子关节能相对所述源角色模型的根关节转动;
获取目标角色模型的子关节相对于所述目标角色模型的根关节的第二相对位移轨迹,其中,所述第二相对位移轨迹与所述预设动作对应,所述目标角色模型的子关节能相对所述目标角色模型的根关节转动;
根据所述第一相对位移轨迹和所述第二相对位移轨迹,计算所述源角色模型与所述目标角色模型之间的第一映射参数;
基于所述第一映射参数与所述第一位移轨迹,生成所述目标角色模型的目标平移数据,其中,所述目标平移数据用于表示所述目标角色模型的根关节在执行所述指定动作时的平移位置变化。
2.根据权利要求1所述的动画数据处理方法,其特征在于,所述预设动作与所述指定动作相同,其中,所述获取目标角色模型的子关节相对于所述目标角色模型的根关节的第二相对位移轨迹,包括:
基于所述源角色模型中骨骼链上的各个关节对应的第一旋转数据确定所述目标角色模型中骨骼链上的各个关节对应的第二旋转数据;
基于所述第二旋转数据中所述目标角色模型的根关节的旋转量以及所述目标角色模型的子关节的旋转量确定所述第二相对位移轨迹。
3.根据权利要求2所述的动画数据处理方法,其特征在于,所述基于所述第一映射参数与所述第一位移轨迹,生成所述目标角色模型的目标平移数据,包括:
基于所述第一映射参数与所述第一位移轨迹确定所述目标角色模型的子关节在所述世界坐标系下的第二位移轨迹;
基于所述第二位移轨迹与所述第二相对位移轨迹之差确定所述目标平移数据。
4.根据权利要求3所述的动画数据处理方法,其特征在于,所述目标角色模型的子关节的数量是多个,所述目标角色模型的每个子关节与一个第二位移轨迹对应,且与一个第二相对位移轨迹对应,其中,所述基于所述第二位移轨迹与所述第二相对位移轨迹之差确定所述目标平移数据,包括:
基于多个第二位移轨迹分别与多个第二相对位移轨迹的多个差的平均值确定所述目标平移数据。
5.根据权利要求1所述的动画数据处理方法,其特征在于,还包括:
基于所述源角色模型的根关节在所述世界坐标系下的源平移数据对所述目标平移数据做平滑处理得到平滑后的目标平移数据。
6.根据权利要求5所述的动画数据处理方法,其特征在于,所述基于所述源角色模型的根关节在所述世界坐标系下的源平移数据对所述目标平移数据做平滑处理得到平滑后的目标平移数据,包括:
确定所述源平移数据与所述目标平移数据之间的第二映射参数;
利用所述第二映射参数对所述目标平移数据做平滑处理得到所述平滑后的目标平移数据。
7.根据权利要求1至6中任一项所述的动画数据处理方法,其特征在于,所述源角色模型的子关节包括所述源角色模型中支撑所述源角色模型的子关节;所述目标角色模型的子关节包括所述目标角色模型中支撑所述目标角色模型的子关节。
8.一种动画数据处理装置,其特征在于,包括:
第一获取模块,用于获取源角色模型在执行指定动作时所述源角色模型的子关节在世界坐标系下的第一位移轨迹,和所述源角色模型的子关节在执行预设动作时相对于所述源角色模型的根关节的第一相对位移轨迹,其中,所述源角色模型的子关节能相对所述源角色模型的根关节转动;
第二获取模块,用于获取目标角色模型的子关节相对于所述目标角色模型的根关节的第二相对位移轨迹,其中,所述第二相对位移轨迹与所述预设动作对应,所述目标角色模型的子关节能相对所述目标角色模型的根关节转动;
计算模块,用于根据所述第一相对位移轨迹和所述第二相对位移轨迹,计算所述源角色模型与所述目标角色模型之间的第一映射参数;
生成模块,用于基于所述第一映射参数与所述第一位移轨迹,生成所述目标角色模型的目标平移数据,其中,所述目标平移数据用于表示所述目标角色模型的根关节在执行所述指定动作时的平移位置变化。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器,
其中,所述处理器用于执行上述权利要求1至7中任一项所述的动画数据处理方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1至7中任一项所述的动画数据处理方法。
CN202211449537.7A 2022-11-18 2022-11-18 动画数据处理方法、装置、电子设备及介质 Active CN115761074B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211449537.7A CN115761074B (zh) 2022-11-18 2022-11-18 动画数据处理方法、装置、电子设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211449537.7A CN115761074B (zh) 2022-11-18 2022-11-18 动画数据处理方法、装置、电子设备及介质

Publications (2)

Publication Number Publication Date
CN115761074A true CN115761074A (zh) 2023-03-07
CN115761074B CN115761074B (zh) 2023-05-12

Family

ID=85373606

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211449537.7A Active CN115761074B (zh) 2022-11-18 2022-11-18 动画数据处理方法、装置、电子设备及介质

Country Status (1)

Country Link
CN (1) CN115761074B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116805344A (zh) * 2023-06-21 2023-09-26 支付宝(杭州)信息技术有限公司 一种数字人动作重定向方法及装置
CN116805344B (zh) * 2023-06-21 2024-05-24 支付宝(杭州)信息技术有限公司 一种数字人动作重定向方法及装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107833271A (zh) * 2017-09-30 2018-03-23 中国科学院自动化研究所 一种基于Kinect的骨骼重定向方法及装置
CN111724459A (zh) * 2020-06-22 2020-09-29 合肥工业大学 一种面向异构人体骨骼的运动重定向的方法及系统
CN112669421A (zh) * 2020-12-31 2021-04-16 北京爱奇艺科技有限公司 模型穿模修正方法、装置、电子设备及存储介质
CN112686976A (zh) * 2020-12-31 2021-04-20 咪咕文化科技有限公司 骨骼动画数据的处理方法、装置及通信设备
CN113298917A (zh) * 2021-05-28 2021-08-24 上海曼恒数字技术股份有限公司 一种人形动画复用方法及系统
CN113706666A (zh) * 2021-08-11 2021-11-26 网易(杭州)网络有限公司 动画数据处理方法、非易失性存储介质及电子装置
CN113975802A (zh) * 2021-10-28 2022-01-28 网易(杭州)网络有限公司 游戏控制方法、装置、存储介质与电子设备
CN114283229A (zh) * 2021-11-19 2022-04-05 腾讯科技(深圳)有限公司 虚拟角色的行走动画生成方法、装置、设备及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107833271A (zh) * 2017-09-30 2018-03-23 中国科学院自动化研究所 一种基于Kinect的骨骼重定向方法及装置
CN111724459A (zh) * 2020-06-22 2020-09-29 合肥工业大学 一种面向异构人体骨骼的运动重定向的方法及系统
CN112669421A (zh) * 2020-12-31 2021-04-16 北京爱奇艺科技有限公司 模型穿模修正方法、装置、电子设备及存储介质
CN112686976A (zh) * 2020-12-31 2021-04-20 咪咕文化科技有限公司 骨骼动画数据的处理方法、装置及通信设备
CN113298917A (zh) * 2021-05-28 2021-08-24 上海曼恒数字技术股份有限公司 一种人形动画复用方法及系统
CN113706666A (zh) * 2021-08-11 2021-11-26 网易(杭州)网络有限公司 动画数据处理方法、非易失性存储介质及电子装置
CN113975802A (zh) * 2021-10-28 2022-01-28 网易(杭州)网络有限公司 游戏控制方法、装置、存储介质与电子设备
CN114283229A (zh) * 2021-11-19 2022-04-05 腾讯科技(深圳)有限公司 虚拟角色的行走动画生成方法、装置、设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116805344A (zh) * 2023-06-21 2023-09-26 支付宝(杭州)信息技术有限公司 一种数字人动作重定向方法及装置
CN116805344B (zh) * 2023-06-21 2024-05-24 支付宝(杭州)信息技术有限公司 一种数字人动作重定向方法及装置

Also Published As

Publication number Publication date
CN115761074B (zh) 2023-05-12

Similar Documents

Publication Publication Date Title
CN107833271B (zh) 一种基于Kinect的骨骼重定向方法及装置
CN101958007B (zh) 一种采用草绘的三维动画姿态建模方法
US9378589B2 (en) Apparatus and method for generating digital clone
JP2021525431A (ja) 画像処理方法及び装置、画像デバイス並びに記憶媒体
CN105654334B (zh) 虚拟试衣方法和系统
CA3111430A1 (en) Systems and methods for generating complementary data for visual display
CN107590708B (zh) 一种生成用户特定体形模型的方法和装置
CN108564643B (zh) 基于ue引擎的表演捕捉系统
WO2022143178A1 (zh) 一种运动重定向方法、装置、电子设备及存储介质
WO2008005946A2 (en) Capturing and rendering dynamic surface deformations in human motion
CN109509241B (zh) 角色动画中基于四元数的骨骼重定向方法
US10482647B2 (en) Computer-implemented method for simulating a body taking a posture
CN109741371B (zh) 一种基于惯性传感器的人体动作描述方法
WO2023185703A1 (zh) 虚拟角色的动作控制方法、装置、设备和存储介质
US20220139019A1 (en) Motion model refinement based on contact analysis and optimization
KR20230004837A (ko) 생성형 비선형 인간 형상 모형
US20220101603A1 (en) Body shape and pose estimation via volumetric regressor for raw three dimensional scan models
CN114270402A (zh) 用于构建三维扫描人体模型的方法和装置
CN115761074A (zh) 动画数据处理方法、装置、电子设备及介质
CN115601480A (zh) 虚拟对象驱动方法、装置、电子设备和存储介质
KR100319758B1 (ko) 보행 동작 변형 애니메이션 방법
KR101635684B1 (ko) 보행 동작 생성 및 제어 방법, 보행 컨트롤러
CN113362431A (zh) 数据的迁移方法及装置、电子设备、可读存储介质
de Aguiar et al. Rapid animation of laser-scanned humans
US20240127539A1 (en) Mechanical weight index maps for mesh rigging

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