王天翼
(上海大学上海电影学院,上海 200072)
从电影诞生不久,电影工作者就开始不断探寻将现实生活中不该存在的角色、场景在影片中的实现。1900年诞生的影片 《The Enchanted Drawing》依靠停机再拍技术,将卡通动画人物的面容与真人实拍的场景结合在一起。早期的玻璃绘景技术,也在《摩登时代》《人猿星球》等影片中大量应用,将一些危险的、难以通过置景实现的场景以“虚拟”的形式叠加在画面上,让观众在观影过程中身临其境。在系列电影 《星球大战》中,R2-D2、C-3PO、丘巴卡等一众机器人角色、外星角色也都是依靠真人扮演、大型器械等方式在银幕上进行表演。
随着数字技术在电影制作中的应用越发成熟,以及电影虚拟化制作的日益发展,越来越多的视觉特效大片惊艳了观众。同样是 《星球大战》系列电影,1999年上映的《星球大战前传1:幽灵的威胁》中,由计算机生成的外星角色加·加·宾克斯让观众感受到了虚拟角色的魅力。《指环王》系列、《金刚》《猩球崛起》系列、《阿凡达》《阿丽塔:战斗天使》等影片的出现,使得虚拟角色、虚拟场景在电影中的融合越发自然,观众可以在大银幕上看到阿丽塔的一颦一笑,也可以体验潘多拉星球美丽而奇幻的外星风貌。这些效果在数字电影发展早期的拍摄现场是无法实时看到的,在片场的导演、摄影师、演员往往只能面对穿着奇怪的动捕演员以及充斥着绿色或蓝色的虚拟拍摄空间进行工作。较为接近于成片的效果需要在后期制作合成之后才可以看到。这种工作流程就会导致一旦出现了因现场拍摄不当而造成的错误,后期弥补起来将会费时费力。
实时虚拟预演技术就是在解决了获取摄影机空间位置和元数据,获取真实演员的动作表情,获取高精度数字资产并实现实时渲染,实现真实演员和虚拟角色、虚拟物体的互动等技术问题之后,使得影片主创团队在拍摄现场对于特效拍摄的可视化的需求变为可能,扩展了导演、摄影等电影主创团队的创作空间,也为演员的虚拟无实物表演提供了更真实的依据。
本文将对于实时虚拟预演需要解决的技术问题进行梳理,并利用现有虚拟拍摄系统、动作捕捉系统、实时渲染系统、实时合成系统以及相关第三方插件提出一套在电影生产过程中可以应用并且更加完善的虚拟实时预演系统,从而达到提高工作效率,降低拍摄成本和影片拍摄风险的目的。
预演技术是指在电影正式拍摄前对影片中的某些或全部的镜头进行可视化呈现的技术,这项技术可以帮助整个团队对剧情内容有一个整体的认知,预演技术的出现可以节省影片的制作时间、减少制作成本。早期的预演技术是以故事板的形式出现的,随着计算机技术的发展,动画预演技术因为有更直观的表现而被广泛使用。根据其在影片制作阶段和作用的不同可以分成投资预演、资产设计预演、现场预演、技术预演和后期预演五类。
实时虚拟预演技术属于现场预演的一种,是为了解决对虚拟场景进行实时修改、真人角色与虚拟环境互动等问题而产生的。在拍摄现场可以实时看到由演员驱动的虚拟角色与虚拟场景、虚拟物体、虚拟角色、虚拟摄影机发生的互动关系。虚拟实时预演技术的诞生不仅架起了真实演员与虚拟环境之间的桥梁,更打破了以往影片拍摄的线性工作流程,给制作团队带来了更高的效率。
为了实现上述功能,作为一套实时虚拟预演系统,它需要解决角色动作、表情信息捕获、数字资产、数字场景建立、摄影机空间位置及元数据传递至虚拟摄影机以及实时渲染等技术问题。
在电影中,故事呈现的主要载体就是演员的表演。影片一旦涉及到虚拟角色,将真实演员的走位、动作、甚至面部细微表情捕获并转嫁到虚拟角色身上的效果,会直接影响影片的最终呈现质量。影片《阿丽塔:战斗天使》成功的原因之一,就是将真实演员的表演细致入微地在虚拟角色阿丽塔身上再现。对于动捕演员运动表演的获取,需要分为面部表情捕捉和动作捕捉两个部分。
2.1.1 面部表情捕捉
表情捕捉技术可以分为基于标记点的面部表情捕捉和无标记点的面部表情捕捉。
基于标记点的面部表情捕捉通过在面部表面绘制或粘贴的标记点进行跟踪,从而模拟面部肌肉运动方式,实现表情捕捉。这种面捕在算法上已发展得比较成熟,标记点数量由配套使用的设备及系统决定(如图1所示)。面部标记数量最多可能达到350个,需要与高分辨率相机等设备配合使用,这种面部表情捕捉方式对表情具有较大的束缚性,标示点容易脱落或损坏,在一定程度上也会影响表演者的表演,降低了表演者对模型表情的精细化控制。2009年,电影《阿凡达》引入了头戴式面部捕捉设备,这种设备可以与动作捕捉系统配合使用,演员的表演过程连贯不受影响。基于标记点的面部捕捉目前已经拥有了比较成熟的商业捕捉系统,传统的Vicon有标记点式面部系统可以跟踪79个特征点实现角色面部的重构、跟踪。
图1 基于标记点的面部表情捕捉
无标记点的面部表情捕捉根据计算机图形学,分析鼻孔、眼角、唇部等面部有标志性的部位,确定脸部的表情和运动状况,同时,无标记点面部动作捕捉系统也能追踪人的眼皮、牙齿咬合等细节,帮助完成动画合成。有些时候,需要对采集到的面部图像进行人工处理,如对极限表情进行面部勾线等,帮助进一步提高面部表情捕捉准确度。目前在用的无标记点商用面部动作捕捉系统有MOVA、Dynamixyz、Faceware等,包括有标记点跟踪厂商Vicon也推出了基于无标记点的面捕产品。不过使用何种设备通常由使用场景决定,有无标记点与使用何种设备之间没有必然联系。如无标记点的Faceware 的面部动作捕捉系统使用的是头盔式单相机;同样是无标记点的MOVA 系统却需要预先在演员面部涂抹特殊的荧光涂料,这在一定程度上,也失去了无标记点面捕系统高效、不影响表演的特点。
从精度上说,有标记点式面部捕捉要优于无标记点的面部捕捉系统。但受制于标记点对演员的表演的影响,越来越多的电影制作流程选用无标记点式的面部捕捉系统。一些厂商推出了如Vicon Cara Lite这样的混合无标记点和有标记点特点的面部捕捉系统,在面部的关键部位放置少量的标记点,这样一来,既提高了面部捕捉精度,又降低了标记点对于演员表演的影响。在出现更好的无标记点面部捕捉算法之前,这看起来是一种更好的解决方案。
2.1.2 动作捕捉
动作捕捉系统一般由传感器、信号捕捉设备、数据传输设备和数据处理设备组成。根据系统的应用原理分为机械式动作捕捉系统、声学式动作捕捉系统、电磁式动作捕捉系统、惯性式动作捕捉系统和光学式动作捕捉系统五类。在电影制作中根据应用场景不同,主要使用光学动捕和惯性动捕两种。
光学式动作捕捉系统由高速摄像机和安放在人体肩、胯、肘、膝盖、脚踝等大关节以及头、胸、背、腿等身体大面上的标记点构成的动捕服组成。高速摄像机一般至少每秒六十帧,通过高速率拍摄来准确获取运动轨迹,标记点则方便锁定对象的运动轨迹。目前的光学式动作捕捉系统根据对于光信号接受方式的不同可以分为主动式光学动作捕捉系统和被动式光学动作捕捉系统。
主动式光学动作捕捉是将标记点由LED 光源组成,互相由电缆连接,由电池来为LED 光源提供电力。在正式捕捉时,LED 光源持续不断地向外发射光信号,高速摄像机则捕捉这些光信号来获取运动对象的运动轨迹。
而被动式光学动作捕捉系统中的标记点是对摄像头发射的红外信号有高反射度的小球。正式捕捉时,高速摄像机会发出红外光,这些红外光经过对象身上的反光标记点的反射后被摄像头记录,当同一个反光标记点同时被超过三个角度的摄像头拍摄记录到时,可以根据计算,分辨出标记点在空间中的位置,从而实现捕捉运动对象的运动轨迹。
光学式动作捕捉系统具有同时捕捉人数多,定位准确等优点,但同样有外界光线干扰造成的捕捉准确率下降、表演区域大需要更多的摄像头以覆盖动捕区域、拥抱或互动动作对动捕点遮挡后影响动作准确度等缺点。在大多数的棚拍中,使用被动式光学动捕;而对于户外拍摄,可使用主动式光学动捕解决光线干扰问题。
惯性式动作捕捉系统使用九轴惯性传感器测量动捕演员的肢体的运动方向、运动加速度、倾斜角度等参数,通过计算后获取每一个惯性传感器的运动方式。使用者只需要穿上带有惯性传感器的动捕服,其内置的高度集成传感器芯片会实时采集对象动作的加速度、角加速度和地磁场强度,然后利用导航算法解算出运动对象的运动轨迹和运动姿态。
惯性式动作捕捉系统具有动捕环境适应性高、不存在遮挡问题、设备穿戴较为便捷等优点,但受制于信号传输和解算能力的限制,难以在同一场景进行同时多人表演的捕捉。
虚拟摄影是指借助混合现实、图像采集技术、图像合成技术以及计算机图形学等技术,在电影拍摄过程中,根据导演的要求,部分或全部镜头在电脑的虚拟场景中进行。拍摄镜头中所需的虚拟场景或角色被整合进电脑,从而可以根据监视器或计算机显示屏合成画面指导演员的表演,任意角度运动镜头。
虚拟拍摄呈现的效果大致可以分为两类:一类是场景中的所有角色、物体、场景均为虚拟的全虚拟拍摄;另一类是虚拟角色、虚拟物体与真实演员出现在同一画面的半虚拟拍摄。实时虚拟预演技术的核心之一就是如何实时获取摄影机在空间中的位置运动信息,如果使用真实摄影机进行拍摄,还需要获得摄影机的元数据信息。
对于全虚拟拍摄制作 (比如 《丁丁历险记:独角兽号的秘密》《爱,死亡和机器人》等影片)而言,影片中不存在和真实画面合成的问题,一般使用VCS (虚拟摄影系统)进行拍摄。由于虚拟摄影机构造简单、使用轻便、功能齐备,完全可以像操纵真实摄影机一样操纵虚拟摄影机,而相比真实摄影机而言,功能更为自由强大。从物理意义上打破“虚拟”与“实拍”的分界线。在拍摄时,只需要使用光学动作捕捉系统记录下虚拟摄影机在空间中在六个自由度上的运动轨迹,对于拍摄的焦距、焦点、光圈等参数则由拍摄系统上的移动设备模拟并发送到实时渲染系统上,再通过无线图传系统将实时渲染的画面回传VCS上的监视器,当延时极小时,这个画面可以作为摄影师的监看、构图的参考。
对于半虚拟制作(如《猿族崛起》系列、《阿丽塔:战斗天使》等影片)而言,除了定位真实摄影机在空间上六个轴向的运动之外,还需要记录摄影机的元数据信息,并发送到实时渲染系统上进行光学模拟,使得实时渲染出的虚拟画面的画面变焦、景深大小、画面畸变等特质与真实拍摄的画面匹配,从而实现更好的合成效果。常见的真实摄影机跟踪系统可以分为有标靶式和无标靶式两种。
有标靶式的摄影机跟踪系统是根据图像识别技术识别二维码定位的原理,当位于摄影机机身上的小的光学摄像机拍摄到三个以上的可用二维码点位信息时,就可以获得在当前时刻摄影机的空间位置信息(如图2、图3所示)。有标靶式的摄影机跟踪系统的代表是美国Lightcraft 公司的Halid系统。
图2 空间定位二维码
图3 拍摄现场布置
无标靶式的摄影机跟踪系统是基于光学原理构建视觉深度的原理,通过位于摄影机镜头下方的两个鱼眼镜头获取的画面特征点深度信息,反求出摄影机在前后两个的位置差,从而判断出摄影机的空间位置以及运动情况。目前市面上使用这种技术的摄影机跟踪系统的是英国Ncam 科技公司的Ncam系统(如图4所示)以及加拿大Ross公司的Solid Track系统。
图4 Ncam 虚拟拍摄系统
两种主要的摄影机跟踪系统的优缺点如表1所示。
表1 两种摄影机跟踪系统优缺点对比
无论是全虚拟制作还是半虚拟制作流程,影片中都会出现大量的虚拟场景、虚拟道具以及虚拟角色等数字资产。同样,这些数字资产的精度也会影响最终成片的质量。对于影片中的虚拟场景、虚拟角色的数字资产的获取,除了以往常见的基础建模之外,还出现了数字雕刻这种更加灵活而高效的建模方式,使得建模的过程变成了雕塑的过程,让手中的笔刷指针变成了刻刀。数字雕刻还具有模型精度高、建模自由度大、软件操作简单直观的特点。
如果虚拟角色是基于真实演员形象进行创作,则可以使用光台 (Light Stage)技术,即使用高分辨率相机从多角度记录演员的照片,并使用照片进行合成处理,从而形成高质量模型的技术。
对于一些基于真实世界的虚拟大场景,也可以通过无人机倾斜摄影建模技术对真实场景进行图片扫描从而生成场景粗级别模型,以供虚拟场景使用。如图5所示。
图5 倾斜摄影建模技术生成的虚拟场景
但是需要注意的是,在虚拟实时预演过程中,为了实现实时效果,需要对这些高精度模型进行减面处理,从而减少渲染的压力,达到实时的效果,在后期制作过程中使用高精度模型代替低精度模型进行电影级的制作。
在虚拟实时预演系统中,实时性的渲染是系统进行及时交互的关键,而实时渲染技术解决了画面实时渲染的问题,给制作团队带来了更好的交互体验。对于传统的渲染引擎Render Man、V-Ray 和Arnold这类离线渲染器而言,使用光线追踪算法,单机位渲染的效果极低,虽然渲染出的画面效果十分逼真,但渲染速度决定了其无法应用在实施预演系统中。
而可以实时渲染的游戏引擎通常使用深度缓冲三角形光栅化技术,将每个对象分解为若干个三角面,可以在屏幕上进行位移、旋转和缩放,再通过软件或硬件的光栅化渲染器将这些几何数据转化成像素点,从而实现实时渲染的速度。最有名的Unreal虚幻引擎以及Unity3D 引擎都使用的是这种技术。
目前的实时渲染技术可以分为基于客户端的渲染方式、基于服务器端的渲染方式和基于混合端的渲染方式三种:
(1)基于客户端是指渲染完全依靠客户的单机端完成,目前这一方法主要就是依靠GPU 进行渲染,难以处理较为复杂的实时渲染。
(2)基于服务器端是借用服务器平台完成渲染,也就是云渲染,目前使用这类方式进行实时渲染时,服务器端的运行速度足以支撑渲染的快速完成,但有时受限于网络带宽等硬件问题,仍无法给用户很好的画面质感。
(3)基于混合端是利用客户端和服务器端各自承担一部分画面渲染的工作,然后在客户端完成画面输出任务,这一方法在继承了前两种方法的优势的情况下也同时含有前两种方式的劣势。
在如Unreal虚幻引擎以及Unity3D 引擎等游戏引擎的夹击下,传统三维动画软件如Maya、MotionBuilder等也都发布了软件内的实时渲染模块,以及开发了相应的插件以支持虚拟拍摄系统,从而更好地适应虚拟预演制作在影视制作中的高速发展趋势。
实际上,在进行影片制作过程中,除了要解决虚拟、真实角色、物体共处同一空间的问题之外,还必须要解决真实演员如何与虚拟物体,甚至是虚拟角色进行互动的问题。一般这种互动可以分为视线互动以及肢体互动两个部分。
在表演时,如出现多个真实演员和虚拟角色共同表演的情况,需要对真实演员的视线进行统一,否则会出现每个演员的视线高度不一的情况。如果虚拟角色比动捕演员高大,比如 《复仇者联盟:无限战争》中的灭霸,《银河护卫队》中的树人格鲁特,如图6所示,可以使用给演员身上背一个延长杆上面放置一个角色形象的方式,匹配真实演员视线角度与虚拟角色真实身高。
图6 《复仇者联盟:无限战争》和 《银河护卫队》拍摄片场
对于肢体互动,如 《权力的游戏》中龙母与龙的互动,《少年派的奇幻漂流》中派与老虎的互动,如图7所示,可以使用绿色占位物体代表虚拟物体的方式,从而获得因接触造成的真实物体的形变、阴影等画面信息,提高合成真实度。同时也可以粗暴地使用交叠的方式,掩盖掉互动发生的场景,只给观众造成互动的假象。
图7 使用绿色占位物体实现虚实肢体互动
本文分别针对全虚拟及半虚拟的拍摄方式,提出了两种实时虚拟预演流程设计方案。
(1)实时渲染软件选择了Autodesk公司的MotionBuilder软件,因为其对Motion Analysis动作捕捉系统的支持较Unreal要稳定,软件内的动捕相应插件也较为丰富,并具备一定的实时渲染能力。
(2)对于场景中的虚拟角色以及虚拟道具的动作捕捉,通过Motion Analysis动作捕捉系统对穿着动捕服的演员及粘有跟踪点的刚体道具进行动作捕捉,获取其骨骼运动信息或将动捕数据通过第三方插件导入MotionBuilder 软件中,对角色及虚拟道具进行绑定。现场使用三台摄像机从三个视角记录动捕演员的表演,为后期制作中调整演员动作提供参考画面。
(3)对于动捕人数超过5人的动捕场景,由于运行Motion Analysis控制软件Cortex的工作站性能限制,直接输出由动捕点云解算出的虚拟角色骨骼有一定困难,如要进行多人大量动捕,可以将动捕点云输出到另一台工作站,使用Sonic Viewer进行解算,将点云转换成动捕骨骼数据通过第三方插件导入MotionBuilder软件中,对角色及虚拟道具进行绑定。
(4)动捕演员佩戴Faceware无标记点式面部捕捉系统,由无线图传将位于演员面前的摄像头拍摄的画面传回工作站,进行分析得到面部表情数据。将面部表情数据通过第三方插件导入MotionBuilder软件中,对角色的面部进行绑定。同时,录制摄像头拍摄的表情画面,为后期制作中调整面部表情提供参考画面。
(5)在拍摄方面,使用VCS虚拟拍摄系统,在现场获取虚拟摄影机的运动轨迹及焦距、光圈、焦点等摄影机元数据,并把相应数据赋予Motion-Builder软件中的虚拟摄影机,通过Motion Builder实时渲染输出预演画面,并通过无线图回传至VCS系统完成监看。
(6)对于VCS虚拟拍摄系统拍摄实时渲染的镜头,使用Film Light Daylight进行录制和回放。录制的画面为现场剪辑提供素材。全虚拟拍摄实时虚拟预演流程图如图8所示。
图8 全虚拟拍摄实时虚拟预演流程图
半虚拟拍摄实时虚拟预演流程在实时渲染软件的选择、虚拟角色及虚拟道具的动作捕捉、面部捕捉等方面与全虚拟拍摄预演方案类似,此处不做赘述。
(1)在拍摄方面,Ncam 虚拟拍摄系统将获取真实摄影机的空间位置、姿态信息以及真实摄影机元数据(焦距、焦点、镜头畸变量等)实时地传递至MotionBuilder的虚拟摄影机。
(2)由MotionBuilder实时渲染输出虚拟摄影机拍摄到的虚拟物体画面信息,并输出给Ncam 工作站,Ncam 工作站将镜头畸变附加在计算机生成的画面上,并传递到Blackmagic Design Ultimatte中,进行抠绿合成。
(3)最后,在Film Light Daylight中对实时渲染的虚拟画面以及抠绿后的实拍画面进行合成、录制、回放。录制的画面为现场剪辑提供素材。
半虚拟拍摄实时虚拟预演流程图如图9所示。
图9 半虚拟拍摄实时虚拟预演流程图
对于实时虚拟预演系统而言,经过一段时间的发展,现在已经能够较为成熟地应用到电影制作流程中,但一些问题仍待进一步解决。
比如,在半虚拟拍摄时,如果画面中同时出现真实角色和虚拟物体,如何判断两者的前后关系是现在仍待解决的问题。因为虽然在拍摄时,虚拟摄影机处在三维空间,但是在将渲染出的虚拟空间输出时,相当于将三维的空间拍扁成了二维的平面,这样就很难处理真实演员、虚拟角色、虚拟背景以及真实、虚拟道具之间的空间位置关系。虽然Ncam 公司已经实现了单个真实演员在虚拟场景前后景的移动,但是作为现代电影制作,这种进步仍然未能解决多人场景走位的问题。
另外,相比于以往的实时渲染,支持实时渲染的游戏引擎在输出的画面质量方面有了大幅度的提升,但是与基于光线追踪的渲染器相比,画质以及真实度上仍然有一定差距。5G 传输的出现,可能会在一定程度上促进基于服务器端的云实时渲染,进一步提升实时虚拟预演的效果。