作者:中央电视台 葛小丁

2019年1月3日上午10点26分,“嫦娥四号”探测器成功着陆在月球背面东经177.6度、南纬45.5度附近的预选着陆区,并通过“鹊桥”中继星传回了世界第一张近距离拍摄的月背影像图,揭开了古老月背的神秘面纱。此次任务实现了人类探测器首次月背软着陆,首次月背与地球的中继通信,开启了人类月球探测新篇章。

笔者作为此次《飞向月球》系列纪录片制作的中央电视台录制二部影视制作科项目团队的一员,从始至终亲身参与到了项目制作当中,对这个项目的制作有着相当深刻的体会。本次项目除了运用前期摄影影棚实时抠像合成拍摄等非常先进且艰巨的前期任务之外,在后期的离线包装制作上也具有非常大的突破。

一、项目概述

具体到后期制作层面,因为是第二次4K超高清项目,也是科里第一次全面在前期,后期全流程制作的4K超高清项目,所以制作难度非常大,属于一边探索一边制作,整个团队的压力之大可以说前所未有。此次制作的所有软件基本都是全新的,因为4K超高清制作的渲染数据量过大,所以传统的三维制作,分层渲染再加合成的方式已经无法承受,只能使用基于GPU渲染的软件和设备才有可能实现。所以这次的项目是以虚幻引擎4(Unreal Engine 4)为主体制作输出来完成的(以下简称UE4)。

此引擎之前主要应用于游戏开发,对影视制作我们还是第一次尝试应用于大规模制作。所以对于UE4的转变还是颇费了一番精力的。之前一直使用传统的三维软件Maya,对CPU要求较高,但即使是使用渲染农场,对于4K超高清制作的渲染也是一项无法完成的任务。UE4是一个基于GPU实时渲染的软件,要求的硬件主要是对于显卡的要求比较高,使用显卡1070、1080、1080ti均可。有了硬件支持,之后就是软件的使用了。UE4里面的资产模型都是需要从外部导入的,所涉及的主要是模型和贴图,场景基本上是在UE4里面搭建完成的,其中涉及到的所有模型及贴图文件,基本都依靠外部导入,而场景中需要搭建的灯光、环境、反射、特效、动画、渲染等均在UE4里面来完成。

二、项目制作

1.模型制作及UV

(1)模型要求

模型的导入还是有不少要求的,模型的来源可以很多,但基本需要经过Maya这个三维软件来检查修改成可以为UE4所用的模型才行。模型必须是三角面或者四边形面组成的Polygon模型。如果是自己制作的模型通常会相对比较规范,如果是网上找到的一些模型库,就有可能什么情况都有了。这种模型就必须先经过导入Maya,在Maya中修改整理成四边形或三角形,才能够被UE4使用,否则导入UE4中之后,会在制作中出现很多错误,特别是需要绑定骨骼动画的模型,特别要求注意模型必须是三角面或四边形。

(2)模型精简

模型精简过程中,可以在Maya的Display中打开场景的三角面数显示工具,将模型上没必要的点用Merge属性编辑器,将值调整到0.001,先合并相邻近的点,再手工删除、吸附合并无用点,减少不必要的面,最终达到减少整个模型三角面数据的作用。数据量的大小对于实时渲染是非常重要的一个要点。如果制作过程中忽略时刻注意精简数据,到了UE4中会因为整个场景数据量过大出现运算缓慢或者频繁出现错误,这一点作为三维动画制作人员都有深刻体会。

(3)展开UV

模型分解UV也是相当重要一个步骤。作为需要导入UE4的模型,需要两套UV,一套是纹理UV,另外一套是灯光UV。纹理UV基本就是传统的做法,可以利用Maya自身的拆分UV的功能,也可以利用第三方软件拆分UV。所不同的主要就是这套灯光UV。灯光UV可以在Maya的UV编辑器里复制第一套贴图UV来完成,也可以用UV的自动展开功能来制作。没有特别精细的镜头要求下,也可以通过模型导入UE4时直接勾选灯光UV参数,自动由UE4来创建灯光UV,但纹理UV必须通过自己制作才能完成。两套UV的区别在于,灯光UV要求不高,只要没有UV重叠即可,因为UV重叠会在UE4灯光渲染当中产生黑影。而材质UV要求相对较高,不仅因为要对应材质贴图,还需要尽可能大一些的尺寸,以免贴图过小,导致模型在UE4里面贴图模糊,显得不够精致,不能给近镜头。贴图的尺寸要求是2的N次幂。

