查看: 2948|回复: 2
打印 上一主题 下一主题

[经验分享] 西直门2022特效镜头流程解析

[复制链接]

9210

主题

1

听众

5万

积分

内部人员

Rank: 7Rank: 7Rank: 7

纳金币
12582
精华
186

活跃会员

跳转到指定楼层
楼主
发表于 2013-9-6 09:19:32 |只看该作者 |倒序浏览
导言:
绘梦双鱼工组之所以制作这样的一个镜头,主要是想尝试研究一下实拍镜头的摄影机反求技术及三维场景的合成,为团队的下一个短片做技术铺垫。本来是考虑把整个制作过程写成一篇教程,但是在制作过程我们遇到了许多问题,而有些问题的解决用我的话来说是非常非常的Stupid,估计是没有什么实用价值。所以这并不能算是一篇通常意义的教程,更多的是经验上分享。

尽管如此,还是希望对类似项目或是制作要求的朋友有所帮助。同时,也希望行业中的高手能讨论、分享更为高效实用的解决方案,进一步探讨一些更为深入的制作技巧。这样,日积月累,我们才能逐步发展并建立起中国影视特效制作的工业体系。这样,有一天,我们才能看到属于中国人自己的大片。

概念设计
很长时间来,我们一直都想做一些不太一样的短片作品。但想象力需要技术的支持,卡在我们前进目标的第一关便是常规的镜头匹配。事实上,摄影机跟踪技术也不是很难的技术,即便是在国内稍微有点档次的广告中都屡见不鲜。所以,基于长远考虑,镜头匹配的技术必须得掌握。

一幅黄昏下机械城市的画面朦胧幻印在我脑海里。但由于这次的主要目的是探讨实拍镜头的摄影机反求技术,所以在概念设计上并没有下太多的功夫。于是乎,我直接厚颜无耻的扒了一些优秀的设计,并基于制作难度的考虑,做了一些适当的调整。

喜欢各种通道汇集到中间圆盘的感觉,淡蓝色的发光玻璃总能跟未来联系到一块。(图01、02)


图01


图02

汗如雨下,把自己见不得人的手稿搁在这么优秀的设计下反差实在太大,倍受打击。正因为如此,工组的下下下个短片需要优秀的概念设计,有人感兴趣吗?(图03)


图03

跟踪
通常所说的“摄影机跟踪”或“镜头匹配”,指的是分析解算一段视频素材以求出摄影机在3D环境中的运动轨迹及焦距等相关摄影机属性参数的过程。

事实上,大家看到的合成镜头是根据第二次拍摄的镜头反求出来的。早在去年夏天的时候,也是在西直门,我们拍摄了一组镜头。但那次因为对跟踪软件了解的并不深入,所以拍摄出来的素材跟踪起来难度非常大。(图04)


图04

常规跟踪镜头的流程都是先画mask把运动的人或物给遮住,不让其参与软件的自动采样,以得到干净的摄影机运动路径。但之前拍摄的这个镜头,除人物外,背景中还有很多移动的车辆。如果把车辆再排除在自动采样的区域之外,实际整个画面可用的采样信息是非常少的。而那时对手动跟踪的相关使用还是一知半解,所以这个镜头活活没有求出最终的摄影机运动轨迹。(图05)


图05

吸取第一次的失败经验,我们再拍的时候使用上了跟踪点。跟踪软件中手动跟踪点的工作原理很简单,就是跟踪对比高或是色相差异大有明显特征的信息区域。因为这次跟踪的镜头没有太大的透视变化,所以我们用了最为普通的黑色围棋子做跟踪点。需要提及的一点是,粘贴跟踪点用的双面胶布一定不要用那种粘得活牢的那种,毕竟这是公共场合,拍摄完后现场的清理也是需要考虑的问题。

主流的跟踪软件有Boujou、Syntheyes、Matchmover、Pftrack等,功能上没有太大区别。考虑到Matchmover作为maya的镜头匹配解决方案有着更好的兼容性,整个镜头的跟踪是在MatchMover里完成的。(图06)


图06

MatchMover的Full界面。

