【PFTrack跟踪】如何使用几何体跟踪变形物体?表情跟踪(图文详解)

› 社区话题 › PFtrack,3DEqualizer,Mocha追踪 › 【PFTrack跟踪】如何使用几何体跟踪变形物体?表情跟踪(图文详解)

11,226

标签: 

正在查看 14 条回复
  • 作者
    帖子
    • #30554

      追光
      参与者

      大家上午好◐▽◑,昨天有V友提到了 PFTrack 的几何体跟踪,今天追光就为大家详细讲讲在 PFTrack 中如何使用几何体跟踪变形物体。我们主要会用到 PFTrack 的 Geometry Tracking 节点,这个节点不仅仅可以跟踪摄像机,也可以用于跟踪运动物体。

      在本帖中,我会教大家跟踪一个女演员的头部,而且会在 PFTrack 中允许变形跟踪几何体,以捕捉演员的表情。

      可以欣赏这个案例来进一步加强应用范围:

      工业光魔:为《复仇者联盟》创建绿巨人

    • #30561

      追光
      参与者

      教程的主要流程是:设置场景 ->  定位跟踪几何体 -> 刚性几何体跟踪 -> 可变形的几何体跟踪。

      练习素材下载链接:

      PFTrack几何体跟踪变形物体练习素材百度云下载

       

    • #30563

      追光
      参与者

      下面请跟着我一起操作。

      第一步,设置场景。

      将片段导入 PFTrack 项目中,并播放查看。无论跟踪什么物体,首先都必须解算片段的摄像机。如果片段的摄像机是静止的,我们可以使用 Edit Camera 节点定义一个摄像机,我们可以在 Utilities 分类中找到该节点;而不是使用跟踪器和 Camera Solver 节点。不过,由于是在 Geometry Track 节点中跟踪定镜头中的物体,这一步可以省略,因为 Geometry Track 节点本身可以创建一个静止摄像机。


      在 Geometry Track 节点中设置摄像机

      在 Geometry Track 节点中勾选 Moving object,这会告诉 PFTrack 我们将跟踪一个运动物体,由于在节点树中还没有摄像机,所以 Geometry Track 会创建一个摄像机。

      如果节点树中已经存在静止或运动的摄像机,Moving camera 复选框会自动勾上。

    • #30571

      追光
      参与者

      第二步,定位跟踪几何体。

      设置好摄像机和场景之后,我们需要导入并定位跟踪几何体。

      导入几何体

      Geometry Track 节点支持的几何模型格式有 OBJ、FBX、Open Alembic 文件,以及 PFTrack 的内部文件格式。在二楼的练习素材中包含一个 PFTrack 内部格式模型——face.pfm,此模型是适合我们跟踪的片段的。

      点击 Load 按钮,然后选择 face.pfm。

      刚开始,导入的模型离我们很远,所以只能分辨出它的边缘。

      点击 View 按钮重新定位几何体。


      定位几何体

      开始跟踪前,我们需要手动对为几何模型。选择合适的模型,比如 Transform mode 中的 Translate、Rotate 或 Scale,对模型进行定位。除此之外,我们还可以选择 Fly 模式,在 Fly 模式下,按住 Option/Alt 键,使用左键可以旋转模型,中间可以缩放模型,右键可以平移模型。


      更改渲染模式

      更改模型在屏幕上的渲染模式可以帮助我们定位几何体。选择 Wire-frame 或 Hidden-line 将只显示边缘,而不是整个几何面部,这样我们可以看见模型的后面。

      我们可以使用眼睛、鼻子、嘴和下巴来判断定位是否适合演员的脸。

    • #30580

      追光
      参与者

      第三步,刚性几何体跟踪。

      如果我们只想跟踪演员头部的整体运动,我们可以点击下图所示的跟踪按钮。

      本教程的主要目的是通过网格变形来跟踪演员的表情,下面我会详细说到。这里,追光顺带说一下刚性几何体跟踪。为了保险起见,大家可以复制一下 Geometry Track 节点。


      复制 Geometry Track 节点

      选中 Geometry Track 节点,然后点击节点图下方的复制 和粘贴  按钮,将新复制的节点连到片段上,并双击激活。


      使用顶点权重

      此时几何体是刚性的,不会变形,而女演员却在说话,她的嘴和下巴都会动。所以我们需要改变受影响的顶点对整体解算的贡献,这可以通过更改顶点权重来实现。

      切换到 Vertex Weights 选项卡并点击 Paint 按钮。

      网格的 Render style 将自动改变为 Weights,绿色覆盖区域,表示所有顶点有同样的权重,并100%贡献给生成的跟踪。

      使用左键在模型下方涂抹,减少该区域的权重,我们可以在 clip 视图或 perspective 视图中进行涂抹。

      涂抹下巴时一定要检查透视图,有些部分在 clip 视图中很难涂到。

      处于 Paint 模式时,我们需要按 Command/Ctrl 进行旋转。点击  按钮会绕网格中心旋转,这样在透视视图中更容易导航。


      跟踪物体

      现在我们就可以跟踪物体了。此时我们可以将 Render style 切回我们想要的类型(如果想的话),然后使用适合的跟踪按钮向前或向后跟踪。

      跟踪处理时,我们可以看到网格模型贴在演员的脸上,并且跟随她的一举一动。一定要确保我们跟踪到每一帧。

    • #30594

      追光
      参与者

      第四步,变形几何体跟踪。

      和上一步跟踪女演员头部的整体运动不同,这一步我们跟踪的是女演员的表情,让她说话时模型网格也跟着变形。跟踪变形几何体,我们需要为网格三角形创建变形跟踪组,并指定这些组相对其他网格是如何变换的。

      在上一步中追光让大家复制了一个 Geometry Track 节点,此时我们可以回到第一个 Geometry Track 节点。


      创建变形组

      在 Deformable Groups 选项卡中创建变形跟踪组,点击 Create 按钮创建第一个组。

      我们可以双击 Name 列对创建的组重命名,这个组是用来覆盖女主角的下巴的,所以将名字改为 Jaw。


      添加三角面到组中

      现在我们需要将下巴部位的三角面添加到组中。选中这个组,然后点击  按钮进行涂抹。我们可以在 Cinema 和透视视图中进行涂抹。

      将所有下巴部位(不包括嘴唇)的三角面都添加进去。如果涂抹多了,可以点击  按钮,然后涂抹移除。Radius 滑块控制笔刷的厚度。

      在透视视图中确认clip视图中难以够到的区域,比如下巴后面。

      添加三角面时,我们可以按 Command/Ctrl 进行旋转。点击按钮会绕网格中心旋转,这样在透视视图中更容易导航。

      通过勾选下面这列按钮,我们可以控制每个组在跟踪时的变换。

      勾选 Lock 列将禁止选中的组在跟踪过程中移动,而 T、R、S 列允许组进行平移、旋转、缩放。通过选择 Move Pivot 或 Rotate Pivot 我们可以调节这些变换的轴心。不过本例用不到。

      我们允许 Jaw 组在 x 和 y 方向平移,且绕 x 轴旋转。


      创建剩余的组

      按上述方法分别为上唇、下唇、额头等部位创建组。记得勾选每个组的变换方式。

      我们可以双击 Color 列,为每个组设置不同的颜色。


      跟踪变形组

      现在我们可以点击相应的跟踪按钮,进行跟踪了。

      跟踪处理时,我们可以看到网格模型贴在演员的脸上,跟随头部的整体运动,同时变形组会被单独跟踪。一定要确保我们跟踪到每一帧。

      在 Export 节点中导出变形网格到 FBX 时,会自动在导出的文件中生成一个骨骼和皮肤变形。

      本帖未经允许不得转载,禁止二次转载,未经书面授权严禁转载,谢谢!

    • #30638

      小仙女
      参与者

      良心教程,超级棒!终于看到一个动捕教程带素材的了。每次想练习一下,无奈现找的模型和素材不匹配,重新建一个又太费时间。谢谢追光大神orz!

    • #30642

      橙黄橘绿
      参与者

      赞一个  🙂

    • #30643

      Clear_Moon
      参与者

      确是好帖!很详细!也很实用

    • #30696

      GTmiao
      参与者

      终于找到比较好的关于PFtrack的教程了

      • #30697

        追光
        参与者

        刚刚开始 后续会越来越完善的  把跟追踪有关的 都弄出来 哈哈 欢迎跟进关注 一起进步 ^_^

    • #48831

      CICI
      参与者

      谢谢作者的分享,素材和教程很有用已经上手了。我想问一下那个面具是只和素材视频适配的么?如果我要用一个面具跟别的人脸视频且不是特写,是不是需要自己造一个和视频素材适配的面具?然后那个PFM格式的面具是用什么软件做的?是之前就在面具制作软件里的已经适配好点的吗?还是一个什么都没有的空面具素材? 希望作者看到可以回复我一下,谢谢咯。

      • #48832

        追光
        参与者

        问题提的很好,看来已经开始延伸思路到别的应用场景了。
        1,如果要求不是达到1:1匹配的场景,比如严格的匹配某个演员的表情,我们只是拿去做初步的的追踪匹配,随便找一个就可以的。
        2 面具是用三维软件来制作的,比如C4D,Maya,houdini,都可以轻松完成这个面具的制作。
        3 如果面具是针对某个具体的人的,比如章子怡,我们就需要对她的面部进行三维采样(使用激光扫描或者倾斜摄影)1:1的重新制作出和人脸一模一样的面部,甚至是全身。

        思路拓展:也就是我们可以将人脸的表情追踪出来后,可以同步到其他人,物身上,比如让树木讲话,让狮子像人一样说话,等等的异体控制,当然在红外激光比较成熟的今天,面部追踪有了比较成熟的硬件,但原理和这个帖子是一样的。
        我们可以欣赏下这个视频,《霍比特人》的面部追踪拍摄现场:

        Weta Digital在角色咕噜背后的艺术:最有灵魂的CG角色

        霍比特人:五军之战 动作捕捉系统拍摄现场揭秘

    • #49082

      施主请留步
      参与者

      我想问一下 正常跟踪出人脸的运动轨迹  为什么模型会有拉伸  是位置没对好的缘故还是有其他的问题

      • #49090

        追光
        参与者

        模型有拉伸,是模型变形了? 如果追踪质量非常好的前提下,估计是重新绘制模型运动权重的时候画的不准确。绘制权重需要非常精细,一点一点绘制出每个运动部位。

    • #49161

      施主请留步
      参与者

      如果人物头部有旋转 例如转头180°或者更大的旋转这种情况还能这样跟吗 或者还有其他什么好的方式?

    • #87046

      逍遥
      会员

      追光大佬您好,请问在固定镜头,需要替换掉整个头部的情况下(演员本身几乎没有表情变化),是用这套几何体跟踪的思路去跟踪么?还是用运动物体跟踪那套去实现?

      • #87047

        追光
        参与者

        用几何体跟踪或者使用面部表情追踪都可以实现,根据素材情况选择测试。表情跟踪本身是包含几何体跟踪的,但这个几何体大多限定于面部作为追踪区域。
        在表情变化很微弱的情况下,就不需要绘制权重,当作一个头部模型追踪来用即可。如果是头部画质清晰,也可以直接使用几何体来追踪,当然摄像机即使不运动也需要把固定摄像机的参数作为一个camera。

        • #87093

          逍遥
          会员

          追光大佬您好,感谢您之前的回复,关于这个几何体跟踪的微调部分我还有不少疑问,比如视频最后一秒跟歪了我微调只有模型会产生严重的跳跃,refine group也粗浅的尝试过没有什么效果。请问要怎么处理,或者有没有能解决这个问题视频推荐。其次就是不知道是不是我的素材面数过多过精细?表情部分我分好组后经常跟的整个头部四分五裂,请问这可能是什么导致的?

          • #87094

            追光
            参与者

            在使用表情追踪分组后需要绘制权重,就是在不同区域追踪点对应的表情幅度大小,如果权重都很高就会出现模型破碎,人脸活动最大的是嘴唇、眼睛、对于活动很小的地方 只需要很低的权重即可,权重越高产生的运动越强烈,因此可能会导致分裂。

            • #87870

              逍遥
              会员

              大佬您好打扰一下,pf跟踪人脸现在有一定成果了,但是在和maya的联动上出现了些许问题(ps:我不太会maya,这部分都是和同事讨论的)

              现在我在尝试的是导出fbx之后和maya里完成了骨骼绑定和毛发的模型,进行融合变形来将跟踪好的表情移过去,经过尝试得出的结论是想用这一套做法,那在跟踪的过程中模型的零点就不能动了,所以我就打算直接在maya里对好,然后将摄像机和模型一个个导入进pf,但是同样的镜头,模型,和底部视频,导入pf之后就是有一定的偏差(如图),而且不是只用平移就能对上的,基本等于重新对,虽然可以用orient scene节点,但是感觉又麻烦效率又低,肯定不是正确的做法。

              实在是找不到该怎么解决只能来求助下大佬了,想请教下,maya导出的数据为什么到pf这边模型位置就对不上了(如图),然后就是正常是如何将表情跟踪数据给到工作流的,希望能帮助我解决这两个困扰了很久的问题,谢谢

            • #87871

              jerryfeng
              会员

              是不是跟场景的大小有关系?

            • #87873

              逍遥
              会员

              没场景啊,maya那边直接在摄像机视角然后图像平面那导入的,难道是摄像机参数不对?

              另外刚发现这条路基本走不通了,没注意到模型导入pftrack后全变三角面了,所以说这个面部跟踪出来的数据怎么用啊?带毛发直接跟又卡的不行

            • #87874

              追光
              参与者

              没有用过这种反向的操作,比如我会在houdini里面做好面部模型,然后倒入到PFtrack中调整大小对位,反求出的数据实际上是点(比如嘴唇)在三维空间中的 XYZ的变化数据,我在houdini中会采用晶格变形的方式,将反求到的点位置传输给另外一个模型的某个点(比如狗头模型),来重新进行映射,映射过程中会有权重和传递参数的权重。

              一般而言,面部表情追踪的目的是将人物的表情传递到其他物体或者生物上来使用的。当然现在有了专门的面部追踪设备、动作捕捉设备,一般PFtrack、3DE中的面部表情追踪是在没有这些设备的情况下使用计算机进行后期计算的,其目的是一样的。

              了解面部表情追踪的用途,可以学习下动作捕捉、表情捕捉到的数据应用方面的,比较有意思~~

            • #87876

              逍遥
              会员

              感谢大佬解答,主要就是想请问下,pftrack跟踪的好的数据怎么在maya里给到另一个完整的模型上,也是用晶格变形么?或者有没有关于这部分的教程推荐?付费的也行的

              另外请问组的边缘怎么才能让他更平滑一些?刷权重么?

    • #124828

      追光大佬您好,是这样的,我想出一些追踪PF track方面的视频,可能会用到网站里的那些练习素材,请问可以吗?我会在视频中说名素材的来源的

正在查看 14 条回复
  • 在下方一键注册,登录后就可以回复啦。