在SIGGRAPH 2018, Epic介绍了游戏堡垒之夜的宣传动画的制作,让大家了解到实时渲染可以给传统动画的工作流程带来怎样的改变。
为什么使用实时渲染
传统动画流程中,工作量和资源占比最大的是中期阶段:
这个流程的缺点是,导演在前期工作之后,工作由各方面的总监负责,而导演无法很有效地参与到工作中的创意碰撞。
而实拍影视的制作流程则不同。在拍摄制作的过程中,导演能即时参与互动。灯光,表演,或者摄像,任何方面有问题,导演都能马上给到反馈。
该流程的工作量和资金压力主要集中在后期阶段。所以,当导演在中期阶段结束后需要修改创意,那就相当棘手了。往往修改一处几天后才能看到结果,而到那时,导演可能自己都已经忘记了。
在这里,引出实时渲染为动画制作流程带来的好处:快速修改,即时反馈。让导演像真人拍摄流程中一样,把控制作过程中的创意。
这种快速迭代的制作方式,对任何一个制作部门都有明显的好处。Epic公司请Forrester Research做了一项关于“实时渲染对影视行业的影响”的调查。数据显示81%的相关公司可能在12个月内开始采用实时渲染技术。
通过下面的工作流程地图对比,我们可以看到传统动画制作流程和采用实时渲染的动画流程之间的区别(图表译自Epic):
堡垒之夜团队希望模拟传统动画制作的工作流程,所以两张流程图大体类似:
实行建议
采用实时渲染,Epic提出几条建议:
平衡各阶段工作的资源分配
为前期阶段多分配1-2倍的资源。因为你需要为他们配备游戏引擎人员,比如shader专家,技术经理以及资源整合人员。如果只有中期制作才有这些专业人员,就太晚了。
尽早准备用于实时渲染的3D物件。整个阶段需要的3D资产尽量在前期阶段准备好。
了解你的产品质量要求。准备相应质量的三维组件。
善用实时渲染的特性快速修改和迭代
遇到的问题
在堡垒之夜动画制作流程中,该团队提了几个遇到的坑:
资源导入流程。数字资源导入UE4并不是一键拖入那么简单,需要对模型和材质做很多工作。
没有建立metadata工作流程。意味着无法用脚本做一些导入导出自动化的工作。
动作捕捉文件的调用很繁琐。现有动作捕捉工作流程是在motionbuilder里面做好动作捕捉工作,导入Maya审核,导入游戏引擎,放入level sequence,应用到角色上。而且每一个镜头都要来一遍。当时UE4版本没有很好的官方解决方案。
UE4的sequencer的动画渲染还是很简陋。没有准确的按帧渲染,也没有时间码的概念。
对Alembic文件格式的限制。Alembic文件是做表情动画的完美文件格式。但在UE4中,那些用了Alembic的场景尺寸将被限制。
解决方法
针对堡垒之夜制作流程中遇到的坑,Epic在新版本中推出各种新功能和插件填补。实时渲染用于动画制作,是新的尝试,是对已经成熟的制作流程的一次革命。Epic想要发动这场革命,必须先自己试错,然后将Unreal的各种坑补上。
首先是让堡垒之夜团队头大的资源导入问题。现在有了Datasmith,问题得到了解决。目前Datasmith支持CAD,SketchUp,3D Studio Max,CityEngine,和Rhino,beta版之后将会支持更多软件。根据使用者的测试,能达到百分之九十的还原度,但对于玻璃和灯光,还是需要手动调整。
然后是fbx元数据标签(metadata tags)的支持。并且python和shotgun能访问元数据。这样通过python脚本语言,就可以自动化一些重复性的操作了。
Python在unreal中的支持,不仅能提供导入导出的自动化操作,还能对渲染作自动化。此外,在编辑器和蓝图中也同样可以使用python脚本语言。但是,Jin对Unreal Python了解不多,不清楚python和c++在unreal开发的应用边界在哪里。
还记得之前那个适合制作表情动画的Alembic格式文件吗?在Fortnite制作流程中,他们将每个角色的头和其他部分分开,头部用Alembic格式,身子用fbx导入。
很多人好奇为什么Alembic格式更适合作表情。主要原因是在fbx格式里,每个顶点最多受到8个骨骼的影响。这个限制导致表情变形不那么有细节。而Alembic格式不仅没有顶点受影响限制,更重要的是,会将maya中所有包括骨骼,融合(blendshapes),和形变(lattices),都烘培到Alembic文件里,并导入unreal。在unreal 中,Alembic缓存转变成GPU morphs然后实时播放。
关于Alembic格式导入导出工作,该团队介绍的很详细(可能坑太多)。首先,Alembic的模型必须转成三角面,从maya导出为Alembic Cache(*.abc)。unreal导入参数“Use GPU Morph Targets”必须打开。
制作中的一些细节
和一切影视制作项目一样,堡垒之夜宣传片从剧本和故事板开始。通过将剧本用premire剪辑,做成一个初版的动态故事板,为后面动作捕捉的工作服务。
动作捕捉团队和预览团队获得初版动态故事板后,开始创建粗分镜(rough layout)。为提高工作效率,减少游戏引擎与motionbuilder之间繁琐的导入导出,Epic将尽可能多的动作采集到一个场景文件里,并将该场景复制给每一个镜头,根据各镜头的要求删除每个镜头中不需要的内容。
为了提升工作站的性能,根据需要设定每个摄像机视野的消失平面。
在sequencer里面排好分镜,重新修改分镜名称后,将信息输入项目管理软件开始进行项目工作的监控。Fortnite用shotgun进行项目及数字资源的跟踪和审核。
目前主流动作捕捉系统都已經支持UE4。通过UE4自带的Live Link系统实时传输动作数据的系统目前有五个,包括Vicon、Dynamixyz、Cubic Motion,和Perception Neuron;正在开发和将要开发的Live Link兼容产品包括Xsens, Optitrack, Rokoko,和Faceware。此外,Maya和Motionbuilder同样支持Live Link系统实时传输动画数据,通过这两个3D软件可以间接实现动作捕捉系统的对接。
UE4的Virtual Camera Plugin对前期的预览和分镜创作过程非常有用。Virtual Camera Plugin实现的效果等同于我们常见的VR。用户可以使用ios设备(ARKit),VIVE跟踪器,或者其他的光学动作捕捉系统,去无线控制虚拟摄像机的位移和旋转。此外,比如焦距光圈比例之类的其他参数,都可以在屏幕上作详细调整。
堡垒之夜宣传片使用shotgun作为整个动画制作的项目管理软件,广泛应用于各个大型影视游戏项目和数字资源的管理。在unreal 4.20版本中,已经整合该系统供免费试用。主要功能包括:
从Maya发布资源到UE4
从Shotgun浏览器加载资源到UE4
为资源添加元数据
从UE4 Sequencer渲染和提交,供他人检阅
-
数字资源的版本控制
在UE4新版本中,为了增强实时渲染的电影化效果,增加了四个新特性:
电影化景深效果。与之前的相比,新的景深特效更快,有散景效果,支持Alpha通道,及多平台的支持。
面光源。面光源会比其他灯光类型占用更多的资源,但真实感会更强。
人物效果更好。特别是皮肤SSS的效果,更为真实。
物理灯光单元。用真实灯光的参数去设置,真实度不再靠感觉。
在后期特效方面,Unreal 4.20提供了一套新的特效系统Niagara。
与前版本所使用的粒子编辑器cascade不同,Niagara是一套以节点编程为主的特效系统,用户可以自主设计粒子运动的行为模式。此外,Niagara以二进制编码运行,效率更高。
结论
最后我们来总结比较传统动画工作流程和实时渲染动画制作流程的不同:
之前跟中影的朋友聊起Unreal用于影视制作。他们提到Unreal无法分层渲染,所以很难融入到当前工作流程中。对此,Jin觉得对于一个全新的更有效率的工作环节,影视公司应该试着改变现有的流程去适配,而不是反向。