MatchMover的工作流程跟常规的摄影机运动路径的反求并无二致。通常都是先导入需要解算的素材,根据素材的实际情况判断是否需要绘制屏蔽采样区域的mask。简单一点的镜头直接执行自动解算命令基本可以搞定,复杂一点的视具体情况结合手动跟踪解算出摄影机运动轨迹。求出路径后,为方便导入三维软件后的工作方便按需设定坐标体系。然而在实际工作流程中,很少镜头是一次就能准确解算的。所以,解算出路径后,都会创建简单的三维物体来判断镜头跟踪是否存在问题。求出满意的路径后,方可导出下一步所用三维软件对应的格式。

为提升工作效率,我简单说明一下Matchmover的常用操作。在工作区里按住Ctrl+LMB(鼠标左键)向右滑动是顺序的正常播放,向左滑动是倒放。Alt+LMB是移动画布。Ctrl+Alt +LMB上下拖动缩放画布。F3 正向跟踪 Shift +F3逆向跟踪 F4 双向跟踪。(图07)


图07

跟刚开始所提及的那样,在西直门拍摄的这个镜头因为桥下流动车辆产生的运动不能直接使用自动解算功能,所以我们直接使用跟踪点来反求摄影机运动轨迹。

理论上来说,只要画面的中可以提供7-8个跟踪点就可以解算出摄影机路径,但实话实说,拿较为苛刻的极限情况来考验软件解算能力往往是你选择巨大工组量开始的前奏。尽管镜头跟踪点的数量不是说越多越好,但保证一定数量高质量的跟踪点对求出干净的摄影机路径是有十分必要的。另外,在手动选择跟踪点的时候需要注意的一个问题便是,当两个物体的轮廓边在画面上交叉形成有特征的跟踪点是不能作为特征跟踪点使用的,如下面左侧图所示,台灯跟书本、书桌及墙面相交接的地方形成了特征点,但是这些点在实际的三维空间中不是真正意义的物理实点。由于这些点在空间位置中的不准确性很容易导致解算出来的摄影机路径出现意想不到的结果,所以像这类情况的选择应该尽可能的避免。(图08)


图08

像上图右边的这种情况就很难发现,尽管看起来两个跟踪点跟踪的位置都没有问题,但是前一帧跟踪的点随着镜头的位移旋转已经到了另外一个位置。跟踪点从实际空间上来说已经不对了。所以,这样的跟踪点也是不可取的。

在文件菜单下的Load sequence便是导入素材,导入素材的面板比较简单,时间范围、场、帧速率都没什么好说的,玩后期的人应该都知道。需要提及的有两个选项,一个是 Camera Settings Motion,另外一个是Focal Length。Camera Settings Motion 事实上是对摄影机运动方式约束的定义,Free 指的是自由运动方式,Nodal Pan指的是定点拍摄模式(脚架拍摄)。Focal length 指的是焦距,有两个选项,一是constant(定焦),二是variable(变焦),如果你的镜头有推拉变焦动作的话就得选择这项。(图09)


图09

导入素材文件后,在工作区里单击右键,弹出右键菜单,选择New Track。把十字星放到需要跟踪的特征点上按住鼠标左键不放,即会出现放大镜供精确对位。调整好位置之后,按F3 正向跟踪 或是Shift +F3 反向跟踪(或点击工具栏上)即可实现对跟踪点的2D跟踪解算。跟踪后无外乎三种情况,第一种就是没什么问题,跟踪完美。第二种就是某个时间段还不错,但有些地方遇到其他情况如运动模糊之类的跟丢了。这类问题可以通过手动设定Tracker的关键帧来解决。方法很简单,就是用时间导航快捷键组合,键精确调整到跟踪出错的帧数,然后选择需要修改的Tracker重新对位。(图10)


图10

再有一种情况就是,跟踪点被前景物体遮挡或是到了镜头边沿导致跟踪失败。在说明这个问题前我先说明一下 Matchmover的几种关键帧。鼠标右键>Set Key菜单下可以看到四种关键帧,Begin(起始帧)、Intermediate(中间帧)、End(结束帧)、Single(单帧),如下左图所示。Matchmover就是通过关键帧的组合定义来判断什么时候跟踪点起始有效什么结束。在这个镜头中,在前面的67帧中前景人物挡住了Track12,所以Track12的起始帧是在第68帧,130帧后,Track12划出画面,结束帧设为130帧,如下右图所示。如果说镜头运动后Track12对应的跟踪点又出现在画面中,选择跟踪点再次出现的帧,设好跟踪点后把关键帧设成起始帧就可以了。(图11)


