
想着把我琢磨Roto技术的心路历程给大伙儿唠唠,特别是对于像我一样刚入行的‘小白’来说,这玩意儿看着挺玄乎,上手了也没那么难。 最开始接触这个技术,纯粹是因为一个项目,...
想着把我琢磨Roto技术的心路历程给大伙儿唠唠,特别是对于像我一样刚入行的‘小白’来说,这玩意儿看着挺玄乎,上手了也没那么难。
最开始接触这个技术,纯粹是因为一个项目,里面有一段镜头,需要把前景的人跟背景彻底分离出来,做一些特效合成。我一开始就想着用传统的方式去抠像,什么绿幕,蓝幕,结果发现根本行不通,因为拍摄现场压根就没有用纯色背景,一片乱糟糟的。
我一头扎进了资料堆里,发现Roto这活儿,说白了就是用逐帧描边的方式,把物体“抠”出来。最常用的工具自然是AE(After Effects)或者Nuke。我手头有个旧版本的AE,就想着先从它上面入门。
我下载了几段测试素材,都是那种动态比较复杂的运动画面。我深吸一口气,打开了AE,新建了一个合成。

我做的第一步,就是导入素材,然后新建一个Mask,也就是蒙版。这玩意儿就是咱们画框的‘笔’。
前面几帧还算顺利,等到了人物手臂挥舞起来的时候,我就发现问题来了。我的蒙版经常跟不上物体的速度,或者边缘变得很模糊。
我赶紧上网搜‘Roto抖动’的解决方法。找到了一个核心点:羽化(Feather)和运动模糊(Motion Blur)。
我重新回到蒙版设置里,把羽化值稍微加了一点。这个羽化值就是让边缘稍微柔和一点,看起来不那么生硬,有点像喷枪喷出来的效果。对于毛发或者比较模糊的边缘,这个特别管用。

然后是那个追帧的过程。我发现手动拖点真的太慢了,而且很容易出现误差。我开始研究AE自带的跟踪器(Tracker)功能。虽然它主要用于追踪点,但有时候也能辅助Mask的移动。
我试着给蒙版添加了一个“父级跟踪”,但效果不最终还是老老实实用手动加关键帧的方式,但是加快了我的操作速度。我给自己定了个规矩,每隔三帧检查一次,确保轮廓没有大范围跑偏。
最折磨人的就是头发丝。如果你硬是用钢笔工具去描每一根发丝,我跟你说,等你做完这个镜头,你估计能秃头。
我学到了一招,叫“边缘分离法”。对于那些飘扬的头发,我不再追求描出清晰的边缘线,而是把主体人物先用一个稍微粗糙一点的Mask抠出来,确保身体和轮廓主体都被圈住。
然后,我新建了一个“反向蒙版”。把主蒙版的模式从‘添加’改成‘相减’。我用一个非常小的、高羽化的笔刷,专门针对那些发梢飘动的地方,再画一个蒙版,模式设为‘添加’。
这样操作下来,主体被减去,只有外层那一圈细微的发丝被保留下来,再配合一点点缩放和形变,效果就出来了一大半。这就是牺牲一些绝对的精度,换取整体动画流畅感和自然度。
把这一整套操作,应用到所有需要的帧上。虽然这个过程像雕刻一样慢,但是当我看到最终合成的画面,人物和背景完美地分开了,那种成就感,真的是‘哇’的一声。