华 杰
(杭州师范大学,浙江 杭州 311121)
影视动画行业的视觉特效(Visual effects,VFX)是指通过计算机生成图像(Computer Generated Imagery,CGI)和真人实拍镜头在后期合成以创造拟真画面的技术手段。VFX制作具有流程复杂、制作工具众多等特点。在设计VFX视效工作流程时,制作人员通常会面临色彩管理、数据类型、软硬件搭配、命名规则等诸多技术抉择。这些因素不仅会独立起作用,还会相互影响。这也就意味着,如果任意一个因素改变,很可能要重新设计整个流程。为此,本文将逐一分析VFX工作流程中需要着重考虑的几大主要因素,从整体流程的角度为常见的项目类型提供不同的设计策略。
确保数字影像的正确显示与交付,是决定VFX视效工作成败的关键。当前,显示标准正逐渐由单一的标准动态范围(Standard Dynamic Range,SDR)向多种高动态范围(High Dynamic Range,HDR)过渡。设计任何VFX项目的工作流程时,色彩管理都是最重要的考虑因素。
VFX视效的色彩管理有场景参考(Scene Referred)和显示参考(Display Referred)两种主流方法。场景参考(Scene Referred)模式的色彩空间记录反映真实世界场景光照值的数据,而不是直接将这些数据与特定的色彩空间挂钩。而显示参考(Display Referred)模式的色彩空间则将感光元件接收的信息编码到目标色彩空间,并将伽玛曲线记录到图像文件中[1]。
基于场景参考类色彩管理设计VFX工作流程时,需要所有素材以线性记录模式的原始数据进行保存。各部门使用素材前,都必须按规定将其转换到某个统一的标准色彩空间。例如,如果想在场景参考类工作流程中合成一个镜头,工作人员可以根据不同部门的物料需求,用标准还原LUT或ACES色彩空间转换来处理镜头。当镜头的VFX视效合成制作完成后,只需要把文件渲染回线性记录的原始数据格式,就能最大程度地保留数字影像的数据,方便后续其他部门调用[2]。
基于场景参考的色彩管理流程让复杂的合成工作变得效果更好、效率更高。线性记录的数据天然就更适配计算机的数学运算逻辑,使得如多通道混合这类数学运算的处理变得更加精确。同时,基于场景参考的色彩管理流程也使后期多格式交付变得更容易。由于没有为原始图像数据自动分配伽玛曲线或色彩空间,工作人员可以将成片渲染成任何目标色彩空间。这也就意味着,基于场景参考色彩管理设计的工作流程是可以供未来使用的。随着更新、更好的色彩空间的开发,从业人员可以把原先的老旧项目直接输出转换成最新的交付格式,例如HDR,进而在更宽广的色彩空间下增加动态范围[3]。
但如此多的好处不是没有代价的。在不同色彩空间之间进行转换的同时,工作人员要时刻注意保持文件的条理性、确保所有的元数据在文件向下传递的过程中妥善保存等等。这需要一位或多位全职人员负责把控整个项目的后期数据交互。
大部分的电影或大型VFX项目都使用线性记录数据的场景参考类工作流程,以确保前期与后期、后期与后期各部门之间物料传递的精准和高效。但由于需要额外的人力、物力来保证项目运转,所以在较小的团队或项目中,场景参考类的工作流程则会显得尾大不掉。
基于显示参照类色彩管理设计VFX工作流程时,项目的色彩空间就是摄影机在前期拍摄时设置的色彩空间。所有实拍素材在导入时不会被转换,而VFX视效工作的主要任务就是匹配实拍的画面,也就是将VFX特效镜头渲染到与实拍镜头一致的色彩空间就行了。在色彩管理这个概念兴起之前,大部分三维特效工作都默认采用这样的流程。这种流程结构简单明了,但牺牲了灵活性。所有生产的文件都将被绑定到特定的色彩空间,一旦决定了母版格式就很难再更改。
是否使用显示参照类工作流程,其实很大程度上取决于项目是否需要交付多个色彩空间或交付格式。如果某个项目只打算在电视频道或网络中投放,只需要满足一种交付格式,在简捷的显示参照类工作流程中工作就可以节省大量的转换时间。所以,对于不太复杂的小型项目,如广告、宣传片,甚至电视节目,显示参照类的色彩管理是设计VFX工作流程时最常见的选择。
数据存储是设计VFX工作流程时需要慎重决定的一环。VFX制作生产过程中会产生大量数据,以何种形式、何种精度进行存储,会直接影响整个项目的工作效率与预算把控。
数据存储需要考量的首要问题是以何种形式进行存储。当前,数字影像技术主要有整型数据法和浮点数据法两种方法。整型数据意味着像RGB值这样的数据将不包含小数。它们由预定范围(如0-255)内的整数值(不含小数位)表示。相比之下,浮点数据则会存储到小数位,并可以对超出设定范围的数值进行编码、存储,而不是丢弃。由于有更多的数字可供计算,浮点数据在各种色彩空间和合成操作之间的转换更加精确,这使得浮点数据文件在场景参考类工作流程中具备极大的优势[4]。
而整型数据文件在从对数或其他空间转换为线性数据时就不那么准确。由于记录的数字只能是整数,所以在每次转换中都要进行重新估计与约分,四舍五入的误差会不断累积叠加,这最终导致了色彩不一致和伪影现象。也就是说,整型数据格式在只需要单次转换到特定色彩空间的显示参考类工作流程中适用,对于需要多次转换的场景参考类色彩管理流程来说不适用[5]。但对于调色这个环节来说,整型数据文件的实际效果往往却更好,因为大多数调色软件的底层架构是基于对数编码运行的,对于整型数据有更好的优化。
具体到制作格式来说,在设计VFX视效流程的时候可以遵循以下规律:如果VFX项目有大量的CG整合工作,可以存储浮点数据的OpenEXR是当下最主流的文件格式。OpenEXR将保持浮点数据精准转换、便于合成的技术特点,有利于大型项目的协作。如果项目的VFX制作需求更多是隐性的,比如电视节目的场景塑造和物体移除,那么基于整型数据的格式如DPX或ProRes444就能更高效地完成工作。
确立了数据形式,数据存储的下一个重要议题是数据精度,这涉及到分辨率、位深和数据压缩的选择。
在大多数工作流程中,源分辨率和交付分辨率之间存在着妥协。一些电影摄影机可以拍摄到8K的分辨率,导致整个流程的分辨率上限很高。但全流程8K的VFX项目会使数据量急剧增加、工期延长,大幅降低工作效率。如果一味追求效率选择较低分辨率,当剪辑需要使用大量插件调整画面,或者交付格式必须是4K时,1 080P这类较低的工作分辨率又显得捉襟见肘。
位深的选择关系到VFX物料的色彩精度。如果想要获得精细的调色结果,VFX视效物料就需要记录大范围的色彩数值。对于整型数据文件,10 bit是最低标准;对于浮点数据,16 bit的浮点文件才是最佳选择。
在制作VFX视效物料、渲染导出时,所使用的压缩方法将决定物料最终否顺利合成。如果使用的压缩方法不一致,那么镜头的视觉连续性就很可能被打破。
在现阶段常用的文件格式中,OpenEXR文件提供了灵活的压缩选项,方便在不同物料之间进行匹配,并可以对位深等参数优化以节省硬盘空间和硬件负载。ProRes444的压缩率比DPX等静帧文件高得多,它以丢失无损质量为代价来加快项目进度。但由于软件兼容等原因,QuickTime封装格式在高端VFX工作流程中并不常用。对于周转较快或预算较低的项目,如果驱动器空间和硬件水平有限,它也是一个选择。
总体来说,设计数据存储规则的前提是明确交付要求和文件在流程的上下游将如何使用,这样才能在无损质量、可用性和速度之间取舍,判断出合适的分辨率、位深和压缩形式,进而选择出最恰当的媒介。
专业软件的研发是商业行为,研发公司会基于软件本身特性为其量身定制一套工作流程,并大力推广以抢占市场。以合成软件Nuke为例,Nuke母公司Foundry推广包括场景参考类的色彩管理工作流程、OpenEXR文件格式和浮点数据在内的一系列行业标准。所以,Nuke默认情况下是在场景参考类色彩空间内工作的。对于以Nuke为主要合成软件的团队来说,OpenEXR文件格式是最佳选择。而市场占有率相对较低的Flame则对DPX格式的工作流程不断发开,使得Flame的用户更倾向于使用DPX文件格式[5]。Adobe公司开发的After Effects软件是基于层级设计而不是节点式。这就让场景参考类的色彩空间工作流程最关键的输入输出转换在After Effects里很难实现。通常情况下,After Effects软件都采用显示参考类的色彩管理流程,最常用的文件格式是QuickTime和图像序列,如TIFF、TARGA或PNG。
由于较大预算的VFX项目通常需要最高色彩质量(即场景参考类色彩空间)的工作流程,所以Nuke是大型VFX工作流程的首选合成软件。中小型项目则可以利用Flame和After Effects软件的性能来快速实现物料输出[6]。
高质量的文件通常会占用更多的空间,并需要更多的处理算力。特别是对于VFX视效项目来说,最常使用的文件格式如OpenEXR序列等,对计算机硬件要求都很高,并且会占用大量的存储空间。在工作流程敲定前,一定要合理评估存储系统的容量,并留置足够的备份空间。算力情况也是如此,当前阿里云、亚马逊云科技等云服务商提供高性价比的算力租赁服务,而VFX项目周期内会存在算力使用的峰值谷值。工作流程的设计者平衡好租赁云服务器与内部自建服务器的比重,就能以更低的预算更快完成项目。
文件命名与管理,是设计VFX工作流程时容易被忽视却又举足轻重的环节。特别是对于大型团队,组织和一致性是成功的关键,每一项资产都需要精心设计名称和位置。如果跳过文件命名与管理流程的设计,即使只有几个资产被贴错了标签或放错了位置,也会让整个项目的运转陷入困境[7]。
VFX视效镜头中最重要的信息是镜头编号、元数据、版本号和嵌入式时间码。镜头编号是制作视效镜头的必要条件,它将板块、图形和视效镜头的所有相关元素放在一起并组织起来。这些属性可以在工作流程或数据库中被跟踪,方便制作人员随时随地检查镜头的状态,并与供应商保持联系。文件名包含的元数据要在容易阅读、与信息完善之间取得平衡。在镜头名称中包括哪些信息,嵌入什么类型的元数据,这需要评估特定项目的特点与需求。
VFX视效工作涉及大量的文件移动——从单一模块的制作导出,再到场景中合成,最后再将完善的场景化镜头渲染出来。重要的是要预先决定单一物料、不同阶段渲染的合成物以及制作过程中的许多次生资产将以何种逻辑放置。这里要特别注意,含有完整日期的文件夹命名对于VFX视效来说反而是混乱的,尤其对于复杂的项目而言。项目的时间跨度越大,不同镜头之间的制作周期就会拉得越开,时间命名无论从内部沟通还是文件管理上都会造成不小的困扰。相比之下,有编号的文件夹则更有意义。如果再在文件夹名称中增加更迭的版本号,就进一步消除了对日期的需求。
在以帧为最小单位的VFX视效工作流程中,嵌入式时间码可以说是物料的身份证件。它有效地保证了物料的准确性与完整性。不同部门之间传递物料的第一步工作,就应该是互相检查嵌入式时间码与结构的情况。这一点在设计VFX视效工作流程时不容忽视。
在通常情况下,不同的部门有自己的服务器和文件命名惯例。他们将完成的合成、物料传递给下一个团队部门,下游部门又会有自己的存储设备和文件命名惯例。由于不同VFX视效公司的命名方法大同小异,一些参数是彼此相同的,所以在会议沟通后,工作流程大致也能运转。但如果项目使用的是共享式存储服务器,与多个工作室共享媒体,或有任何形式的集中资产管理的环境来说,建立贯穿整个组织的命名规则与管理协议,协同供应商在项目期间保持一致、统一遵守就变得至关重要。
VFX视效工作流程很复杂,有许多因素需要考虑。成功的VFX团队不仅需要多年的经验来预先设计,更需要彼此沟通、通力协作,朝着同一方向共同努力,推动项目的进展。影视行业的新技术、新方法在以惊人的速度涌现,VFX的流程设计并没有一条亘古不变的路径。唯有跟随一个个项目不断地测试、运行、改进工作流程,才能更透彻地理解如何计划、控制时间和预算,朝着影视工业化的道路迈进。