图11

在说完关键帧后,就不得不提一下双向跟踪(Track Bidirectional)。所谓双向跟踪就是正向反向的两次跟踪然后求两次跟踪轨迹的平均值,这样求出来的轨迹相对单向跟踪更加平滑。双向跟踪在使用上要求正向反向两个方向上都有关键帧供解算跟踪。因为双向跟踪使用的是两次跟踪,所以相对而言解算时间要长一些,尽管如此,双向跟踪的作用还是非常明显的。在实际的拍摄过程中经常会因为运动模糊致使跟踪点形状模糊,进而导致跟踪轨迹存在小幅的噪波,而双向跟踪对类似这样噪波修复是非常有帮助的。

剩下的就是需要一个个跟踪点手动去跟了,基本是体力活,没啥好讲的。需要补充说明的是关于手动跟踪点选择应该注意的一些问题。我们在布置跟踪点的时候一共设了14个跟踪点,在实际镜头中可用的有11个点。需要注意的是这个11个点都在栏杆上,假定以镜头纵深方向为z轴的话,那么这些点在z轴向上的数值都是一样的。这是非常不可取的。如下图所示,摄影机向右运动,前景点A跟后景点B势必产生位移,但因为前景点A跟后景点B处于不同的纵深,所以两个点在拍摄画面中的位移也是不太一样的。摄影机运动轨迹解算正是通过前景点A跟后景点B的相对位移反向计算生成的。正因为如此,单有A区域的跟踪点或是单有B区域的跟踪点很难形成跟踪软件解算所需要的“视差(透视变化)”,这很容易造成镜头解算的错误或是弱解情况的产生。所以,在手动选择跟踪点的时候一定确保跟踪点在纵深方向上的多层次,如下图右图所示。(图12)


图12

手动跟踪好合适的跟踪点后,下一步就是镜头解算工作了。如下图所示,Matchmover提供了三种解算方式。Solve For Camera 解算摄影机,指的是不管在什么情况下都重新解算摄影机。Extend Camera 扩展解算摄影机,指的是基于此前已经解算的方案上重新解算任何新的Track动作。Extend Camera Fixed 固定拓展解算摄影机,指的是现有解决方案不变,只解算新的Track动作。(图13)


图13

解算后的问题很自然的就是判断跟踪的准确性。判断一个镜头是否跟踪准确可以通过三个步骤逐步检测。第一步,检查Track是否对应相应的跟踪点,在解算完成之后,单击视图左上角的切换摄影机3D视图。C键是锁定摄影机视图,Ctrl+Alt+LMB推拉视图,Alt+LMB移动视图,Alt+RMB旋转视图。如下图左图所示,解算出来3D Track会以蓝色的倒三角显示,在这一环节中,主要判断跟踪出来的3D Track在视频播放过程中是否准确对位相应的跟踪点,3D Track的相对位置是否跟实际的空间相对位置一致。

第二步,创建简单的BOX或是导入其他什么三维模型来实际测试。注意,有时候出现不匹配的情况很有可能是模型物体没有放置在正确的地方。(图14)


图14

最后一步,也是最容易忽略的,便是在3D视图下检查摄影机轨迹是否存在噪点(晃动),理想的摄影机运动路径应该是一条平滑的曲线。(图15)


图15

不管在哪款跟踪软件里,坐标系统的设置都不是必须的,但是一个好的坐标系统能让你之后的工作效率加倍。Matchmover采用的是两轴定位方法,即定义出两个轴向后软件自动求出第三个轴向。而定义单个轴向的方法有两种,一种是点对点,另外一种是三点成面形成的法线方向。(图16)


图16

Matchmover的坐标设定非常直观, xyz三个轴线另带了一个距离设定控制器。坐标设置可以根据需要在视图中直接调整,也可以通过右侧的属性面板精确设置。距离点设定对于后期场景的比例把握非常重要,所以前期拍摄的时候一定做好相关的记录工作,距离设置默认从原点开始。

检查没有什么问题后就可以导出了。

