官网软件下载:https://www.facewaretech.com/

官网教程:http://support.facewaretech.com/

官网素材下载:https://www.facewaretech.com/learn/free-assets

Faceware Analyzer + Faceware Retargeter(Maya)+ Unity

真人面部动作 -- 动作数据 -- 模型动画

 

 

 

一 . Faceware Analyzer

这个软件是负责将输入的视频或连续的图片进行面部的跟踪分析,解析成数据,总结来讲就是视频数据 -> 面部跟踪数据

1. 新建job

新建一个Job,选择跟踪的视频源,要主要人面部要清晰,眉毛眼睛要露出来,具体更详细的要求可以看官方文档,总结来讲就是脸部越清晰越好,周围的干扰越少越好。我这里是从网上扒下来的新闻联播一段视频,央媒千万别说我侵权啊!

unity opencv怎么避免重复人脸计数 unity 面部捕捉_数据

 

2. 设置采样点

导入后,可以看到采样点了,就是下图中那些蓝色的point,但是可以看出来,默认情况下采样点和脸部是完全不匹配的。

unity opencv怎么避免重复人脸计数 unity 面部捕捉_关键帧_02

现在我们需要设置采样点的位置,有两种方式:

第一种是手动设置,这种工作量略大,但是更精准,可以自己控制采样位置。

第二种方式是自动跟踪,faceware会自动解析视频数据,设置采样点,这种方式非常非常简单快捷。

我们这里使用的自动跟踪,关于手动设置跟踪,可以查看文档。直接点击自动跟踪,等待一小会,结果就出来了,我们看到采样点已经自动设置到了新闻联播主播脸上对应的位置。

拖动时间轴,可以看到每一帧都很精准的跟踪到了位置,如果不使用自动跟踪,则需要手动设置多个关键帧数据进行跟踪解析。 

unity opencv怎么避免重复人脸计数 unity 面部捕捉_关键帧_03

3.   导出数据

点击右上角的参数化按钮,将跟踪的数据导出,导出后的.fwt文件就是跟踪数据。该数据即可提供给faceware builder使用。

 

unity opencv怎么避免重复人脸计数 unity 面部捕捉_关键帧_04

二. Faceware Retargeter

Faceware Retargeter是以插件形式导入DCC软件中进行动作数据的重新定位,这里我们使用Maya。从官网下载Faceware Retargeter以及其运行所需的其他软件(mathlab等)。

1.导入Faceware Retarger

导入插件后,在maya导航栏里就能看到Faceware的标签了,点击后打开Faceware Retarger。

unity opencv怎么避免重复人脸计数 unity 面部捕捉_关键帧_05

2. 导入模型和数据

这里我们使用Faceware官网上提供的免费人脸模型,你也可以自己建模,但是要自己绑定rig。

模型导入后导入由Faceware Analyzer生成的fwt数据。点击表演-》打开 导入文件,要注意勾选自动生成解决。这里我们也导入官网提供的该模型的绑定表情的信息,如果没有表情绑定信息,需要自己手动调整模型每个表情关键帧。

unity opencv怎么避免重复人脸计数 unity 面部捕捉_官网_06

3. 表情集

点击高级 -》角色设置 ,打开角色设置界面。选择文件 -》加载,加载从官网下载的表情xml文件,加载后即可看到已设置好的表情集。如果想自己手动重新创建表情集,可以参照官网教程,对每个表情关键帧进行模型的调整然后保存。

unity opencv怎么避免重复人脸计数 unity 面部捕捉_官网_07

在Maya中查看绑定后的效果: 

unity opencv怎么避免重复人脸计数 unity 面部捕捉_关键帧_08

三. 导入Unity

在Maya中选择文件-》发送到Unity,将模型到入到Unity工程中,在Unity中模型拖入到场景中,将动画设置到模型上,即可查看到效果。下面的视频可以看下最后的效果,录制时候两边我没有调整成完全同步的,但是能看出来效果还是不错的。

unity opencv怎么避免重复人脸计数 unity 面部捕捉_关键帧_09