刘德新
(中影动画产业有限公司,北京 101400)
谈到角色动画的数据不得不先来谈谈动画工业中角色动画的动作库。作为一部动画片或者动画电影在动作表演上的基础保障体系,动作库中存放了影片中所有角色的标准动作。比如站立、走路、跑步、跳跃、主要角色的标志性动作、不同情绪的表情、说话的口型等。动画师在工作时根据故事板的内容为动画角色调用相应的动画数据,对于表演性很强无法通过动作库来完成的肢体表演才会进行全新的制作。这样不仅可以提高工作效率,更大的优点在于能够更好地保持动画片中角色表演风格的一致性,这对大团队参与制作的动画片来说尤为重要。动画数据的获取有两种方式,一种是着重艺术表现的手工制作 (Keyframe),一种是使用效率优先的动作捕捉技术 (Motion Capture,Mocap),当然通过动作捕捉获得动画数据也会由动画师进行一定程度的调整以提高其艺术表现性。在同一软件中使用同一套绑定系统进行的动画数据导入,导出属于三维软件内置的基础功能。而在同一软件或者不同软件中,使用不同的骨骼系统或者绑定系统进行的动画数据转换属于间接转换。
动作捕捉系统是指利用外部设备对人体结构的运动进行数据记录和姿态还原的技术。动作捕捉系统包括硬件和软件两部分构成,硬件部分包括刚体标记点、采集设备、传输设备以及数据处理设备等,软件包括系统设置、空间标定、动作捕捉、数据处理以及3D 模型映射模型等功能模块。动作捕捉作为动画工业体系中一种重要的动画制作形式,具有动作表现自然细腻、生产效率高的技术特点,在特效电影、动画电影、虚拟现实、网络游戏等不同领域中得到广泛的使用。
惯性和光学两种动捕设备虽然基于不同的技术形式,但都为客户提供完整的解决方案 (图1)。惯性动作捕捉系统通过穿戴设备中集成了加速计、陀螺仪和磁力计等惯性传感器捕捉目标物体的运动数据,包括身体各部位的姿态和方位等信息,再将数据通过无线传输设备传输到处理设备中,将方位信息还原到动画角色关节上。光学动作捕捉系统通过在演员身上贴Marker点,利用多个高速摄影机从不同角度来捕捉Marker点的准确位移,将数据实时传输到数据处理工作站上,通过计算Marker点的空间坐标,使用三角测量原理将数据还原到动画角色的关节上。
图1 左图为惯性导航式动作捕捉系统,右图为光学式动作捕捉系统
为了能把动作捕捉数据赋予到三维动画角色上,需要事先在三维软件 (3DMax、Maya、Blender)中创建角色的简化版模型并进行基础的骨架蒙皮制作,获得一个可以用于接收捕捉数据的基础绑定文件(无控制器),同时简化的模型数据有利于提升运算效率。一般情况下,为了第一时间可以看到角色表演的效果,剧组都会倾向于选择在动作捕捉时将动捕数据连接到比如Motion Builder、UE上,从而得到动捕演员与动画角色的同步实时表演的效果。
在拍摄动作捕捉时现场导演和动作导演的工作尤为重要,拍摄前需要与动捕演员进行充分交流,使彼此在表演的效果上达成共识。在提高工作效率方面,需要事先对捕捉的动作列出清单,有清晰的拍摄思路,最好有参考视频,以帮助演员更准确地理解导演的意图。动作捕捉不仅可以捕捉单人的表演数据,也可以同时捕捉多人的表演数据,在动作捕捉时演员身着动作捕捉设备,在规定的场地范围内进行表演。在技术层面,动捕演员需要面对的主要问题是由于自身与三维角色身体比例上的差异造成的动作误差。此外不同难度的动作对数据的收集工作将产生非常明显的影响,比如演员匍匐或倒地时由于身体遮挡住了某些传感器,与站姿或坐姿的表演数据相比,质量上一般会存在较为明显的差异。为了确保在后续工作时数据更安全,复杂的动作会拍摄更多的次数,以得到多个相对满意的结果。很多情况下在拍摄动作捕捉时也需要考虑角色手中道具的运动数据和摄影机的运动数据,动作捕捉系统也可以通过技术手段同时记录下它们的运动数据。
作为不太被注意的一点,在电影电视中看到的动画角色,动作其实比真人的表演要更夸张,更具节奏感。通过动作捕捉技术所表现的动作风格,即便使用完美的动捕数据,其动画视觉感受与传统动画也有着明显的差异。造成这一现象的原因是现实中人类表演的动作无法达到动画理论追求的高度。再者,通过动作捕捉设备获取演员的运动数据,一般会通过动捕软件的计算系统进行一定程度的数据优化,以修复数据采集过程产生的抖动、脚步悬空、身体滑动以及滑步等技术问题。经此处理后的动作数据会更加稳定,但在某些动作的细节上可能会受到一定程度的弱化,导致前面提到的真人表演与动画理论间的“误差”进一步被拉大。如果影片的艺术风格偏向传统动画理论,对角色的精细表演、夸张表演、极限动作表演、极限速度表演有需求,或者单靠演员和动捕设备无法满足全部的表演需要时,必须由动画师参与进来,根据导演的指示进行二次的动画创作,或基于现有数据或完全手工制作。
以光学动作捕捉系统为例,演员身着带有Marker点的捕捉服,这些点在演员身上的排列遵循三角测量原理,可以将每三个在空间中的Marker点设置成一个三角平面,架构出身体不同的组成部分。如手部的三个Marker点可以安放在手背上的食指根部、小拇指根部和手腕处,这样就形成了一个三角形平面。动捕软件系统会记录每个被标注的三点平面,通过高速摄像头记录下演员在表演过程中Maker点移动的数据。Marker点的移动数据会反应到动画角色关节的旋转数据上,实现动画角色的表演。通过动作捕捉软件的录制功能,数据处理设备会记录下每一帧全身的Maker点的空间信息,最终每套动作都会作为一个独立而庞大的数据信息保存起来。
在光学动作捕捉技术中,数据记录的是Marker点在三维空间里位移的动画信息,支持FBX 文件格式。这些Marker点在不同的软件里显示的状态也不一样,比如在Motion Builder中显示为Marker点,在Maya中会转换成定位器来显示。惯性捕捉技术提供将动捕数据直接连接到Maya的数据接口,减少了数据转化的步骤。笔者并不倾向于直接使用实时技术记录的动作捕捉数据,因为实时数据并没有经过优化处理,属于一种“初级数据”。
常见的生产流程中,光学动作捕捉数据生产的文件一般会导入到类似Motion Builder这样的软件中以实现与动画角色的数据连接,使捕捉数据中的Maker点信息连接到此类型软件提供的Actor上(图2),以恢复真实世界中演员的表演。然后将Actor的表演连接到动画角色的骨骼蒙皮文件上,通过重定向 (Retargeting)技术可以将Marker点的运动数据尽可能精确地还原到不同比例,不同形象的动画角色骨架上,使得只需要少数动作演员参与即可完成整部电影的动作数据采集工作(图3)。
图2 左图为设置好的Marker点平面,右图为用于还原动捕数据的橡胶演员
图3 同一动作数据在不同角色身上的Retargeting
出于提高生产效率的考虑,尽量减少在不同软件间进行数据流转换也是一种重要的手段。坚持在Motion Builder制作最终动画效果也是一种典型的情况,这种做法实际上是将动捕和动画制作完全独立出来,更利于动画制作的管理。Motion Builder中提供了一套独立的动画控制系统,可以胜任动画电影大部分的制作要求。由于Motion Builder内部无法提供优质的材质、灯光和渲染方案,并且在整个动作捕捉过程中使用的模型精度都非常受限,导致动画文件并不能满足渲染需求,最终导致大部分的动画流程都在此时选择将动画数据输出为只保留骨骼动画信息的FBX 格式文件。
在大多数动画公司的制作流水线中,Maya仍然是角色动画师们的首选软件。其在绑定和动画方面的基础功能和插件工具方面表现得一直非常优秀,拥有着深厚的用户基础和技术积累。无论是基于提高动画表演考虑,还是为模型精度、材质、灯光、渲染,乃至文件装配等方面的考虑,它都是一个优质的选择。
为了能够提供更高质量的渲染效果,在Maya中将使用可以达到电影级别质感的高精度模型和材质。与之相对的,基础骨骼蒙皮的文件将被带有复杂功能的绑定文件代替。
对于次要角色或者群众角色,使用基础骨骼加高精度模型的搭配也是可以的。基础蒙皮绑定是为符合动作捕捉技术而制作的基础绑定系统,是为了能够继承动作捕捉数据的一种绑定文件。由于使用了相同的骨架,每节骨骼的名称都一一对应,为角色的基础绑定文件导入带有动作的FBX 数据,默认情况下动画软件会根据每个关节的名字将FBX 文件中的动画数据自动替换到角色的相应关节上。在这种绑定模式中,只能通过调整蒙皮骨骼旋转属性上的动画曲线来实现“适当”的动作调整或者强化。
此时,严格来说只是一套不完整的骨骼绑定文件,不具备标准意义上的控制系统,无法满足复杂的动画调整需要,也不符合动画师工作的技术标准。完整的角色绑定系统不仅带有骨骼和蒙皮模型,还带有正向运动学 (Forward kinematics,FK)控制系统和反向运动学 (Inverse kinematics,IK)控制系统,提供两种控制模式间的切换 (图4)。以动作捕捉骨骼的运动方式为例,它是典型的FK。比如动捕数据中双脚很容易发生滑步现象,或者站在地上不够稳,这时最好将双腿的FK 动画转换成IK 动画就可以消除上述不良现象了。动画师在工作中会按照动作需要在以上两种模式中选择合适的控制方式。为了让数据流转换后的动画角色在表演方面有更好的控制力,一个进阶的处理方式是将FBX 骨骼动画数据传递到完整的角色绑定系统的控制器上。
图4 用于动作捕捉的蒙皮骨骼,正向运动控制系统 (FK),反向运动控制系统 (IK)
在Maya中所谓FK/IK 切换,表示一段动作的一部分使用FK 来制作,一部分使用了IK,在整个过程中两种控制模式分别负责完成不同特点的动作。FK/IK 切换可以是全身,也可以是一只手臂或一条腿。传统意义上的切换控制模式需要花费10帧动画或者1帧动画两种。
在Motion Builder或者Maya的Human IK 中,提供了新的切换方式。它将角色IK 控制器系统中记录的每一帧动画数据转化到某种形式的变量中,再把这些变量转化为FK 控制器的动画曲线。以达到两种控制系统的动画完全一致的结果。反之亦然。
在Maya中提供的Human IK 系统,帮助用户完成从FBX 骨骼动画数据到角色绑定系统的数据流转换。此系统参考了很多Motion Builder的操作思路,可以将FBX 骨骼动画数据中的各个关节与角色绑定系统的FK 控制器逐个链接在一起,再将各FK控制器上的动画数据进行烘焙动画 (Bake Animation),从而实现到IK 控制器动画数据的转换。尽管表面上看其内容都可以归属到动画师的工作范围内,但是Maya系统内嵌的Human IK 系统在学习和使用上都与Maya有着明显的区别。实际工作中能同时擅长使用Motion Builder和Maya的动画师人数相对要少很多,Human IK 系统在Maya用户中的接受度也深受此影响。
随着使用Python语言的Maya用户不断增多,使用Python 语言来解决问题的情况也越来越普遍。2020年笔者参与了取材于抗美援朝英雄事迹的三维动画电影《最可爱的人》的绑定、动作捕捉、数据转换工作。基于在Maya绑定和动作捕捉中积累的工作经验,随着对Motion Builder和Human IK 工作原理逐步深入的理解,以及在工作中的不断摸索,笔者为项目组编写了一个基于Maya流程的动作捕捉数据流转换工具箱。其主要思路是逐帧提取IK 控制系统中骨骼的旋转信息,逐帧赋予到FK控制器的旋转属性上。反之,逐帧提取FK 系统的骨骼的空间位置信息,逐帧赋予到IK 控制器的移动属性上。它对以上介绍的动作捕捉数据流转中的各个技术点进行了详细的拆分和重新的组合(图5)。
图5 动作捕捉数据传递到FK 控制器示例,以及笔者编写的数据流转换工具箱
如图5所示,左侧为动作捕捉的原始文件,可以看出角色的头上和身上缺失了很多道具模型,右侧为使用了Advanced Skeleton角色绑定系统的标准绑定文件,不仅身体有控制器,帽子、腰带、子弹袋都添加了绑定控制。工作中,动画师只需要点击工具箱中MoCap To Adv的按钮,就可以完成动作捕捉的骨骼动画数据转化为角色绑定的控制器动画的工作。参考以往合作项目中提供的技术经验和Human IK 的计算形式,为角色添加了手臂和腿部FK/IK 无缝切换功能。节省了整个团队需要花费的学习时间,减少了工作步骤,进而提高动画师整体的工作效率,降低项目执行成本(图6)。
图6 动捕数据,角色绑定文件,传递动捕数据后的FK 系统,转化后的IK 系统 (非同一动作截图)
动画行业技术发展从未停止过。对此笔者有这样的体会:一方面软件功能的更新,更多的是受到软件厂商自身技术发展规划的影响,不同软件间的技术倾向愈发明显。另一方面动画制作流程的优化,更多是受到动画制作公司对自身生产流程不断完善的影响,很多改善流程提高工作效率的脚本或者工具大多出自动画制作公司。在不同的三维软件中角色动画数据的转换原理和操作步骤基本是同样“繁琐”的,区别在于如何更好地优化工作流程,减少手工操作。
开源软件Blender受益于Blender基金会的成功运营,大批科技公司参与到Blender的开发当中来,比如AMD、NVIDIA、Facebook、微软、育碧UBISOFT、Epic Game、unity、Google、Adobe等。
2021年7月,Adobe与著名的角色动画数据下载网站Mixamo合作,发布了一款基于Mixamo动画数据的、在Blender中使用的自动绑定插件Mixamo Auto-Control Rig,实现了在Blender内为骨骼动画数据创建完整控制系统的功能。本次Adobe提供的自动绑定插件基于Mixamo的骨骼规范,基本思路类似于将Mixamo提供的带有动画信息的骨骼数据读入到Blender后,将骨骼上已经存在的动画关键帧提取并存储为某种形式的变量信息,然后使用Blender提供的绑定程序为该骨骼创建完整的绑定控制系统,最后把存储在变量中的动画关键帧数据赋给相应的控制器。相比前文提到的使用Maya时的数据流转换过程有了新的优化思路,在此流程中不再需要分别准备绑定文件和动捕骨骼的动画数据,而是将动画骨骼数据直接转换成完整角色绑定系统。
此外,定位为万能角色动画资源库和动画效率软件的Animcraft是角色动画数据转换领域的佼佼者。其不仅提供大量优质的动作素材库,还可以通过软件内置的重定向功能轻松实现二足、四足、表情资源,在不同的骨骼、绑定、身材、软件间,按照关键帧或者控制器精准互传,让动画数据与角色数据在各种软件之间顺畅分享,灵活转换。
随着动画行业的不断发展,动画数据与角色数据在各种软件之间顺畅分享成为现实,在优化工作流程、提高工作效率、降低制作成本方面都会带来积极的影响。在此,不仅希望有更多的朋友能对动画行业感兴趣,也希望有更多有志之士能参与到中国动画工业的发展当中来,为改善技术和优化生产集思广益,以实现更多的自动化为目标,共同促进中国动画的发展。