尽管这个镜头通过手动跟踪点的方式非常轻松的求出摄影机运动轨迹,但是并不代表这是屡试不爽的解决方案。和其它CG艺术家不太一样的地方是,镜头匹配的艺术家很少能用一种相对固定的方法解决所有问题,几乎每个镜头都是挑战。比如说像这个镜头就没有焦距上的变化,镜头的晃动也不是很大,在远处的景物也能提供有特征的信息点供跟踪解算,所以相对来说还是比较容易。在实际的制作过程中,镜头解算的难度很大程度上取决于拍摄镜头本身所呈现出来的技术特点,有的时候,镜头本身就有较大的噪点或是跟踪点有较大的运动模糊导致最后解算出来的摄影机路径晃动噪点,而有的时候整个画面都没有可以用的跟踪点,类似这些高难度镜头的跟踪就完全依赖于艺术家经验跟技巧了。更加深入的问题这篇帖子里不做过多讨论了,回头我研究透了会另起一篇专题帖深入讨论。另外,时光坐标李伟的新书《影视特效镜头跟踪技术精粹》马上就要出版,我简单看了一下,相信对跟踪的朋友会有非常大的帮助,在此推荐一下。

场景
在今天,各大三维软件经历了十余载的发展,基本上功能都大同小异,尤其是Autodesk公司一统天下后,这种情况更是如此。尽管Autodesk 的大公司商业发展策略让很多个人CG艺术家广为诟病,但不管怎样,Autodesk将几大三维软件整合之后带来了兄弟软件间优秀的协同工作能力。这对于需要以团队力量完成的动画及电影作品来说是有非常大的帮助的。沾Autodesk的光,为了实现繁华城市人群涌动的感觉,一直使用Maya的我临时转向了有现成群组工具的3dmax 。选择Max另外的一个原因就是Max有我一直想接触的Final render 渲染器。整个建模过程还是在Maya中完成的。

从跟踪软件导入到三维软件中有一个很重要的问题便是摄影机跟三维场景的对位,直接求出摄影机轨迹后再进行建模的方法更适用于个人艺术家的短片创作,毫无疑问的,在公司的实际运作流程中,场景建模肯定跟镜头匹配是同步进行的。所以,摄影机跟场景的对位是首要问题。在maya中导入场景后,切换成摄影机视图,直接使用摄影机视图的导航虽然能调整到合适的位置,但是一重新播放时间线摄影机便会根据跟踪软件生成的关键帧回到对应位置。解决这个问题的办法很简单,就是把生成的locator连同摄影机一块成组。locator是用于摄影机的相对定位的。这样,只要拎着组便可以随心所欲的把摄影机放置在需要的地方。如果你用Boujou或是SynthEyes生成的maya文件的话,摄影机的组是预先设置好的。搞不懂作为maya摄影机匹配解决方案的 Matchmover在流程上应该更加人性化,反却弄得这么别扭。

场景比较简单,基本就是基础几何体做了些简单的调修改整然后阵列复制。(图17)


图17

通常,在把概念美术转换成三维模型的时候会都会遇到画面单调的问题,有时候是原本设计的画面本身就缺少深入的细节内容,有时候是2D设计的局限,这要求艺术家根据现有设计做更多的工作来丰富整个画面。

相比而言,在三维软件里作的东西来得比较活,不会像手绘来得那么随意,轻轻带过的几笔就能让整个画面活起来。要想通过三维软件制作出丰富生动的画面来,毫无疑问的,大量的工作等着你去完成。

远景我是在max中完成的,几个面片一贴图就ok!

建模场景的测试渲染。(图18)


图18
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

9210

主题

1

听众

5万

积分

内部人员

Rank: 7Rank: 7Rank: 7

纳金币
12582
精华
186

活跃会员

沙发
发表于 2013-9-6 09:20:01 |只看该作者

动画
在这个镜头里动画部分主要是两个方面,一个人群的流动,一个交通工具的穿梭飞行。

实话实说,受技术方面的限制,这两个部分我处理都不是很好。最后出来的东西完全是钻了远景的空子,才没有出现太大的穿帮问题。

关于群集动画,在火星时代出版的《Autodesk 3Dmax 2010 标准教程 II》以及《3ds Max高级特效火星课堂》两本书中对两种工作流程(一种是常规Crowd群组,一种Cat混搭Crowd的动画流程)做了非常详细的讲解,在这方面我并没有吃透并且遇到了很多无法解决的问题,所以建议感兴趣的朋友直接找书研究一下。