在实践中,对于拆解UV,此次制作更倾向于使用第三方软件RizomUV Virtual Space。也就是以前的Unflod3D(现已合并入Maya2018之中)。这个软件的优势在于分展的UV可以按照自己的要求来切割展开,并且可以自动按照模型各部分的比例大小来排列展开到0~1的范围之中,对于相对复杂的模型来说,折叠重合部分可以一次性很好地展开,展UV的效率可以大大提高。对于贴图UV,是可以根据情况有重叠部分的,而灯光贴图UV是不能够有重叠UV的情况的,这一点也是展UV的时候特别需要注意的地方。

(4)模型导出

模型导出到UE4的格式是.obj。在Maya导出模型之前,最好在UE4之中确定好模型的大小比例盒子,这样在Maya导出模型之前可以对比着比例盒子来确定模型大小,以免导入UE4之后导致模型过大或者过小。另外导出之前,确定模型Y轴向上,如果模型比较复杂,需要分别导出,则各部分轴向一致就极为重要。在导出之前还需要注意还原模型到原点位置。这样到UE4场景之后,可以很方便地对齐一组模型,同时打组,进行缩放、旋转、移动到需要的位置。如果是需要通过第三方软件来制作贴图,也可以给不同材质的部位不同的一个单色,在第三方贴图软件中即可自动识别分层,然后分别给相应的层制作不同的贴图。

2.材质贴图制作

(1)贴图制作

在《飞向月球》项目中,没有使用传统的Maya制作材质,感觉最为好用的就是Substance Painter这个第三方软件了。

此软件可以用Maya导入的.fbx模型文件来制作比较复杂真实的贴图。主要方式就是用一个低模来烘焙一个高模,烘焙尺寸根据导入到UE4的要求可以是1024、2048甚至4096。烘焙之后得到相应的Normal,ID,AO,Position等基础贴图。再基于这些基础烘焙贴图之下,把不同的模型部分按照不同材质调入不同的Texture List层,然后对每个层的材质分别制作复杂材质贴图。因为这个软件是专门制作材质的,所以可以利用它制作一些用Maya非常难以完成的材质,比如有厚度的锈蚀金属,不同颜色纹理斑驳的木质,甚至于带有细微皱褶的漆皮。这些材质都可以通过Substance Painter中的Layers层,类似Photoshop那样,一层层叠加不同的材质纹理来实现。最神奇的是可以用一些特定的Generator发生器来制作一些边缘磨损、划痕之类的非常逼真的效果,这在以往光靠Photoshop在UV上画磨损来说,效率和效果都大大提升了。

由于我们的项目中很多情况下都会应用到一些古旧纹理,用于制作特写镜头时丰富细节,所以使用Substance Painter软件来制作,既真实又便捷,能够达到相当好的效果。当然,如果配合ZBrush软件来制作高模,烘焙出的基础贴图效果将会更加理想。

(2)贴图导出

利用Substance Painter导出制作好的贴图可以非常方便地设置针对于UE4相匹配的文件,比如Base Color、Ambient Occlusion、Metallic、Roughness、Normal等几个最重要的贴图。这些贴图导入UE4之中后,可以直接链接材质节点,得到想要的效果。也可以再次通过UE4的材质函数编辑节点进一步编辑优化效果。有关UE4材质节点也是一个比较重要的部分,虽然本项目涉及到的不多,但UE4本身的材质节点也是可以通过一张简单贴图来达到比较复杂的效果的。之后的项目如果有机会,会更多地应用到UE4本身自带的节点来实现更多的效果。

3.UE4中的场景制作

关于UE4在影视制作中的应用,前面已经提到过其优势最为强大的是实时渲染部分,几乎就是所见即所得。导演可以现场看到渲染完成之后的效果,对于生产效率是一个极大的提高。

(1)资源导入

首先需要在UE4里面建立自己的工程文件,并分组建立项目文件夹,下设模型,贴图,材质,音频,level Sequencer等几个文件夹。模型导入一般来源于Maya输出的.obj文件,同时导入Substance Painter制作导出的Base Color、Ambient Occlusion、Metallic、Roughness、Normal等贴图,并分别放置于相应的文件夹下。对于文件管理非常重要,每一个项目的命名规则、镜号、所需资源的放置位置都需要特别认真。否则当工程量越来越大时,会导致项目资源混乱,无法修改,或源文件错误之类的麻烦。资源导入时可以根据自己的需要,在导入页面时分别勾选。如模型是否导入灯光UV,还是用系统默认的灯光UV。是否导入贴图,是否导入骨骼动画等等。

(2)场景制作

