三维角色运动重定向研究综述
2024-06-17刘春林张燕
刘春林 张燕
摘 要:
在计算机图形学中,角色运动重定向技术对于骨骼动画的广泛应用具有重要意义。为了便于人们了解已有的三维角色运动重定向研究成果并引发进一步的研究,文章首先简要介绍了骨骼动画技术与运动重定向;其次回顾了已有的运动重定向技术,并将其归纳为3类方法,通过对每一类方法进行分析,得出了现有研究在非人形角色和拓扑异构角色之间的运动重定向还很薄弱的结论;最后针对目前研究中存在的问题,展望了未来研究工作的主要方向。
关键词:三维角色;骨骼动画;运动重定向
中图分类号:TP391 文献标志码:A
0 引言(Introduction)
骨骼动画是应用最广泛的角色动画表示方式,在视频游戏、虚拟现实及动画电影等作品中都有广泛应用。但是,骨骼动画的动作与骨架具有强耦合关系,一个动作通常只能在一个骨架上播放,导致许多重复的动画制作劳动,而运动重定向(Motion Retargeting)则可以很好地解决这一问题。运动重定向是一种将骨骼动画从原骨架迁移到另一个不同骨架的技术。为了驱动不同的角色,设计人员常常需要构建各部分比例不同的骨骼,有时甚至是拓扑结构也不同的骨骼。运动重定向是计算机图形学中一个重要的研究课题,目前已经取得了丰硕的成果,但仍然存在许多问题尚待解决。为了便于人们了解该领域已有的研究成果并引发进一步的研究,本文总结了主要的角色运动重定向研究成果,并分析了现有研究存在的问题,提出了未来的研究方向。
1 骨骼动画(Skeletal animation)
在现有的文献中,骨骼动画技术最早可追溯到Magnenat\|Thalmann等在1989年的一项研究。该技术通过将三维模型表面网格的顶点关联到骨架结构,借助骨架的运动驱动网格的变形,从而实现模型的动画效果。一个带骨骼的动画角色模型至少包括3个要素(图1):(1)表示角色形状的表面网格(Mesh);(2)骨架(Skeleton)以及表示骨架和表面网格顶点关联信息的蒙皮(Skin);(3)基于骨架的运动序列(Motion),其中,骨架的运动序列即骨骼动画。
骨架由模型中的一系列关节组成,这些关节相互连接形成一棵树,树的节点即关节,树的边即骨骼,树的根节点即根关节,一般取靠近角色中心的关节作为根关节。骨架的每个关节具有位置、朝向和缩放等几何属性,所以它定义了一个局部坐标系。除根关节外,其他关节定义在其父关节的局部坐标系中,会随着其父关节的运动而运动。一个关节的全局位置和朝向是由其自身的局部位置和朝向及其所有祖先关节的局部位置和朝向共同决定的,由一个关节及其所有祖先关节的局部位置和朝向计算其全局位置和朝向的过程即正向运动学(Forward Kinematics);反之,由一个关节的全局位置决定其自身及其所有祖先关节的局部位置和朝向的过程即反向运动学(Inverse Forward Kinematics)。
骨骼模型中,骨架是不可见的,可见的部分是皮肤。皮肤与普通网格模型的区别在于它需要随着骨架的关节运动而运动,所以需要与骨架的关节建立关联关系,这是通过皮肤的顶点实现的。皮肤的顶点除了具有位置、法线、纹理坐标等普通网格模型的顶点具有的属性,还需要存储与其关联的关节及关联的权重。与一个顶点关联的关节可以不止一个,但与所有关联关节的关联权重之和为1。为网格模型的所有顶点指定关联关节和关联权重的过程即蒙皮(Skinning),在三维建模软件中有专门的工具完成此过程。
2 运动重定向(Motion retargeting)
将运动重定向技术按照源动画和目标动画表演者之间的差异分为以下3类:拓扑相同运动重定向、拓扑异构运动重定向、计算机木偶动画。
2.1 拓扑相同运动重定向
拓扑相同运动重定向是针对骨架拓扑结构相同但各部分比例可能不同的角色间的运动重定向。由于拓扑结构相同,所以此类方法隐含的假设源骨架中每个关节到目标骨架中每个关节的一一对应关系是已知的,从而源骨架每个关节的动画轨迹可以直接拷贝到目标骨架对应的关节,它们要解决的主要问题是由骨架各部分大小比例的不同导致的动画变形失真。
1998年,GLEICHER[2]在其开创性研究中提出了运动重定向问题,并且将此问题形式转换为一个带时空约束的优化问题,寻求一个满足约束条件的最优目标动画:
minimize g(x) subject to f(x)=c
其中:g(x)代表优化的目标函数,表示源动作和目标动作之间的距离;g(x)=∫t〖DD)〗(]m(t)-m0(t)[JB>2)]2=∫t[DD)]b(t,x)2,m是目标动作,m0是源动作,b(t,x)是三次B样条函数,x是控制点,以三次B样条曲线参数化源动作和目标动作之间的差距,目的是使目标动作更平滑;f(x)=c代表时空约束。此方法中,主要使用时空约束表达对目标动画的要求,保留源动画中的一些重要特性。罗忠祥等[3]对时空约束优化方法开展了进一步的研究,并将其应用到对运动捕获数据的编辑和重定向中。
CHOI等[4]提出一种基于逆向运动学(Inverse Kinematics,IK)的运动重定向方法,该方法利用雅可比矩阵的零空间同时实现末端效应器的轨迹跟踪和整个骨架对源动画的模拟。徐少帅[5]对基于IK的运动重定向方法开展了进一步的研究,重点解决运动与地形出现的交互问题。
HUANG等[6]认为角色关节的参数是根据姿态动态变化的,不能通过预先设定的值准确表达。他们提出一种方法,即从一组动画片段中提取每个姿态下的关节参数,并将它们按照对应姿态下末端效应器的位置存储到一棵八叉树中。这些参数在后续的IK过程中会被用到。动画重定位包括以下4个步骤。
(1)对末端效应器轨迹中的每个位置,从八叉树中取出相应的关节参数,然后运行一个IK解算目标骨骼的姿态,所有的IK是并行运行的。
(2)运行一遍时间对齐滤波平滑动画。
(3)与第一个步骤类似,但是IK的开始姿态是前一步计算出的姿态。
(4)再运行一次滤波平滑动画。
JIN等[7]提出一种用于多角色交互动画的运动重定向方法,该方法主要关注多角色交互动画中角色间相互接触位置关系的保留;他们提出了“氛围网格(Aura Mesh)”的概念,这是一种围绕在角色周围,占据角色交互空间的四面体表面网格(Tetrahedral Mesh)。角色交互动画中氛围网格的碰撞点被当成是交互位置关系记录下来,并且作为一种约束用在后面的运动重定向中。
VILLEGAS等[8]开创性地提出了一种基于深度学习的运动重定向方法。他们使用一个编码RNN(Recurrent Neural Networks)捕捉输入动画中的高层次属性,并将其转换为一种隐式编码,然后用一个解码RNN进行解码,进而得到与目标骨骼适配的新动画。该网络采用无监督学习方式进行训练,其损失函数中,除了通常的正则化项,还包括对抗训练损失和循环一致性损失。对抗训练损失用于最小化重定向动画的关节运动速度与源动画的关节运动速度之间的差异;循环一致性损失用于确保重定向动画与源动画尽可能相似,它能够确保A角色的动画重定向到B角色再重定向回来,使得到的动画和原动画尽可能地接近(图2)。
LIM等[9]提出的方法和VILLEGAS等[8]提出的方法具有一定的相似性,但也有两个差异:一是在每一个时间步中根骨骼的动画被单独进行重定向,再与其他部分合并;二是循环一致性损失被替换成重定向到自身产生的重构损失。
KIM等[10]坚持认为CNN(Convolution Neural Networks)比RNN更适合运动重定向任务,因为它能更好地捕获动作的短期依赖,而这种依赖极大地影响了任务的表现。所以,他们的方案依赖于一个具有时间空洞卷积的纯卷积网络,该网络在一个批次中重定向整个运动序列。
UK等[11]提出的运动重定向方法基于一个深度变分自动编码器。这个自动编码器结合了深度卷积逆向图网络(DC\|IGN)和U\|Net。其中,DC\|IGN用于分解身体各部分的运动,而U\|Net用于保留原始运动的细节。
ABERMAN等[12]提出了一种深度学习的方法,可以在拓扑结构不同但同胚的骨架间进行运动重定向。他们提出了一种骨骼池化算子,可以在基于骨架的图卷积网络中将骨架简化成原始骨架(Primal Skeleton),再通过卷积与反池化将原始骨架变为另一骨架,从而实现动画的迁移(图3)。该方法同样通过循环一致性检验和对抗训练实现无监督学习。此方法较好地解决了同胚的骨架间的运动重定向,但是对于拓扑不同的每一对骨架都需要训练一个专门的网络。
保留肢体运动中与自身的接触关系并防止肢体与身体其他部位相互穿透是运动重定向中的一大难题。VILLEGAS等[13]提出了一种基于隐空间优化的运动重定向方法解决以上问题。ZHANG等[14]提出的方法基于一个残差网络,其中包括一个骨架感知模块用于保留源动画的语义,一个形状感知模块用于保留自身接触和减少肢体与身体其他部位相互穿透。
2.2 拓扑异构运动重定向
拓扑异构运动重定向能够将运动重定向到拓扑结构不同的角色上,但是大多数方法都需要用户指定骨架各部分的语义或者手动建立源骨架和目标骨架的对应关系。
MONZANI等[15]提出了一种使用中间骨架和IK的运动重定向方法。中间骨架通过用户手动制定的源骨架和目标骨架的对应关系建立。源骨架的运动数据通过中间骨架重定向到目标骨架上,然后用IK强制一些约束条件。此方法不是全自动的,源骨架和目标骨架的对应关系需要用户手动制定。谢文军等[16]提出一种面向两足和四足角色的分层骨架匹配方法,实现了源骨架和中间骨架的自动匹配。该方法通过分析多种几何、拓扑参数,评估骨架关节的重要性和可区分度,从而将骨架关节分为3个层次,然后对每个层次的节点选取合适的参数组合,并结合中间骨架所提供的语义信息匹配各层节点。
KULPA等[17]提出了一种与角色形态无关的动作表示方式。他们使用归一化骨架和动作约束来存储动作。归一化骨架可将动作姿态表示为与身体尺寸和比例无关的形式,动作约束用来表示动作的内在约束,比如脚与地面接触的约束。他们将这种动作表示方式用于动作重定向。首先使用一种半自动的方式将角色动画转换为上述动作表示方式;其次在运行时实时地将这种与形态无关的动作数据适配到目标角色上。这种方法只适用于骨骼各部分语义明确的人形角色。
BACIU等[18]在研究的运动重定向方法中提出了一种叫作运动控制网络(Motion Control Net, MCN)的数据结构。对于每一对源骨架和目标骨架,用户需要手动为它们建立一个运动控制网络,并在其中定义源骨架到目标骨架的关节对应关系。该方法首先将源动画数据转换为控制网格角度的形式,其次通过运动控制网络将其映射到目标骨骼,最后将目标骨骼上的控制网格角度转换为动画数据。由于需要用户手动建立运动控制网格,所以此方法不是全自动的。
HECKER等[19]发明了一种方法,将角色运动记录成一种和形态无关的形式,这种形式的动画可以在由研究人员提供的编辑器里创建出的角色上播放,这些角色可以具有非常丰富的形态。他们在一款叫“孢子”的游戏中成功应用了这种技术。但是,应用这种技术的角色运动和角色都只能在编辑器里按照特定的规则创建,并不能将动作重定向到通常的骨骼模型上。
骨架自动映射是拓扑异构角色间运动重定向的难点,BHARAJ等[20]提出了一种骨架自动映射的方法。该方法将源骨架和目标骨架各自分解成一组从叶关节到根关节的关节链。将源骨架的每一条关节链与目标骨架的所有关节链匹配,并选择匹配代价最小的关节链作为最终匹配。该方法没有使用骨架的蒙皮网格信息,并且无法确保满足对称匹配约束和体系结构匹配约束,当两个骨架姿态不同或拓扑差异较大时,容易导致不恰当的匹配。
FENG等[21]提出了一种人形角色的动作重定向方法。首先,研究人员使用一组启发式的方法根据关节名字建立源关节和目标关节的对应关系。其次,根据这种对应关系对齐目标骨架和源骨架的T\|pose以及目标关节与源关节的局部坐标系,再将每个关节的动画参数直接拷贝到目标关节。最后,使用IK强制一些约束被遵守,比如脚步触地约束。唐琛[22]对上述方法进行了进一步的研究,使用了不同的关节映射方法。
ABDUL\|MASSIH等[23]提出了一种角色运动风格重定位的方法。该方法需要用户手动在每个骨架上定义一些代表身体部位的关节组,称为身体部位组(GBP),并且要指定源骨架和目标骨架的身体部位组的对应关系。源部位组上的属性通过此对应关系传送到对应的目标部位组上,并且作为约束加入对目标动画的一个优化过程中,从而得到最终风格化的运动。但是,此方法也不是全自动的。
2.3 计算机木偶动画
计算机木偶动画(Computer Puppetry)通过动作捕捉系统将真实表演者的动作实时映射到计算机虚拟角色上,这是一种特殊的运动重定向。
SHIN等[24]提出了一种方法将表演者的动画实时映射到虚拟卡通角色上。该方法采用了一种末端效应器动态重要性的概念,根据末端效应器和周围环境的距离计算每一帧的重要性程度,从而决定表演者动作的哪些方面应该被保留到结果动作中。末端效应器的位置及其重要性作为参数,被用在一个混合的IK解析器中得出最终的角色姿态。该方法能将动画重定向到拓扑结构相同但身体各部分比例不同的虚拟角色上。
DONTCHEVA等[25]开发的系统通过一个动画道具的运动合成虚拟角色的动作。该系统介绍了一种方法可以推断动画道具的运动和虚拟角色动作之间的隐含关系,该方法使用CCA(Canonical Correlation Analysis)分析一个角色的动作和模拟这个角色动作某些方面的道具运动,从而建立这个道具运动和对应角色动作之间一些特征的线性映射关系。使用此映射关系,用户就可以通过道具的运动改变角色的动作。
YAMANE等[26]推出了一种方法用来将人类表演者的动作重定向到非人形虚拟角色上。该方法使用动捕标记的位置作为输入,虚拟角色的每个骨骼也由骨骼上设定的3个虚拟标记的位置代表。该方法采用共享高斯过程潜变量模型(Shared Gaussian Process Latent Variable Models,Shared GPLVM)的统计模型将表演者的姿态映射到虚拟角色姿态。该模型使用一小组关键姿态对训练而成,每个姿态对包括一个表演者姿态和一个相应的虚拟角色姿态。该方法还包括一个基于物理的优化过程,用以改善目标动作的物理真实感。
SEOL等[27]也提出了一种非人形角色的木偶动画。研究人员使用两种方法将表演者的姿态转换为目标角色的姿态。第一种方法是直接特性映射,即直接将输入姿态参数线性映射到输出姿态参数;第二种方法是基于SVM的姿态归类,即将输入姿态匹配到一个训练时给定的目标姿态。这两种方法都是预先通过一些相互匹配的动作对训练而成的,它们的输出经过混合后得到最终的目标姿态。该方法的输入为表演者身上的15个点,输出为虚拟角色上的一组控制把手。
MOLLA等[28]提出的方法可以将表演者的动作映射到人形虚拟角色上。该方法主要关注源动作在重定向过程中身体自身接触关系和身体部位空间次序的保留,它利用姿势的自我中心表示,将每个肢体关节位置表示为相对于其他身体部位的相对向量的加权和(自我中心坐标),并定义每对身体部位之间的分离平面(自我中心平面)。该方法需要用户手动在表演者和虚拟角色上标记一些对应点。
3 研究展望(Research prospect)
经过多年的研究,运动重定向技术在某些特定的情景下获得了比较好的效果,但仍然存在许多问题。一方面,大多数研究都将人形角色或拓扑相同的角色作为主要研究对象,也取得了很多成果。人形角色基本实现了自动化、高质量的运动重定向[13\|14];另一方面,对非人形角色及拓扑异构的角色间的运动重定向的研究很少,并且都没能实现自动化[15,17\|18]。一方面是因为非人形角色的形态千变万化,骨骼语义和关节参数很难获取;另一方面是因为拓扑异构的骨架间关节的映射关系很难自动建立,有时甚至手动建立关联也很困难。
最新的研究大多采用基于深度学习的方法。这些方法通过学习大量的动作,获取动作与骨骼无关的高级特征,这些特征可以指导如何把动作从一个骨架迁移到另一个骨架。相比于传统方法,深度学习的方法得到的重定向动画更自然和平滑,缺点是需要大量的数据训练模型,而且训练时间很长。此外,由于神经网络通常具有固定的结构,它在处理具有复杂结构且大小可变的骨架和动作数据时,常常非常困难。所以,目前的方法对可重定向动作的骨架具有严格的要求,大多数要求具有相同的拓扑结构或者要求拓扑同胚,而且对于每一个不同的骨架,都需要训练一个专门的网络进行动作重定向,在多数应用场景下都是难以接受的。
未来的研究应该着重于非人形角色和拓扑异构的角色间的运动重定向,特别是拓扑异构的骨架间关联关系的建立,这是一个具有挑战性的研究课题。为了克服深度神经网络与骨架拓扑的强耦合关系,可将传统的方法比如基于优化的方法和反向运动学方法等结合应用。
4 结论(Conclusion)
角色运动重定向是计算机图形学中的一个重要研究课题。本文回顾了目前出现的主要运动重定向技术,归纳出拓扑相同运动重定向、拓扑异构运动重定向和计算机木偶动画3类方法,分析了每一类方法的优势与不足,并对当前的研究难点和未来的研究方向进行了阐述,希望能够为三维角色运动重定向研究领域构建一个较为完整的全景图,以便为相关研究人员提供参考和借鉴。
参考文献(References)
[1] 陆劲挺. 类人角色的多源运动重定向[D]. 合肥:合肥工业大学,2014.
[2] GLEICHER M. Retargetting motion to new characters[C]∥ACM SIGGRAPH. Proceedings of the 25th annual conference on Computer graphics and interactive techniques. New York:ACM Press,1998:33\|42.
[3] 罗忠祥,庄越挺,刘丰,等. 基于时空约束的运动编辑和运动重定向[J]. 计算机辅助设计与图形学学报,2002,14(12):1146\|1151.
[4] CHOI K J,KO H S. On\|line motion retargetting[C]∥IEEE. Proceedings of the IEEE:Seventh Pacific Conference on Computer Graphics and Applications. Piscataway:IEEE,1999:32\|42.
[5] 徐少帅. 基于反向运动学的运动重定向研究[D]. 大连:大连理工大学,2018.
[6] HUANG J,FRATARCANGELI M,DING Y,et al. Inverse kinematics using dynamic joint parameters:inverse kinematics animation synthesis learnt from sub\|divided motion micro\|segments[J]. The visual computer,2017,33(12):1541\|1553.
[7] JIN T,KIM M,LEE S H. Aura mesh:motion retargeting to preserve the spatial relationships between skinned characters[J]. Computer graphics forum,2018,37(2):311\|320.
[8] VILLEGAS R,YANG J M,CEYLAN D,et al. Neural kinematic networks for unsupervised motion retargetting[C]∥IEEE. Proceedings of the IEEE:2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Piscataway:IEEE,2018:8639\|8648.
[9] LIM J,CHANG H J,CHOI Y C. PMnet:learning of disentangled pose and movement for unsupervised motion retargeting[C]∥British Machine Vision Association. British Machine Vision Conference. Cardiff,United Kingdom:BMVA,2019:196.
[10] KIM S,PARK I,KWON S,et al. Motion retargetting based on dilated convolutions and skeleton\|specific Loss functions[J]. Computer graphics forum,2020,39(2):497\|507.
[11] UK KIM S,JANG H,KIM J. A variational U\|Net for motion retargeting[J]. Computer animation and virtual worlds,2020,31(4\|5):e1947.
[12] ABERMAN K,LI P Z,LISCHINSKI D,et al. Skeleton\|aware networks for deep motion retargeting[J]. ACM transactions on graphics,2020,39(4):62.
[13] VILLEGAS R,CEYLAN D,HERTZMANN A,et al. Contact\|aware retargeting of skinned motion[C]∥IEEE. Proceedings of the IEEE:2021 IEEE/CVF International Conference on Computer Vision (ICCV). New York:IEEE,2021:9700\|9709.
[14] ZHANG J X,WENG J W,KANG D,et al. Skinned motion retargeting with residual perception of motion semantics & geometry[C]∥IEEE. Proceedings of the IEEE. 2023 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). New York:IEEE,2023:13864\|13872.
[15] MONZANI J S,BAERLOCHER P,BOULIC R,et al. Using an intermediate skeleton and inverse kinematics for motion retargeting[J]. Computer graphics forum,2000,19(3):11\|19.
[16] 谢文军,陆劲挺,刘晓平. 语义中间骨架驱动的自动异构运动重定向[J]. 计算机辅助设计与图形学学报,2016,28(5):750\|762.
[17] KULPA R,MULTON F,ARNALDI B. Morphology\|independent representation of motions for interactive human\|like animation[J]. Computer graphics forum,2005,24(3):343\|351.
[18] BACIU G,IU B K C. Motion retargeting in the presence of topological variations:research articles[J]. Computer animation and virtual worlds,2006,17(1):41\|57.
[19] HECKER C,RAABE B,ENSLOW R W,et al. Real\|time motion retargeting to highly varied user\|created morphologies[J]. ACM transactions on graphics,2008,27(3):1\|11.
[20] BHARAJ G,THORMHLEN T,SEIDEL H P,et al. Automatically rigging multi\|component characters[J]. Computer graphics forum,2012,31(2pt4):755\|764.
[21] FENG A,HUANG Y Z,XU Y Y,et al. Fast,automatic character animation pipelines[J]. Computer animation and virtual worlds,2014,25(1):3\|16.
[22] 唐琛. 三维角色动画中运动重定向技术的研究与实现[D]. 成都:电子科技大学,2013.
[23] ABDUL\|MASSIH M,YOO I,BENES B. Motion style retargeting to characters with different morphologies[J]. Computer graphics forum,2017,36(6):86\|99.
[24] SHIN H J,LEE J,SHIN S Y,et al. Computer puppetry:an importance\|based approach[J]. ACM transactions on graphics,200120(2):67\|94.
[25] DONTCHEVA M,YNGVE G,POPOVIC[DD(-1]'[DD)] Z. Layered acting for character animation[J]. ACM transactions on graphics,2003,22(3):409\|416.
[26] YAMANE K,ARIKI Y,HODGINS J. Animating non\|humanoid characters with human motion data[C]∥ACM. SIGGRAPH. Proceedings of the 2010 ACM SIGGRAPH/Eurographics Symposium on Computer Animation. New York,USA:ACM Press,2010:169\|178.
[27] SEOL Y,O′SULLIVAN C,LEE J. Creature features:online motion puppetry for non\|human characters[C]∥ACM SIGGRAPH. Proceedings of the 12th ACM SIGGRAPH/Eurographics Symposium on Computer Animation\|SCA′13. New York:ACM,2013:213\|221.
[28] MOLLA E,DEBARBA H G,BOULIC R. Egocentric mapping of body surface constraints[J]. IEEE transactions on visualization and computer graphics,2018,24(7):2089\|2102.
作者简介:
刘春林(1981\|),男,硕士,软件工程师。研究领域:计算机图形学,游戏开发。
张 燕(1968\|),女,博士,教授。研究领域:计算机图形学,人工智能。本文通信作者。