在制作群集动画时我遇到一个奇怪问题,群集解算出来总有问题,一种情况是代理物体前一帧在这个位置,下一帧会跳到一个很远的位置出现。另外一种情况代理物体前一帧还有,后一帧就完全消失了。我做了一些测试,发现09跟11版本的Max都有这个问题,2010 32位中文版本的3ds Max反而运行良好。由于3ds Max是现学的,所以我也不太好断定这是否是个Bug。(图19)


图19

再有一个问题就是在人物的群集动画中,人物的行为是受Biped控制而非代理,这也就是说直接对代理应用的规避行为、曲面搜索等行为都是无效的,Biped的群集动画是基于运动流共享网络的。尽管跟常规的群集流程非常相似,但是运动流网络的设置相对复杂很多。为此,尝试了很多次,但不知道是否是因为人物设置太多而导致Max缓慢的运行,我始终没能求出理想的群集效果。最后的解决方案比较笨,对于解算后出现群集人物的穿插、交错等情况基本都是暴力删除,或者对代理的重新定位。为了让画面看起来更真实可信,我手动调整了几个角色或站着交谈或坐着聊天。至于Biped的群集动画,有时间我会再做进一步研究。(图20)


图20

交通工具的飞行事实上也是一个非常头疼的问题。要想做出飞行器在公路上高速穿梭的感觉,就必须把飞行器的速度提起来,但是整个镜头有18s钟时间,这意味需要成百上千架的飞行器飞过形成一个运动流,最理想的解决方案就是粒子动画。我花了好些时间来研究Think Pactice和Pactice Flow,但一直搞没清楚如何实现粒子间的碰撞避免。万般抓狂中,被迫考虑群集动画方案。

群集动画需要解决的一个问题便是如何实现大量的飞行器不断飞过。我曾经考虑制作一个环行的曲面,这样飞行器飞过一段时间后能够回到原点再飞一次。但是这有两个问题,其一,飞行器的多边形面数相对较多,并且,如果要在飞行通道上保证一定数量的飞行器就必须要增加在环形曲面上飞行器的整体数量。而飞行器行驶通道一共两层两个方向共计4个通道,这将大大增加电脑的显示、渲染时的负载。其二,如何实现代理到拐角处的方向转向也是让人抓狂的问题。不解决这个问题就很难实现飞行器的循环飞行。(图21)


图21

最后采用的办法是手动关键帧。

手动关键帧的办法相对比较简单。我先把各种各样的飞行器复制若干,沿飞行通道方向拉成一条飞行车队。然后把这列车队成组,对整个组设置手动关键帧。组的起始帧、结束帧以及起始帧位置、结束帧位置决定了车队整体的飞行速度。而车队的长度又是得根据飞行器飞行的速度决定的。飞行器飞行速度比较快的话就得需要很长的一组飞行器,慢的话则反之。

理想的飞行速度得透过镜头的视点来观察判断。这样只是定义出飞行车队整体的飞行速度,在实际生活中,车的型号类别以及车主的心情目的各不相同,所以在速度上也是千差万别的。这时就需要逐个对飞行器进行调整。调整的方法很简单,就是打开曲线编辑器调整关键帧。要是碰到穿插、交错的情况怎么办?删除或是调整关键帧都可以。这样做好了一个方向的飞行器动画,其余方向直接复制做好的这个组,然后再局部手动调整关键帧,基本上就差不多了。(图22)


图22

整个镜头做完后,我跟杨继昌聊起整个流程的制作,他提到一个技巧也是非常有参考价值的。从镜头的视点上来说,远处行走的人物是非常小的,所以人群完全可以用单人的方式制作成带透明通道PNG,做为移动面片的贴图。这样,效率会大大的提升很多。但这种方法仅限于远景的使用。

材质&渲染
从开始的概念设计之初起,整个城市在造型方面就没有设计得特别复杂,所以体现未来城市科幻感觉的重任便落在了材质表现上。科幻类型的贴图跟其他类型的贴图稍有区别,常规的现实环境贴图可以参考现有的周围的生活环境然后利用现成的照片素材来修改、绘制,而科幻类型的贴图更多的需要在线面以及个性图案的设计上有着较强的把控力。