导入模型之后将模型分别放置于应有的位置,给予对应的骨骼动画、材质、贴图等。骨骼动画必须遵循一套UE4特有的规则,否则无法被UE4识别,即便是最简单的骨骼也是如此。场景制作还需要加入相应的灯光及大环境的天光,反射球等。天光可以决定大范围的天空光照效果,灯光可以给室内部分物体补光或制作一些特别的光照效果。比如我们的场景里经常涉及日光和灯光,就需要分别使用不同的光照方式来实现。场景搭建完成之后也可以在UE4里面进一步调整材质,UE4里面的材质节点也是非常丰富的一套单独的系统,同样可以利用基础的纹理贴图,和UE4的函数节点来创建出复杂的材质纹理。

在这个项目中,涉及的材质节点大多数都是运用在修改贴图方式上的,比如旋转贴图角度,双面贴图等,UE4这些材质节点非常方便,省去了很多需要返回Photoshop里制作修改的麻烦,对提高制作速度有着极大的帮助。另外,骨骼添加也可以在材质编辑器中查看是否正确添加上了,便于及时修改。

4.UE4中的动画制作

用UE4的摄像机和Level Sequencer可以制作完成一个完整的镜头运动动画,并且可以利用Sequencer动画编辑器来剪辑镜头,加上声音轨道和特效等,实时渲染输出4K完整镜头,从而完成整个动画场景制作。

镜头动画制作是通过Sequencer动画编辑器来完成的,其功能非常强大。在Sequencer中可以导入所需要的摄像机及目标物体,制作摄像机动画。每个摄像机和物体都可以在这里设置关键帧动画,并且可以通过动画曲线来调节运动速度。镜头动画是本项目利用UE4制作的重点,因为可以实时导出渲染,所谓所见即所得,所以这一部分是制作中非常重要的一环。每个场景可以单独给定摄像机,并且可以关联一个摄像机目标物体,便于制作摄像机推拉摇移动画。UE4中最出彩的可以说是摄像机的变焦功能,在摄像机移动过程中,可以直接给焦点制作关键帧动画,在摄像机动画播放中即可实时展现焦距变化,这一功能对于之前需要用三维动画加合成等复杂手段才能完成的效果来说,是一个非常方便且实用的功能,所展现的效果也是非常震撼的。

利用Sequencer动画编辑器,还可以增加声音轨道,对应声音轨道可以对应单个镜头制作动画,这样可以非常方便的掌握每个镜头的长度和速度,避免输出后和解说词不能对应的麻烦。动画编辑器还可以对多个镜头进行剪辑处理,例如一段比较长的解说词,需要分别对应多个镜头分别制作,最后可以在动画编辑器中对应这段完整的解说词对所有这个场景的镜头来进行剪辑,得到一个完整的剪辑镜头。当然在项目中我们实际上用这种方式只是作为粗剪,为了让导演实时看到效果,出于保证质量,最终还是需要分别输出镜头,通过后期精剪来完成镜头编辑。

Sequencer动画编辑器中还有一个重要功能是增加骨骼动画,我们项目里经常会遇到骨骼动画需要添加到场景中,但骨骼动画出现的位置则需要在动画编辑器中来确定。此项功能在UE4中也是非常方便的,直接增加骨骼动画轨道,将骨骼动画拖到相应位置即可实现。但麻烦的一点是如果动画的速度需要调整,还是需要返回三维动画软件场景来修改,之后重新导入才可以。也可能是由于我们对于骨骼动画的应用了解还不够透彻,所以这方面应用应该还有很大的提升空间。

对于UE4中文字符的制作目前还是比较麻烦的,现在使用的版本好像还不能直接添加中文字符到场景之中,这个项目中是利用一套同事们制作好的中文字库模板来添加需要的中文字,使用过程相对也比较麻烦一些,希望随着软件版本的改进,中文制作这点也会有相应的改进。

当所有动画制作完成之后,还可以在动画编辑器上增加特效模块,来给场景增加噪点及压暗角等特效功能,以便达到真实的拍摄效果。这项功能使得过去必须通过后期制作才能完成的效果,直接在UE4的动画编辑器中即可实现。输出之后直接可以得到播出效果。

三、结束语

由于篇幅所限,以上仅限与Maya模型制作到UE4初步使用完成场景的粗略过程,初步应用难免会有许多错误和不足之处,敬请各位读者指正。

微信订阅号:科技微览