仔细留意经典的科幻材质表现,你会发现这些贴图的绘制几乎都是依靠线条跟面块的搭配组合切割复合金属板来表现高度复杂的未来科技。而这要求的更多的是使用类似AI、Coreldraw等矢量软件参与的精确绘图。虽然最后呈现出来的东西就是画画线条,但这相当需要功力,画得多了很容易碎,画少了搁全景里啥也看不出来。在这个方面我也没有太多经验,就不做更加深入的讨论了。(图23)


图23

不管什么类型的贴图,最终呈现效果的层次丰富是务必要保证的。实现材质纹理的层次变化丰富无外乎两种办法,一种是通过PS直接绘制,另外一种是现有纹理结合程序纹理生成更加丰富的材质贴图。两种方法可以混合使用。

在西直门2022这个镜头中,我们想要表现一种发光的玻璃材质来为画面增添几分科技感。而想要赋予玻璃材质的栏杆正好处于画面的前景部分,所以这块是表现的重点。Max 在2011版本中加入了万众期待的节点编辑器,借助新的节点编辑器,在这里我简单的说一下我的思路。

发光玻璃的发光及透明两种材质是通过多维子材质表现的,没什么难度,主要说说透明玻璃材质部分的表现。

透明玻璃材质是通过层纹理节点逐层叠加实现的。第一层是漫反射贴图,没啥好说的,就是打个底子,对于玻璃材质来说可有可无。为了画面更加丰富好看,我从网上下了一些化学元素及电路板的元素图案,在ps里绘制了第二层自发光贴图。自发光贴图的加入给后期一个更大的发挥空间。如果想做得更细致更深入一些的话,在最后Nuke合成的阶段完全可以给底部自发光图案做一个溜光的效果,这样呈现出来画面的科技感会更强。第三层跟第四层不透明贴图的目的就是给玻璃 “做旧”。

因为西直门是一个公共场合,人来人往的,外露的玻璃肯定不会特别干净。清洁工的打扫,天气,路人的倚靠触碰以及城市牛皮癣的反复擦洗都会形成各种各样的痕迹。在这里,我把两张贴图分别贴在了两张不同颜色材质的不透明通道上,这样,贴图上黑色部分便会透明而留下了部分颜色,然后,我再通过层纹理节点把多个材质叠加起来,根据需要调节叠加模式及不透明度,最终形成变化丰富的透明玻璃材质。

材质编辑部分基本完成,但是玻璃跟地面的交接处形成一条单一的直线,这样在构图上看起来非常不舒服。于是我做了一些垃圾和树叶来破破过切的画面。(图24)


图24

场景中其他材质的思路基本跟这基本大同小异,不废话了。

关于贴图方面,好莱坞材质艺术家Leigh van dar Byl有篇帖子对材质绘制的流程及思路做了非常深入的阐述,等有机会我整理出来跟大家一块分享。

关于渲染,因为场景比较复杂,而人物的群集动画因为不知名的原因无法导入Max 2011,所以分层渲染是在所难免的。(图25)


图25

特别让我懊恼的一点是,Final render 不能直接支持AO的渲染。现有的做法是通过设置全局材质替换的方法来解决的,我先在Final Render的全局材质选项中指定AmbientOcclusion材质,然后再单独开启AO的渲染元素。但是这样一来,我要求出一套完整的分层渲染,意味着就要花两倍的时间。按理来说Final Render也是经过《2012》大片的考验的,怎么AO的渲染流程这么麻烦?(图26)


图26

合成
合成的难点有两个,一个是场景合成,另外一个就是实景的人物抠像(Roto)。

场景的常规合成基本就是图层的叠加跟合并,没有什么好说的。稍微有点难度的地方是前景玻璃与群集人物的合成。

飞行器的运动模糊使用Nuke 6 版本自带F_MotionBlur节点就可以得到不错的效果。雾效我使用GenArts Sapphire OFX下的S_ZFogExponential节点来实现,这样画面的空间感跟层次感能更丰富一些。(图27)


图27

Roto全称Rotoscoping。这种技术源自于二十世纪早期的动画对位技术。在当时,为了制作出更流畅的人物动画来,通常的做法都是拍好真人的表演动作,然后动画师在现有表演动作的基础上重新绘制角色动画。而后,随着电影特效的发展,好莱坞借鉴了这项技术并把一切类似的对位工作统称 Rotoscoping。现今,在好莱坞的电影制作中但凡要涉及合成的镜头,几乎都会用到Roto。只要你细心留意国内外大片片尾的工作人员,你会发现一堆做Roto的。

在实际的电影拍摄中,不可能什么镜头都在蓝绿屏前拍摄的。其一要把蓝绿屏前的光布得跟实景的自然光一样是一件很困难的事情。其二是在蓝绿屏前拍摄的对象在合成时会碰到与背景比例关系问题,其三,两次拍摄固定镜头还无所谓,一旦牵扯到摄影机的运动,两次运动轨迹的对位将是让人抓狂的头疼问题。在不借助Motion Control (摄影机运动控制系统)的情况下,几乎是没有可能保证两次摄影机运动轨迹的完全一致性,但就合成来说两次摄影机运动轨迹只要有点偏差不管合得好还是不好一眼就能看出破绽。基于此,普遍的做法就是在实际拍摄的画面中把人的动作或其它拍摄对象的移动用关键帧的办法来绘制生成合成所需的遮罩。(图28)


图28

在实际的拍摄中,场面的拍摄调度往往会融合了烟火、天气等各种实拍特效,Roto相对来说是最理想的解决方案。

Roto是一个技巧性很强的工作。如果说一个镜头中要分离运动中的人物,你一口气想用一个Mask把整个人物给扣出来,人物没啥大的动作时还好说,稍微复杂点的动作就能让你累得吐血。我之前干过这样的蠢事,所以花了非常多的时间来弄明白Roto的本质含义。通常,你要扣一个人物,都是把运动的物体根据运动幅度的变化来分成相对应的Mask,然后单个部分手动调整,几个部分最后合成一个有效的Matte。(图29)


图29

就拿这个西直门这个镜头来说,我把主体人物分成了头发、头、躯干、左手、右手等五个部分。头、躯干等实体部分按照本身形状单独调整就行,这没有什么难度,就是体力活。需要注意的一点是,刚开始在给Mask K关键帧的时候两关键帧最好是有一定的间隔,然后再逐步的细化。千万不要不用一上来就逐帧调整,因为逐帧调整很容易导致最后生成的Matte出现边沿抖动的问题。在Roto的时候尽量让两关键帧自动生成的Mask来形成对位遮罩。关于这个问题上的处理上我做的也不是特别好,仔细留意的话还是能发现Roto边沿的抖动问题,之所以专门提出来可以说是从失败中汲取的经验教训。

把抠像对象的局部分解,最大的好处还在于因为局部划分所带来的针对性以及解决实际问题的手段丰富性。在这个特效镜头中,被扣对像的头发处理是个很麻烦的问题,但是如果把头发的部分用亮度键控来针对解决的话就相对会容易很多。另外,如果分解出来的局部要是有明显的跟踪点的话,你可以使用单点跟踪然后把运动轨迹再匹配给Mask,这样调整Mask时只用做一些局部的小调整,效率会相对提高很多。(图30)


图30

Nuke提供了非常强大一套roto工具。最终合成的镜头。(图31)


图31

合成的节点网络。(图32)


图32

结语
尽管整个镜头还存在这样或那样有待改进的地方,比如,飞行器飞过的时候可以让地上的树叶飞扬起来,而抠出来的人物也都还可以再加强一下主光源的细节处理,但是总的来说,希望在这个镜头中解决的主要技术问题都已经解决。

在制作这个镜头的过程中很多东西都是现学的,所以不管是技术、经验还有技巧上都难免存在着诸多不足。所以,强烈欢迎各路后期高人相互间有建设性的深入探讨。
教程分享:3ds Max打造惊天爆炸燃烧效果


回复

使用道具 举报

may    

8830

主题

80

听众

7万

积分

首席设计师

Rank: 8Rank: 8

纳金币
52312
精华
343

最佳新人 热心会员 灌水之王 活跃会员 突出贡献 荣誉管理 论坛元老

板凳
发表于 2013-9-9 00:55:33 |只看该作者
分享max技术文章还是不错的呀!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

关闭

站长推荐上一条 /1 下一条

手机版|纳金网 ( 闽ICP备08008928号

GMT+8, 2024-5-11 13:13 , Processed in 0.102712 second(s), 31 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部