ue4渲染速度太慢_推介飞向月球纪录片基于Unreal实时渲染引擎的三维流程化制作...相关推荐

  1. ue4渲染速度太慢_[UE4]性能优化指南(程序向)

    封面来源:A Cold Stop(Mixer 制作材质.UE4渲染 ) [UE4]性能优化指南(美术向)玄冬Wong:[UE4]性能优化指南(美术向)​zhuanlan.zhihu.com 内容都是处 ...

  2. ue4渲染速度太慢_技术汇丨如何在UE4中实现最佳性能和高质量视觉效果

    合并网格 如之前在线框可视化解释中提到的,减少三角形和顶点的数量永远都是提高性能的方法,但是很多时候,一个单独网格比多个网格刻画集合图形的性能要好得多(一个有1000个顶点的网格可能比10个有100个 ...

  3. ue4渲染速度太慢_UE4 渲染性能设置

    LightingAllow Static Lighting : 是否开启静态光照, 开启后将生成 lightmap, shadow map之类的可在静态光照下使用的贴图,否则仅使用动态光照, 修改此项 ...

  4. ue4html插件,【UE4插件Mirror】全球超千万Maya用户终于可以高质量实时渲染了

    Autodesk Maya是影视动画和其它视觉影像行业中最主流的制作工具,在全球拥有千万级用户.然而,多年来在Maya制作流程中一直以预渲染(pre render)为主导,缺乏高效高质的实时渲染(re ...

  5. excel下拉速度太慢_#excel下拉菜单太慢#为什么Excel文档反映很慢???

    在用Excel做表格时为何很卡 如果簿本身并不大,估计是该工作有一些数式,数组公式会表格的计算速度.鉴定方法是在EXCEL中按"工具-选项",在弹出窗口中选择"重新计算& ...

  6. 首届实时渲染3D动画创作大赛结果公布,看大奖英伟达A6000花落谁家

    根据评选标准,经过评委组层层选拔,首届实时渲染3D动画创作大赛,最终获奖结果出炉啦. 本次赛事报名人数达212人,入围作品共40份,其中Omniverse组11份,专业组15份,学生组14份.在宣布最 ...

  7. 实时渲染、离线渲染、实时云渲染、混合渲染是什么?

    渲染,就是将 3D 模型转换成 2D 图像,并最终呈现在屏幕上的过程.虽然这里只有一句话,但是这一句话里面包含了太多的数学.物理和计算机方面的知识,它描述了我们用计算机来虚拟化真实世界的基本逻辑.渲染 ...

  8. 游戏中基于物理的渲染

    转载请注明出处为KlayGE游戏引擎,本文的永久链接为http://www.klayge.org/?p=493 "游戏中基于物理的渲染"系列由4-5篇文章组成,介绍了如何在实时渲染 ...

  9. 实时渲染技术和像素流有哪些不同?

    在3D应用开发中,UE引擎是使用比较多的,尤其是在数字孪生智慧城市.智慧工厂行业,因为UE引擎对于精细模型的处理更有优势.而且UE官网也推出了多终端访问3D应用的技术--像素流.点量小芹在长期的接触中 ...

最新文章

  1. pandas使用read_csv函数读取文件时指定数据列的数据类型、pandas使用read_csv函数读取文件时通过keep_default_na参数设置缺失值替换为空字符串
  2. Linux 安装composer
  3. Android开发之ActionBar结合Fragment的导航功能的使用(源代码分享)
  4. 咖友推荐|我是窝窝酱,我来了,你在哪儿?
  5. 若依(基于SpringBoot的权限管理系统)集成MobileIMSDK实现IM服务端的搭建
  6. 基于jQuery实现自动或点击切换效果
  7. 试图登录,但是网络登陆服务没有启动成功
  8. 进程和线程不属于标准c语言,经典C语言面试题6:进程与线程的关系和区别
  9. C++ 类的静态成员详细讲解(转)
  10. python web开发框架 支持windows_基于Python的Web开发框架研究_曾浩
  11. 一个极其微小的优化想法
  12. java 数据类型 date_Java 数据类型之 Date 数据类型
  13. hadoop大数据平台_Hadoop之外的3个大数据平台
  14. module java.base does not “opens java.lang“ to module spring.core
  15. 74HC165基础篇(一)
  16. ZBrush中的皮肤纹理该怎么添加
  17. NOIP 陶陶摘苹果
  18. ELK浅入浅出之环境搭建
  19. 【剖析】上拉电阻和下拉电阻原理及其作用
  20. 快速安装visual studio 2005 sp1补丁(转载)

热门文章

  1. opc客户端_OPC UA 预备知识 OPC 核心概念
  2. android arcgis多变形边框颜色,Arcgis for Android 判断指定点是否在多边形内部
  3. java 内存管理 知乎_[知乎]Java 语言的 GC 为什么不实时释放内存?
  4. 扩展KMP模板(学习)
  5. MySQL 基准测试(mysqlslap)出现 Using a password on the command line interface can be insecure 警告
  6. Oracle查询数据库中所有的表名称
  7. redis3.0搭建分布式集群
  8. ftp ---- 文件结构(配置简单整理)
  9. MySQL判断字符串是否是数字
  10. html树图制作,d3.js制作树结构图